iptables -P OUTPUT DROP 尽管存在例外规则,但仍丢失 SSH 连接

iptables -P OUTPUT DROP 尽管存在例外规则,但仍丢失 SSH 连接

我想尝试在OUTPUT上使用DROP默认策略。

我添加了一个例外来继续提供我的 SSH 连接:

iptables -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

但是,当我更改默认策略时,我就被踢出去了,需要重新启动服务器才能再次获得访问权限。

iptables -P OUTPUT DROP

我甚至在删除输出之前尝试过这个,但问题仍然存在。

iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --dport 22 -j ACCEPT

请问我遗漏了什么?

答案1

sport/dport 参数指的是(此处:tcp)数据包,而不是连接。

ssh 服务器传出的(OUTPUT)数据包来自端口 22,但不太可能发送到你的ssh 客户端机器。

尝试这个:

iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -P OUTPUT DROP

这些数据包的目标端口很可能被任意分配到客户端计算机或其 NAT 网关上的某个未使用的端口(例如端口 42123)。只有数据包离开您的服务器ssh 端口已知。

相关内容