На шлюзе, в цепочке FORWARD iptables организовал фильтрацию IP-шников, как по адресу отправителя, так и по получателю. Но периодически от вышестоящего маршрутизатора получаю ICMP-ответы host unreacheble
IN=eth0 SRC=[вышестоящий маршрутизатор] DST=[реальный IP eth0] LEN=76 TOS=0x00 PREC=0xC0 TTL=246 ID=52574 PROTO=ICMP TYPE=3 CODE=1 [SRC=[реальный IP eth0] DST=192.168.15.3 LEN=48 TOS=0x00 PREC=0x00 TTL=117 ID=36883 DF PROTO=TCP SPT=1775 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0 ]
Т. е., как я понимаю, с моего шлюза уходят пакеты на адрес 192.168.15.3, хотя в iptables это вроде бы должно фильтроваться (см. ниже). ИМХО, в одной из локалок висит машинка с не своим адресом, или в настройках где у неё прописана кривота... Но должны ж эти пакеты рубиться - где грабли, почему не фильтруется?
Чувствую, что красивее настроить маршрутизацию, но не знаю, как "заглушить" адреса 192.168.х.х и 10.х.х.х.
Вот таблица маршрутизации:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[внеш. подсеть] * 255.255.255.224 U 0 0 0 eth0
192.168.103.0 * 255.255.255.0 U 0 0 0 eth3
192.168.102.0 * 255.255.255.0 U 0 0 0 eth2
192.168.101.0 * 255.255.255.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default [внешн. адрес] 0.0.0.0 UG 0 0 0 eth0
Помогите пожалуйста!
Подробности:
Имеется шлюз с MDK 9.2, 4 интерфейса. eth0 смотрит на провайдера, и имеет реальный айпи, eth1-eth3 являются шлюзующими для локалок 192.168.101.0-.103.0
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source [реальный IP eth0]
В цепочке FORWARD рубим пакеты, идущие на "серые адреса":
iptables -A FORWARD -p ALL -i ! eth0 -o eth0 -d 192.168.0.0/16 -j DROP
iptables -A FORWARD -p ALL -i ! eth0 -o eth0 -d 10.0.0.0/8 -j DROP
Всё остальное - пропускаем:
iptables -A FORWARD -i eth1 -s 192.168.101.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.102.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.103.0/24 -o eth0 -j ACCEPT
В цепочке OUTPUT только ESTABLISHED,RELATED:
iptables -A OUTPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT