تحتوي جميع أنظمة التشغيل المعتمدة على Linux kernel على جدار حماية مدمج يقوم بمراقبة وتصفية حركة المرور الواردة والصادرة استنادًا إلى القواعد التي يحددها المستخدم أو النظام الأساسي. في توزيع CentOS 7 افتراضيًا ، يتم تنفيذ هذه الوظيفة بواسطة الأداة المساعدة iptables ، بالتفاعل مع جدار الحماية netfilter المدمج. في بعض الأحيان ، يتعين على مسؤول النظام أو مدير الشبكة تخصيص تشغيل هذا المكون عن طريق كتابة القواعد المناسبة. في مقال اليوم ، نود التحدث عن أساسيات تكوين iptables في نظام التشغيل المذكور أعلاه.
محتوى
الأداة نفسها متاحة للعمل فور الانتهاء من تثبيت CentOS 7 ، ولكن بالإضافة إلى ذلك ، ستحتاج إلى تثبيت بعض الخدمات ، والتي سنناقشها لاحقًا. في هذا النظام الأساسي ، هناك أداة مدمجة أخرى تؤدي وظيفة جدار الحماية تسمى FirewallD. لتجنب التعارضات أثناء العمل الإضافي ، نوصي بتعطيل هذا المكون. للحصول على إرشادات مفصلة حول هذا الموضوع ، راجع موادنا الأخرى على الرابط التالي.
مزيد من التفاصيل: تعطيل firewallD في CentOS 7
كما تعلم ، يمكن للنظام استخدام IPv4 و IPv6. سنركز اليوم على مثال IPv4 ، ولكن إذا كنت ترغب في التهيئة لبروتوكول آخر ، فستحتاج إلى استخدام ip6tables بدلاً من أمر iptables في وحدة التحكم.
بادئ ذي بدء ، أضف مكونات إضافية من الأداة التي تعتبر اليوم إلى النظام. وسوف تساعد في وضع القواعد وغيرها من المعالم. يتم التحميل من المستودع الرسمي ، لذلك لا يستغرق الكثير من الوقت.
sudo yum install iptables-services
مسؤولاً عن تثبيت sudo yum install iptables-services
. أدخله واضغط على مفتاح Enter . sudo iptables --version
. أصبح نظام التشغيل جاهزًا تمامًا لمزيد من التكوين لجدار الحماية من خلال أداة iptables . نحن نقدم التعرف على تكوين العناصر ، بدءًا من إدارة الخدمات.
إدارة طريقة تشغيل iptables مطلوبة في الحالات التي تحتاج فيها إلى التحقق من تأثير قواعد معينة أو ببساطة إعادة تشغيل المكون. يتم ذلك باستخدام أوامر مدمجة.
sudo service iptables stop
ثم اضغط على المفتاح Enter لإيقاف الخدمات. sudo service iptables start
. يتوفر مثل هذا إعادة التشغيل أو بدء أو إيقاف الأداة في أي وقت ، تذكر فقط إرجاع قيمة الإرجاع عندما تكون مطلوبة.
كما ذكرنا سابقًا ، تتم إدارة جدار الحماية عن طريق إضافة القواعد يدويًا أو تلقائيًا. على سبيل المثال ، قد تصل بعض التطبيقات الإضافية إلى الأداة عن طريق تعديل سياسات معينة. ومع ذلك ، فإن معظم هذه الإجراءات لا تزال تتم يدوياً. تتوفر قائمة بجميع القواعد الحالية من خلال الأمر sudo iptables -L
.
في النتيجة المعروضة ، ستكون هناك معلومات عن ثلاث سلاسل: "INPUT" و "OUTPUT" و "FORWARD" - حركة المرور الواردة والصادرة والموجهة إلى الأمام ، على التوالي.
يمكنك تحديد حالة كل السلاسل عن طريق كتابة sudo iptables -S
.
إذا كانت القواعد التي تراها لا تناسبك ، فيتم إزالتها ببساطة. يتم مسح القائمة بأكملها مثل هذا: sudo iptables -F
. بعد التنشيط ، سيتم مسح القواعد تمامًا لجميع الدوائر الثلاث.
عندما يكون من الضروري التأثير على السياسات فقط من أي سلسلة واحدة ، تتم إضافة وسيطة إضافية إلى السطر:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
يعني غياب جميع القواعد أنه لا يتم الآن تطبيق إعدادات تصفية حركة المرور على أي من الأطراف. بعد ذلك ، يقوم مسؤول النظام بالفعل بتعيين معلمات جديدة باستخدام نفس وحدة التحكم والأمر والوسائط المتعددة.
يتم تكوين كل دائرة بشكل منفصل لاستقبال أو حظر حركة المرور. من خلال تحديد قيمة محددة ، يمكنك التأكد من ، على سبيل المثال ، سيتم حظر كل حركة المرور الواردة. للقيام بذلك ، يجب أن يكون الأمر sudo iptables --policy INPUT DROP
، حيث INPUT هو اسم الدائرة ، و DROP هي قيمة إعادة sudo iptables --policy INPUT DROP
.
بالضبط يتم تعيين نفس المعلمات للدوائر الأخرى ، على سبيل المثال ، sudo iptables --policy OUTPUT DROP
. إذا كان من الضروري تعيين القيمة لاستقبال حركة المرور ، فسيتم تغيير DROP إلى ACCEPT sudo iptables --policy INPUT ACCEPT
.
كما تعلم ، تعمل جميع تطبيقات الشبكة وعملياتها عبر منفذ محدد. من خلال حظر عناوين معينة أو السماح بها ، يمكنك التحكم في الوصول إلى جميع أهداف الشبكة. دعنا نحلل ميناء الشحن باستخدام المثال 80 . في "المحطة الطرفية" سيكون كافياً لإدخال الأمر sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
، حيث -A هي إضافة قاعدة جديدة ، INPUT هو إشارة دارة ، -P هو تعريف بروتوكول ، في هذه الحالة TCP ، و - المنفذ هو منفذ الوجهة.
ينطبق الأمر نفسه بالضبط على المنفذ 22 ، والذي تستخدمه خدمة SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.
لحظر المنفذ المحدد ، يتم استخدام سلسلة من نفس النوع تمامًا ، فقط في النهاية يتم تغيير ACCEPT إلى DROP . والنتيجة هي ، على سبيل المثال ، sudo iptables -A INPUT -p tcp --dport 2450 -j DROP
.
يتم تخزين كل هذه القواعد في ملف التكوين ويمكنك عرضها في أي وقت. تذكر ، يتم ذلك من خلال sudo iptables -L
. إذا كان يجب حل عنوان IP الخاص بالشبكة إلى جانب المنفذ ، فسيتم تعديل الخط بشكل طفيف - بعد إضافة TPC ، ثم يتم إضافة العنوان نفسه. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT
، حيث 12.12.12.12/32 هو عنوان IP المطلوب.
يحدث الحظر على نفس المبدأ ، مع تغيير قيمة ACCEPT إلى DROP في النهاية. ثم اتضح ، على سبيل المثال ، sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP
.
ICMP (بروتوكول رسائل التحكم في الإنترنت) هو بروتوكول يمثل جزءًا من TCP / IP ويستخدم لإرسال رسائل الخطأ وحالات الطوارئ عند العمل مع حركة المرور. على سبيل المثال ، عند عدم توفر الخادم المطلوب ، تؤدي هذه الأداة وظائف الخدمة. تسمح لك الأداة المساعدة iptables بحظرها من خلال جدار الحماية ، ويمكنك القيام بذلك باستخدام الأمر sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
. سوف تمنع طلباتك ومن خادمك.
يتم حظر الطلبات الواردة بشكل مختلف قليلاً. ثم تحتاج إلى إدخال sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP
. بعد تنشيط هذه القواعد ، لن يستجيب الخادم لطلبات اختبار الاتصال.
في بعض الأحيان تخضع الخوادم لهجمات DDoS أو غيرها من الإجراءات غير المصرح بها من قبل المتسللين. سوف يسمح لك التكوين الصحيح لجدار الحماية بحماية نفسك من هذا النوع من الاختراقات. لبداية ، نوصي بتعيين مثل هذه القواعد:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
في وحدة التحكم iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
، حيث - 20 / دقيقة حد أقصى لتكرار النتائج الإيجابية. يمكنك تحديد وحدة القياس بنفسك ، على سبيل المثال ، /second, /minute, /hour, /day
. - عدد انفجار الحد - الحد من عدد الحزم التي يتعين تمريرها. يتم تعيين كل القيم بشكل فردي وفقًا لتفضيلات المسؤول. sudo iptables -N block-scan
الأمر. sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
. sudo iptables -A block-scan -j DROP
. تعبير كتلة المسح في هذه الحالات هو اسم الدائرة المستخدمة. الإعدادات المعروضة اليوم هي فقط أساس العمل في أداة إدارة جدار الحماية. في الوثائق الرسمية للأداة المساعدة ، ستجد وصفًا لجميع الحجج والخيارات المتاحة وستكون قادرًا على تكوين جدار الحماية بشكل خاص لطلباتك. أعلاه تعتبر قواعد السلامة القياسية التي تستخدم في معظم الأحيان ، وفي معظم الحالات مطلوبة.