Назад | Перейти на главную страницу

Почему iptables не отбрасывает пакеты?

У меня есть следующее правило в нашем файле конфигурации iptables / etc / sysconfig / iptables

-A INPUT -s 84.23.99.97 -j DROP

И когда я делаю iptables --list, я получаю следующее

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  84.23.99.97          anywhere


Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Однако, если я сделаю tcpdump, я все равно смогу увидеть весь этот трафик с этого ip, почему?

tcpdump -ttttn tcp port 1234 | grep 84.23.99.97
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
2010-10-21 23:49:33.828011 IP 84.23.99.97.9061 > myip: Flags [S], seq 3522466008, win 65535, options [mss 1460,sackOK,eol], length 0
2010-10-21 23:49:33.832182 IP 84.23.99.97.64804 > myip: Flags [S], seq 1088176500, win 65535, options [mss 1460,sackOK,eol], length 0
....

tcpdump видит входящий трафик до того, как попадет в iptables. В приведенном выше примере это объясняет, почему вы видите входящие SYN, но не SYN / ACK с вашего компьютера.

Вам нужно сохранить свои правила. Может быть, вы сказали, но не упомянули об этом? Если нет, попробуйте это:% sudo / sbin / service iptables save

Это экспортирует используемые в настоящее время правила и запускает брандмауэр. Независимо от того, что у вас есть в / etc / sysconfig / iptables, вы узнаете, что на самом деле использует брандмауэр.