web-dev-qa-db-ja.com

auditdがロギングを一時停止したかどうかを確認するにはどうすればよいですか?

auditd.confに以下を入力すると、ディスクの空き容量が50MB以下になると、auditdはログ記録を一時停止します。

admin_space_left = 50
admin_space_left_action = SUSPEND

外部プログラムはどのようにできますか?モニットチェック、auditdがこの一時停止状態に達したかどうかを知っていますか?

EXECがロギングを一時停止したときに、auditdアクションを使用して何かを実行することもできますが、それは私の目的には適していません。)

2
2rs2ts

CentOSシステムでは、さまざまなディスク容量の制限が満たされたときに何をすべきかが構造化されています...

space_left = 75
space_left_action = SYSLOG
admin_space_left = 74
admin_space_left_action = SUSPEND

これにより、監査ログを格納するパーティションの空き領域が75MBを下回ると、このメッセージがsyslogに発行されます。

5月21日08:53:01c6test auditd [5851]:監査デーモンのログ用ディスク容量が不足しています

同様に、スペースが74MBを下回ると、このメッセージがsyslogに発行されます。

5月21日08:54:01c6test auditd [5851]:ディスク容量が少ないため、監査デーモンがロギングを一時停止しています。

したがって、あなたの質問に答えるために、syslogにメッセージを書き込み、syslogがシステムログへの道を見つけて、monitがそれを探すように構成できるようにします。

実際のメッセージとは何か、どのログファイルに書き込まれるかは、OSやディストリビューションに依存する可能性があります。

1
user9517

ソースコード(バージョン2.6.7)を見ると、デバッガーをプロセスに接続してlogging_suspended内部変数の値をダンプする以外に、現在の「一時停止」状態を取得する方法はありません。

テストメッセージを送信して、ログに記録されることを確認できます。そうすれば、suspended条件だけでなく、ロギングの発生を妨げるものもチェックします。つまり、それがずっと正しく機能することを検証します。

msg="audit test $(uuidgen)" || exit # generate unique message
auditctl -m "$msg" || exit # send the unique message
sleep 1 # enough time for the message to be logged
ausearch -ts recent -m USER | grep -Fqe "$msg" && echo OK
2
sch