我刚开始使用iptables,偶然发现了一些我不太了解的东西。
仅供参考,我按照Ubuntu Wiki的IptablesHowTo的说明进行操作。
nat和mangle表为空,我现在只使用filter表。
问题
如果我添加以下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打开,为什么我需要它?
运行
—
吉尔斯(Gillles)“所以-别再邪恶了”
sudo strace …
(从根shell)以查看其受阻。
sudo
是否进行DNS查找,如果阻止了这些查找,该命令将很慢。您的所有其他iptables
命令都带有前缀sudo
吗?