ديف أوبس

سرد وحذف قواعد IPTables

شرح مفصل لسرد وحذف قواعد جدار IPTables الناري

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


مقدمة عن IPTables

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

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


كيفية سرد قواعد IPTables

1. عرض جميع قواعد IPTables الحالية

لعرض جميع القواعد الموجودة في جدار الحماية، يتم استخدام الأمر التالي:

bash
sudo iptables -L -v -n --line-numbers

شرح مفصل للعناصر في هذا الأمر:

  • -L : يقوم بعرض القواعد الموجودة في الجداول الافتراضية (filter table).

  • -v : يعرض التفاصيل الإضافية مثل عدد الحزم التي تطابق القاعدة.

  • -n : يعرض العناوين والأرقام دون محاولة حل أسماء النطاقات أو الخدمات، مما يجعل الأداء أسرع.

  • --line-numbers : يضيف أرقام ترتيب لكل قاعدة، وهو أمر مهم عند الرغبة في حذف قواعد معينة.

2. سرد قواعد جداول محددة

يتوفر IPTables على عدة جداول مثل:

  • filter (الافتراضي): المسؤول عن قبول أو رفض الحزم.

  • nat: للتحكم في ترجمة عناوين الشبكة.

  • mangle: لتعديل الحزم.

  • raw: لإعداد الحزم قبل معالجتها.

  • security: للتحكم الأمني الإضافي.

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

bash
sudo iptables -t nat -L -v -n --line-numbers

حيث يمكن استبدال nat بأي جدول آخر.

3. سرد قواعد IPv6 باستخدام ip6tables

إذا كان النظام يدعم IPv6، يتم استخدام أمر مماثل مع ip6tables:

bash
sudo ip6tables -L -v -n --line-numbers

كيفية حذف قواعد IPTables

تُعد عملية حذف قواعد IPTables ضرورة في عدة حالات مثل تعديل سياسات الأمان، إزالة قواعد خاطئة أو غير مستخدمة، أو إعادة ضبط جدار الحماية.

1. حذف قاعدة محددة باستخدام رقم السطر

عند سرد القواعد باستخدام الخيار --line-numbers، يظهر رقم كل قاعدة. يمكن حذف قاعدة معينة باستخدام رقم السطر ورمز السلسلة (Chain) التي تنتمي إليها.

صيغة الأمر:

bash
sudo iptables -D [CHAIN] [LINE_NUMBER]

مثال عملي:

إذا أردت حذف القاعدة رقم 3 من السلسلة INPUT:

bash
sudo iptables -D INPUT 3

ملاحظة مهمة: بعد حذف قاعدة، تتغير أرقام السطور لبقية القواعد تلقائيًا.

2. حذف قاعدة باستخدام نفس الصيغة التي أضيفت بها

يمكن حذف القاعدة بتكرار نفس الأمر الذي أُضيفت به ولكن مع استبدال -A (Add) بـ -D (Delete). مثال:

إضافة قاعدة:

bash
sudo iptables -A INPUT -s 192.168.1.10 -j DROP

حذف نفس القاعدة:

bash
sudo iptables -D INPUT -s 192.168.1.10 -j DROP

3. حذف كل قواعد سلسلة معينة

لحذف كل القواعد ضمن سلسلة معينة مثل INPUT، يمكن استخدام الأمر:

bash
sudo iptables -F INPUT

و -F تعني Flush أي تفريغ.

لحذف كل قواعد جدار الحماية:

bash
sudo iptables -F

4. حذف جدول معين بالكامل

لا يمكن حذف الجداول نفسها من IPTables، لكن يمكن تفريغ كل قواعد الجدول:

bash
sudo iptables -t nat -F

خطوات عملية متكاملة لسرد وحذف قواعد IPTables

  1. عرض القواعد مع أرقامها

    تنفيذ:

    bash
    sudo iptables -L -v -n --line-numbers

    لمعرفة القواعد الموجودة وأرقامها.

  2. تحديد القواعد المراد حذفها

    مراجعة القائمة وتحديد أرقام القواعد التي تحتاج إلى حذف.

  3. حذف القواعد المحددة

    حذف القواعد باستخدام الأمر:

    bash
    sudo iptables -D [CHAIN] [LINE_NUMBER]
  4. التأكد من حذف القواعد

    إعادة عرض القواعد باستخدام الأمر الأول للتأكد من نجاح الحذف.


الحفاظ على التغييرات وحفظ القواعد

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

1. حفظ قواعد IPTables

  • على توزيعات ديبيان وأوبونتو:

bash
sudo iptables-save > /etc/iptables/rules.v4
  • على توزيعات ريدهات وCentOS:

bash
sudo service iptables save

أو استخدام أدوات مثل firewalld أو iptables-persistent للحفاظ على القواعد.


جداول مقارنة بين أوامر عرض وحذف قواعد IPTables

الوظيفة الأمر الوصف
عرض جميع قواعد filter sudo iptables -L -v -n --line-numbers يعرض جميع قواعد سلسلة filter مع أرقامها
عرض قواعد nat sudo iptables -t nat -L -v -n --line-numbers يعرض قواعد جدول nat
حذف قاعدة معينة sudo iptables -D [CHAIN] [LINE_NUMBER] حذف قاعدة بناءً على رقم السطر
حذف قاعدة محددة sudo iptables -D INPUT -s 192.168.1.10 -j DROP حذف قاعدة محددة باستخدام نفس الصيغة
تفريغ سلسلة sudo iptables -F INPUT حذف جميع القواعد في سلسلة محددة
تفريغ كل القواعد sudo iptables -F حذف جميع قواعد جدار الحماية

نصائح وأفضل ممارسات عند التعامل مع IPTables

  • عمل نسخ احتياطية: من الضروري قبل إجراء أي تعديل كبير على قواعد IPTables أخذ نسخة احتياطية للقواعد الحالية عبر:

    bash
    sudo iptables-save > ~/iptables-backup-$(date +%F).txt
  • التدرج في التعديلات: حذف القواعد بشكل تدريجي وعدم حذف مجموعة كبيرة دفعة واحدة لتجنب قطع الاتصال أو التسبب بمشاكل في الشبكة.

  • التحقق من قواعد IPv6: تأكد من مراجعة قواعد ip6tables إذا كان النظام يستخدم IPv6.

  • استخدام الأوامر بحذر: تجنب تنفيذ الأوامر كـ iptables -F أو iptables -X دون فهم التأثير الكامل على النظام، لأنها قد تترك النظام مكشوفاً.

  • توثيق التغييرات: الاحتفاظ بسجل للتعديلات التي تتم على قواعد IPTables لتسهيل المتابعة والرجوع عند الحاجة.


الخلاصة

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

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


المراجع

  1. وثائق IPTables الرسمية: https://netfilter.org/projects/iptables/index.html

  2. كتاب Linux Firewalls: Enhancing Security with nftables and Beyond – Oskar Andreasson, Wiley.

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