[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