العودة إلى المدونة

عرض وحذف قواعد جدار الحماية Iptables

عرض وحذف قواعد جدار الحماية Iptables

Iptables هو جدار الحماية الأساسي الذي يأتي مع معظم توزيعات Linux بشكل افتراضي. وهو مسؤول عن معالجة أمن الشبكة. وهو يعمل عن طريق مقارنة حزم البيانات بمجموعة من القواعد، وتوجيه النظام لقبول الاتصال أو رفضه أو توجيهه وفقًا للقواعد. في هذا البرنامج التعليمي، سنوضح لك كيفية سرد القواعد وحذفها، والتحقق من عدادات الحزم والبايت ومسحها، وتفريغ السلاسل. هل أنت مستعد؟ لنبدأ!

المتطلبات الأساسية

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

في هذا البرنامج التعليمي، سنستخدم Ubuntu لتوضيح جميع الخطوات. ومع ذلك، يجب أن تعمل بطريقة مماثلة بغض النظر عن التوزيعة.

سرد القواعد

سرد القواعد حسب المواصفات

أولاً، دعنا نتحقق من جميع القواعد النشطة حسب المواصفات. قم بتشغيل الأمر التالي:

iptables list

إذا كنت قد عملت مع إنشاء قواعد iptables من قبل، فربما لاحظت التشابه. تشبه المخرجات الأوامر التي تم استخدامها لإنشائها باستثناء جزء “iptables”. كما أنها تشترك في بنية مماثلة لملفات تكوين قواعد iptables.

سرد سلسلة معينة

دعنا نجرب شيئًا أكثر دقة. بدلاً من الإبلاغ عن جميع قواعد iptables، اطلب من iptables الإبلاغ عن قواعد سلسلة معينة. على سبيل المثال، TCP، INPUT، OUTPUT، وما إلى ذلك. للقيام بذلك، حدد اسم السلسلة بعد علامة “-S”:

list specific chain

سرد القواعد كجداول

يعد عرض الجدول مفيدًا عند مقارنة القواعد المختلفة. استخدم علامة “-L” لإخبار iptables بالإبلاغ عن جميع القواعد النشطة بتنسيق جدول:

list rules as table iptables

يحتوي المخرج على جميع القواعد الحالية مرتبة حسب السلسلة. على غرار القسم السابق، من الممكن أيضًا تصفية مخرجات القائمة بواسطة سلسلة معينة مثل INPUT و TCP و OUTPUT وما إلى ذلك. للقيام بذلك، حدد السلسلة بعد علامة “-L”:

filter by chain

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

  • target: إذا تطابقت حزمة مع القاعدة، فإن هذا القسم يحدد الإجراء الذي يجب اتخاذه. يمكن أن يكون قبول الحزمة، أو إسقاطها، أو تسجيلها، أو إرسالها إلى سلسلة أخرى.
  • prot: يحدد البروتوكول، على سبيل المثال، udp أو tcp أو icmp أو الكل.
  • opt: يشير هذا العمود إلى خيارات IP. ونادراً ما يُستخدم.
  • source: مصدر الحزمة (عنوان IP أو الشبكة الفرعية). يمكن أن تكون القيمة محددة أو في أي مكان.
  • destination: وجهة الحزمة (عنوان IP أو الشبكة الفرعية). يمكن أن تكون القيمة محددة أو في أي مكان.

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

عدد الحزم والحجم الإجمالي

مسح عدادات الحزم والبايت

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

في هذا المثال، سنستخدم سلسلة INPUT. هذه المرة، أضف علامة “-v” التي ترمز إلى الوضع التفصيلي:

package and byte counters iptables

ستلاحظ أن مخرجات الجدول تتضمن الآن حقلين إضافيين: pkts و bytes.

إعادة تعيين عدد الحزم والحجم الإجمالي

في بعض الحالات، قد ترغب في إعادة تعيين العدادات التي شرحناها سابقًا. إذا تم إعادة تشغيل النظام، فستُمسح العدادات تلقائيًا. يمكنك أيضًا فرض إعادة التعيين يدويًا. سنستخدم العلامة “-Z” لإعادة تعيين عدد الحزم والحجم الإجمالي:

