如果規則尚不存在,則建立 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")"

相關內容