Зачем оно надо знают все. Ну а если не знаете — то оно вам ненадо.
Фильтровать пинги на iptables — дело неблагодарное и нелепое. Всё намного проще.
Делаем так, чтобы наша машинка не отвечала на пинги (по ipv4):
root@host:~# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Возвращаем всё на место:
root@host:~# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Ну и более кошерный способ на машинках с нестабильным аптаймом (запускать именно от рута):
root@host:~# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
И применим правило:
root@host:~# sysctl -p
Чтобы обратно всё вернуть — замените 1 на 0 в последней строке и сделайте sysctl -p. После ребута правила из sysctl.conf поднимутся.
Если вы всё же упрямый и вам хочется сделать это через iptables, то:
root@host:~# iptables -A INPUT -p icmp –icmp-type 8 -j DROP
Хотя у iptables есть и полезное применение в этом направлении. Чтобы запретить пинги на интерфейс eth0:
root@host:~# iptables -A INPUT -i eth0 -p icmp –icmp-type 8 -j DROP
Исходящие пинги при всём этом работают отлично.
Хай у меня возникла такая проблема, мне надобно закрыть внешний интерфейс от пинга я пишу по вашему примеру:
iptables -A INPUT -i eth0 -p icmp –icmp-type 8 -j DROP
он же мне в ответ:
iptables v1.4.8: multiple -i flags not allowed
тогда я попробовал так:
iptables -A INPUT -p icmp –icmp-type 8 -j DROP
на что он мне в ответ
Bad argument `8′
гугл мне не сильно помог… ман по iptables тоже не подтолкнул к истине…
Напрашивается, что —icmp-type вы написали с одним дефисом.
Либо на eth0 у вас висят алиасы, я не помню как с ними iptables работает.
правильно напрашивается)))
надо же было так… вместо 2ух одно тире… мда..
я уж начал все подряд перерывать искать чего то там))
Спасибо за помощь