Это для моей домашней машины. Вот правила:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        7   484 ACCEPT     all  --  lo     any     anywhere             anywhere            
2        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
3        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:domain
4        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
5       99  7040 DROP       all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 70 packets, 5461 bytes)
num   pkts bytes target     prot opt in     out     source               destination 

Однако, как только я добавлю правило 5, я не смогу подключиться ни к одной веб-странице, пока не удалю ее. Я также пытался не иметь правила 5 и иметь полицию по умолчанию DROP (с -P) для цепочки INPUT, которая должна быть такой же, верно? Это тоже не сработало.

Спасибо

2 ответа2

3

Потому что общение двунаправлено, а ваши правила не имеют статуса.

Когда вы запрашиваете веб-страницу, ответ должен вернуться на ваш компьютер, и это будет происходить через цепочку INPUT.

Правила, которые вы создали, в основном позволят вашему компьютеру выступать в качестве сервера для http/https/dns и ничего больше.

Добавление этих правил с состоянием в основном разрешило бы любое исходящее соединение.

/sbin/iptables -t filter -I OUTPUT -m state --state NEW\,ESTABLISHED -j ACCEPT 
/sbin/iptables -t filter -I INPUT -m state --state ESTABLISHED\,RELATED -j ACCEPT 
0

Это не работает должным образом, потому что вы фильтруете DNS неправильно. DNS использует udp не tcp как вы настроили. Когда вы добавляете правило DROP оно запускает ваши DNS-пакеты и удаляет их. В правиле 3 измените -p tcp на -p udp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .