iptablesが動作していることを確認する

iptablesが動作していることを確認する

iptables (または shorewall または類似のもの) が重要なルールのコアセットで稼働していることを監視するツールはありますか? ファイアウォールが完全にダウンした場合、または何らかの理由でいくつかのルールの 1 つがアクティブでなくなった場合に警告してくれるものが必要です。

ポートに接続したり、(さらに悪いことに)他の人が接続しているかどうかを確認したりして、ファイアウォールの機能を試したくありません。

サーバー: debian wheezy、標準インストール。ポート 80 ルールが全世界に公開され、ポート 8080 が特定の IP abcd にのみ公開されていることを確認したいとします。

1 つの方法は、作業ルールをテキスト ファイルとして保存し、現在のルールとこの元のルールを比較する毎日の cron ジョブを実行することですが、他に使用できるものがあることを期待しています。munin または nagios でこれを実現することは可能ですか?

答え1

使用できますナンマップ基本的なツールまたはヒプ3ファイアウォール ルールのより高度なセキュリティ監査を行います。この nmap コマンドをファイアウォールに対してリモートで実行すると、ファイアウォールのルールセットをテストできます。

nmap -p 0-65535 -Pn FIREWALL_HOST

または、iptables ターゲット拡張を使用して一種の監査を実装し、LOG以前のルールと一致しなかったものをすべてログに記録することもできます。

# firewal rulesets
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 1.2.3.5 -j ACCEPT
....
....
....
# this rule will log everything suspicious not matched before
iptables -A INPUT -j LOG 
iptables -A INPUT -j DROP

最後に、ルールセットのダンプを比較するというアイデアも悪くありません。diffこれを使用すれば、コマンドの戻りコードを確認できます。

iptables -L -n > RULESET_FILE


if ! diff RULESETS_FILE <(iptables -L -n) > RULESETS_CHANGES; then
   echo "Rulesets changed"
fi

答え2

比較してみる

iptabes-save 

および起動構成 (/etc/sysconfig/iptables など)。すべてが正常であれば、これは同一になるはずです。

関連情報