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

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

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

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

انظر أيضا: تكوين iptables على CentOS 7

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

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

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

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

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

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

  1. ابدأ تشغيل "Terminal" الكلاسيكي بأي طريقة ملائمة ، على سبيل المثال ، من خلال قائمة "Applications" .
  2. إطلاق محطة لتهيئة جدار الحماية على CentOS 7

  3. اكتب sudo systemctl start firewalld.service واضغط على المفتاح Enter .
  4. بدء تشغيل خدمات جدار الحماية في نظام التشغيل CentOS 7

  5. يتم تنفيذ إدارة المرافق نيابة عن المستخدم الخارق ، لذلك يجب عليك المصادقة عن طريق تحديد كلمة مرور.
  6. إدخال كلمة المرور لبدء خدمات جدار الحماية في محطة CentOS 7

  7. للتأكد من أن وظائف الخدمة ، حدد firewall-cmd --state .
  8. عرض الوضع الحالي لجدار الحماية من خلال الجهاز في CentOS 7

  9. تأكيد الأصالة في نافذة الرسم المفتوحة.
  10. إدخال كلمة المرور للمصادقة عند عرض حالة جدار الحماية CentOS 7

  11. يتم عرض خط جديد. تعني القيمة "قيد التشغيل" أن جدار الحماية يعمل.
  12. يعرض الحالة الحالية لجدار الحماية في نظام التشغيل CentOS 7

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

مزيد من التفاصيل: تعطيل جدار الحماية على CentOS 7

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

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

  1. يساعد الأمر firewall-cmd --get-default-zone .
  2. عرض منطقة جدار الحماية الافتراضية على CentOS 7

  3. بعد تفعيله ، سترى خطًا جديدًا حيث سيتم عرض المعلمة المطلوبة. على سبيل المثال ، في لقطة الشاشة أدناه ، تعتبر المنطقة "العامة" نشطة.
  4. عرض منطقة جدار الحماية الافتراضية على CentOS 7

  5. ومع ذلك ، يمكن أن تكون عدة مناطق نشطة في وقت واحد ، علاوة على ذلك ، فهي مرتبطة بواجهة منفصلة. firewall-cmd --get-active-zones هذه المعلومات من خلال firewall-cmd --get-active-zones .
  6. عرض جميع مناطق جدار الحماية النشطة على CentOS 7

  7. سيعرض firewall-cmd --list-all القواعد المحددة للمنطقة الافتراضية. انظر لقطة أدناه. يمكنك أن ترى أن القاعدة "الافتراضية" يتم تخصيصها للمنطقة النشطة "عام" - تتم إضافة العملية الافتراضية والواجهة "enp0s3" وخدمتان .
  8. عرض القواعد الأساسية لجدار الحماية من خلال الجهاز في CentOS 7

  9. إذا كنت بحاجة إلى معرفة جميع مناطق جدار الحماية المتاحة ، فأدخل firewall-cmd --get-zones .
  10. الحصول على قائمة بجميع مناطق جدار الحماية المتاحة من خلال الجهاز في CentOS 7

  11. يتم تعريف معلمات منطقة معينة عبر firewall-cmd --zone=name --list-all ، حيث يكون الاسم هو اسم المنطقة.
  12. عرض قواعد منطقة جدار الحماية المحددة من خلال الجهاز في CentOS 7

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

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

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

تعيين واجهة محددة لمنطقة جدار الحماية في CentOS 7

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

شاهد جوهر جدار الحماية وواجهته على CentOS 7

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

إعادة تشغيل جدار الحماية بعد إجراء تغييرات على CentOS 7

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

  1. افتح ملف التكوين من خلال المحرر عن طريق إدخال sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 ، حيث eth0 هو اسم الواجهة المطلوبة.
  2. فتح ملف تكوين واجهة جدار الحماية في CentOS 7

  3. مصادقة حسابك لمزيد من الإجراءات.
  4. إدخال كلمة المرور لفتح ملف التكوين الخاص بالواجهة في CentOS 7

  5. ابحث عن المعلمة "ZONE" وقم بتغيير قيمتها إلى القيمة المطلوبة ، على سبيل المثال ، public أو home .
  6. تغيير منطقة الواجهة عبر ملف التكوين في CentOS 7

  7. اضغط Ctrl + O لحفظ التغييرات.
  8. سجل التغييرات في محرر النصوص CentOS 7

  9. لا تقم بتغيير اسم الملف ، فقط اضغط على Enter .
  10. تعيين ملف لتسجيل التغييرات في محرر نصوص CentOS 7

  11. الخروج من محرر النصوص باستخدام Ctrl + X.
  12. قم بإنهاء محرر النصوص بعد تغييرات CentOS 7

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

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

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

تعيين منطقة جدار الحماية الافتراضية في CentOS 7

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

التعيين الناجح للمنطقة الافتراضية في CentOS 7

إنشاء قواعد للبرامج والأدوات المساعدة

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

أمر لعرض خدمات CentOS 7 المتاحة على النظام.

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

قائمة الخدمات المتاحة في CentOS 7

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

SSH
Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.

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

إضافة خدمة إلى منطقة جدار حماية CentOS 7 محددة

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

إضافة دائمة للخدمة إلى منطقة جدار الحماية CentOS 7

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

عرض قائمة خدمات جدار الحماية الدائمة CentOS 7

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

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

ميناء الشحن

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

فتح منفذ في منطقة معينة من جدار الحماية CentOS 7

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

فتح مجموعة من المنافذ في منطقة معينة من جدار الحماية CentOS 7

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

تعريف الخدمة

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

  1. انسخ ملف التكوين عن طريق كتابة sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml ، حيث يمثل service.xml اسم ملف الخدمة ، و example.xml هو اسم نسخته.
  2. نسخ ملف إعدادات خدمة جدار الحماية إلى CentOS 7

  3. افتح نسخة للتحرير من خلال أي محرر نصوص ، على سبيل المثال sudo nano /etc/firewalld/services/example.xml .
  4. تشغيل ملف خدمة CentOS 7 تم نسخه

  5. على سبيل المثال ، أنشأنا نسخة من خدمة HTTP. في المستند ، ترى البيانات الأولية المختلفة ، مثل الاسم المختصر والوصف. يؤثر على الخادم فقط تغيير رقم المنفذ والبروتوكول. فوق الخط " » ينبغي أن تضاف لفتح الميناء. tcp هو البروتوكول المستخدم ، و 0000 هو رقم المنفذ.
  6. التغييرات في ملف الخدمة لفتح المنافذ على CentOS 7

  7. احفظ جميع التغييرات ( Ctrl + O ) ، وأغلق الملف ( Ctrl + X ) ، ثم sudo firewall-cmd --reload تشغيل جدار الحماية لتطبيق الإعدادات عبر sudo firewall-cmd --reload . بعد ذلك ، ستظهر الخدمة في قائمة الخدمات المتاحة ، والتي يمكن عرضها من خلال firewall-cmd --get-services .
  8. إعادة تشغيل خدمة جدار الحماية في CentOS 7

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

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

أنت تعرف بالفعل أنه في البداية تم إنشاء عدد كبير من المناطق المختلفة مع قواعد معينة في FirewallD. ومع ذلك ، هناك حالات عندما يحتاج مسؤول النظام إلى إنشاء منطقة مستخدم ، مثل "publicweb" لخادم ويب مثبت أو "privateDNS" لخادم DNS. في هذين المثالين ، نقوم بتحليل إضافة الفروع:

  1. قم بإنشاء منطقتين دائمتين جديدتين باستخدام sudo firewall-cmd --permanent --new-zone=publicweb و sudo firewall-cmd --permanent --new-zone=privateDNS .
  2. إضافة مناطق مستخدم جديدة لجدار الحماية CentOS 7

  3. ستكون متاحة بعد إعادة تحميل أداة sudo firewall-cmd --reload إعادة التحميل. لعرض المناطق الدائمة ، أدخل sudo firewall-cmd --permanent --get-zones .
  4. عرض مناطق جدار الحماية المتوفرة في CentOS 7

  5. خصص لهم الخدمات اللازمة ، على سبيل المثال ، "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 ، حيث --zone = publicweb هو اسم المنطقة المراد إضافتها. يمكنك عرض نشاط الخدمات من خلال firewall-cmd --zone=publicweb --list-all .
  6. إضافة خدمات إلى منطقة مستخدم CentOS 7

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

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