Linuxのセキュリティ対策の一環として、システム監査は非常に重要です。特に機密性の高い環境では、どのファイルがアクセスされたのか、どんな操作が行われたのかを記録する「監査ログ」は、問題発生時の原因追跡に欠かせません。
Linuxではauditdというデーモンが監査機能を担っており、監査ルールの管理にはauditctlコマンドが使われます。この記事では、その中でも監査ルールの確認に使う「auditctl -l」について詳しく解説します。初学者の方にもわかりやすく、実行例や注意点も交えて紹介していきます。
auditctlは、Linuxの監査システム「auditd」で使用されるコマンドラインツールです。
auditdはカーネルレベルでの操作を監視し、ログとして記録する機能を提供します。auditctlはその監査ルールの追加、削除、確認などを行うためのツールで、主に以下のような操作が可能です。
auditctl -a、auditctl -wなど)auditctl -d)auditctl -s)auditctl -l)このうち-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でルールが意図通りかを目視で確認することが推奨されます。
何らかの異常が発生した際、監査ログが取得されているかの確認は非常に重要です。ログがない場合、そもそも監査ルールが設定されていなかった可能性もあるため、auditctl -lで即座にチェックすることができます。
重要な注意点として、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
このように設定すれば、再起動後も監査ルールが維持されます。
実際に監査ルールで設定されたイベントが発生した場合、そのログはausearchコマンドで確認できます。
例えば以下のように検索可能です:
sudo ausearch -k passwd_watch
-kで指定したキーワードに該当するイベントログが表示され、auditctl -lで確認したルールとの対応がすぐにわかります。
auditctl -lコマンドは、Linuxシステムの監査ルールを素早く確認できる便利なツールです。監査ログを活用したセキュリティ運用や問題調査を行ううえで、ルールの可視化は欠かせません。
auditctl -l-w, -p, -kの意味を把握/etc/audit/rules.d/にルールを保存ausearchと組み合わせて、実際のログを確認可能日々の運用管理やセキュリティ強化に、ぜひauditctl -lを活用してください。