عرض القواعد الافتراضية والمناطق المتاحة

09.11.2020

لكن أوامر iptables معقدة ، ويجد العديد من المستخدمين صعوبة في تذكر جميع الخيارات والحالات التي ينبغي استخدامها فيها. لذلك ، ينشئ مطورو التوزيع إضافات خاصة بهم عبر iptables ، مما يساعد على تبسيط إدارة جدار الحماية. يحتوي CentOS على وظيفة إضافية لإدارة iptables تسمى Firewalld.

توجد عدة اختلافات مهمة في جدار الحماية عن iptables. هنا ، يتم تنفيذ التحكم في الوصول إلى الشبكة على مستوى المناطق والخدمات ، وليس على السلاسل والقواعد. وأيضًا يتم تحديث القواعد ديناميكيًا دون مقاطعة الجلسات الجارية. ستوجهك هذه المقالة خلال إعداد جدار حماية CentOS 7 باستخدام Firewalld كمثال.

كما قلت أعلاه ، لا يعمل جدار الحماية مع سلاسل القواعد ، ولكن مع المناطق. يمكن تخصيص منطقة محددة لكل واجهة شبكة. المنطقة هي مجموعة من القواعد والقيود والأذونات التي تنطبق على واجهة الشبكة هذه. يمكن تحديد منطقة واحدة فقط لكل واجهة. أنشأ المطورون عدة مناطق محددة مسبقًا:

  • قطرة- حظر جميع الحزم الواردة ، والسماح فقط الصادرة
  • منع- على عكس الخيار السابق ، سيتم إرسال رسالة إلى مرسل الحزمة لحظر الحزمة الخاصة بها ؛
  • عام- يتم دعم الاتصالات الواردة فقط لـ ssh و dhclient ؛
  • خارجي- يدعم NAT لإخفاء الشبكة الداخلية ؛
  • داخلي- يُسمح بخدمات ssh و samba و mdns و dhcp ؛
  • dmz- تستخدم للخوادم المعزولة التي لا يمكنها الوصول إلى الشبكة. يسمح فقط باتصالات SSH ؛
  • الشغل- يُسمح بخدمات ssh و dhcp ؛
  • الصفحة الرئيسية- على غرار الداخلية ؛
  • موثوق به- كل شيء مباح.

وبالتالي ، لتمكين خدمة أو تعطيلها ، ما عليك سوى إضافتها أو إزالتها من المنطقة الحالية أو تغيير منطقة الواجهة إلى المنطقة المسموح بها. إنه مشابه لسياسة الحزمة الافتراضية في iptables. تحتوي المنطقة الموثوقة على سياسة ACCEPT وتسمح لجميع الاتصالات ، ولدى منطقة الحظر سياسة DENY التي ترفض جميع الاتصالات ، ويمكن اعتبار جميع المناطق الأخرى ورثة لمنطقة الحظر ، بالإضافة إلى أن لديهم بالفعل قواعد محددة مسبقًا للسماح باتصالات الشبكة لبعض الخدمات .

يحتوي جدار الحماية أيضًا على نوعين من التكوين:

  • مدة العرض- صالحة فقط حتى إعادة التشغيل ، يتم تطبيق جميع التغييرات التي لم يتم النص عليها صراحة بخلاف ذلك على هذا التكوين ؛
  • دائم- الإعدادات الدائمة التي ستعمل بعد إعادة التشغيل.

الآن بعد أن عرفت كل ما عليك القيام به ، دعنا ننتقل إلى الأداة المساعدة firewalld-cmd.

بناء جملة جدار الحماية- cmd وخياراته

يمكنك إدارة إعدادات جدار الحماية باستخدام الأداة المساعدة لوحدة التحكم firewall-cmd والواجهة الرسومية. يتم استخدام CentOS بشكل شائع على الخوادم ، لذا سيتعين عليك العمل في محطة طرفية. دعنا نلقي نظرة على صيغة الأداة:

خيارات جدار الحماية- cmd

تُستخدم الصيغة التالية لإدارة المناطق:

جدار الحماية - cmd - التكوين - المنطقة = خيارات المنطقة

كتكوين ، تحتاج إلى تحديد الخيار الدائم لحفظ التغييرات بعد إعادة التشغيل أو عدم تحديد أي شيء ، وستكون التغييرات صالحة فقط حتى إعادة التشغيل. استخدم اسم المنطقة المرغوبة كمنطقة. دعنا نلقي نظرة على خيارات الأداة المساعدة:

  • --حالة- عرض حالة جدار الحماية ؛
  • --إعادة تحميل- إعادة تحميل القواعد من التكوين المستمر ؛
  • --إعادة تحميل كاملة- إعادة تحميل القواعد بشدة ، وكسر جميع الاتصالات ؛
  • - من وقت التشغيل إلى دائم- نقل إعدادات تكوين وقت التشغيل إلى تكوين دائم ؛
  • --دائم- استخدام التكوين المستمر ؛
  • --get-default-zone- عرض المنطقة الافتراضية ؛
  • - ضبط منطقة التقصير- تعيين المنطقة الافتراضية ؛
  • - الحصول على مناطق نشطة- عرض المناطق النشطة ؛
  • - مناطق النضج- عرض جميع المناطق المتاحة ؛
  • - الحصول على الخدمات- عرض الخدمات المحددة مسبقًا ؛
  • - قائمة جميع المناطق- عرض تكوين جميع المناطق ؛
  • - منطقة جديدة- إنشاء منطقة جديدة ؛
  • - حذف منطقة- حذف منطقة ؛
  • --قائمة جميع- إزالة كل ما تمت إضافته من المنطقة المحددة ؛
  • - قائمة الخدمات- عرض جميع الخدمات المضافة إلى المنطقة ؛
  • --إضافة خدمة- إضافة خدمة إلى المنطقة ؛
  • - إزالة الخدمة- إزالة الخدمة من المنطقة ؛
  • - قائمة المنافذ- إضافة منافذ العرض إلى المنطقة ؛
  • --إضافة ميناء- إضافة منفذ للمنطقة ؛
  • - إزالة الميناء- إزالة المنفذ من المنطقة ؛
  • --ميناء الاستعلام- إظهار ما إذا كان المنفذ قد أضيف إلى المنطقة ؛
  • - قائمة البروتوكولات- عرض البروتوكولات المضافة إلى المنطقة ؛
  • --إضافة بروتوكول- إضافة بروتوكول إلى المنطقة ؛
  • - إزالة البروتوكول- إزالة البروتوكول من المنطقة ؛
  • - قائمة المصدر المنافذ- عرض منافذ المصدر المضافة إلى المنطقة ؛
  • --إضافة المصدر المنفذ- إضافة منفذ المصدر إلى المنطقة ؛
  • - إزالة المصدر المنفذ- إزالة منفذ المصدر من المنطقة ؛
  • - قائمة كتل icmp- عرض قائمة أقفال icmp ؛
  • --إضافة- ICMP- بلوك- إضافة حظر ICMP ؛
  • --إضافة- ICMP- بلوك- إزالة حظر ICMP ؛
  • --إضافة إلى الأمام منفذ- إضافة منفذ لإعادة التوجيه إلى NAT ؛
  • - إزالة إلى الأمام الميناء- إزالة المنفذ لإعادة توجيه NAT ؛
  • - إضافة حفلة تنكرية- تمكين NAT ؛
  • - تنكر-تنكر- إزالة NAT.

هذه ليست كل خيارات الأداة المساعدة ، لكنها ستكون كافية لهذه المقالة.

تكوين جدار الحماية على CentOS 7

1. حالة جدار الحماية

تتمثل الخطوة الأولى في إلقاء نظرة على حالة جدار الحماية. للقيام بذلك ، قم بتشغيل:

sudo systemctl حالة جدار الحماية

إذا تم تعطيل خدمة جدار الحماية ، فأنت بحاجة إلى تمكينها:

بدء جدار الحماية sudo systemctl
sudo systemctl تمكين جدار الحماية

أنت الآن بحاجة إلى معرفة ما إذا كان جدار الحماية يعمل باستخدام الأمر firewall-cmd:

sudo firewall-cmd --state

إذا كان البرنامج يعمل وكان كل شيء على ما يرام ، فستتلقى الرسالة "قيد التشغيل".

2. إدارة المنطقة

كما فهمت بالفعل ، المناطق هي الأداة الرئيسية للإدارة اتصالات الشبكة... لعرض المنطقة الافتراضية ، قم بتشغيل:

sudo firewall-cmd --get-default-zone

في حالتي ، هذه هي المنطقة العامة. يمكنك تغيير المنطقة الحالية باستخدام خيار ضبط المنطقة الافتراضية:

sudo firewall-cmd --set-default-zone = public

لمعرفة المناطق المستخدمة لجميع واجهات الشبكة ، قم بتشغيل:

sudo firewall-cmd --get-active-المناطق

ستعرض القائمة المناطق والواجهات التي تم تعيينها لها. باستخدام هذا الأمر ، يمكنك عرض التكوين لمنطقة معينة. على سبيل المثال ، بالنسبة للمنطقة العامة:

3. تكوين الخدمات

يمكنك عرض جميع الخدمات المحددة مسبقًا باستخدام الأمر:

sudo firewall-cmd --get-services

سيقوم الأمر بسرد جميع الخدمات المتاحة ، يمكنك إضافة أي منها إلى المنطقة لتمكينها. على سبيل المثال ، لنسمح بالاتصال بـ http:

sudo firewall-cmd --zone = public --add-service = http --permanent

ولإزالة هذه الخدمة ، قم بتشغيل:

sudo firewall-cmd --zone = عام - إزالة الخدمة = http - دائم

في كلتا الحالتين ، استخدمنا الخيار الدائم بحيث يستمر التكوين عبر إعادة التشغيل. بعد التغييرات ، تحتاج إلى تحديث القواعد:

sudo firewall-cmd - إعادة تحميل

بعد ذلك ، إذا نظرت إلى تكوين المنطقة ، فستظهر الخدمة المضافة هناك:

sudo firewall-cmd --zone = public --list-all

4. كيفية فتح منفذ في جدار الحماية

إذا لم تكن هناك خدمة للبرنامج الذي تحتاجه ، يمكنك فتح المنفذ يدويًا. للقيام بذلك ، ما عليك سوى إضافة المنفذ المطلوب إلى المنطقة. على سبيل المثال المنفذ 8083:

sudo firewall-cmd --zone = public --add-port = 8083 / tcp - دائم

لإزالة هذا المنفذ من المنطقة ، قم بتشغيل:

sudo firewall-cmd --zone = public - remove-port = 8083 / tcp - دائم

على غرار الخدمات ، لفتح منفذ في جدار الحماية centos 7 ، تحتاج إلى إعادة تشغيل جدار الحماية.

sudo firewall-cmd - إعادة تحميل

5. إعادة توجيه منفذ جدار الحماية

يعد تكوين إعادة توجيه المنفذ في جدار الحماية أسهل بكثير من تكوينه في iptables. إذا كنت بحاجة ، على سبيل المثال ، إلى إعادة توجيه حركة المرور من المنفذ 2223 إلى المنفذ 22 ، فما عليك سوى إضافة إعادة توجيه إلى المنطقة:

sudo firewall-cmd --zone = public --add-forward-port = المنفذ = 2223: proto = tcp: toport = 22

هنا ، تتم إعادة التوجيه فقط على الجهاز الحالي. إذا كنت ترغب في إعداد شبكة NAT وإعادة توجيه منفذ إلى جهاز آخر ، فأنت بحاجة إلى تمكين دعم التنكر أولاً:

sudo firewall-cmd --zone = public --add-masquerade

ثم يمكنك إضافة المنفذ:

sudo firewall-cmd --zone = publiс --add-forward-port = المنفذ = 2223: proto = tcp: toport = 22: toaddr = 192.168.56.4

6. قواعد متقدمة

إذا كانت وظائف المناطق غير كافية بالنسبة لك ، فيمكنك استخدام القواعد المتقدمة. الصيغة العامة للقواعد الموسعة هي:

عائلة القاعدة = إجراء تدقيق لقيمة المصدر لقيمة المصدر "العائلة"

فيما يلي معنى المعلمات الرئيسية:

  • كما عائلات البروتوكوليمكنك تحديد ipv4 أو ipv6 أو عدم القيام بأي شيء ، ثم تنطبق القاعدة على كلا البروتوكولين ؛
  • مصدرو وجهةهو المرسل والمستقبل للحزمة. حيث يمكن استخدام هذه المعلمات عنوان IP واسم الخدمة والمنفذ والبروتوكول وما إلى ذلك ؛
  • سجل- يسمح لك بتسجيل مرور الحزم ، على سبيل المثال ، إلى سجل النظام. في هذا الإعداد ، يمكنك تحديد بادئة سطر السجل ومستوى الإسهاب في السجل ؛
  • تدقيقهي طريقة بديلة للتسجيل عندما يتم إرسال الرسائل إلى خدمة التدقيق.
  • عملهو الإجراء الذي سيتم اتخاذه على الحزمة المتطابقة. متاح: قبول ، إسقاط ، رفض ، وضع علامة.

دعنا نلقي نظرة على بعض الأمثلة. نحتاج إلى حظر الوصول إلى الخادم للمستخدم مع IP 135.152.53.5:

sudo firewall-cmd --zone = public --add-rich-rule "عائلة القاعدة = عنوان المصدر" ipv4 "= 135.152.53.5 رفض"

أو نحتاج إلى رفض الوصول إلى المنفذ 22 فقط لنفس المستخدم:

sudo firewall-cmd --zone = public --add-rich-rule "عائلة القاعدة = عنوان المصدر" ipv4 "= 135.152.53.5 منفذ المنفذ = 22 بروتوكول = رفض برنامج التعاون الفني"

يمكنك عرض جميع القواعد المتقدمة باستخدام الأمر:

sudo firewall-cmd - قائمة-غنية-القواعد

الاستنتاجات

في هذه المقالة ، ناقشنا كيفية تنفيذ تكوين جدار الحماية في CentOS 7 وما هي المهام التي يمكن تنفيذها باستخدامه. البرنامج أسهل بكثير في الاستخدام من iptables ، ولكن في رأيي فإن إضافة جدار حماية Ubuntu أسهل في الاستخدام.

مثبتة في نظام التشغيليتم استخدام جدار الحماية لمنع حركة المرور غير المصرح بها من المرور بين شبكات الكمبيوتر. يتم إنشاء قواعد خاصة لجدار الحماية يدويًا أو تلقائيًا ، وهي مسؤولة عن التحكم في الوصول. نظام التشغيل الذي تم تطويره على نواة Linux ، يحتوي CentOS 7 على جدار حماية مدمج ويتم التحكم فيه بواسطة جدار حماية. يتم تمكين FirewallD افتراضيًا ، ونود التحدث عن تكوينه اليوم.

كما ذكرنا أعلاه ، فإن جدار الحماية هو جدار الحماية الافتراضي في CentOS 7. لهذا السبب ستتم مناقشة إعداد جدار حماية باستخدام هذه الأداة كمثال. يمكنك تعيين قواعد التصفية باستخدام نفس iptables ، ولكن يتم ذلك بطريقة مختلفة قليلاً. نوصي بأن تتعرف على تكوين الأداة المساعدة المذكورة بالنقر فوق الارتباط التالي ، وسنبدأ في تحليل جدار الحماية FirewallD.

مفاهيم جدار الحماية الأساسية

هناك عدة مناطق - مجموعات من القواعد للتحكم في حركة المرور على أساس الثقة في الشبكات. تم تعيين سياساتهم الخاصة لكل منهم ، والتي تشكل مجموعة منها تكوين جدار الحماية. يتم تعيين واجهة شبكة واحدة أو أكثر لكل منطقة ، مما يسمح لك أيضًا بضبط التصفية. تعتمد القواعد المطبقة بشكل مباشر على الواجهة المستخدمة. على سبيل المثال ، عند الاتصال بشبكة Wi-Fi عامة جدار الحمايةسيزيد من مستوى التحكم ، وفي الشبكة المنزلية سيفتح وصولًا إضافيًا للمشاركين في السلسلة. يحتوي جدار الحماية المدروس على المناطق التالية:

  • موثوق به - أقصى مستوى من الثقة لجميع أجهزة الشبكة ؛
  • المنزل - مجموعة الشبكة المحلية. هناك ثقة في البيئة ، ولكن الاتصالات الواردة متاحة فقط لأجهزة معينة ؛
  • العمل - منطقة العمل. هناك ثقة في معظم الأجهزة ، ويتم تنشيط خدمات إضافية ؛
  • dmz - زون لأجهزة الكمبيوتر المعزولة. يتم فصل هذه الأجهزة عن بقية الشبكة وتسمح فقط ببعضها حركة المرور الواردة;
  • داخلي - منطقة الشبكات الداخلية. يتم تطبيق الثقة على جميع الأجهزة ، ويتم فتح خدمات إضافية ؛
  • خارجي - عكس المنطقة السابقة. على الشبكات الخارجية ، يكون تنكر NAT نشطًا ، ويغطي الشبكة الداخلية ولكن لا يحجب القدرة على الوصول ؛
  • عام - منطقة من الشبكات العامة مع عدم الثقة في جميع الأجهزة والاستقبال الفردي لحركة المرور الواردة ؛
  • حظر - يتم تجاهل جميع الطلبات الواردة ويتم إرسال خطأ مضيف icmp محظورأو icmp6- ADM- محظور;
  • انخفاض - الحد الأدنى من الثقة. يتم إسقاط الاتصالات الواردة دون أي إشعار.

السياسيون أنفسهم مؤقتون ودائمون. عندما تظهر المعلمات أو يتم تحريرها ، يتغير إجراء جدار الحماية على الفور دون الحاجة إلى إعادة التشغيل. إذا تم تطبيق القواعد المؤقتة ، فسيتم إعادة تعيينها بعد إعادة تشغيل جدار الحماية. هذا ما يسمى بالقاعدة الدائمة - سيتم حفظها بشكل دائم عند تطبيق الوسيطة الدائمة.

تمكين جدار الحماية د

تحتاج أولاً إلى بدء FirewallD أو التأكد من أنه نشط. فقط برنامج خفي فعال (برنامج قيد التشغيل معرفتي) ستطبق قواعد جدار الحماية. يتم التنشيط حرفياً ببضع نقرات:

  1. تشغيل كلاسيكي "صالة"بأي طريقة مناسبة ، على سبيل المثال ، من خلال القائمة "التطبيقات".
  2. أدخل الأمر sudo systemctl start firewalld.service واضغط على المفتاح يدخل.
  3. تتم إدارة الأداة نيابة عن المستخدم المتميز ، لذلك سيتعين عليك تأكيد هويتك عن طريق تحديد كلمة مرور.
  4. للتحقق من عمل الخدمة ، حدد firewall-cmd --state.
  5. أعد المصادقة في نافذة الرسوم التي تفتح.
  6. سيتم عرض سطر جديد. المعنى "ادارة"يشير إلى أن جدار الحماية يعمل.

إذا احتجت يومًا ما إلى تعطيل جدار الحماية بشكل مؤقت أو دائم ، فننصحك باستخدام الإرشادات الواردة في مقالتنا الأخرى على الرابط التالي.

عرض القواعد الافتراضية والمناطق المتاحة

حتى جدار الحماية الذي يعمل بشكل طبيعي له قواعده الخاصة ومناطقه المتاحة. قبل البدء في تحرير السياسات ، نوصي بالتعرف على التكوين الحالي. يتم ذلك باستخدام أوامر بسيطة:

  1. سيساعدك الأمر firewall-cmd --get-default-zone على تحديد المنطقة الافتراضية.
  2. بعد تنشيطه ، سترى سطرًا جديدًا حيث سيتم عرض المعلمة المطلوبة. على سبيل المثال ، في لقطة الشاشة أدناه ، المنطقة النشطة هي "عام".
  3. ومع ذلك ، يمكن أن تكون عدة مناطق نشطة في وقت واحد ، علاوة على ذلك ، فهي مرتبطة بواجهة منفصلة. تعرف على هذه المعلومات عبر firewall-cmd --get-active-zone.
  4. سيعرض الأمر firewall-cmd --list-all القواعد الافتراضية للمنطقة. الق نظرة على لقطة الشاشة أدناه. ترى أن المنطقة النشطة "عام"القاعدة المعينة "تقصير"- العملية الافتراضية ، الواجهة "Enp0s3"وأضاف خدمتين.
  5. إذا كنت بحاجة إلى معرفة جميع مناطق جدار الحماية المتاحة ، فأدخل جدار الحماية firewall-cmd --get-zone.
  6. يتم تحديد معلمات منطقة معينة من خلال جدار الحماية- cmd --zone = name --list-all ، حيث اسم- اسم المنطقة.

بعد تحديد المعلمات الضرورية ، يمكنك المتابعة لتغييرها وإضافتها. دعنا نلقي نظرة فاحصة على بعض التكوينات الأكثر شيوعًا.

تكوين مناطق الواجهة

كما تعلم من المعلومات الواردة أعلاه ، كل واجهة لها منطقتها الافتراضية. سيبقى فيه حتى يتم تغيير الإعدادات بواسطة المستخدم أو برمجيًا. يمكن النقل اليدوي للواجهة إلى المنطقة لجلسة واحدة ، ويتم تنفيذه عن طريق تنشيط الأمر sudo firewall-cmd --zone = home --change-interface = eth0. نتيجة "النجاح"يشير إلى أن النقل كان ناجحًا. تذكر أنه تتم إعادة تعيين هذه الإعدادات فور إعادة تشغيل جدار الحماية.

