どういうわけか、iptablesルールが私のシステムの1つに追加されました。 iptablesは、いつ、誰がルールを変更したかについてのログを保持しますか(またはできますか)? iptables自体ができない場合、それを行う可能性のあるラッパーはありますか? Sudoがコマンドをログに記録することは知っていますが、誰かが「Sudo su-」を実行すると、それで終わりです。
いいえ、iptablesの変更ログはありません。
Rootのみがiptables
を実行できるため、設定したログをバイパスしたい管理者は、そのログをオフにすることもできます。そのため、協力する管理者によって行われた変更のみをログに記録できます。
iptables-save
を使用する場合は、ルールファイルのバージョン管理を使用してください。意味のある変更メッセージを使用して変更をコミットするように、他の管理者をトレーニングします。
ロギングを自動的に実行する場合は、iptables
実行可能ファイルをロギングを実行するラッパースクリプトに置き換えます。これは、奇妙な引数(改行を含むなど)に関して堅牢ではない、手っ取り早いスクリプトです。ログファイルに書き込めない場合、このスクリプトはエラーメッセージを表示しますが、iptables
呼び出しを続行します。
#!/bin/sh
( exec >/var/log/iptables.log;
echo -n "$(date '+%Y:%m:%d %H:%M:%S')" "$(id -run)" iptables
for x; do echo -n "'$x'"; done )
exec /sbin/iptables.real "$@"