Linuxサーバーで特定のディレクトリのログを取得しログに残す方法です。
- システム監視のためにAuditdを使用
- Auditdはサーバーにインストール済み
- 以降の作業はsudo権限のユーザーが行う
特定のディレクトリのログを取得するために Auditdでファイルシステムの変更を検知させるルールを定義します。
ファイルシステムのルールを定義するには、以下の構文を使用
-w PATH -p PERMISSIONS -k KEY_NAME
監査対象のファイルもしくはディレクトリ
ログ記録されるパーミッション
- r — ファイルまたはディレクトリーの読み取りアクセス
- w — ファイルまたはディレクトリーの書き込みアクセス
- x — ファイルまたはディレクトリーの実行アクセス
- a — ファイルまたはディレクトリーの属性を変更
以下の例は /home/test で 読み取り、書き込み、実行、属性を変更 のいずれかをおこなった場合にログに記録 KEY_NAMEを access_test としている
-w /home/test -p rwxa -k access_test
ルールの検証、確認のために一時的にルールを定義する ※サービスやサーバーが停止した際は無効化されます
前項のルールの内容を一時的に定義する場合は以下のコマンド
auditctl -w /home/test -p rwxa -k access_test
一時的では無く、永続的にルールを定義する場合は「/etc/audit/audit.rules」にルールを記述
「/etc/audit/audit.rules」の最後にルールを追記 ファイルが存在しない場合は作成
-w /home/test -p rwxa -k access_test
細かく管理したい場合はこちらを参考にルールを追加
https://github.com/gds-operations/puppet-auditd/blob/master/examples/auditd.rules
auditのログは「/var/log/audit/audit.log」に記録されます
内容の確認はlessで確認(viなどでも可能)
less /var/log/audit/audit.log
以下は「access_test」のKEY_NAMEが記録された部分の抜粋
type=SYSCALL msg=audit(1538720127.122:1297): arch=c000003e syscall=2 success=yes exit=3 a0=55dae641e87d a1=0 a2=0 a3=7fe819cdeb78 items=1 ppid=2911 pid=2912 auid=1018 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts8 ses=1 comm="vi" exe="/usr/bin/vim.basic" key="access_test"
以下のURLを参照
7.6. AUDIT ログファイルについて
「ausearch」コマンドでLogの絞り込みを行います。
「-k」オプションでルールに指定したKEY_NAMEで検索が可能 「-i」オプションを使うと時刻やauidが文字列になり認識しやすくなる
ausearch -i -k access_test
以下は上記の検索結果の抜粋です。 記録された時刻とauidが文字列になり読みやすくなっています
type=SYSCALL msg=audit(2018年10月05日 15:15:27.122:1297) : arch=x86_64 syscall=open success=yes exit=3 a0=0x55dae641e87d a1=O_RDONLY a2=0x0 a3=0x7fe819cdeb78 items=1 ppid=2911 pid=2912 auid=test_user uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts8 ses=1 comm=vi exe=/usr/bin/vim.basic key=access_test
※「test_user」がログの対象になったユーザーの名前、auidは前項のログでは「1018」とidの番号で記述されている
ausearchコマンドの使い方
https://qiita.com/hana_shin/items/54bb0610d299244bb8f6
ルールの変更などを行なった場合はserviceを再起動する必要
auditdのrestart
service auditd restart
auditdについてインストールと簡単な利用方法のメモ。
https://qiita.com/kooohei/items/a802af9073dbeec6823e
auditdでLinuxのファイル改竄検知を行う