مع مثل هذا التغيير في المعلمات ، يجب أن يؤخذ في الاعتبار أنه يمكن إعادة ضبط عمل الخدمات. بعضها لا يدعم العمل في مناطق معينة ، على سبيل المثال ، SSH متاح في "الصفحة الرئيسية"ولكن في العادة أو الخاصة ، سترفض الخدمة العمل. يمكنك التحقق من أن الواجهة قد تم ربطها بنجاح بالفرع الجديد عن طريق إدخال firewall-cmd --get-active-zone.

إذا كنت ترغب في إعادة تعيين الإعدادات التي أجريتها مسبقًا ، فما عليك سوى إعادة تشغيل جدار الحماية: sudo systemctl أعد تشغيل جدار الحماية.

في بعض الأحيان ، ليس من الملائم دائمًا تغيير منطقة الواجهة لجلسة واحدة فقط. في هذه الحالة ، ستحتاج إلى تحرير ملف التكوين بحيث يتم إدخال جميع الإعدادات بشكل دائم. لهذا نوصي باستخدام محرر نصوص نانوالذي تم تثبيته من المستودع الرسمي sudo yum install nano. ثم يبقى القيام بالإجراءات التالية:

  1. افتح ملف التكوين من خلال محرر عن طريق إدخال sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0 ، حيث eth0- اسم الواجهة المطلوبة.
  2. تأكد من صحة الحساب لمزيد من الخطوات.
  3. ابحث عن المعلمة "منطقة"وتغيير قيمته إلى ما تريده ، على سبيل المثال ، عام أو منزلي.
  4. امسك المفاتيح السيطرة + Oلحفظ التغييرات الخاصة بك.
  5. لا تغير اسم الملف ، فقط اضغط على يدخل.
  6. اخرج من محرر النصعير السيطرة + X.

الآن ستكون منطقة الواجهة كما حددتها ، حتى التحرير التالي لملف التكوين. لتفعيل الإعدادات المحدثة ، قم بتشغيل sudo systemctl ، وأعد تشغيل network.service و sudo systemctl ، وأعد تشغيل جدار الحماية firewalld.service.

تحديد المنطقة الافتراضية

أعلاه ، لقد أظهرنا بالفعل أمرًا يسمح لك بمعرفة المنطقة الافتراضية. يمكن أيضًا تغييره عن طريق تعيين معلمة من اختيارك. للقيام بذلك ، في وحدة التحكم ، ما عليك سوى كتابة sudo firewall-cmd --set-default-zone = name ، حيث اسم- اسم المنطقة المطلوبة.

سيشير النقش إلى نجاح الأمر "النجاح"على سطر منفصل. بعد ذلك ، سيتم ربط جميع الواجهات الحالية بالمنطقة المحددة ، إذا لم يتم تحديد أخرى في ملفات التكوين.

وضع قواعد للبرامج والمرافق

في بداية المقال ، تحدثنا عن عمل كل منطقة. سيسمح لك تعريف الخدمات والمرافق والبرامج في هذه الفروع بالتقدم لكل منها بمعلمات فردية لطلبات كل مستخدم. للبدء ، نوصيك بالتعرف على القائمة الكاملة للخدمات المتاحة حاليًا: جدار الحماية- cmd --get-services.

سيتم عرض النتيجة مباشرة في وحدة التحكم. يتم فصل كل خادم بمسافة ، وفي القائمة يمكنك بسهولة العثور على الأداة التي تهتم بها. في حالة عدم توفر الخدمة المطلوبة ، يجب تثبيتها بشكل إضافي. اقرأ عن قواعد التثبيت في وثائق البرنامج الرسمية.

يعرض الأمر أعلاه أسماء الخدمات فقط. يتم الحصول على معلومات مفصلة عن كل منها من خلال ملف فردي يقع تحت المسار / usr / lib / firewalld / services. هذه المستندات بتنسيق XML ، المسار ، على سبيل المثال ، إلى SSH يبدو كالتالي: /usr/lib/firewalld/services/ssh.xml ، ويحتوي المستند على المحتوى التالي:

SSH
Secure Shell (SSH) هو بروتوكول لتسجيل الدخول وتنفيذ الأوامر على الأجهزة البعيدة. يوفر اتصالات آمنة ومشفرة. إذا كنت تخطط للوصول إلى جهازك عن بُعد عبر SSH عبر واجهة بجدار ناري ، فقم بتمكين هذا الخيار. أنت بحاجة إلى تثبيت حزمة opensh-server لكي يكون هذا الخيار مفيدًا.

يتم تنشيط دعم الخدمة يدويًا في منطقة معينة. الخامس "صالة"الأمر sudo firewall-cmd --zone = public --add-service = http ، أين - المنطقة = عام- منطقة للتفعيل ، و - خدمة إضافة = http- اسم الخدمة. يرجى ملاحظة أن مثل هذا التغيير لن يكون صالحًا إلا خلال جلسة واحدة.

تتم الإضافة الدائمة عبر sudo firewall-cmd --zone = public --permanent --add-service = http والنتيجة "النجاح"يشير إلى اكتمال العملية بنجاح.

يمكنك عرض القائمة الكاملة للقواعد الدائمة لمنطقة معينة من خلال عرض القائمة على سطر منفصل في وحدة التحكم: sudo firewall-cmd --zone = public --permanent --list-services.

حل مشكلة عدم الوصول للخدمة

بشكل افتراضي ، تشير قواعد جدار الحماية إلى الخدمات الأكثر شيوعًا وأمانًا على النحو المسموح به ، لكنها تحظر بعض التطبيقات القياسية أو تطبيقات الجهات الخارجية. في هذه الحالة ، سيحتاج المستخدم إلى تغيير الإعدادات يدويًا لحل مشكلة الوصول. يمكن القيام بذلك بطريقتين مختلفتين.

ميناء الشحن

كما تعلم ، تستخدم جميع خدمات الشبكة منفذًا محددًا. يمكن اكتشافه بسهولة بواسطة جدار الحماية ، ويمكن إجراء أقفال عليه. لتجنب مثل هذه الإجراءات من جانب جدار الحماية ، تحتاج إلى فتح المنفذ المطلوب باستخدام الأمر sudo firewall-cmd --zone = public --add-port = 0000 / tcp ، حيث - المنطقة = عام- منطقة الميناء، - منفذ إضافة = 0000 / tcp- رقم المنفذ والبروتوكول. سيعرض جدار الحماية - cmd --list-port قائمة بالمنافذ المفتوحة.

إذا كنت بحاجة إلى فتح المنافذ الموجودة في النطاق ، فاستخدم سطر sudo firewall-cmd --zone = public --add-port = 0000-9999 / udp ، حيث - منفذ إضافة = 0000-9999 / udp- مجموعة من المنافذ والبروتوكول الخاص بها.

ستسمح لك الأوامر المذكورة أعلاه فقط باختبار تطبيق هذه المعلمات. إذا كان ناجحًا ، يجب عليك إضافة نفس المنافذ إلى الإعدادات الدائمة ، ويتم ذلك عن طريق إدخال sudo firewall-cmd --zone = public --permanent --add-port = 0000 / tcp أو sudo firewall-cmd - المنطقة = عام - دائم - منفذ إضافة = 0000-9999 / udp. يتم عرض قائمة المنافذ الدائمة المفتوحة على النحو التالي: sudo firewall-cmd --zone = public --permanent --list-port.

تعريف الخدمة

كما ترى ، فإن إضافة المنافذ أمر بسيط ، لكن الإجراء يصبح أكثر تعقيدًا عند استخدام عدد كبير من التطبيقات. يصبح من الصعب تتبع جميع المنافذ المستخدمة ، ولهذا سيكون من الأصح تحديد خدمة:


عليك فقط اختيار الطريقة الأنسب لحل مشكلة الوصول إلى الخدمة واتباع التعليمات المقدمة. كما ترى ، جميع الإجراءات سهلة بما فيه الكفاية ، ولا ينبغي أن تنشأ أي صعوبات.

إنشاء مناطق مخصصة

أنت تعلم بالفعل أن FirewallD في البداية أنشأ عددًا كبيرًا من المناطق المختلفة بقواعد معينة. ومع ذلك ، هناك حالات عندما مدير النظامتريد إنشاء منطقة مخصصة ، مثل "Publicweb"لخادم ويب مثبت ، أو "PrivateDNS"- لخادم DNS. باستخدام هذين المثالين ، سنقوم بتحليل إضافة الفروع:


في هذه المقالة ، تعلمت كيفية إنشاء مناطق مخصصة وإضافة خدمات إليها. لقد تحدثنا بالفعل عن تعيينها افتراضيًا وتعيين واجهات ، ما عليك سوى تحديد الأسماء الصحيحة. تذكر إعادة تشغيل جدار الحماية بعد إجراء أية تغييرات دائمة.

كما ترى ، يعد جدار الحماية FirewallD أداة ضخمة إلى حد ما تسمح لك بعمل تكوين جدار الحماية الأكثر مرونة. الشيء الوحيد المتبقي هو التأكد من تشغيل الأداة المساعدة مع النظام وأن القواعد المحددة تبدأ في العمل على الفور. افعل ذلك باستخدام الأمر sudo systemctl enable firewalld.

FirewallD هي أداة لإدارة جدار الحماية متوفرة بشكل افتراضي على خوادم CentOS 7. وهي في الأساس عبارة عن غلاف حول IPTables وتأتي مع أداة تكوين جدار حماية رسومية و سطر الأوامرجدار الحماية كمد. باستخدام خدمة IPtables ، يتطلب كل تغيير إزالة القواعد القديمة وإنشاء قواعد جديدة في ملف / etc / sysconfig / iptables"بينما جدار الحماية يطبق الاختلافات فقط.

مناطق جدار الحماية د

يستخدم جدار الحماية FirewallD الخدمات والمناطق بدلاً من القواعد والسلاسل في iptables. المناطق التالية متاحة بشكل افتراضي:

  • قطرة- إسقاط جميع حزم الشبكة الواردة بدون استجابة ، الصادرة فقط اتصالات الشبكةمتوفرة.
  • منع- رفض جميع حزم الشبكة الواردة مع الرسالة icmp-host-محظور ، فقط اتصالات الشبكة الصادرة متاحة.
  • عام- يتم قبول الاتصالات الواردة المحددة فقط ، للاستخدام في الأماكن العامة
  • خارجي- بالنسبة للشبكات الخارجية ذات التنكر ، يتم قبول الاتصالات الواردة المختارة فقط.
  • dmz- منطقة منزوعة السلاح منزوعة السلاح ، يمكن للجمهور الوصول إليها من وصول محدودإلى الشبكة الداخلية ، يتم قبول الاتصالات الواردة المحددة فقط.
  • الشغل
  • الصفحة الرئيسية- بالنسبة لأجهزة الكمبيوتر الموجودة في المنطقة الرئيسية ، يتم قبول الاتصالات الواردة المحددة فقط.
  • داخلي- بالنسبة لأجهزة الكمبيوتر الموجودة على شبكتك الداخلية ، يتم قبول الاتصالات الواردة المحددة فقط.
  • موثوق به- يتم قبول جميع اتصالات الشبكة.

