Я пытаюсь настроить iptables, который разрешает трафик только через ssh и перехватывает все, что блокирует все остальное, поступающее в компьютер. Вывод iptables -L выглядит следующим образом
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Вышеуказанное, по-видимому, блокирует все, что поступает в компьютер, кроме SSH, однако оно также блокирует возврат трафика из исходящего запроса. то есть, если я пытаюсь пинговать www.google.com, кажется, что время пытается разрешить DNS. Я предполагаю, что мой DROP блокирует ответ от DNS-запроса.
Кто-нибудь может подсказать мне, как правильно настроить ловушку, чтобы разрешить возврат трафика обратно?
Спасибо,
Мэтью
Используйте -m state --state ESTABLISHED,RELATED
, чтобы соответствовать возвращаемому трафику. Кроме того, вам не нужно включать правило «отбросить все», просто измените цепную политику INPUT на «DROP».
sudo iptables -F INPUT
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT