如果规则尚不存在,则创建 iptables 规则

如果规则尚不存在,则创建 iptables 规则

您好,我创建了一个脚本来在我的远程服务器上设置 Nagios。我的脚本检查 iptables 以查看防火墙规则是否已存在,然后是应该添加规则(如果尚不存在)。

现在,脚本只是回显了规则,但实际上无法编写它,任何帮助将不胜感激。

ssh -t -t root@$serverName << EOF
  service nrpe restart
  chkconfig nrpe on
  if [ "cat /etc/sysconfig/iptables | grep -- "5666"" != "-A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT" ] ; then echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT" ; fi
  service iptables save
  exit
EOF

答案1

检查规则是否存在,如果不存在,则添加它

iptables -C 输入 -s 0/0 -p tcp --dport 5666 -j 接受 || iptables -I 输入 -s 0/0 -p tcp --dport 5666 -j 接受

答案2

你只需要改变

echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT"

iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT

您可以省略-s 0/0

iptables -I INPUT -p tcp --dport 5666 -j ACCEPT

考虑什么是 内的最佳位置是有意义的INPUT。如果此规则应该是第五条(而不是第一条),则将调用更改为:

iptables -I 5 INPUT -p tcp --dport 5666 -j ACCEPT

"cat /etc/sysconfig/iptables | grep -- "5666""

包含错误。命令

cat /etc/sysconfig/iptables | grep -- "5666"

没有被执行。您必须添加命令替换:

"$(cat /etc/sysconfig/iptables | grep -- "5666")"

相关内容