ausearch の使い方

監査ログを検索

書き方

sudo ausearch -m AVC [-ts recent|today|時刻] [-c コマンド名]

/var/log/audit/audit.log から種類(-m)や時刻(-ts)で記録を探します。AVC は SELinux の拒否。scontext(誰が)・tcontext(何を)・tclass(種類)から原因を読み取ります。

よく使うオプション

オプション意味
-m 種類記録の種類で絞る(SELinux の拒否は AVC)
-ts 時刻いつから探すか(recent は 10 分前から、today は今日、時刻も書ける)
-c コマンド名記録を出したコマンドの名前で絞る(httpd など)
-i数字の ID などを読める形にして出す

例

$ sudo ausearch -m AVC -ts recenttype=AVC msg=audit(1730950000.123:456): avc:  denied  { read } for  pid=2345 comm="httpd" name="index.html" scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0

この 10 分の SELinux の拒否を探します。動かないと気づいた直後に打つ形です。

$ sudo ausearch -m AVC -c sshd -ts yesterday

昨日からの拒否のうち、sshd が出したものだけに絞ります。

$ sudo ausearch -m AVC -ts recent | audit2why

拒否の理由と、直し方の手がかり(スイッチを入れる・ラベルを直す)を説明してもらいます。

よくある間違い・注意

  • 読むときは scontext(誰が)・tcontext(何を)・tclass(種類)を見ます。tcontext のタイプがおかしければ restorecon、スイッチの問題なら setsebool で直します。
  • 記録が無いときは「<no matches>」と出ます。SELinux 以外(権限やファイアウォール)を疑います。

実際に打って練習する

Linux レベル2 コースの Lv9「見張りの記録 ausearch」で覚えます(第1章 結界(firewalld と SELinux))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、ゴールド以上のプランで遊べます。

Linux サーバー構築のコマンド一覧(LinuC レベル2 の範囲)へ戻る