شرح مفصل لسرد وحذف قواعد جدار IPTables الناري
يُعتبر نظام جدار الحماية IPTables أحد أهم الأدوات في عالم إدارة الشبكات وحماية الخوادم، فهو يشكل العمود الفقري للتحكم في حركة المرور الشبكية الواردة والصادرة على أنظمة لينوكس. من خلاله، يتمكن مدير النظام من وضع قواعد دقيقة تسمح أو تمنع مرور البيانات بناءً على عدة معايير مختلفة، مما يعزز أمان النظام بشكل كبير. سنتناول في هذا المقال شرحًا مفصلًا عن كيفية سرد قواعد IPTables، ثم كيفية حذفها بطريقة سليمة ومنظمة.
مقدمة عن IPTables
قبل الخوض في كيفية سرد وحذف القواعد، من الضروري فهم ماهية IPTables ودورها. IPTables هو أداة تُستخدم لإدارة جدار الحماية في نواة نظام لينوكس. تعتمد IPTables على مجموعة من الجداول التي تحتوي بدورها على سلاسل Chains، والتي تضم قواعد Rules تتحكم بحركة مرور الحزم.
كل قاعدة من قواعد IPTables تحدد شروطًا معينة (مثل عنوان IP، المنفذ، البروتوكول، الحالة، وغيرها) وتنص على إجراء يتم اتخاذه عند تلبية هذه الشروط (مثل قبول الحزمة، رفضها، أو تسجيلها).
كيفية سرد قواعد IPTables
1. عرض جميع قواعد IPTables الحالية
لعرض جميع القواعد الموجودة في جدار الحماية، يتم استخدام الأمر التالي:
bashsudo iptables -L -v -n --line-numbers
شرح مفصل للعناصر في هذا الأمر:
-
-L: يقوم بعرض القواعد الموجودة في الجداول الافتراضية (filter table). -
-v: يعرض التفاصيل الإضافية مثل عدد الحزم التي تطابق القاعدة. -
-n: يعرض العناوين والأرقام دون محاولة حل أسماء النطاقات أو الخدمات، مما يجعل الأداء أسرع. -
--line-numbers: يضيف أرقام ترتيب لكل قاعدة، وهو أمر مهم عند الرغبة في حذف قواعد معينة.
2. سرد قواعد جداول محددة
يتوفر IPTables على عدة جداول مثل:
-
filter(الافتراضي): المسؤول عن قبول أو رفض الحزم. -
nat: للتحكم في ترجمة عناوين الشبكة. -
mangle: لتعديل الحزم. -
raw: لإعداد الحزم قبل معالجتها. -
security: للتحكم الأمني الإضافي.
لعرض قواعد جدول معين، يستخدم الأمر:
bashsudo iptables -t nat -L -v -n --line-numbers
حيث يمكن استبدال nat بأي جدول آخر.
3. سرد قواعد IPv6 باستخدام ip6tables
إذا كان النظام يدعم IPv6، يتم استخدام أمر مماثل مع ip6tables:
bashsudo ip6tables -L -v -n --line-numbers
كيفية حذف قواعد IPTables
تُعد عملية حذف قواعد IPTables ضرورة في عدة حالات مثل تعديل سياسات الأمان، إزالة قواعد خاطئة أو غير مستخدمة، أو إعادة ضبط جدار الحماية.
1. حذف قاعدة محددة باستخدام رقم السطر
عند سرد القواعد باستخدام الخيار --line-numbers، يظهر رقم كل قاعدة. يمكن حذف قاعدة معينة باستخدام رقم السطر ورمز السلسلة (Chain) التي تنتمي إليها.
صيغة الأمر:
bashsudo iptables -D [CHAIN] [LINE_NUMBER]
مثال عملي:
إذا أردت حذف القاعدة رقم 3 من السلسلة INPUT:
bashsudo iptables -D INPUT 3
ملاحظة مهمة: بعد حذف قاعدة، تتغير أرقام السطور لبقية القواعد تلقائيًا.
2. حذف قاعدة باستخدام نفس الصيغة التي أضيفت بها
يمكن حذف القاعدة بتكرار نفس الأمر الذي أُضيفت به ولكن مع استبدال -A (Add) بـ -D (Delete). مثال:
إضافة قاعدة:
bashsudo iptables -A INPUT -s 192.168.1.10 -j DROP
حذف نفس القاعدة:
bashsudo iptables -D INPUT -s 192.168.1.10 -j DROP
3. حذف كل قواعد سلسلة معينة
لحذف كل القواعد ضمن سلسلة معينة مثل INPUT، يمكن استخدام الأمر:
bashsudo iptables -F INPUT
و -F تعني Flush أي تفريغ.
لحذف كل قواعد جدار الحماية:
bashsudo iptables -F
4. حذف جدول معين بالكامل
لا يمكن حذف الجداول نفسها من IPTables، لكن يمكن تفريغ كل قواعد الجدول:
bashsudo iptables -t nat -F
خطوات عملية متكاملة لسرد وحذف قواعد IPTables
-
عرض القواعد مع أرقامها
تنفيذ:bashsudo iptables -L -v -n --line-numbersلمعرفة القواعد الموجودة وأرقامها.
-
تحديد القواعد المراد حذفها
مراجعة القائمة وتحديد أرقام القواعد التي تحتاج إلى حذف. -
حذف القواعد المحددة
حذف القواعد باستخدام الأمر:bashsudo iptables -D [CHAIN] [LINE_NUMBER] -
التأكد من حذف القواعد
إعادة عرض القواعد باستخدام الأمر الأول للتأكد من نجاح الحذف.
الحفاظ على التغييرات وحفظ القواعد
بعد تعديل القواعد عن طريق الحذف أو الإضافة، لا تبقى هذه التغييرات محفوظة بعد إعادة تشغيل النظام ما لم يتم حفظها يدويًا.
1. حفظ قواعد IPTables
-
على توزيعات ديبيان وأوبونتو:
bashsudo iptables-save > /etc/iptables/rules.v4
-
على توزيعات ريدهات وCentOS:
bashsudo 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 أخذ نسخة احتياطية للقواعد الحالية عبر:
bashsudo iptables-save > ~/iptables-backup-$(date +%F).txt -
التدرج في التعديلات: حذف القواعد بشكل تدريجي وعدم حذف مجموعة كبيرة دفعة واحدة لتجنب قطع الاتصال أو التسبب بمشاكل في الشبكة.
-
التحقق من قواعد IPv6: تأكد من مراجعة قواعد ip6tables إذا كان النظام يستخدم IPv6.
-
استخدام الأوامر بحذر: تجنب تنفيذ الأوامر كـ
iptables -Fأوiptables -Xدون فهم التأثير الكامل على النظام، لأنها قد تترك النظام مكشوفاً. -
توثيق التغييرات: الاحتفاظ بسجل للتعديلات التي تتم على قواعد IPTables لتسهيل المتابعة والرجوع عند الحاجة.
الخلاصة
إدارة قواعد IPTables تمثل مهارة أساسية لأي مسؤول نظام أو مهندس شبكة، حيث تمكن من التحكم الكامل في تدفق البيانات وتأمين النظام ضد التهديدات. عملية سرد القواعد تساعد في معرفة الحالة الراهنة لجدار الحماية بدقة، أما حذف القواعد فيمكن من تعديل السياسات الأمنية بما يتناسب مع متطلبات العمل.
استخدام الأوامر بشكل صحيح، وفهم بنية IPTables، والالتزام بممارسات الحفظ والتوثيق، جميعها عوامل ضرورية لتحقيق إدارة فعالة وآمنة لجدار الحماية.
المراجع
-
وثائق IPTables الرسمية: https://netfilter.org/projects/iptables/index.html
-
كتاب Linux Firewalls: Enhancing Security with nftables and Beyond – Oskar Andreasson, Wiley.
هذا المقال يقدم عرضًا شاملاً لتقنيات سرد وحذف قواعد IPTables بطريقة مفصلة ومهنية، مما يمكن القارئ من إدارة جدار الحماية بكفاءة عالية.

