Linuxのセキュリティ対策の一環として、システム監査は非常に重要です。特に機密性の高い環境では、どのファイルがアクセスされたのか、どんな操作が行われたのかを記録する「監査ログ」は、問題発生時の原因追跡に欠かせません。
Linuxではauditd
というデーモンが監査機能を担っており、監査ルールの管理にはauditctl
コマンドが使われます。この記事では、その中でも監査ルールの確認に使う「auditctl -l
」について詳しく解説します。初学者の方にもわかりやすく、実行例や注意点も交えて紹介していきます。
auditctlとは?Linux監査の要
auditctl
は、Linuxの監査システム「auditd」で使用されるコマンドラインツールです。
auditdはカーネルレベルでの操作を監視し、ログとして記録する機能を提供します。auditctl
はその監査ルールの追加、削除、確認などを行うためのツールで、主に以下のような操作が可能です。
- 監査ルールの追加(
auditctl -a
、auditctl -w
など) - 監査ルールの削除(
auditctl -d
) - 監査ステータスの確認(
auditctl -s
) - 監査ルールの表示(
auditctl -l
)
このうち-l
は、現在設定されている監査ルールを一覧で表示するオプションで、運用中のサーバのセキュリティ設定状況を把握するのに役立ちます。
auditctl -lの基本的な使い方
監査ルールを表示するための基本的な構文は以下のとおりです。
sudo auditctl -l
このコマンドを実行することで、現在カーネルにロードされている監査ルールの一覧が表示されます。出力されるルールは、auditctl -a
やauditctl -w
で追加されたものです。
実行例
$ sudo auditctl -l
-w /etc/passwd -p wa -k passwd_watch
-w /etc/shadow -p wa -k shadow_watch
この出力結果では、/etc/passwd
と/etc/shadow
という重要ファイルに対して、書き込み(w)および属性変更(a)が監査対象となっていることがわかります。-k
で指定されたキーワードは、後でログを検索する際に便利です。
出力結果の意味を詳しく解説
auditctl -l の出力は、一見するとわかりづらいかもしれません。ここでは各オプションの意味を解説します。
-w
: ウォッチ対象のファイルやディレクトリを指定-p
: 監視するパーミッション(r=read, w=write, x=execute, a=attribute change)-k
: 任意のキー。ログ検索時に使用可能(ausearchコマンドと連携)
例えば以下のルール:
-w /var/log/secure -p wa -k log_watch
は、/var/log/secure
に対して書き込みや属性変更が発生したときに、監査ログに記録するルールです。log_watch
というキーワードで後からausearchでログを簡単に検索できます。
auditctl -lの活用場面
1. セキュリティ点検や構成監査時
監査ルールが正しく設定されているかどうかを確認することで、意図しないファイルアクセスの検出や、ログ取得漏れを防げます。特に外部からの指摘に備える「構成監査」では、auditctl -l
でルールが意図通りかを目視で確認することが推奨されます。
2. トラブル調査の初動確認
何らかの異常が発生した際、監査ログが取得されているかの確認は非常に重要です。ログがない場合、そもそも監査ルールが設定されていなかった可能性もあるため、auditctl -l
で即座にチェックすることができます。
永続化の注意点:auditctlで設定したルールは再起動で消える
重要な注意点として、auditctl
で設定した監査ルールは、Linuxの再起動後に失われてしまいます。
そのため、設定を永続化させたい場合は、/etc/audit/rules.d/
配下にルールファイルを作成する必要があります。
永続化の手順
- ルールをファイルとして保存
例:/etc/audit/rules.d/watch-passwd.rules
-w /etc/passwd -p wa -k passwd_watch
- ルールを適用するには以下を実行
sudo augenrules --load
- 監査ルールを確認
sudo auditctl -l
このように設定すれば、再起動後も監査ルールが維持されます。
auditctl -lで確認したルールをausearchで検索する
実際に監査ルールで設定されたイベントが発生した場合、そのログはausearch
コマンドで確認できます。
例えば以下のように検索可能です:
sudo ausearch -k passwd_watch
-k
で指定したキーワードに該当するイベントログが表示され、auditctl -l
で確認したルールとの対応がすぐにわかります。
まとめ:auditctl -lはセキュリティチェックの第一歩
auditctl -l
コマンドは、Linuxシステムの監査ルールを素早く確認できる便利なツールです。監査ログを活用したセキュリティ運用や問題調査を行ううえで、ルールの可視化は欠かせません。
- 現在のルールを確認したいときは
auditctl -l
- 出力された内容を読み解くには、
-w
,-p
,-k
の意味を把握 - 永続化には
/etc/audit/rules.d/
にルールを保存 ausearch
と組み合わせて、実際のログを確認可能
日々の運用管理やセキュリティ強化に、ぜひauditctl -l
を活用してください。