通过SSH配置iptables时出现奇怪的行为

时间:2014-05-22 18:09:37

标签: linux bash ssh iptables

我正在尝试通过SSH应用these防火墙规则。当我使用./script.sh运行脚本时,终端将挂起,我被迫使用~ . Enter退出。应用规则,但我的SSH连接被删除,我的终端挂起。但是,当我执行bash -x ./script.sh时,它会在输出调试信息时运行脚本,并且不会中断我的会话。

我的防火墙规则很简单。允许传入/传出SSH并允许传出DNS和HTTP / S进行更新。

在Red Hat,Debian和Ubuntu计算机上见证了这种行为。

2 个答案:

答案 0 :(得分:1)

我认为您在默认端口22上建立的ssh会话上运行脚本

然后请替换ssh规则

iptables -A INPUT -p tcp -m tcp --dport 22 -m limit --limit 5/minute --limit-burst 15 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

限制较少的一套,即

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

一旦你开始工作,你可以在这些现在更简单的规则中添加一个更具限制性的参数。

请考虑您的输入规则是否包含

--state NEW 

只接受新的ssh连接;已经建立的不会。

答案 1 :(得分:0)

将此规则移至顶部并再次测试:

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT