iptables یکی از ابزارهای اصلی فایروال در سیستمهای لینوکس است و نقش مهمی در امنیت شبکه دارد. اکثر آموزشها روی ساخت قوانین فایروال تمرکز میکنند، اما در این مقاله هدف ما مدیریت قوانین موجود، یعنی مشاهده، حذف و پاکسازی قوانین است.
در این آموزش میآموزید:
-
لیست کردن قوانین iptables
-
مشاهده تعداد بستهها و حجم دادهها برای هر قانون
-
حذف قوانین مشخص
-
پاکسازی یک زنجیره (chain)
-
پاکسازی همه زنجیرهها و جدولها و باز کردن همه ترافیک
نکته: هنگام کار با فایروال مراقب باشید SSH خود را مسدود نکنید (پورت پیشفرض: 22). در صورت از دست دادن دسترسی، باید از طریق کنسول خارج از شبکه به سرور وصل شوید.
پیشنیازها
-
سرور لینوکس با دستور
iptablesنصب شده -
دسترسی
sudo
توجه: این آموزش فقط برای ترافیک IPv4 است. برای IPv6 از
ip6tablesاستفاده کنید.
لیست کردن قوانین iptables
1. نمایش قوانین به صورت دستورها (Specification)
این دستور تمام قوانین فعال را شبیه دستوراتی که هنگام ساخت ایجاد شدهاند نمایش میدهد. برای مشاهده یک زنجیره خاص:
2. نمایش قوانین به صورت جدول
-
گزینه
-nاز DNS lookup جلوگیری میکند و سرعت را افزایش میدهد. -
برای یک زنجیره خاص:
ستونها به این معنا هستند:
-
target: عملی که در صورت تطابق بسته با قانون انجام میشود (ACCEPT, DROP, REJECT)
-
prot: پروتکل (tcp, udp, icmp, all)
-
source/destination: مبدا و مقصد بستهها
-
آخرین ستون: جزئیات اضافی مانند شماره پورت یا وضعیت اتصال
3. نمایش تعداد بستهها و حجم دادهها
برای مشاهده تعداد بستهها و حجم دادههای عبوری از هر قانون:
-
ستون pkts تعداد بستهها
-
ستون bytes حجم دادهها بر حسب بایت
پاکسازی شمارندهها
برای صفر کردن تعداد بستهها و حجم دادهها:
-
برای همه قوانین و زنجیرهها:
-
برای یک زنجیره خاص:
-
برای یک قانون مشخص:
حذف قوانین iptables
1. حذف با استفاده از Specification
توجه: گزینه
-Aهنگام حذف استفاده نمیشود و باید قانون دقیقاً مطابق ایجاد شده باشد.
2. حذف با شماره خط
-
ابتدا شماره خطوط را مشاهده کنید:
-
سپس قانون مورد نظر را حذف کنید:
پاکسازی زنجیرهها (Flush)
1. پاکسازی یک زنجیره
2. پاکسازی همه زنجیرهها
3. پاکسازی همه قوانین، حذف همه زنجیرهها و اجازه دادن به تمام ترافیک
هشدار: این کار فایروال شما را غیرفعال میکند. فقط در صورتی انجام دهید که بخواهید پیکربندی را از نو شروع کنید.
تفاوت iptables -D و iptables -F
| گزینه | کاربرد | مثال |
|---|---|---|
| -D | حذف یک قانون مشخص | sudo iptables -D INPUT 1 |
| -F | حذف همه قوانین یک زنجیره | sudo iptables -F INPUT |
خطاهای رایج
-
No chain/target/match by that name: نام زنجیره یا قانون اشتباه است. با
sudo iptables -nLزنجیرهها را بررسی کنید. -
Rule not being deleted due to mismatch: قانون دقیقاً مطابق ایجاد نشده است، با
iptables -Sمطابقت دهید. -
حذف با شماره خط اشتباه: همیشه با
--line-numbersشماره صحیح را بررسی کنید.
نکات مهم
-
تغییرات iptables به صورت موقت هستند و بعد از ریستارت از بین میروند. برای ذخیره تغییرات:
جمعبندی
حالا شما:
-
قوانین فعال iptables را مشاهده میکنید
-
تعداد بستهها و حجم دادهها را بررسی میکنید
-
قوانین مشخص یا همه قوانین را حذف میکنید
-
زنجیرهها و جدولها را flush میکنید

