こんにちは。リモートサーバーに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 Enter -s 0/0 -p tcp --dport 5666 -j 承諾 || iptables -I Enter -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
。このルールが(最初ではない)5番目のルールである必要がある場合は、呼び出しを次に変更します。
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")"