Reset packet counts and aggregate size

لاحظ أن هذا الأمر سيعيد تعيين عدادات جميع السلاسل. ومثل الأوامر الأخرى، من الممكن إعادة تعيين العداد لسلاسل معينة. على سبيل المثال، الأمر التالي سيعيد تعيين عدادات سلسلة INPUT:

reset particular counter

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

reset specific rule

حذف القواعد

حذف القواعد حسب المواصفات

هناك طرق متعددة لحذف قواعد iptables. الطريقة الأولى لحذف القواعد هي عن طريق مواصفات القاعدة. للحذف، سنستخدم العلامة “-D” متبوعة بمواصفات القاعدة:

Delete rules by specification

إذا قمت بإضافة أي قاعدة iptables من قبل، فستلاحظ التشابه. الشيء الوحيد الذي تغير هنا هو العلامة “-D” بدلاً من العلامة “-A”.

حذف القواعد حسب السلسلة والرقم

يتطلب حذف القواعد حسب مواصفاتها جهدًا أكبر قليلاً، أليس كذلك؟ ماذا لو كان بإمكاننا حذفها دون الحصول على مواصفات القاعدة؟ لنقم بحذف القواعد حسب السلسلة والرقم الخاصين بها! مقارنة بالطريقة الأولى (الحذف حسب المواصفات)، فإن هذه الطريقة أسهل نسبيًا حيث لا يتعين عليك الحصول على المواصفات الكاملة بين يديك.

تتطلب هذه الطريقة السلسلة ورقم السطر للقاعدة المستهدفة. من أين نحصل على رقم السطر؟ قم بتشغيل الأمر التالي لتحديد ذلك:

Delete rules by chain and number - get line number

ستحصل على مخرجات كبيرة تحتوي على جميع القواعد وأرقام أسطرها. لتضييق نطاق المخرجات، استخدم اسم السلسلة بعد العلامة “-L”:

Delete rules by chain and number - filter

في المخرجات، ستلاحظ العمود الإضافي num. وهو يشير إلى رقم السطر لكل قاعدة. بمجرد تحديد الرقم المستهدف، قم بإجراء الحذف:

delete iptables rule

تفريغ السلاسل

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

iptables rules export

تفريغ سلسلة واحدة

دعنا نتعرف على كيفية تفريغ السلسلة. استخدم العلامة “-F” متبوعة بالسلسلة المستهدفة:

flush a single chain

تفريغ جميع السلاسل

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

هل أنت جاهز؟ قم بتفريغ جميع سلاسل iptables عن طريق تشغيل الأمر التالي:

flush all changes

تفريغ القواعد، وحذف السلاسل، وقبول الكل

إن تنفيذ الخطوات الموضحة في هذا القسم سيؤدي فعليًا إلى تعطيل جدار الحماية، مما يسمح بمرور حركة مرور الشبكة دون قيود. على غرار القسم السابق، نوصي بالحصول على نسخة احتياطية لـ iptables قبل المتابعة. أولاً، سنقوم بتغيير السياسة الافتراضية لكل من السلاسل المدمجة إلى ACCEPT. وذلك لضمان عدم قيام iptables بحظر دخولك إلى الخادم الخاص بك عبر SSH:

Flush rules, delete chains and accept all

الآن، قم بتفريغ جدولي nat و mangle:

 flush nat and mangle tables

 mangle tables

قم بتفريغ جميع السلاسل وحذف جميع السلاسل غير الافتراضية:

Flush all the chains

 delete all the non-default chains

بعد ذلك، دعنا نتحقق من النتيجة:

iptables result

أفكار نهائية

إن Iptables هو جدار حماية قوي. نأمل أن يكون هذا الدليل مفيدًا في تعليمك كيفية سرد وحذف قواعد جدار حماية iptables. ولا تنسَ التدرب عليها قبل تطبيقها في العالم الحقيقي.

حوسبة سعيدة!

author

Akshay Nagpal

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.