したがって、特定のファイルが頻繁に削除される状況があり、誰がそのファイルを削除したかを調査する必要があります。ファイルを削除できるのは、ユーザーまたはシステム プロセスです。 auditd サービスは、このようなファイル削除の問題を調査するのに最適なツールです。この投稿では、auditd をインストールして構成し、ファイル /var/tmp/test_file のファイル削除を監視する手順の概要を説明しています。
Red Hat Enterprise Linux は、ユーザーまたはプロセスによって実行されたファイル アクティビティをログに記録するための監査ルール機能を提供します。これは、監査ルールを構成することで実現できます。
auditd のインストール
1. ほとんどの場合、redhat ベースのディストリビューションにはすでに auditd がインストールされています。そうでない場合は、yum を使用してインストールします:
# yum install audit
2. 次に、起動時にサービスが開始されていることを確認し、サービスを開始します。
# systemctl enable auditd # systemctl start auditd
auditd サービスを再起動するときは、CentOS/RHEL 7 で systemctl の代わりに「service」コマンドを使用することをお勧めします。 systemctl コマンドを使用すると、以下のエラーが発生する場合があります:
# systemctl restart auditd Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop). See system logs and 'systemctl status auditd.service' for details.
3. サービスのステータスを確認します:
# systemctl status auditd ● auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-06-16 03:29:19 UTC; 8s ago Docs: man:auditd(8) https://github.com/linux-audit/audit-documentation Process: 1951 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Process: 1946 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS) Main PID: 1947 (auditd) Tasks: 2 CGroup: /system.slice/auditd.service └─1947 /sbin/auditd
監査ルールの構成
1. 監査ルールを設定するには、/etc/audit/rules.d/audit.rules ファイルに次の行を追加します:
# vi /etc/audit/rules.d/audit.rules -a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete -a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k deleteCentOS/RHEL 6 では、構成ファイルは /etc/audit/audit.rules です。 /etc/audit/rules.d/audit.rules の代わりに。
上記のルールは、システム上のすべてのファイルのリンク解除、名前変更、削除などの変更を監視します。オプションで、監視するディレクトリのフル パスを指定できます。たとえば、特定のファイル内のファイルの削除のみを監視する場合などです。システムでは、次のフィールドを監査ルールに追加することでマウント ポイントを指定できます:
-F dir=[directory or mount point]
したがって、上記で定義したルールは、以下に示すように 1 つのルールになります。
# vi /etc/audit/rules.d/audit.rules -a always,exit -F dir=/var/tmp -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete_var
ルールのキーも変更したことに注意してください。
2. ルールを有効にするには、auditd サービスを再起動する必要があります。
# service auditd restart
3. コマンド「auditctl -l」を使用して、現在アクティブな auditd ルールを表示します。
# auditctl -l -a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var
ファイル削除の監査ログを確認する
1. ファイル「/var/tmp/test_file」を削除して、作成した auditd ルールがこのイベントをログ ファイルに記録するかどうかを確認できます。
2. これにより、ファイルの削除操作がファイル /var/log/audit/audit.log に記録されます 、ただし、コマンド ausearch を使用できます イベントを調べるための監査規則 (-k) で指定されたキー:
# ausearch -k delete_var ... ---- time->Sat Jun 16 04:02:25 2018 type=PROCTITLE msg=audit(1529121745.550:323): proctitle=726D002D69002F7661722F746D702F746573745F66696C65 type=PATH msg=audit(1529121745.550:323): item=1 name="/var/tmp/test_file" inode=16934921 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:user_tmp_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529121745.550:323): item=0 name="/var/tmp/" inode=16819564 dev=ca:01 mode=041777 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:tmp_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=CWD msg=audit(1529121745.550:323): cwd="/root" type=SYSCALL msg=audit(1529121745.550:323): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=9930c0 a2=0 a3=7ffe9f8f2b20 items=2 ppid=2358 pid=2606 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="rm" exe="/usr/bin/rm" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="delete_var"
上記のログでわかるように、ユーザー root(uid=0) がファイル /var/tmp/test_file を削除 (exe=”/usr/bin/rm”) しています。