[Comm] IPTABLES

Igo-aeroflot =?iso-8859-1?q?igo_=CE=C1_aeroflot-don=2Eru?=
Сб Май 31 16:53:07 MSD 2003


Здравствуйте!

Есть скрипт, формирующий правила iptables, запрещающие обмен 
ICMP-сообщениями с неким хостом. Упрощенно он выглядит так:

EXTERNAL_IFACE="ppp0"
IPTABLES="/sbin/iptables"
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -N icmp_in_ppp
$IPTABLES -A icmp_in_ppp -p ICMP --destination 213.180.194.129 -m limit 
--limit 2/minute --limit-burst 4 -j LOG --log-prefix "BAD TO YANDEX ICMP: "
$IPTABLES -A icmp_in_ppp -p ICMP --destination 213.180.194.129 -j DROP
$IPTABLES -A icmp_in_ppp -p ICMP --source 213.180.194.129 -m limit 
--limit 2/minute --limit-burst 4 -j LOG --log-prefix "BAD FROM YANDEX 
ICMP: "
$IPTABLES -A icmp_in_ppp -p ICMP --source 213.180.194.129 -j DROP
$IPTABLES -A INPUT -p ICMP -i $EXTERNAL_IFACE -j icmp_in_ppp

Вот что показывает iptables -L | grep "YANDEX ICMP" после запуска этого 
скрипта:

LOG        icmp --  anywhere             yandex.ru          limit: avg 
2/min burst 4 LOG level warning prefix `BAD TO YANDEX ICMP: '
LOG        icmp --  yandex.ru            anywhere           limit: avg 
2/min burst 4 LOG level warning prefix `BAD FROM YANDEX ICMP: '

А вот что происходит при пинге:

ping -c 1 213.180.194.129
PING 213.180.194.129 (213.180.194.129) 56(84) bytes of data.

--- 213.180.194.129 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

При этом в логе я вижу следующее:

May 31 16:06:32 ugtovar kernel: BAD FROM YANDEX ICMP: IN=ppp0 OUT= MAC= 
SRC=213.180.194.129 DST=80.80.123.168 LEN=84 TOS=0x00 PREC=0x00 TTL=54 
ID=0 DF PROTO=ICMP TYPE=0 CODE=0 ID=37657 SEQ=1

Т.е. пинг вышел наружу, хост 213.180.194.129 вернул ответ, и уже ответ 
был отфильтрован. А почему не был отфильтрован сам запрос?




Подробная информация о списке рассылки community