Я пытаюсь настроить свои iptables для блокировки любого сетевого трафика, кроме HTTP:
iptables -P INPUT DROP #set policy of INPUT to DROP
iptables -P OUTPUT DROP #set policy of OUTPUT to DROP
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
Вывод iptables (iptables -L -v
) дает мне:
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
4 745 ACCEPT tcp -- any any anywhere anywhere tcp spt:http state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 330 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http state NEW,ESTABLISHED
Когда я пытаюсь wget 127.0.0.1
(да, у меня есть веб-сервер, и он работает нормально), я получаю:
--2012-11-14 16:29:01-- http://127.0.0.1/
Connecting to 127.0.0.1:80...
Запрос никогда не заканчивается. Что я делаю неправильно? Я устанавливаю iptables для DROP все по умолчанию и добавить правило для ACCEPT HTTP.