Некоторые из ICMP запросов могут быть использованы со всякими плохими мыслями, поэтому лучше запретить их выполнение.
Полный список типов запросов/ответов приведен ниже:
0 – echo reply (echo-ответ, пинг)3 – destination unreachable (адресат недосягаем)4 – source quench (подавление источника, просьба посылать пакеты медленнее)5 – redirect (редирект)8 – echo request (echo-запрос, пинг)9 – router advertisement (объявление маршрутизатора)10 – router solicitation (ходатайство маршрутизатора)11 – time-to-live exceeded (истечение срока жизни пакета)12 – IP header bad (неправильный IP-заголовок пакета)13 – timestamp request (запрос значения счетчика времени)14 – timestamp reply (ответ на запрос значения счетчика времени)15 – information request (запрос информации)16 – information reply (ответ на запрос информации)17 – address mask request (запрос маски сети)18 – address mask reply (ответ на запрос маски сети)
Вот такие правила получились у меня:
cmd=»ipfw -q add»
pif=»em0″
#Enable allow from world to me some types of ICMP
$cmd 00300 allow icmp from any to me in via $pif icmptype 3,8,12
#Enable some types of ICMP from me to world
$cmd 00310 allow icmp from me to any out via $pif icmptype 0,3,4,11,12
Так как последним у меня стоит правило «разрешать все», то запретим прохождение «лишних» пакетов уже тут:
#Disable ICPM any another
$cmd 00320 deny log icmp from any to me in via $pif icmptype 5,9,10,13,15,17
После всего, не забудем перезагрузить IPFW:
# /etc/rc.d/ipfw restart
net.inet.ip.fw.enable: 1 -> 0
net.inet6.ip6.fw.enable: 1 -> 0
Firewall rules loaded.
Firewall logging enabled.
По материалам www.synack.ru