صافي مرشح كما نعلم جميعًا ، إنه جدار ناري في Linux. جدار الحماية هو برنامج ديناميكي لإدارة جدران الحماية مع دعم مناطق الشبكة. في الإصدار السابق ، RHEL & CentOS 6 كنا نستخدمه iptables كبرنامج خفي لإطار تصفية الحزم. في RHEL/CentOS 7/8, فيدورا و openSUSE - يتم استبدال واجهة rong> iptables بـ جدار الحماية.
من المستحسن أن تبدأ في استخدام جدار الحماية بدلا من iptables لأن هذا قد يتوقف في المستقبل. ومع ذلك، iptables لا تزال مدعومة ويمكن تثبيتها مع أمر yum. لا يمكننا الاحتفاظ جدار الحماية و iptables كلاهما في نفس النظام مما قد يؤدي إلى الصراع.
في iptables، اعتدنا على تكوين مثل سلاسل الإدخال والإخراج والأمام لكن هنا في جدار الحمايةيستخدم المفهوم المناطق. بشكل افتراضي ، هناك مناطق مختلفة متوفرة في جدار الحماية ، والتي سيتم مناقشتها في هذه المقالة.
المنطقة الأساسية التي تشبه المنطقة العامة و منطقة خاصة. لجعل الأمور تعمل مع هذه المناطق ، نحتاج إلى إضافة الواجهة بدعم المنطقة المحدد ومن ثم يمكننا إضافة الخدمات إلى جدار الحماية.
بشكل افتراضي ، هناك العديد من الخدمات المتاحة ، وهي واحدة من أفضل ميزات
جدار الحماية هو أنه يأتي مع خدمات محددة مسبقًا ويمكننا أن نأخذ هذه الخدمات كمثال لإضافة خدماتنا ببساطة عن طريق نسخها.جدار الحماية يعمل بشكل رائع مع IPv4, IPv6 ، و جسور إيثرنت أيضا. يمكننا الحصول على وقت تشغيل منفصل وتكوين دائم في جدار الحماية.
دعنا نبدأ في كيفية العمل مع المناطق وإنشاء خدماتنا الخاصة واستخدام أكثر إثارة لجدار الحماية.
نظام التشغيل: إصدار CentOS Linux 7.0.1406 (Core) عنوان IP: 192.168.0.55. اسم المضيف: server1.tecmintlocal.com.
1.جدار الحماية يتم تثبيت الحزمة بشكل افتراضي في RHEL / CentOS 7/8, فيدورا و openSUSE. إذا لم يكن كذلك ، يمكنك تثبيته باستخدام ما يلي أمر yum.
# yum install firewalld -y.
2. بعد جدار الحماية تم تثبيت الحزمة ، فقد حان الوقت للتحقق مما إذا كان iptables الخدمة قيد التشغيل أم لا ، إذا كانت قيد التشغيل ، فأنت بحاجة إلى التوقف وإخفاء (عدم استخدام بعد الآن) خدمة iptables باستخدام الأوامر التالية.
# systemctl status iptables. # systemctl stop iptables. # systemctl قناع iptables.
3. قبل التوجه إلى تكوين جدار الحماية ، أود مناقشة كل منطقة. بشكل افتراضي ، هناك بعض المناطق المتاحة. نحن بحاجة إلى تخصيص الواجهة للمنطقة. تحدد المنطقة أن المنطقة التي تم الوثوق بها أو رفض مستوى الواجهة للحصول على اتصال. يمكن أن تحتوي المنطقة على الخدمات والموانئ.
هنا ، سنقوم بوصف كل منطقة متوفرة في Firewalld.
الآن لديك فكرة أفضل عن المناطق ، فلنكتشف الآن المناطق المتاحة ، والمناطق الافتراضية ، وسرد جميع المناطق باستخدام الأوامر التالية.
# firewall-cmd --get-zone.
# firewall-cmd --get-default-zone.
# جدار الحماية - cmd - قائمة جميع المناطق.
ملحوظة: إخراج الأمر أعلاه لن يتناسب مع صفحة واحدة لأن هذا سيدرج كل المناطق مثل الحظر ، dmz ، الإفلات ، الخارجي ، المنزل ، الداخلي ، العام ، الموثوق به ، والعمل. إذا كانت المناطق تحتوي على أي قواعد غنية ، فسيتم أيضًا إدراج الخدمات أو المنافذ الممكّنة مع معلومات المنطقة المعنية.
4. إذا كنت ترغب في تعيين المنطقة الافتراضية كمنطقة داخلية أو خارجية أو إسقاط أو عمل أو أي منطقة أخرى ، يمكنك استخدام الأمر أدناه لتعيين المنطقة الافتراضية. هنا نستخدم "داخلي"كمنطقة افتراضية.
# firewall-cmd --set-default-zone = داخلي.
5. بعد تعيين المنطقة ، تحقق من المنطقة الافتراضية باستخدام الأمر أدناه.
# firewall-cmd --get-default-zone.
6. هنا ، واجهتنا هي enp0s3، إذا احتجنا إلى التحقق من منطقتنا حيث يتم تقييد الواجهة ، فيمكننا استخدام الأمر أدناه.
# firewall-cmd --get-zone-of-interface = enp0s3.
7. ميزة أخرى مثيرة للاهتمام في جدار الحماية هي "icmptype'هو أحد أنواع icmp التي يدعمها جدار الحماية. للحصول على قائمة أنواع icmp المدعومة ، يمكننا استخدام الأمر أدناه.
# جدار الحماية - cmd --get-icmptypes.
8. الخدمات عبارة عن مجموعة من القواعد مع المنافذ والخيارات التي يستخدمها جدار الحماية. الخدمات التي تم تمكينها ، سيتم تحميلها تلقائيًا عندما يكون ملف جدار الحماية الخدمة وتشغيلها.
بشكل افتراضي ، تتوفر العديد من الخدمات ، للحصول على قائمة بجميع الخدمات المتاحة ، استخدم الأمر التالي.
# firewall-cmd --get-services.
9. للحصول على قائمة بجميع الخدمات الافتراضية المتاحة ، انتقل إلى الدليل التالي ، هنا ستحصل على قائمة الخدمات.
# cd / usr / lib / firewalld / services /
10. لإنشاء الخدمة الخاصة بك ، تحتاج إلى تحديدها في الموقع التالي. على سبيل المثال ، هنا أريد إضافة خدمة لـ RTMP ميناء 1935، قم أولاً بعمل نسخة من أي خدمة.
# cd / etc / firewalld / services / # cp /usr/lib/firewalld/services/ssh.xml / etc / firewalld / services /
وبعد ذلك ، انتقل إلى الموقع حيث تم نسخ ملف الخدمة ، ثم أعد تسمية الملف "ssh.xml' ل 'rtmp.xml"كما هو موضح في الصورة أدناه.
# cd / etc / firewalld / services /
11. بعد ذلك ، افتح الملف وحرره كملف العنوان والوصف والبروتوكول ورقم المنفذوالتي نحتاج لاستخدامها في خدمة RTMP كما هو موضح في الصورة أدناه.
12. لتنشيط هذه التغييرات ، أعد تشغيل خدمة جدار الحماية أو أعد تحميل الإعدادات.
# جدار الحماية - cmd - إعادة تحميل.
13. للتأكيد ، سواء تمت إضافة الخدمة أم لا ، قم بتشغيل الأمر أدناه للحصول على قائمة الخدمات المتاحة.
# firewall-cmd --get-services.
14. سنرى هنا كيفية إدارة جدار الحماية باستخدام ملف الأمر firewall-cmd. لمعرفة الحالة الحالية لجدار الحماية وجميع المناطق النشطة ، اكتب الأمر التالي.
# جدار الحماية - cmd - الحالة. # جدار الحماية - cmd - المناطق النشطة.
15. للحصول على المنطقة العامة للواجهة enp0s3، هذه هي الواجهة الافتراضية المحددة في /etc/firewalld/firewalld.conf ملف بتنسيق DefaultZone = عام.
لسرد جميع الخدمات المتاحة في منطقة الواجهة الافتراضية هذه.
# جدار الحماية - cmd --get-service.
16. في الأمثلة المذكورة أعلاه ، رأينا كيفية إنشاء خدماتنا الخاصة من خلال إنشاء rtmp الخدمة ، هنا سنرى كيفية إضافة rtmp خدمة للمنطقة كذلك.
# firewall-cmd --add-service = rtmp.
17. لإزالة المنطقة المضافة ، اكتب.
# firewall-cmd --zone = public --remove-service = rtmp.
كانت الخطوة المذكورة أعلاه فترة مؤقتة فقط. لجعله دائمًا ، نحتاج إلى تشغيل الأمر أدناه مع الخيار -دائم.
# firewall-cmd --add-service = rtmp - دائم. # جدار الحماية - cmd - إعادة تحميل.
18. حدد قواعد نطاق مصدر الشبكة وافتح أي منفذ من المنافذ. على سبيل المثال ، إذا كنت ترغب في فتح نطاق شبكة ، فقل "192.168.0.0/24"والميناء"1935استخدم الأوامر التالية.
# جدار الحماية - cmd - دائم - مصدر إضافي = 192.168.0.0 / 24. # جدار الحماية - cmd - دائم - منفذ إضافة = 1935 / برنامج التعاون الفني.
تأكد من إعادة تحميل خدمة جدار الحماية بعد إضافة أو إزالة أي خدمات أو منافذ.
# firewall-cmd --reload # firewall-cmd --list-all.
19. إذا أردت السماح بخدمات مثل http و https و vnc-server و PostgreSQL ، فأنت تستخدم القواعد التالية. أولاً ، أضف القاعدة واجعلها دائمة وأعد تحميل القواعد وتحقق من الحالة.
# firewall-cmd --add-rich-rule 'الأسرة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "http" قبول' # firewall-cmd --add-rich-rule 'عائلة = مصدر "ipv4" address = "192.168.0.0/24" اسم الخدمة = "http" قبول '--permanent # firewall-cmd --add-rich-rule' عائلة القاعدة = عنوان مصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "https" قبول' # firewall-cmd --add-rich-rule 'عائلة القاعدة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "https" قبول' --permanent # firewall-cmd - add-rich-rule 'عائلة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "vnc-server" قبول' # firewall-cmd --add-rich-rule 'عائلة القاعدة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "vnc-server" Accept' --permanent # firewall-cmd --add-rich-rule 'عائلة القاعدة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "postgresql" قبول' # firewall-cmd --add-rich-rule 'عائلة القاعدة = عنوان المصدر "ipv4" = "192.168.0.0/24" اسم الخدمة = "postgresql" قبول' - دائم.
الآن ، نطاق الشبكة 192.168.0.0/24 يمكن استخدام الخدمة المذكورة أعلاه من الخادم الخاص بي. الخيار -دائم يمكن استخدامها في كل قاعدة ، ولكن يتعين علينا تحديد القاعدة والتحقق من وصول العميل بعد ذلك يتعين علينا أن نجعلها دائمة.
20. بعد إضافة القواعد المذكورة أعلاه ، لا تنس إعادة تحميل قواعد جدار الحماية وإدراج القواعد باستخدام:
# جدار الحماية - cmd - إعادة تحميل. # جدار الحماية - cmd - قائمة الكل.
لمعرفة المزيد عن جدار الحماية.
# رجل جدار الحماية.
هذا كل شيء ، لقد رأينا كيفية إعداد مرشح الشبكة باستخدام جدار الحماية في RHEL / CentOS و فيدورا.
Net-filter هو إطار عمل جدار ناري لكل توزيعة Linux. مرة أخرى في كل RHEL و CentOS الطبعات التي استخدمناها iptables ولكن في الإصدارات الأحدث ، قاموا بتقديم جدار الحماية. من الأسهل فهم واستخدام جدار الحماية. أتمنى أن تكون قد استمتعت بالكتابة.