للحصول على قائمة بجميع المناطق المتاحة:

# firewall-cmd --get-areas عمل إسقاط داخلي خارجي موثوق للمنزل dmz public block

لعرض قائمة المناطق الافتراضية:

# firewall-cmd --get-default-zone public

لتغيير المنطقة الافتراضية:

خدمات جدار الحماية

خدمات جدار الحماية عبارة عن ملفات تكوين XML تحتوي على معلومات سجل الخدمة لجدار الحماية. للحصول على قائمة بجميع الخدمات المتاحة:

# firewall-cmd --get-services amanda-client amanda-K5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-Registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication ftp high -ability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3poxy pop3dpc proxy العميل عاقل smtp smtps snmp snmptrap الحبار ssh التآزر syslog syslog-tls telnet tftp tftp-client tinc tor-socks Transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

إعدادات ملفات XMLمخزنة في الدلائل / usr / lib / firewalld / services /و / etc / firewalld / services /.

تكوين جدار حماية باستخدام جدار الحماية د

كمثال ، إليك كيفية تكوين جدار حماية باستخدام FirewallD إذا كنت تقوم بتشغيل خادم ويب و SSH على المنفذ 7022 وخادم بريد.

أولاً ، سنقوم بإعداد المنطقة الافتراضية للمنطقة المجردة من السلاح.

# firewall-cmd --set-default-zone = dmz # firewall-cmd --get-default-zone dmz

لإضافة قواعد خدمة ثابتة لـ HTTP و HTTPS في DMZ ، قم بتشغيل الأمر التالي:

# firewall-cmd --zone = dmz --add-service = http --permanent # firewall-cmd --zone = dmz --add-service = https --permanent

افتح المنفذ 25 (SMTP) والمنفذ 465 (SMTPS):

جدار الحماية - cmd --zone = dmz --add-service = smtp - جدار الحماية الدائم-cmd --zone = dmz --add-service = smtps - دائم

فتح منافذ IMAP و IMAPS و POP3 و POP3S:

جدار الحماية - cmd --zone = dmz --add-service = imap - جدار الحماية الدائم - cmd --zone = dmz --add-service = الصور - جدار الحماية الدائم - cmd --zone = dmz --add-service = pop3 - جدار الحماية الدائم - cmd --zone = dmz --add-service = pop3s - دائم

منذ أن تم تغيير منفذ SSH إلى 7022 ، سنزيل خدمة SSH (المنفذ 22) ونفتح المنفذ 7022

جدار الحماية - cmd - خدمة إزالة = ssh - جدار حماية دائم - cmd - منفذ إضافة = 7022 / برنامج التعاون الفني - دائم

لتنفيذ التغييرات ، نحتاج إلى إعادة تحميل جدار الحماية:

جدار الحماية- cmd - إعادة تحميل

أخيرًا ، يمكنك سرد القواعد.

المناطق

يدير البرنامج الخفي لجدار الحماية مجموعات من القواعد باستخدام ما يسمى بالمناطق.

المناطق هي في الأساس مجموعات من القواعد التي تحكم حركة المرور بناءً على مستوى الثقة في شبكة معينة. يتم تعيين المناطق لواجهات الشبكة والتحكم في سلوك جدار الحماية.

يمكن لأجهزة الكمبيوتر التي تتصل غالبًا بشبكات مختلفة (على سبيل المثال ، أجهزة الكمبيوتر المحمولة) استخدام المناطق لتغيير مجموعات القواعد الخاصة بها بناءً على بيئتها. على سبيل المثال ، عند الاتصال بجمهور شبكات WiFiيمكن لجدار الحماية فرض قواعد أكثر صرامة وتخفيف القيود على الشبكة المنزلية.

توجد المناطق التالية في جدار الحماية:

  • انخفاض: أدنى مستوى ثقة في الشبكة. يتم إسقاط جميع حركات المرور الواردة دون استجابة ، ويتم دعم الاتصالات الصادرة فقط.
  • block: تشبه هذه المنطقة المنطقة السابقة ، ولكن يتم تجاهل الطلبات الواردة بالرسالة icmp-host-block أو icmp6-adm-block.
  • عام: تمثل هذه المنطقة شبكة عامة لا يمكن الوثوق بها ، لكنها تتعامل مع الاتصالات الواردة على أساس فردي.
  • خارجي: منطقة الشبكات الخارجية. يدعم إخفاء NAT بحيث تظل الشبكة الداخلية مغلقة ولكن لا يزال من الممكن الوصول إليها.
  • داخلي: الجهة الخلفية للمنطقة الخارجية ، الشبكات الداخلية. يمكن الوثوق بأجهزة الكمبيوتر في هذه المنطقة. الخدمات الإضافية المتاحة.
  • dmz: يستخدم لأجهزة الكمبيوتر الموجودة في DMZ (أجهزة كمبيوتر معزولة لا يمكنها الوصول إلى بقية الشبكة) ؛ يدعم فقط بعض الاتصالات الواردة.
  • العمل: منطقة شبكة العمل. يمكن الوثوق بمعظم الأجهزة الموجودة على الشبكة. الخدمات الإضافية المتاحة.
  • المنزل: منطقة الشبكة المنزلية. يمكن الوثوق بالبيئة ، ولكن يتم دعم الاتصالات الواردة التي يحددها المستخدم فقط.
  • موثوق به: يمكن الوثوق بجميع الأجهزة الموجودة على الشبكة.

قواعد الادخار

قواعد جدار الحماية دائمة ومؤقتة. إذا ظهرت أي قاعدة أو تغيرت في المجموعة ، يتغير سلوك جدار الحماية الحالي على الفور. ومع ذلك ، بعد إعادة التشغيل ، ستفقد جميع التغييرات إذا لم يتم حفظها.

يمكن لمعظم أوامر جدار الحماية cmd استخدام العلامة --permentent ، والتي ستحفظ القاعدة ثم تستخدمها بشكل دائم.

تمكين جدار حماية جدار الحماية د

تحتاج أولاً إلى تمكين البرنامج الخفي. يسمى ملف وحدة systemd firewalld.service. لبدء البرنامج الخفي ، أدخل.

يبدأ sudo systemctl firewalld.service

تأكد من تشغيل الخدمة:

جدار الحماية- cmd - الحالة
ادارة

يتم الآن تشغيل جدار الحماية وفقًا للتكوين الافتراضي.

في الوقت الحالي ، تم تمكين الخدمة ، لكنها لن تبدأ تلقائيًا مع الخادم. لتجنب حظر نفسك عن طريق الخطأ على الخادم الخاص بك ، قم أولاً بإنشاء مجموعة من القواعد ثم قم بتكوين التشغيل التلقائي.

قواعد جدار الحماية الافتراضية

عرض القواعد الافتراضية

لمعرفة المنطقة المستخدمة افتراضيًا ، أدخل:

جدار الحماية cmd --get-default-zone
عام

في الوقت الحالي ، لم يتلق جدار الحماية أي تعليمات بخصوص المناطق الأخرى ، بالإضافة إلى أنه لا توجد واجهة مرتبطة بمناطق أخرى ، لذا فإن المنطقة العامة الآن هي المنطقة الافتراضية وأيضًا المنطقة النشطة الوحيدة.

للحصول على قائمة بالنقاط الفعالة ، أدخل:


عام
الواجهات: eth0 eth1

هناك نوعان من واجهات الشبكة المرتبطة بالمنطقة العامة: eth0 و eth1. تعمل الواجهات المرتبطة بمنطقة ما وفقًا لقواعد تلك المنطقة.

لمعرفة القواعد التي تستخدمها المنطقة افتراضيًا ، أدخل:

جدار الحماية- cmd - قائمة الكل
عام (افتراضي ، نشط)
الواجهات: eth0 eth1
مصادر:
الخدمات: dhcpv6-client ssh
الموانئ:
حفلة تنكرية: لا
المنافذ الأمامية:
كتل icmp:
قواعد غنية:

والآن أنت تعرف أن:

  • public هي المنطقة الافتراضية والمنطقة النشطة الوحيدة.
  • ترتبط واجهات eth0 و eth1 به.
  • وهو يدعم حركة مرور DHCP (تعيين عنوان IP) و SSH (الإدارة عن بُعد).

مناطق جدار الحماية الأخرى

الآن يجب أن تتعرف على المناطق الأخرى.

للحصول على قائمة بجميع المناطق المتاحة ، أدخل:

جدار الحماية - cmd - مناطق النطاقات

للحصول على الإعدادات الخاصة بمنطقة معينة ، أضف -zone = flag إلى الأمر.

firewall-cmd --zone = home - list-all. جدار الحماية - cmd --zone = home - list-all
الصفحة الرئيسية
واجهات:
مصادر:
الخدمات: dhcpv6-client ipp-client mdns samba-client ssh
الموانئ:
حفلة تنكرية: لا
المنافذ الأمامية:
كتل icmp:
قواعد غنية:

لسرد تعريفات جميع المناطق المتاحة ، أضف خيار قائمة - جميع المناطق. لعرض أكثر ملاءمة ، يمكن إرسال الإخراج إلى جهاز النداء:

جدار الحماية cmd - قائمة جميع المناطق | أقل

تكوين مناطق الواجهة

في البداية ، تكون جميع واجهات الشبكة مرتبطة بالمنطقة الافتراضية.

تغيير منطقة الواجهة لجلسة واحدة

لنقل واجهة إلى منطقة مختلفة لجلسة واحدة ، استخدم -zone = و —change-interface = options.

على سبيل المثال ، لإحضار eth0 إلى منطقة المنزل ، اكتب:

sudo firewall-cmd --zone = الصفحة الرئيسية - واجهة التغيير = eth0
النجاح

ملحوظة: عند نقل الواجهة إلى منطقة أخرى ، يجب أن تأخذ في الاعتبار أن ذلك قد يؤثر على تشغيل بعض الخدمات. على سبيل المثال ، تدعم المنطقة الرئيسية SSH ، لذلك لن يتم إسقاط الاتصالات من هذه الخدمة. لكن بعض المناطق تسقط جميع الاتصالات ، بما في ذلك SSH ، وبعد ذلك يمكنك بطريق الخطأ منع نفسك من الوصول إلى الخادم الخاص بك.

للتأكد من ارتباط الواجهة بالمنطقة الجديدة ، أدخل:

جدار الحماية cmd - مناطق النشط
الصفحة الرئيسية
الواجهات: eth0
عام
الواجهات: eth1

بعد إعادة تشغيل جدار الحماية ، ستعود الواجهة الارتباط بالمنطقة الافتراضية.

sudo systemctl إعادة تشغيل جدار الحماية
جدار الحماية cmd - مناطق النشط
عام
الواجهات: eth0 eth1

تغيير منطقة الواجهة بشكل دائم

