سلسلة RHCSA: أساسيات جدار الحماية والتحكم في حركة المرور باستخدام FirewallD و Iptables – الجزء 11

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

RHCSA: Control Network Traffic with FirewallD and Iptables – Part 11

في هذه المقالة، سنستعرض أساسيات جدار الحماية، مشع الجدار الناري الديناميكي الافتراضي في Red Hat Enterprise Linux 7، وخدمة iptables، خدمة جدار النار التقليدية لنظام Linux، والتي يعرف عنها معظم مسؤولي النظام والشبكة، والتي تتوفر أيضًا في RHEL 7.

A Comparison Between FirewallD and Iptables

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

يجب أن يكون مشع الجدار الناري مثبتًا افتراضيًا في نظام RHEL الخاص بك، على الرغم من أنه قد لا يكون قيد التشغيل. يمكنك التحقق باستخدام الأوامر التالية (firewall-config هو أداة تكوين واجهة المستخدم):

# yum info firewalld firewall-config
Check FirewallD Information

و،

# systemctl status -l firewalld.service
Check FirewallD Status

من ناحية أخرى، فإن خدمة iptables ليست مضمنة افتراضيًا، ولكن يمكن تثبيتها من خلال.

# yum update && yum install iptables-services

يمكن بدء تشغيل كل من الشياطين وتمكينها للتشغيل عند التمهيد باستخدام أوامر systemd المعتادة:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

اقرأ أيضًا: أوامر مفيدة لإدارة خدمات systemd

أما بالنسبة لملفات التكوين، فإن خدمة iptables تستخدم /etc/sysconfig/iptables (التي لن تكون موجودة إذا لم يتم تثبيت الحزمة في نظامك). على جهاز RHEL 7 المستخدم كعقدة في العنقود، يبدو هذا الملف على النحو التالي:

Iptables Firewall Configuration

أما firewalld فيخزن تكوينه عبر دليلين، /usr/lib/firewalld و /etc/firewalld:

# ls /usr/lib/firewalld /etc/firewalld
FirewallD Configuration

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

# man firewalld.conf
# man firewall-cmd
# man iptables

بخلاف ذلك، تذكر أن تلقي نظرة على مراجعة الأوامر الأساسية ووثائق النظام – الجزء 1 من السلسلة الحالية، حيث وصفت عدة مصادر يمكنكم الحصول على معلومات حول الحزم المثبتة على نظام RHEL 7 الخاص بك.

استخدام Iptables للتحكم في حركة المرور في الشبكة

قد ترغب في المرور إلى Configure Iptables Firewall – Part 8 من سلسلة Linux Foundation Certified Engineer (LFCE) لتحديث ذاكرتك بشأن داخليات iptables قبل المضي قدماً. وبذلك، سنتمكن من السقوط في الأمثلة.

مثال 1: تمكين الترافيك الإلكتروني والخارجي للويب

قواسم 80 و 443 هي الأختبارات الإفتراضية التي تستخدمها مستودع الويب Apache لمعالجة الترافيك الإلكتروني العام (HTTP) والمؤكد (HTTPS). يمكنك تمكين الترافيك الإلكتروني القادم والخارجي عبركل من القواميس على واجهة enp0s3 بالتالي:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
مثال 2: منع جميع الاتصالات الإلكترونية المنبثقة من شبكة خاصة

قد يكون هناك أوقات تحتاج إلى منع جميع الترافيك الإلكترونية المبثقة من شبكة خاصة، فعلى سبيل المثال 192.168.1.0/24:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

ستترافق جميع القطع التي تأتي من شبكة 192.168.1.0/24، بينما

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

ستسمح فقط بالترافيك القادمة عبر منبثق 22.

مثال 3: توجيه الترافيك الإلكترونية القادمة إلى موقع آخر

إذا كنت تستخدم جهاز RHEL 7 الخاص بك ليس فقط كجدار ناري برمجيات، ولكن أيضًا كجدار ناري فعلي مستند إلى الأجهزة، بحيث يجلس بين شبكتين متميزتين، يجب أن يكون تم تمكين توجيه IP بالفعل في نظامك. إذا لم يكن كذلك، فيجب عليك تحرير /etc/sysctl.conf وتعيين قيمة net.ipv4.ip_forward إلى 1، على النحو التالي:

net.ipv4.ip_forward = 1

ثم حفظ التغيير، إغلاق محرر النصوص الخاص بك وأخيرًا تشغيل الأمر التالي لتطبيق التغيير:

# sysctl -p /etc/sysctl.conf

على سبيل المثال، قد يكون لديك طابعة مثبتة في جهاز داخلي بـ IP 192.168.0.10، مع خدمة CUPS تستمع على المنفذ 631 (كليهما على خادم الطباعة وعلى جدار الحماية الخاص بك). من أجل توجيه طلبات الطباعة من العملاء على الجانب الآخر من الجدار الناري، يجب عليك إضافة قاعدة iptables التالية:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

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

البدء مع FirewallD

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

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

# firewall-cmd --get-active-zones

في المثال أدناه، المنطقة العامة نشطة، وتم تعيين واجهة enp0s3 لها تلقائيًا. لعرض جميع المعلومات حول منطقة معينة:

# firewall-cmd --zone=public --list-all
List all FirewallD Zones

منذ يمكنك قراءة المزيد حول المناطق في دليل أمان RHEL 7، سنقوم فقط بسرد بعض الأمثلة الخاصة هنا.

المثال 4: السماح بالخدمات من خلال جدار الحماية

للحصول على قائمة بالخدمات المدعومة، استخدم.

# firewall-cmd --get-services
List All Supported Services

للسماح بحركة مرور الويب http و https من خلال جدار الحماية، بشكل فوري وعند إعادة التشغيل:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

إذا تم تجاهل code>–zone، سيتم استخدام المنطقة الافتراضية (يمكنك التحقق باستخدام firewall-cmd –get-default-zone).

لإزالة القاعدة، قم بتبديل الكلمة add بكلمة remove في الأوامر أعلاه.

المثال 5: توجيه IP / Port

أولاً، تحتاج إلى معرفة ما إذا كان التمويه ممكّنًا للمنطقة المرغوبة:

# firewall-cmd --zone=MyZone --query-masquerade

في الصورة أدناه، يمكننا رؤية أن التمويه ممكّن للمنطقة الخارجية، ولكن ليس لـ العامة:

Check Masquerading Status

يمكنك إما تمكين التمويه للعامة:

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

أو استخدام التمويه في الخارجية. إليك ما سنفعله لتكرار المثال 3 باستخدام firewalld:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

ولا تنسى إعادة تحميل جدار الحماية.

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

أقرأ أيضًا: أمثلة مفيدة لفيروالد لتكوين المرور في RHEL 7

الختام

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

Source:
https://www.tecmint.com/firewalld-vs-iptables-and-control-network-traffic-in-firewall/