ルールがまだ存在しない場合は、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 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")"

関連情報