بسته های ICMP
فایروال ها اغلب ، پیامهای پروتکل کنترل پیام اینترنت ( ICMP ) خاص را مسدود می کنند. ICMP پیامها را تغییر مسیر می دهد و به طور منفرد می توانند وظایف مسیر یابی شما را کنترل نمایند. هر چند نیاز دارید تا بعضی از پیامهای ICMP فعال کنید. مثل پیامهای مورد نیاز برای ping ، traceroute و به طور خاص عملیات غیر قابل دسترسی مقصد در بیشتر حالات نیاز دارید. تا مطمئن شوید که بسته های غیر قابل دسترسی مقصد، مجاز هستند. در غیر اینصورت پرس جو های نام دامنه ممکن است با مشکل روبرو شود. بعضی از رایجترین انواع بسته های ICMP در جدول 6 لیست شده اند. می توانید با عمل --icmp-type یک نوع بسته ICMP از بسته را فعال کنید که یک عدد یا یک نام را که بیان کننده پیام است، به عنوان آرگومانش می گیرد. مثالهای زیر ، استفاده از پیامهای echo-reply ، echo-request و destination-unreachable را فعال می کند که دارای شماره های 0 ، 8 و 3 می باشند.
iptables -A INPUT -j ACCEPT -p icmp -i eth0 --icmp -type echo-reply -d 10.0.0.1
iptables -A INPUT -j ACCEPT -p icmp -i eth0 --icmp -type echo-request -d 10.0.0.1
iptables -A INPUT -j ACCEPT -P icmp -i eth0 --icmp -type destination- unreachable -d 10.0.0.1
جدول 6 : بسته های رایج ICMP
شماره |
نام |
مورد نیاز توسط |
0 |
echo-reply |
Ping |
3 |
Destination-unreachable |
هر ترافیک TCP/UDP |
5 |
Redirect |
reouting ، اگر دیمون مسیریابی در حال اجرا نباشد |
8 |
echo-request |
ping |
11 |
time-exceeded |
traceroute |
لیست قانون آنها شبیه این می باشد :
ACCEPT icmp --0.0.0.0/0 10.0.0.1 icmp type 0
ACCEPT icmp --0.0.0.0/0 10.0.0.1 icmp type 8
ACCEPT icmp --0.0.0.0/0 10.0.0.1 icmp type 3
عملیات ping ، باید بیشتر کنترل شود تا از رفتار امنیتی ping-of-death جلوگیری شود. این کار را به چند روش می توانید انجام دهید. یک روش، مسدود کردن تمام قطعه های ping است. بسته های ping به طور غیر عادی خیلی کوچک هستند با مسدود کردن هر بسته ICMP که یک قطعه است، می توانید حملات ping-of-death را مسدود نمایید. از سوئیچ -f برای نشان دادن قطعه ها استفاده کنید.
iptables -A INPUT -p icmp -j DROP -f
روش دیگر ، محدود کردن تعداد تطابقهای دریافتی برای بسته های ping می باشد. از ماژول limit برای کنترل تعداد تطابقها روی عمل ICMP ping استفاده می کنید. -rn limit را برا استفاده ماژول limit و -limit را برای مشخص کردن تعداد تطابقهای مجاز به کار برید. 1/s ، یک تطابق در هر ثانیه اجازه می دهد.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT