Linux Audit システム用のルールを作成します。最初にルールをテストする際は、auditctl コマンドを使えばルールを早急に追加または削除できます。
注: 次の例は、EFS ファイルシステムのルールを示しています。
以下のコマンドを使用すると、ファイルシステムのマウント場所に対するあらゆるアクティビティを監視できます。
$ auditctl -w /home/ec2-user/efs -k efs_changes
次に、 Linux Audito システムを設定すればログの記録対象にできるアクションの例を示します。
$ mkdir dir1
$ touch file1
$ touch file2
$ mv file1 file3
$ rm -f file2
$ chmod 600 file3
$ rmdir dir1
$ rm -f file3
ausearch-k efs_changes コマンドを実行して監査ログを表示します。次の例は、ステップ 3 の操作例で示した mkdir コマンドの監査ログを示しています。
time->Thu Jan 9 21:30:59 2020
type=PROCTITLE msg=audit(1578605459.080:127433): proctitle=6D6B6469720064697231
type=PATH msg=audit(1578605459.080:127433): item=1 name="dir1" inode=4989235361872937641 dev=00:16 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1578605459.080:127433): item=0 name="/home/ec2-user/efs/audit" inode=12759736523397539955 dev=00:16
mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1578605459.080:127433): cwd="/home/ec2-user/efs/audit"
type=SYSCALL msg=audit(1578605459.080:127433): arch=c000003e syscall=83 success=yes exit=0 a0=7fffe6aca6e1 a1=1ff a2=1ff a3=7fffe6ac7720 items=2 ppid=18661 pid=2948 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=18369 comm="mkdir" exe="/bin/mkdir" key="efs_changes"
前の例は、未加工の監査ログを示しています。この監査ログには、各操作に関する情報が大量に含まれています。
監査ログに短い出力を作成するには、aureport コマンドを実行します。このバージョンでは、引き続きすべての操作が表示されます。
$ ausearch -k efs_changes | aureport -f -i
10118. 01/09/2020 21:36:29 file1 open yes /bin/touch ec2-user 127450
10119. 01/09/2020 21:36:29 dir1 mkdir yes /bin/mkdir ec2-user 127449
10120. 01/09/2020 21:36:29 file2 open yes /bin/touch ec2-user 127451
10121. 01/09/2020 21:36:29 file3 rename yes /bin/mv ec2-user 127452
10122. 01/09/2020 21:36:29 file2 unlinkat yes /bin/rm ec2-user 127453
10123. 01/09/2020 21:36:29 file3 fchmodat yes /bin/chmod ec2-user 127454
10124. 01/09/2020 21:36:29 dir1 rmdir yes /bin/rmdir ec2-user 127455
10125. 01/09/2020 21:36:35 file3 unlinkat yes /bin/rm ec2-user 127456
必ずしもすべての操作をログに記録する必要はないことに注目してください。例えば、削除関連のアクションのみをログに記録するルールを作成できます。
auditctl -a always,exit -F arch=b64 -F dir=/home/ec2-user/efs -S unlink -S unlinkat -S rename -S renameat -S rmdir -k efs_changes
ステップ 3 のサンプルコマンドを実行すると、指定した削除関連コマンドだけがログに記録されます。
10126. 01/09/2020 22:17:08 file3 rename yes /bin/mv ec2-user 127519
10127. 01/09/2020 22:17:08 file2 unlinkat yes /bin/rm ec2-user 127520
10128. 01/09/2020 22:17:08 dir1 rmdir yes /bin/rmdir ec2-user 127521
10129. 01/09/2020 22:17:09 file3 unlinkat yes /bin/rm ec2-user 127522