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))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、ゴールド以上のプランで遊べます。