إذا لم يتم تحديد منطقة أخرى في إعدادات الواجهة ، فبعد إعادة تشغيل جدار الحماية ، ستتم إعادة ربط الواجهة بالمنطقة الافتراضية. في CentOS ، يتم تخزين هذه التكوينات في الدليل / etc / sysconfig / network-scripts ، في ملفات بتنسيق ifcfg-interface.

لتحديد منطقة للواجهة ، افتح ملف التكوين لتلك الواجهة ، على سبيل المثال:

أضف المتغير ZONE = إلى نهاية الملف وحدد منطقة أخرى كقيمة ، على سبيل المثال ، home:

. . .
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
المنطقة = المنزل

أحفظ وأغلق الملف.

لتحديث الإعدادات ، أعد تشغيل خدمة الشبكة وجدار الحماية:

sudo systemctl إعادة تشغيل network.service
sudo systemctl إعادة تشغيل جدار الحماية

بعد إعادة التشغيل ، سوف تلتزم eth0 بالمنطقة الأصلية.

جدار الحماية cmd - مناطق النشط
الصفحة الرئيسية
الواجهات: eth0
عام
الواجهات: eth1

تحديد المنطقة الافتراضية

يمكنك أيضًا اختيار منطقة افتراضية مختلفة.

لهذا ، يتم استخدام المعلمة –set-default-zone =. بعد ذلك ، سيتم ربط جميع الواجهات بمنطقة أخرى:

sudo firewall-cmd --set-default-zone = home
الصفحة الرئيسية
الواجهات: eth0 eth1

إنشاء قواعد للتطبيقات

إضافة خدمة إلى منطقة

أسهل طريقة هي إضافة خدمة أو منفذ إلى المنطقة التي يستخدمها جدار الحماية. تصفح الخدمات المتاحة:

جدار الحماية - cmd --get-services
RH-Satellite-6 Amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client pmmp dns بروتوكول نقل الملفات عالي التوفر http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-nfsbt mysqt pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transfer-client vnc-server wbem-https

ملحوظة: يمكن العثور على مزيد من المعلومات حول كل خدمة محددة في ملفات .xml في دليل / usr / lib / firewalld / services. على سبيل المثال ، يتم تخزين المعلومات حول خدمة SSH في /usr/lib/firewalld/services/ssh.xml وتبدو كما يلي:



SSH

لتمكين دعم الخدمة في منطقة معينة ، استخدم الخيار –add-service =. يمكنك تحديد المنطقة المستهدفة باستخدام الخيار -zone =. بشكل افتراضي ، ستعمل هذه التغييرات لجلسة واحدة. لحفظ التغييرات واستخدامها بشكل دائم ، قم بإضافة —العلامة الدائمة.

على سبيل المثال ، لبدء خادم ويب لخدمة حركة مرور HTTP ، تحتاج أولاً إلى تمكين دعم حركة المرور هذه في المنطقة العامة لجلسة واحدة:

sudo firewall-cmd --zone = public --add-service = http

إذا كانت الخدمة بحاجة إلى إضافتها إلى المنطقة الافتراضية ، فيمكن حذف العلامة –zone =.

تأكد من نجاح العملية:

firewall-cmd --zone = public - list-services
dhcpv6-client http ssh

اختبر الخدمة وجدار الحماية. إذا كان كل شيء يعمل بشكل صحيح ، فيمكنك تغيير مجموعة القواعد الدائمة وإضافة قاعدة إليها لدعم هذه الخدمة.

sudo firewall-cmd --zone = عام - دائم - إضافة خدمة = http

لعرض قائمة القواعد الثابتة ، أدخل:

sudo firewall-cmd --zone = عام - دائم - قائمة الخدمات
dhcpv6-client http ssh

تدعم المنطقة العامة الآن HTTP والمنفذ 80 بشكل دائم. إذا كان خادم الويب يمكنه خدمة حركة مرور SSL / TLS ، فيمكنك أيضًا إضافة خدمة https (لجلسة واحدة أو في مجموعة من القواعد الثابتة):

sudo firewall-cmd --zone = public --add-service = https
sudo firewall-cmd --zone = عام - دائم - إضافة خدمة = https

ماذا لو كانت الخدمة التي تريدها غير متوفرة؟

يشتمل جدار حماية جدار الحماية على العديد من الخدمات الأكثر شيوعًا افتراضيًا. ومع ذلك ، تتطلب بعض التطبيقات خدمات لا يدعمها جدار الحماية. في هذه الحالة ، يمكنك فعل شيئين.

الطريقة الأولى: إعداد المنفذ

أسهل طريقة للقيام بذلك هي فتح منفذ تطبيق في المنطقة المطلوبة لجدار الحماية. تحتاج فقط إلى تحديد المنفذ أو نطاق المنفذ والبروتوكول.

على سبيل المثال ، يجب إضافة تطبيق يستخدم المنفذ 5000 و TCP إلى المنطقة العامة. لتمكين دعم التطبيق لكل جلسة ، استخدم المعلمة –add-port = المعلمة وحدد بروتوكول tcp أو بروتوكول udp.

sudo firewall-cmd --zone = عام - إضافة منفذ = 5000 / tcp

تأكد من نجاح العملية:

جدار الحماية - cmd - قائمة المنافذ
5000 / tcp

يمكنك أيضًا تحديد نطاق منفذ تسلسلي عن طريق فصل المنفذ الأول والأخير من النطاق بشرطة. على سبيل المثال ، إذا كان التطبيق الخاص بك يستخدم منافذ UDP 4990-4999 ، لإضافتها إلى المنطقة العامة ، يمكنك إدخال:

sudo firewall-cmd --zone = public - add-port = 4990-4999 / udp

بعد الاختبار ، يمكنك إضافة هذه القواعد إلى إعدادات جدار الحماية الدائم.

sudo firewall-cmd --zone = عام - دائم - منفذ إضافي = 5000 / tcp
sudo firewall-cmd --zone = عام - دائم - منفذ إضافة = 4990-4999 / udp
sudo firewall-cmd --zone = عام - دائم - قائمة المنافذ
النجاح
النجاح
4990-4999 / UDP 5000 / tcp

الطريقة 2: تحديد الخدمة

تعد إضافة المنافذ إلى المناطق أمرًا سهلاً ، ولكن إذا كان لديك الكثير من هذه التطبيقات ، فقد يكون من الصعب تتبع الغرض من منفذ معين. لتجنب هذا الموقف ، يمكنك تحديد الخدمات بدلاً من المنافذ.

الخدمات هي ببساطة مجموعات من الموانئ تحمل اسمًا ووصفًا محددين. تسهل الخدمات إدارة الإعدادات ، لكنها أكثر تعقيدًا من تلقاء نفسها من المنافذ.

أولاً ، تحتاج إلى نسخ البرنامج النصي الموجود من دليل / usr / lib / firewalld / services إلى دليل / etc / firewalld / services (حيث يبحث جدار الحماية عن الإعدادات غير القياسية).

على سبيل المثال ، يمكنك نسخ تعريف خدمة SSH واستخدامه لتعريف مثال الخدمة الشرطية. يجب أن يتطابق اسم البرنامج النصي مع اسم الخدمة وأن يكون بامتداد .xml.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

قم بتصحيح الملف المنسوخ.

sudo nano /etc/firewalld/services/example.xml

يحتوي الملف على تعريف SSH:



SSH
Secure Shell (SSH) هو بروتوكول لتسجيل الدخول وتنفيذ الأوامر على الأجهزة البعيدة. يوفر اتصالات آمنة ومشفرة. إذا كنت تخطط للوصول إلى جهازك عن بُعد عبر SSH عبر واجهة بجدار ناري ، فقم بتمكين هذا الخيار. أنت بحاجة إلى تثبيت حزمة opensh-server لكي يكون هذا الخيار مفيدًا.

معظم تعريف الخدمة عبارة عن بيانات وصفية. يمكنك تغيير الاسم المختصر للخدمة في العلامات ... هذا هو اسم الخدمة الذي يمكن قراءته. تحتاج أيضًا إلى إضافة وصف للخدمة. التغيير الوحيد الذي سيؤثر على الخدمة هو تغيير رقم المنفذ والبروتوكول.

دعنا نعود إلى خدمة المثال ؛ لنفترض أنه يطلب فتح منفذ TCP 7777 ومنفذ UDP 8888. سيبدو التعريف كما يلي:



خدمة المثال
هذه مجرد مثال للخدمة. ربما لا ينبغي استخدامه على نظام حقيقي.

أحفظ وأغلق الملف.

أعد تشغيل جدار الحماية الخاص بك:

sudo firewall-cmd - إعادة تحميل

ستظهر الخدمة الآن في قائمة الخدمات المتاحة:

جدار الحماية - cmd --get-services
RH-Satellite-6 Amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns مثال بروتوكول نقل الملفات عالي التوفر http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt nfsql pm pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transfer-client vnc-server wbem-https

إنشاء مناطق

يوفر جدار الحماية العديد من المناطق المحددة مسبقًا ، والتي تعد كافية لمعظم الأعمال. ومع ذلك ، في بعض المواقف يصبح من الضروري إنشاء منطقة مخصصة.

على سبيل المثال ، يمكنك إنشاء منطقة ويب عامة لخادم ويب ومنطقة DNS خاصة لخدمة DNS.

عند إنشاء منطقة ، تحتاج إلى إضافتها إلى الإعدادات الدائمة لجدار الحماية.

حاول إنشاء مناطق الويب العامة والخاصة:

sudo firewall-cmd - دائمًا - منطقة جديدة = publicweb
sudo firewall-cmd - دائم - منطقة جديدة = privateDNS

تأكد من وجود المناطق:

sudo firewall-cmd - دائم - مناطق جت

في الجلسة الحالية ، لن تتوفر مناطق جديدة:

جدار الحماية - cmd - مناطق النطاقات
حظر dmz إسقاط المنزل الخارجي الداخلي العام الموثوق به

للوصول إلى المناطق الجديدة ، تحتاج إلى إعادة تشغيل جدار الحماية:

sudo firewall-cmd - إعادة تحميل
جدار الحماية - cmd - مناطق النطاقات
كتلة dmz إسقاط المنزل الخارجي الداخلي الخاص العمل الموثوق به publicDNS publicweb

يمكنك الآن تخصيص الخدمات والمنافذ المطلوبة للمناطق الجديدة. على سبيل المثال ، يمكن إضافة SSH و HTTP و HTTPS إلى منطقة الويب العام.

sudo firewall-cmd --zone = publicweb --add-service = ssh
sudo firewall-cmd --zone = publicweb --add-service = http
sudo firewall-cmd --zone = publicweb --add-service = https
جدار الحماية- cmd --zone = publicweb --list-all
publicweb
واجهات:
مصادر:
الخدمات: http https ssh
الموانئ:
حفلة تنكرية: لا
المنافذ الأمامية:
كتل icmp:
قواعد غنية:

يمكنك إضافة DNS إلى منطقة privateDNS:

