auditでファイルやコマンドのログを取得 †
td-agent(fluentd)でauditログを収集したい場合 †
- td-agent(fluentd)をwheelグループに入れる。
- /var/log/audit/audit.log は root:root 0700で、これをroot:wheelに変更しても、auditdを再起動すると戻ってしまう。
audit.log †
- デフォルトでは auditd自体がaudit.logのrotateを行う。
- rotate時にaudit.logのownerの変更にすこし時間がかかる。そのためaudit.logをtd-agent等で監視していると「Permission denied」が出る事がある。
- 対策1: td-agent側でsource設定で「loglevel fatal」にする。
- 対策2: audit側の設定を変更して、rsyslog > log file > logrotateのように扱う
ausearch †
# syscall=setsockopt に一致する最初の1件を表示
sudo ausearch -i -sc setsockopt --just-one
- オプション
- -m, --message: ALL, SYSCALL等のメッセージタイプ
- -k, --key: 特定のキーを指定
- -i, --interpret: 日付、システムコール名、exit番号を分かりやすく表示してくれる
- --input-logs: cronからausearch実行時に必要
- --just-one: 一致した最初の1件だけ
コマンドのログを記録する †
ファイルへのアクセスを記録する †
auditdデーモンを利用する。