منتدى استراحات زايد

منتدى استراحات زايد (http://vb.ma7room.com/)
-   منتدى أخبار المواقع والمنتديات العربية والأجنبية (http://vb.ma7room.com/f183.html)
-   -   الجدار الناري IPTables (http://vb.ma7room.com/t1304645.html)

محروم.كوم 08-24-2013 02:40 PM

الجدار الناري 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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227