sudo firewall-cmd --zone = privateDNS --add-service = dns
جدار الحماية- cmd --zone = privateDNS - list-all
PrivateDNS
واجهات:
مصادر:
الخدمات: نظام أسماء النطاقات
الموانئ:
حفلة تنكرية: لا
المنافذ الأمامية:
كتل icmp:
قواعد غنية:

ثم يمكنك ربط واجهات الشبكة بمناطق جديدة:

sudo firewall-cmd --zone = publicweb - تغيير الواجهة = eth0
sudo firewall-cmd --zone = privateDNS - واجهة التغيير = eth1

الآن يمكنك اختبار الإعداد. إذا كان كل شيء يعمل بشكل صحيح ، يمكنك إضافة هذه القواعد إلى الإعدادات الدائمة.

sudo firewall-cmd --zone = publicweb - دائم - add-service = ssh
sudo firewall-cmd --zone = publicweb --permanent --add-service = http
sudo firewall-cmd --zone = publicweb --permanent --add-service = https
sudo firewall-cmd --zone = privateDNS --permanent --add-service = dns

يمكنك بعد ذلك تكوين واجهات الشبكة للاتصال تلقائيًا بالمنطقة الصحيحة.

على سبيل المثال ، سوف تلتزم eth0 بـ publicweb:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0
. . .
IPV6_AUTOCONF = لا
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
ZONE = publicweb

وستكون واجهة eth1 مرتبطة بـ privateDNS:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth1
. . .
NETMASK = 255.255.0.0
DEFROUTE = "لا"
NM_CONTROLLED = "نعم"
المنطقة = privateDNS

أعد تشغيل خدمات الشبكة وجدار الحماية:

إعادة تشغيل شبكة sudo systemctl
أعد تشغيل جدار الحماية sudo systemctl

تحقق من المناطق:

جدار الحماية cmd - مناطق النشط
PrivateDNS
الواجهات: eth1
publicweb
الواجهات: eth0

تأكد من تشغيل الخدمات الضرورية في المناطق:

جدار الحماية- cmd --zone = publicweb - قائمة الخدمات
http htpps ssh
جدار الحماية - cmd --zone = privateDNS - قائمة الخدمات
نظام أسماء النطاقات

المناطق المخصصة جاهزة تمامًا للذهاب. يمكنك جعل أي منها المنطقة الافتراضية. على سبيل المثال:

sudo firewall-cmd --set-default-zone = publicweb

بدء تشغيل جدار الحماية التلقائي

الآن بعد أن تحققت من جميع الإعدادات وتأكدت من أن جميع القواعد تعمل كما هو متوقع ، يمكنك تكوين جدار الحماية للتشغيل التلقائي.

للقيام بذلك ، أدخل:

sudo systemctl تمكين جدار الحماية

سيبدأ جدار الحماية الآن بالخادم.

استنتاج

جدار حماية جدار الحماية أداة مرنة للغاية. تسمح لك المناطق بتغيير سياسة جدار الحماية بسرعة.

الآن بعد أن تعرفت على كيفية عمل جدار الحماية ، أصبحت على دراية بالمفاهيم الأساسية لجدار الحماية ، يمكنك إنشاء مناطق مخصصة وإضافة خدمات.

العلامات: ،

سأقدم لكم اليوم رؤيتي للتكوين الأولي لخادم عالمي على نظام تشغيل مشهور. سأخبرك بكيفية عمل تكوين أساسي لخادم centos مباشرة بعد التثبيت لاستخدامه بأي سعة تريدها. ستعمل هذه النصائح العملية على تحسين أمان الخادم الخاص بك وقابليته للاستخدام. ستكون المقالة ذات صلة بالإصدارين الأخيرين من Centos - 7 و 8.

  1. ضع قائمة بإعدادات centos الأولية التي أقوم بتنفيذها على خادم تم تثبيته حديثًا.
  2. اعرض أمثلة على التكوينات التي أستخدمها في إعداد نموذجي.
  3. تقديم المشورة بشأن إعداد Centos بناءً على تجربتك مع النظام.
  4. قدم قائمة بالبرامج والأدوات المساعدة النموذجية التي تساعد في إدارة الخادم.

هذه المقالة جزء من سلسلة واحدة من المقالات حول الخادم.

مقدمة

بعد إصدار الإصدار الجديد من Centos 8 ، أصبح من الصعب وصف التكوين الأولي لكلا الخادمين في مقال واحد ، لكنني لم أرغب في فصل المقالة ، نظرًا لوجود العديد من الروابط الواردة من أماكن مختلفة إليها. من الأنسب الاحتفاظ بالمواد المشتركة في كلا الإصدارين ، وهذا ما سأفعله. في الوقت نفسه ، ستكون الاختلافات بين الإصدارين واضحة للعيان ، والتي ستكون ذات صلة بعد عامين من إصدار centos 8 وسيتعين عليك استخدام كلا الإصدارين ، اعتمادًا على الموقف.

يستخدم Centos 7 مدير الحزم يم، وفي Centos 8 - dnf... في نفس الوقت غادروا ارتباط رمزيمن yum إلى dnf ، لذا يمكنك كتابة الاسم الأول والاسم الثاني. من أجل الاتساق ، سأستخدم yum في كل مكان ، وأنا أحذرك ، فقط حتى تفهم لماذا أفعل ذلك بهذه الطريقة. في الواقع ، يتم استخدام dnf في CentOS 8 ، وهو مدير حزم مختلف وأكثر حداثة يتيح لك العمل مع إصدارات مختلفة من نفس البرنامج. لهذا ، يتم استخدام مستودعات منفصلة ظهرت لـ centos 8.

الإعداد الأولي CentOS

أنا شخصياً ، بعد التثبيت ، أبدأ بأي إعداد للنظام ، سواء أكان Centos أو غير ذلك ، عن طريق تحديث النظام بالكامل. إذا كانت صورة التثبيت حديثة ، أو تم إجراء التثبيت عبر الشبكة ، فعلى الأرجح لن تكون هناك تحديثات. غالبًا ما يتم العثور عليها لأن صور التثبيت لا يتم تحديثها دائمًا بشكل منتظم.

تحديث النظام

# تحديث يومي

لراحة الإدارة ، أقوم دائمًا بتثبيت Midnight Commander ، أو فقط MC:

# yum تثبيت mc

وعلى الفور أقوم بتشغيل تمييز بناء الجملة لجميع الملفات التي لم تتم الإشارة إليها صراحة في الملف / usr / share / mc / syntax / syntaxبناء الجملة للنصوص sh و bash. يعتبر بناء الجملة العام هذا مناسبًا لملفات التكوين الأكثر استخدامًا على الخادم. الكتابة فوق الملف غير معروف بناء الجملة... هذا هو القالب الذي سيتم تطبيقه على ملفات .conf و. cf ، نظرًا لعدم وجود بنية صريحة مرفقة بها.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

بعد ذلك ، ستكون أدوات الشبكة في متناول اليد. اعتمادًا على مجموعة الحزم الأولية التي تختارها عند تثبيت النظام ، سيكون لديك مجموعة أو أخرى من أدوات الشبكة المساعدة. فيما يلي قائمة بالأشياء التي اعتدت عليها شخصيًا - ifconfig و netstat و nslookup وبعض الآخرين. إذا كنت في حاجة إليها ، وأنا كذلك ، فأقترح تثبيتها بشكل منفصل ، إذا لم تكن موجودة بالفعل. إذا كنت لا تحتاجها حقًا ولا تستخدمها ، فيمكنك تخطي تثبيتها. دعنا نتحقق مما لدينا في النظام في الوقت الحالي

# ifconfig

إذا رأيت الجواب:

Bash: ifconfig: الأمر غير موجود

هذا يعني أن الأداة المساعدة غير مثبتة. بدلاً من ifconfig على CentOS ، هناك الآن أداة مساعدة IP... هذا لا ينطبق فقط على السينتوس. هذه هي الصورة في جميع توزيعات Linux الحديثة الشائعة تقريبًا. لقد اعتدت على ifconfig لوقت طويل في الآونة الأخيرةأنا عمليا لا أستخدمه. لطالما أحببت أنه في توزيعات Linux المختلفة ، كل شيء متشابه. باستخدام ifconfig ، يمكنك تكوين الشبكة ليس فقط في نظام التشغيل Linux ، ولكن أيضًا في freebsd. انها مريحة. وعندما يكون لكل توزيع أداته الخاصة ، فلن يكون ذلك مناسبًا. على الرغم من أن هذا لم يعد مهمًا الآن ، لأنني لم أعد أعمل مع Freebsd ، وأداة ip متوفرة في جميع توزيعات Linux. ومع ذلك ، إذا كنت بحاجة إلى ifconfig ، فيمكنك تثبيت الحزمة أدوات الشبكةوالتي تشمل:

# yum تثبيت net-tools

لأوامر nslookup أو ، على سبيل المثال ، host ، للعمل معنا ، تحتاج إلى تثبيت الحزمة أدوات الربط... إذا لم يتم ذلك ، فانتقل إلى الأمر:

# nslookup

سيكون الإخراج:

باش: nslookup: الأمر غير موجود

لذا قم بتثبيت أدوات الربط:

# yum install bind-utils

قم بتعطيل SELinux

قم بتعطيل SELinux. استخدامه وإعداد محادثة منفصلة. الآن لن أفعل هذا. لذلك نقوم بتعطيل:

# mcedit / etc / sysconfig / selinux

تغيير القيمة

SELINUX = معطل

يمكنك إعادة التشغيل حتى تدخل التغييرات حيز التنفيذ:

# اعادة التشغيل

وإذا كنت ترغب في تطبيق تعطيل SELinux دون إعادة التشغيل ، فقم بتشغيل الأمر:

# setenforce 0

أتلقى الكثير من الانتقادات طوال الوقت حول تعطيل SELinux. أعرف كيف يعمل ، يمكنني تخصيصه. إنه حقًا ليس صعبًا جدًا وليس من الصعب إتقانه. هذا هو خياري المتعمد ، على الرغم من أنني أحيانًا أقوم بضبطه. التنسيق الخاص بي للعمل مع النظام هو أنني لا أحتاج في أغلب الأحيان إلى SELinux ، لذلك لا أضيع الوقت فيه وأقوم بتعطيل centos في الإعداد الأساسي. يعد أمان النظام مهمة معقدة ، خاصة في العالم الحديث لتطوير الويب ، حيث تسود الخدمات الدقيقة والحاويات. SELinux هي أداة متخصصة ليست مطلوبة دائمًا وفي كل مكان. لذلك ، في هذه المقالة لا تنتمي. كل من يحتاج إليها سيمكن SELinux ويهيئها بشكل منفصل.

تحديد معلمات الشبكة

