GNU/Linux >> Linux の 問題 >  >> Cent OS

auditd を使用して Linux でファイルの削除を監視する方法

したがって、特定のファイルが頻繁に削除される状況があり、誰がそのファイルを削除したかを調査する必要があります。ファイルを削除できるのは、ユーザーまたはシステム プロセスです。 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 delete
CentOS/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”) しています。


Cent OS
  1. LinuxでTarコマンドを使用する方法

  2. auditd を使用して特定の SYSCALL を監視する方法

  3. ファイルが消えていると主張されている – Linux でファイルの削除を監視する方法

  1. Linuxでmd5sumコマンドを使用する方法

  2. Linuxでtouchコマンドを使用する方法

  3. Linuxheadコマンドの使用方法

  1. Linuxのdiffコマンドの使用方法

  2. LinuxでBashファイルテスト演算子を使用する方法

  3. 例を使用してLinuxrmコマンドを使用する方法