الجدار الناري IPTables بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته ما يعلم مستخدمي أنظمة لينكس أن الجدار الناري الإفتراضي الخاص بأنظمة لينكس هو IPTables، وسوف أتطرق بشكل جداً مختصر عن كيفية التعامل مع هذا الجدار الناري الجبار والرائع والفعال بطريقة تؤدي إلى فتح أو إغلاق أي منفذ Port تريده بشكل جداً مبسط وفعال. مع كل تثبيت لأحد أنظمة لينكس، يقوم الجدار الناري بتفعيل نفسه بدون أي تدخل من قبل المستخدم، وغالباً ما يقوم بتفعيل القواعد Rules الإفتراضية لمنع الإتصالات الخارجية من الوصول إلى أحد الخدمات التي تعمل بعد تثبيت أحد أنظمة لينكس. لذلك، سوف أتطرق وبشكل مختصر عن كيفية التعامل مع الجدار الناري لتستطيع التحكم به بشكل سلسل. لنبدأ بشكل متسلسل. إستعراض القواعد الحالية للجدار الناري: رمز PHP: # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination كما نرى، السطر الثاني رمز PHP: Chain INPUT (policy ACCEPT) يبين أن القاعدة الإفتراضية للإتصالات القادمة إلى نظامك هي “السماح”، بما معناه أنه في حالة وجود خدمة، مثلاً DNS تعمل في جهازك، سوف يستطيع أي شخص من الوصول لها وإستخدامها. السطر الرابع رمز PHP: Chain FORWARD (policy ACCEPT) يوضح أن جميع الإتصالات “المارة” من خلال جهازك مسموح بها، هذه مستخدمة في حالة تحويل جهازك إلى Router أو إستخدامك لأجهازك كمستضيف لأنظمة تخيلية. السطر السادس رمز PHP: Chain OUTPUT (policy ACCEPT) يوضح أن جميع الإتصالات الخارجة من جهازك مسموح بها، وهذه القاعدة غالباً تبقى كما هي إلا في بعض الحالات. لنبدأ بالتعامل مع قواعد الجدار الناري بحيث نتنتهي بإعداد جدار ناري معد بشكل صحيح 100% يحمي السيرفر أو جهازك الشخصي. سوف نقوم بإغلاق جميع الإتصالات الواردة للسيرفر والمارة من خلاله بإستثناء ماقام السيرفر ببدء هذا الإتصال وسوف نسمح بجميع الإتصالات الخارجة من خلال السيرفر وسوف نسمح لجميع الأشخاص بالدخول إلى السيرفر عن طريق HTTP وسوف نسمح لمستخدمي الشبكة الداخلية فقط بالدخول إلى السيرفر عن طريق SSH. 1- دائماً قبل البدء بتعديل قواعد الجدار الناري تأكد أن أول قاعدة هي السماح لجميع الإتصالات بالدخول لكي لا يحظر الجدار الناري إتصالك، ثم نقوم بتعديلها عند الإنتهاء: رمز PHP: iptables -P INPUT ACCEPT 2- قم بمسح جميع قواعد الجدار الناري والتي غالباً تكون إفتراضية عند تركيب نظامك: رمز PHP: iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD 3- إسمح بجميع الإتصالات الواردة لجهازك من نفس الجهاز، أو ما يسمى loopback traffic: رمز PHP: iptable -A INPUT -s localhost -j ACCEPT 4- قم بالسماح بالحزم Packets الواردة إلى جهازك ومنشىء هذة الباكتس هو جهازك: [PHP]iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT[/PHP 5- إذا أردت أن تسمح المواقع الخارجية بالإتصال بسيرفرك عن طريق خدمة HTTP فقط، علماً أن عنوان الأي بي 0/0 يقصد به جميع عناوين الأي بيات حول العالم، قم بالتالي: رمز PHP: iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT 6- قم بالسماح لشبكتك الداخلية بالوصول إلى سيرفرك عن طريق SSH، على إفتراض أن نطاق عناوين شبكتك الداخلية هو 10.0.0.0/8: رمز PHP: iptables -A INPUT -s 10.0.0.0/8 --p tcp --dport 22 -j ACCEPT 7- تم الإنتهاء من تحديد القواعد الرئيسية للجدار الناري لسيرفر يقدم خدمة HTTP، والأن يجب عليك أن تمنع جميع الأتصالات الواردة للسيرفر بجعل القاعدة الإفتراضية للإتصالات القادمة هي المنع: رمز PHP: iptables -P INPUT DROP 8- قم بالسماح بجميع الإتصالات الخارجة من السيرفر كانت إتصالات لسيرفر خارجي يقدم خدمة DNS أو لسيرفر خارجي يقدم خدمة HTTP على سبيل المثال سيرفرات التحديثات: رمز PHP: iptables -P OUTPUT ACCEPT 9- قم بمنع إستخدم السيرفر ك Router، علماً أنه يجب أن تسمح بهذة القاعدة عندما يعمل السيرفر الخاص بك ك Virtual Host: رمز PHP: iptables -P FORWARD DROP 10- عند رغبتك بمنع IP معين من الوصول إلى خدمة HTTP في سيرفرك، قم بالتالي: رمز PHP: iptables -A INPUT -s 77.66.55.44 -p tcp --dport 80 -j DROP 11- وتستطيع منع شبكة كاملة من الوصول إلى خدمة HTTP في التي يقدمها السيرفر كالتالي: رمز PHP: iptables -A INPUT -s 192.168.5.0/24 -j -p tcp --dport 80 -j DROP 12- وتستطيع أن تستخدم القاعدة الشرطية if not، بحيث تمنع أو تسمح بناء على هذا الشرط بإستخدام علامة التعجب !، كالتالي: رمز PHP: iptables -A INPUT \! -s 77.66.55.44 -p tcp --dport 80 -j ACCEPT القاعدة بالأعلى توضح أنه سوف يتم السماح بجميع عناوين الأيبي بالدخول إلى خدمة HTTP عبر المنفذ Port 80 إلا في حالة كون عنوان الأي بي هو 77.66.55.44 والذي سوف يتم منعه. 13- قم بتخزين هذة القواعد ليتم إستعادتها عن إعادة تشغيل السيرفر، لأنظمة ريدهات لينكس والأنظمة المبنية عليها مثل فيدورا و CentOS: رمز PHP: iptables-save chkconfig iptables on 14- ﻷنظمة Deb، مثل ديبيان وأبونتو و Mint، قم بتحميل الحزمة التالية ونفذ الأوامر لتعمل تماماً كما في أنظمة ريدهات لينكس: رمز PHP: apt-get update apt-get install iptables-persistent iptables-save > /etc/iptables/rules.v4 نقاط : 1- الخيار –state يقول بتفعيل موديول state وهو المسوؤل عن حالة الباكت. 2- الخيار –dport يقصد به المنفذPort المستهدف Target Port. 3- الخيار –p tcp يقصد به أن نوع البروتوكول TCP، يمكنك تغيره إلى UDP عند الحاجة. 4- مهم جداً أن تستخدم إسلوب المنع بشكل عام والسماح لبعض الأيبيات كما فعلنا بالأعلى في جميع قواعد الجدران النارية والسيرفرات. |
الساعة الآن 02:23 PM |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By
Almuhajir