نواصل التكوين الأساسي لـ centos بعد التثبيت. الآن سنفعل ذلك ، إذا لم نفعل ذلك لسبب ما أثناء التثبيت ، أو إذا كنت بحاجة إلى تغييرها. بشكل عام ، يتم تكوين الشبكة في Centos باستخدام مدير الشبكةوفائدة وحدة التحكم الخاصة به nmtui... يأتي في الإعداد الأساسي للنظام. هناك واجهة رسومية بسيطة ومباشرة ، لذلك ليس هناك ما يمكن قوله. أنا معتاد أكثر على تكوين الشبكة من خلال ملفات تكوين البرامج النصية للشبكة. في الإصدار السابع من centos ، تم إخراجها من الصندوق ، في الإصدار الثامن تم إزالتها. لاستخدامها لتكوين الشبكة ، يجب عليك تثبيت الحزمة بشكل منفصل البرامج النصية للشبكة.

# yum تثبيت البرامج النصية للشبكة

الآن يمكنك تكوين الشبكة. للقيام بذلك ، افتح الملف / etc / sysconfig / network-scripts / ifcfg-eth0

# mcedit / etc / sysconfig / network-scripts / ifcfg-eth0

إذا حصلت على إعدادات الشبكة عبر dhcp ، فسيكون الحد الأدنى لمجموعة الإعدادات في ملف التكوين كما يلي.

TYPE = "Ethernet" BOOTPROTO = "dhcp" DEFROUTE = "نعم" IPV4_FAILURE_FATAL = "لا" NAME = "eth0" DEVICE = "eth0" ONBOOT = "نعم"

لتكوين عنوان IP ثابت ، ستكون الإعدادات على النحو التالي.

TYPE = "Ethernet" BOOTPROTO = "بلا" DEFROUTE = "نعم" IPV4_FAILURE_FATAL = "لا" NAME = "eth0" DEVICE = "eth0" ONBOOT = "نعم" IPADDR = 192.168.167.117 DNS1 = 192.168.167.113 PREFIX = 28 GATEWAY = 192.168.167.113

في حقل IPADDR ، أدخل عنوانك ، في قناع شبكة PREFIX ، في بوابة GATEWAY ، عنوان DNS لخادم نظام أسماء النطاقات. احفظ الملف وأعد تشغيل الشبكة لتطبيق الإعدادات:

# إعادة تشغيل شبكة systemctl

إنشاء جدار حماية

إضافة المستودعات

عند إعداد Centos ، غالبًا ما تحتاج إلى برنامج غير موجود في اللفت القياسي. لتثبيت حزم إضافية ، تحتاج. الأكثر شعبية هو EPEL. اعتاد أن يكون rpmforge ، ولكن تم إغلاقه لعدة سنوات. نسيه الجميع. نقوم بتوصيل مستودع EPEL. كل شيء بسيط معها ، يضاف من اللفت القياسي:

# yum تثبيت الإصدار epel

أيضًا ، بالنسبة إلى CentOS 7 ، يعد مستودع REMI مفيدًا للغاية ، والذي يسمح لك بتثبيت إصدارات أحدث من php ، على عكس تلك الموجودة في المستودع القياسي. دعني أذكرك أن هذا هو php 5.4 ، والذي لم يعد صالحًا لأي شيء وقد تمت إزالته من الدعم.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

بالنسبة إلى Centos 8 ، لم يعد remi مناسبًا بعد ، لكنني أعتقد أنه مؤقت. من حيث المبدأ ، فإن هذين المستودعات في centos عادة ما تكون كافية بالنسبة لي في الحالة العامة. البعض الآخر متصل بالفعل لاحتياجات معينة لتثبيت برامج مختلفة.

إعداد تخزين المحفوظات في bash_history

ننتقل إلى إعداد نظام centos على الخادم. سيكون من المفيد إجراء بعض التغييرات على الآلية القياسية لحفظ محفوظات الأوامر. غالبًا ما يساعد عندما تحتاج إلى تذكر أحد الأوامر التي تم إدخالها مسبقًا. الإعدادات الافتراضية لها بعض القيود غير الملائمة. وهنا لائحة من لهم:

  1. افتراضيًا ، يتم حفظ آخر 1000 أمر فقط. إذا كان هناك المزيد منها ، فسيتم حذف أقدمها واستبدالها بأخرى جديدة.
  2. لم يتم تحديد تواريخ تنفيذ الأوامر ، فقط قائمتهم في ترتيب التنفيذ.
  3. يتم تحديث ملف قائمة الأوامر بعد انتهاء الجلسة. في الجلسات المتوازية ، قد تفقد بعض الأوامر.
  4. يتم حفظ جميع الأوامر تمامًا ، على الرغم من عدم وجود فائدة من تخزين بعضها.

يتم تخزين قائمة آخر الأوامر التي تم تنفيذها في الدليل الرئيسي للمستخدم في الملف .bash_history(عند نقطة البداية). يمكن فتحه من قبل أي محرر ومشاهدته. للحصول على عرض أكثر ملاءمة للقائمة ، يمكنك إدخال الأمر في وحدة التحكم:

# التاريخ

ونرى قائمة ذات تعداد رقمي. يمكنك العثور بسرعة على أمر معين عن طريق تصفية الأسطر التي تحتاجها فقط ، على سبيل المثال ، مثل هذا:

# التاريخ | grep yum

لذلك سنرى جميع الخيارات لتشغيل الأمر yum ، والتي يتم تخزينها في المحفوظات. دعنا نصلح أوجه القصور المدرجة في الإعدادات القياسية لتخزين محفوظات الأوامر في CentOS. للقيام بذلك ، تحتاج إلى تحرير الملف .bashrcوالذي يقع في نفس الدليل مثل ملف المحفوظات. أضف الأسطر التالية إليه:

تصدير HISTSIZE = 10000 تصدير HISTTIMEFORMAT = "٪ h٪ d٪ H:٪ M:٪ S" PROMPT_COMMAND = "history -a" export HISTIGNORE = "ls: ll: history: w: htop"

تعمل المعلمة الأولى على زيادة حجم الملف إلى 10000 سطر. يمكن عمل المزيد ، على الرغم من أن هذا الحجم عادة ما يكون كافياً. يحدد المعامل الثاني تخزين تاريخ ووقت تنفيذ الأمر. يفرض السطر الثالث حفظه في السجل فورًا بعد تنفيذ الأمر. في السطر الأخير ، نقوم بإنشاء قائمة استثناءات لتلك الأوامر التي لا تحتاج إلى كتابتها في التاريخ. أعطيت مثالا على أبسط قائمة. يمكنك إضافته حسب تقديرك.

لتطبيق التغييرات ، تحتاج إلى تسجيل الخروج وإعادة الاتصال أو تشغيل الأمر:

# المصدر ~ /

هذا كل شيء عن إعداد تخزين محفوظات الأوامر. هناك الكثير من الأشياء الشيقة التي يمكنك القيام بها في ملف bashrc. في وقت من الأوقات ، تم إهمالي وتجربتي ، لكن بعد ذلك تركت كل شيء ، لأنه لا معنى له. عند العمل مع خوادم العملاء ، غالبًا ما أرى bash الافتراضي ، لذلك من الأفضل التعود عليه والعمل فيه. والإعدادات الفردية والديكورات هي الكثير من أجهزة الكمبيوتر الشخصية والخوادم. ليس عمال. لذلك لا أقوم بتكوين أي شيء آخر وفقًا للمعيار الموجود في خادم Centos في هذا الصدد.

تحديث تلقائي للنظام

للحفاظ على أمان الخادم عند المستوى المناسب ، من الضروري على الأقل تحديثه في الوقت المناسب - كل من النواة نفسها مع أدوات النظام المساعدة والحزم الأخرى. يمكنك القيام بذلك يدويًا ، ولكن للحصول على عمل أكثر كفاءة ، من الأفضل إعداد التنفيذ التلقائي. ليس من الضروري تثبيت التحديثات تلقائيًا ، ولكن على الأقل للتحقق من مظهرها. عادة ما أتبع هذه الإستراتيجية.

يم كرون

للتحقق تلقائيًا من وجود تحديثات في Centos 7 ، ستساعدنا الأداة يم كرون... يتم تثبيته بشكل تقليدي عبر yum من المستودع القياسي.

# yum تثبيت yum-cron

بعد تثبيت yum-cron ، يتم إنشاء مهمة تلقائية لتنفيذ الأداة في /etc/cron.dailyو /etc/cron.hourly... بشكل افتراضي ، تقوم الأداة بتنزيل التحديثات التي تم العثور عليها ، ولكنها لا تقوم بتطبيقها. بدلاً من ذلك ، يتم إرسال إعلام بالتحديث إلى المسؤول في صندوق البريد الجذر المحلي. ثم تذهب في الوضع اليدوي وتقرر ما إذا كنت تريد تثبيت التحديثات أم لا في الوقت المناسب لك. يبدو لي أن وضع التشغيل هذا هو الأكثر ملاءمة ، لذلك لا أغير هذه الإعدادات.

يمكنك تكوين yum-cron من خلال ملفات التكوين الموجودة في /etc/yum/yum-cron.confو yum-cron-hourly.conf... لقد تم التعليق عليها جيدًا ، لذا فهي لا تحتاج إلى تفسيرات مفصلة. انتبه إلى القسم ، حيث يمكنك تحديد معلمات لإرسال الرسائل. الافتراضي هو إرسال البريد من خلال المضيف المحلي. يمكنك تغيير المعلمات هنا وإرسال الرسائل من خلال خادم بريد تابع لجهة خارجية. ولكن بدلاً من ذلك ، شخصيًا ، أفضل تهيئة إعادة توجيه البريد الجذر المحلي إلى صندوق بريد خارجي عالميًا للخادم بأكمله من خلال التفويض على خادم smtp آخر.

Dnf- تلقائي

كما قلت سابقًا ، يستخدم Centos 8 مدير حزم مختلف - dnf. يتم تكوين تحديثات الحزمة هناك من خلال الأداة المساعدة dnf- تلقائي... دعونا نضعه ونقوم بتكوينه.

# yum تثبيت dnf- تلقائي

لم يعد cron يتعامل مع إدارة البدء المجدولة ، ولكن من خلال systemd باستخدام برنامج الجدولة المدمج. يمكنك عرض عدادات البدء التلقائية باستخدام الأمر:

# systemctl list-timers * dnf- *

إذا لم تكن هناك مهام هناك ، فيمكنك إضافة مؤقت يدويًا:

# systemctl enable - الآن dnf-automatic.timer

يتم تعيين المؤقت الافتراضي لبدء dnf-automatic بعد ساعة واحدة من بدء تشغيل الخادم وتكرار ذلك يوميًا. تكوين المؤقت يعيش هنا - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

يعيش التكوين الخاص بـ dnf-automatic بتنسيق /etc/dnf/automatic.conf... بشكل افتراضي ، يقوم بتنزيل التحديثات فقط ، لكنه لا يقوم بتطبيقها. تم التعليق على التكوين جيدًا ، لذا يمكنك تخصيصه كما تريد. تفسيرات منفصلة ليست مطلوبة. تخصيص تحديثات حزمة النظام كما تراه مناسبًا. كما قلت ، أقوم بتنزيلها تلقائيًا فقط. أحافظ دائمًا على التثبيت تحت التحكم اليدوي.

