Ubuntu 26.04 でサーバーを運用する場合、障害ログだけでなく、誰がどの管理操作を行ったか、重要ファイルがいつ変更されたかを追えることが重要です。auditd は、カーネルの audit 機能を使って、システムイベントを監査ログとして記録します。
この記事では、auditd の導入、監査ルールの配置、auditctl、ausearch、aureport による確認、sudo や SSH、重要ファイル変更の追跡をまとめます。
auditdのインストールと起動確認- 監査ルールの配置と読み込み
auditctl、ausearch、aureportの基本- sudo、SSH、重要ファイル変更の追跡
- ログ容量と再起動後の確認
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| パッケージ | auditd、audispd-plugins |
| サービス | auditd.service |
| 主なルール | /etc/audit/rules.d/*.rules |
| 主なログ | /var/log/audit/audit.log |
auditd で決めること
監査ログは、増やせばよいものではありません。何を追跡するか、ログ容量をどう扱うか、調査時にどのキーで検索するかを先に決めます。
- sudo、SSH、重要設定ファイルなど追跡対象を決める
- ルールには検索しやすい key を付ける
- ログ容量とローテーションを確認する
- 再起動後もルールが読み込まれることを確認する
- 通常ログと監査ログの役割を分ける
auditd をインストールする
auditd と関連ツールをインストールし、サービス状態を確認します。
sudo apt update
sudo apt install -y auditd audispd-plugins
sudo systemctl enable --now auditd.service
systemctl status auditd.service --no-pager
sudo auditctl -s監査ログを確認する
監査ログは通常 /var/log/audit/audit.log に出力されます。まずログの存在と、現在読み込まれているルールを確認します。
sudo ls -l /var/log/audit/
sudo tail -n 20 /var/log/audit/audit.log
sudo auditctl -l
sudo aureport --summary基本ルールを配置する
重要ファイルと管理操作を追跡する基本ルールを配置します。ここでは sudoers、SSH 設定、passwd/group、shadow、sudo 実行を追跡対象にします。
sudo tee /etc/audit/rules.d/10-server-basic.rules >/dev/null <<'EOF'
-w /etc/sudoers -p wa -k sudoers_change
-w /etc/sudoers.d/ -p wa -k sudoers_change
-w /etc/ssh/sshd_config -p wa -k sshd_config_change
-w /etc/ssh/sshd_config.d/ -p wa -k sshd_config_change
-w /etc/passwd -p wa -k identity_change
-w /etc/group -p wa -k identity_change
-w /etc/shadow -p wa -k identity_change
-a always,exit -F arch=b64 -S execve -F euid=0 -k privileged_exec
EOF
sudo augenrules --load
sudo auditctl -l検索キーで確認する
ルールに付けた key を使うと、監査ログから目的のイベントを検索しやすくなります。sudoers、SSH 設定、ユーザー情報、特権実行を分けて確認します。
sudo ausearch -k sudoers_change
sudo ausearch -k sshd_config_change
sudo ausearch -k identity_change
sudo ausearch -k privileged_exec
sudo aureport --key --summary変更イベントを試す
ルールが機能しているかを確認するため、管理対象ファイルへの読み書きではなく、状態確認に近い操作から始めます。実際の変更を伴う検証は、検証環境で行います。
sudo visudo -c
sudo sshd -t
sudo ausearch -k sudoers_change -ts recent
sudo ausearch -k sshd_config_change -ts recentログ容量を確認する
監査ログは増え続けるため、ログ容量と停止時の挙動を確認します。厳格な環境では、監査ログが書けない状態をどう扱うかも運用設計に含めます。
sudo grep -E '^(max_log_file|num_logs|space_left|admin_space_left|disk_full_action|disk_error_action)' /etc/audit/auditd.conf
sudo du -sh /var/log/audit
sudo aureport --summary
sudo aureport --login --summary再起動後に確認する
/etc/audit/rules.d/ に配置したルールは、再起動後にも読み込まれる必要があります。OS 再起動後は、サービス状態、ルール一覧、ログ出力を確認します。
systemctl status auditd.service --no-pager
sudo auditctl -s
sudo auditctl -l
sudo ausearch -k privileged_exec -ts boot調査時に使うコマンド
監査ログを調べる時は、時刻、key、ユーザー、コマンドを組み合わせて絞り込みます。通常の journal と合わせて見ると、操作とサービス側の反応をつなげやすくなります。
sudo ausearch -ts today -k privileged_exec
sudo ausearch -ua myadmin -ts today
sudo aureport --user --summary
sudo aureport --executable --summary
journalctl --since today --no-pager公開前の確認ポイント
auditd.serviceが起動しているauditctl -sで audit が有効であるauditctl -lで意図したルールが読み込まれている- ルールに検索用 key が付いている
ausearchとaureportで検索できる- ログ容量とローテーションを確認している
- 再起動後もルールが残ることを確認している
まとめ
Ubuntu 26.04 の auditd は、通常ログでは追いにくい管理操作や重要ファイル変更を監査ログとして残すための仕組みです。sudo、SSH、ユーザー情報、特権実行など、追跡対象を決めてからルールを作ると運用しやすくなります。
監査ログは記録するだけでは不十分です。auditctl でルールを確認し、ausearch と aureport で検索できるところまで確認しておくと、障害時や変更調査で使えるログになります。

