Я только начинаю с iptables и наткнулся на то, чего я не очень понимаю.
К вашему сведению, я следовал инструкциям IptablesHowTo вики-сайта Ubuntu .
Таблицы nat и mangle пусты, сейчас я работаю только с таблицей фильтров.
Проблема
Если я добавлю следующие правила iptables:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... тогда у меня все еще есть доступ к моей машине через ssh, однако для выполнения всех команд iptables требуется около минуты или двух. Это не проблема DNS, -nне меняет ее.
Решение
Если я очищу таблицу и добавлю эти три правила, все будет работать нормально:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
Может кто-нибудь объяснить мне, почему первое правило оказывает такое большое влияние на iptables? Я понимаю, что он позволяет установленным сеансам получать трафик, но зачем он мне, если открыт ssh?
sudo strace …(из корневой оболочки), чтобы увидеть, что он блокирует.
sudoвыполняет поиск DNS и, если они заблокированы, команда будет медленной. Все ли другие вашиiptablesкоманды имеют префиксsudo?