我正在尝试通过SSH应用these防火墙规则。当我使用./script.sh运行脚本时,终端将挂起,我被迫使用~ . Enter
退出。应用规则,但我的SSH连接被删除,我的终端挂起。但是,当我执行bash -x ./script.sh
时,它会在输出调试信息时运行脚本,并且不会中断我的会话。
我的防火墙规则很简单。允许传入/传出SSH并允许传出DNS和HTTP / S进行更新。
在Red Hat,Debian和Ubuntu计算机上见证了这种行为。
答案 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