尽管我已打开端口,但传出 SSH 仍不起作用

尽管我已打开端口,但传出 SSH 仍不起作用

我尝试在我的脚本中允许传出 SSH,但是当我测试它时,它没有反应。

我通过以下方式实现:iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

传入 SSH 工作正常,我也在做同样的事情,但只是

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

是不是因为我只允许icoming建立的连接?:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

答案1

正如你所说。你发出的 SSH 的回复将是端口 22,而不是端口 22,而是初始传出连接时选择的随机端口。因此不会匹配任何规则。我想您有一个默认的 DROP 策略,否则就不会出现这个问题。

只需将相同的规则添加到 OUTPUT 链即可:

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

该规则通过使用 conntrack 自动允许反向流动,使防火墙变为“有状态”。

相关内容