تعطيل تدفق الرسائل في / var / log / messages

استمرارًا لتكوين centos ، سنقوم بإصلاح أحد الإزعاج الصغير. في التثبيت الافتراضي للإصدار السابع من النظام ، سجل نظامك بالكامل / فار / سجل / رسائلبعد فترة سيتم انسداد الخادم بالإدخالات التالية.

16 أكتوبر 14:01:01 xs-files systemd: تم إنشاء شريحة مستخدم 0.slice. 16 أكتوبر 14:01:01 xs-files systemd: بدء تشغيل user-0.slice. 16 أكتوبر 14:01:01 xs-files systemd: بدأت الجلسة 14440 لجذر المستخدم. 16 أكتوبر 14:01:01 xs-files systemd: بدء الجلسة 14440 لجذر المستخدم. 16 أكتوبر 14:01:01 xs-files systemd: تمت إزالة شريحة user-0.slice. 16 أكتوبر 14:01:01 xs-files systemd: إيقاف user-0.slice. 16 أكتوبر 15:01:01 xs-files systemd: تم إنشاء شريحة مستخدم 0.slice. 16 أكتوبر 15:01:01 xs-files systemd: بدء تشغيل user-0.slice. 16 أكتوبر 15:01:01 xs-files systemd: تم بدء الجلسة 14441 لجذر المستخدم. 16 أكتوبر 15:01:01 xs-files systemd: بدء الجلسة 14441 لجذر المستخدم. 16 أكتوبر 15:01:01 xs-files systemd: تم بدء الجلسة 14442 لجذر المستخدم. 16 أكتوبر 15:01:01 xs-files systemd: بدء الجلسة 14442 لجذر المستخدم. أكتوبر 16 15:01:01 xs-files systemd: تمت إزالة شريحة user-0.slice. 16 أكتوبر 15:01:01 xs-files systemd: إيقاف user-0.slice. أكتوبر 16:01:01 xs-files systemd: تم إنشاء شريحة مستخدم 0.slice. أكتوبر 16:01:01 xs-files systemd: بدء تشغيل user-0.slice. 16 أكتوبر 16:01:01 xs-files systemd: تم بدء الجلسة 14443 لجذر المستخدم. أكتوبر 16:01:01 xs-files systemd: بدء الجلسة 14443 لجذر المستخدم. أكتوبر 16:01:01 xs-files systemd: تمت إزالة شريحة user-0.slice.

لم ألاحظهم في Centos 8 ، لذلك لا يوجد شيء أفعله هناك. الرسائل ليست ذات فائدة عملية ، لذلك دعونا نعطلها. للقيام بذلك ، قم بإنشاء حكم منفصللـ rsyslog ، حيث نقوم بإدراج جميع قوالب الرسائل التي سنقطعها. دعونا نضع هذه القاعدة في ملف منفصل /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf إذا كان $ programname == "systemd" و (يحتوي $ msg على "بدء الجلسة" أو يحتوي $ msg على "بدء الجلسة" أو يحتوي $ msg على "تم الإنشاء شريحة "أو $ msg تحتوي على" مستخدم مبتدئ- "أو $ msg تحتوي على" بدء شريحة مستخدم من "أو $ msg تحتوي على" جلسة تمت إزالتها "أو $ msg تحتوي على" شريحة مستخدم تمت إزالتها من "أو $ msg تحتوي على" إيقاف شريحة مستخدم من " ) ثم توقف

احفظ الملف وأعد تشغيل rsyslog لتطبيق الإعدادات.

# systemctl إعادة تشغيل سجل rsyslog

من الضروري أن نفهم أنه في هذه الحالة نقوم بتعطيل التدفق إلى ملف السجل فقط على الخادم المحلي. إذا قمت بتخزين سجلات الدخول ، ثم هذه القاعدةسوف تحتاج إلى تكوينه عليه.

تثبيت iftop و atop و htop و lsof على CentOS

وأخيرًا ، في نهاية التكوين ، سنضيف العديد من الأدوات المساعدة المفيدة التي قد تكون مفيدة أثناء تشغيل الخادم.

يعرض iftop في الوقت الفعلي تحميل واجهة الشبكة ، ويمكن تشغيله بمفاتيح مختلفة ، ولن أتطرق إلى هذا بالتفصيل ، فهناك معلومات حول هذا الموضوع على الإنترنت. نضع:

# يمكنك تثبيت iftop

واثنين من مديري المهام المثيرين للاهتمام ، أنا في الغالب أستخدم htop ، ولكن في بعض الأحيان يكون على القمة في متناول يدي. نضع كليهما ، انظر بنفسك ، اكتشف ما تفضله ، يناسبك:

# yum install htop # yum install atop

لعرض معلومات حول الملفات التي تستخدمها عمليات معينة ، أنصحك بتثبيت الأداة المساعدة lsof... من المرجح أن يكون مفيدًا عاجلاً أم آجلاً عند تشخيص تشغيل الخادم.

# يمكنك تثبيت wget bzip2 traceroute gdisk

هذا كل شيء بالنسبة لي. اكتمل الإعداد الأساسي لـ CentOS ، يمكنك البدء في تثبيت الوظائف الرئيسية وتكوينها.

إعداد بريد النظام

لإنهاء تكوين خادم CentOS ، فلنتأكد من إرسال البريد الموجه إلى الجذر المحلي عبر خادم بريد خارجي إلى صندوق البريد المحدد. إذا لم يتم ذلك ، فسيتم إضافته محليًا إلى ملف / var / spool / mail / root... وقد يكون هناك مهم و معلومات مفيدة... لنقم بتكوينه ليتم إرساله إلى صندوق بريد مسؤول النظام.

تحدثت عن هذا بالتفصيل في مقال منفصل -. هنا ، بإيجاز الأوامر فقط والإعداد السريع. نقوم بتثبيت الحزم اللازمة:

# yum تثبيت mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-simple postfix

نرسم شيئًا مثل هذا التكوين لـ postfix.

Cat /etc/postfix/main.cf ## بداية التكوين الافتراضي ############################## queue_directory = / var / spool / postfix command_directory = / usr / sbin daemon_directory = / usr / libexec / postfix data_directory = / var / lib / postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = all unknown_local_recipient_reject_code = has alias_mapsatabase = 550 alias_mapsatabase = = debiah: / etc / com = / bin: / usr / bin: / usr / local / bin: / usr / X11R6 / bin ddd $ daemon_directory / $ process_name $ process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = / usr / bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = / usr / share / man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = / usr / share / doc / postfix-2.10.1 / README_FILES ## DEFAULT CONFIG END ###################### # اسم الخادم كما هو معروض اسم المضيف اسم مضيفي = centos-test. xs.local # Here n فيما يتعلق بالمنطق ، فأنت بحاجة إلى ترك المجال فقط ، ولكن في هذه الحالة من الأفضل ترك الاسم الكامل للخادم بحيث يظهر الاسم الكامل للخادم في حقل # المرسل ، لذلك يكون أكثر ملاءمة لتحليل الخدمة messages mydomain = centos-test.xs.local mydestination = $ myhostname myorigin = $ mydomain # عنوان الخادم الذي سنرسل من خلاله بريد relayhost = mailsrv.mymail.ru:25 smtp_use_tls = نعم smtp_sasl_auth_enable = نعم smtp_sasl_password: / etcfixh has / sasl_passwd smtp_sasl_security_options = بدون اسم مجهول smtp_sasl_security_options = smtp بلا اسم

قم بإنشاء ملف يحتوي على معلومات حول اسم المستخدم وكلمة المرور للترخيص.

# mcedit / etc / postfix / sasl_passwd mailsrv.mymail.ru:25 [بريد إلكتروني محمي]: كلمه السر

إنشاء ملف ديسيبل.

# postmap / etc / postfix / sasl_passwd

يمكنك الآن إعادة تشغيل postfix والتحقق من أنها تعمل.

# systemctl إعادة تشغيل postfix

إلى الاسم المستعار القياسي للجذر في / الخ / الأسماء المستعارة، أضف عنوانًا خارجيًا حيث سيتم تكرار البريد الموجه إلى الجذر. للقيام بذلك ، قم بتحرير الملف المحدد عن طريق تغيير السطر الأخير.

# الجذر: مارك

الجذر: الجذر ، [بريد إلكتروني محمي]

تحديث قاعدة الشهادة:

# newaliases

دعنا نرسل رسالة عبر وحدة التحكم إلى الجذر المحلي:

# df -h | جذر البريد الإلكتروني "استخدام القرص"

يجب أن تذهب الرسالة إلى صندوق بريد خارجي. إذا كنت تستخدم صندوق بريد من Yandex ، فمن المرجح أن تحصل على خطأ في سجل خادم البريد ولن يتم إرسال الرسالة.

Relay = smtp.yandex.ru: 25 ، تأخير = 0.25 ، تأخيرات = 0/0 / 0.24 / 0.01 ، dsn = 5.7.1 ، الحالة = مرتد (قال المضيف smtp.yandex.ru: 553 5.7.1 عنوان المرسل مرفوض: ليست مملوكة لمستخدم المصادقة. (ردًا على أمر MAIL FROM))

يعني هذا الخطأ أنه ليس لديك نفس صندوق البريد المحدد كمرسل البريد الذي تستخدمه للمصادقة. كيف أصلح هذا ، سأخبرك في مقال منفصل -. مع أنظمة البريد الأخرى ، حيث لا يوجد مثل هذا الفحص ، يجب أن يكون كل شيء على ما يرام وهكذا.

هذا يكمل تكوين البريد المحلي. الآن سيتم تكرار جميع الرسائل الموجهة إلى الجذر المحلي ، على سبيل المثال ، التقارير الواردة من cron ، إلى صندوق بريد خارجي ، وإرسالها عبر خادم بريد كامل. لذلك سيتم تسليم رسائل البريد الإلكتروني بشكل طبيعي دون الدخول في البريد العشوائي (على الرغم من أنه ليس بالضرورة ، هناك عوامل تصفية إرشادية).

استنتاج

لقد اتبعنا بعض الخطوات الأولية لإعداد خادم CentOS الذي أفعله عادةً عند إعداد الخادم بعد التثبيت مباشرةً. أنا لا أتظاهر بأنني حقيقة مطلقة ، ربما أفتقد شيئًا ما أو لا أفعله بشكل صحيح تمامًا. سأكون سعيدًا لو تلقيت تعليقات واقتراحات معقولة وذات مغزى.

..
  • فهم تفاصيل نشر الشبكات القائمة على Linux وتكوينها وصيانتها.
  • القدرة على حل المشكلات الناشئة بسرعة وضمان التشغيل المستقر والمتواصل للنظام.
  • اختبر نفسك في اختبار الدخول واطلع على تفاصيل البرنامج.