質問 :ファイルが消失しているように見えますが、消失の直接的な理由は見つかりません。ファイル アクセス、特に CentOS/RHEL システムでの特定のファイルの削除を監視するにはどうすればよいですか?
Linux の auditd を使用して、ファイルのライフサイクル全体を監視できます。 サービス。
手順
1. CentOS または RHEL にインストールするには、次を実行します。
# yum install audit
2. 起動時にサービスを有効にするには、次を実行します:
# chkconfig auditd on # For CentOS/RHEL 6 # systemctl enable auditd # For CentOS/RHEL 7
または、次の再起動まで一時的に開始します:
# service auditd start # For CentOS/RHEL 6 # systemctl start auditd # For CentOS/RHEL 7注意 :systemctl restart auditd は、カーネルが特別な方法で auditd を処理するため、RHEL7 では機能しません。サービスを停止して開始する必要があります。
3. 特定のファイルを監視して、何かがファイルに触れているかどうかを確認するには、次のコマンドを実行します:
# auditctl -w [filename] -p rwxa -k [filter key]
where:
-w [ファイル名] :特定のファイルを監視します。
-p war :書き込み、追加、読み取りのパーミッション フィルター。
-k [フィルター キー] :監査ログを一意に識別するためのフィルター キー。
例:
# auditctl -w /var/opt/sun/comms/messaging64/log/mail.log_yesterday -p rwxa -k mail.log_yesterday
4. 現在の一連のルールを一覧表示するには、次を実行します:
# auditctl -l
例:
# auditctl -l LIST_RULES: exit,always watch=/var/opt/sun/comms/messaging64/log/mail.log_yesterday perm=rwxa key=mail.log_yesterday
確認
監視対象ファイルを変更またはアクセスしたユーザーを確認するには:
# ausearch -i -k [filter key]
例:
# ausearch -i -k mail.log_yesterday ... ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6209) : item=0 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425831 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6209) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6209) : arch=x86_64 syscall=open success=yes exit=5 a0=7fff62973b1d a1=0 a2=7fff62973870 a3=2 items=1 ppid=16442 pid=16450 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=cat exe=/bin/cat key=mail.log_yesterday ---- type=CONFIG_CHANGE msg=audit(12/12/2013 00:30:00.407:6210) : auid=root ses=570 op="updated rules" path=/var/opt/sun/comms/messaging64/log/mail.log_yesterday key=mail.log_yesterday list=exit res=1 ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6211) : item=1 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425831 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6211) : item=0 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6211) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6211) : arch=x86_64 syscall=unlink success=yes exit=0 a0=7ffff94beb1f a1=7ffff94beb1f a2=2 a3=2 items=2 ppid=16442 pid=16452 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=rm exe=/bin/rm key=mail.log_yesterday ---- type=CONFIG_CHANGE msg=audit(12/12/2013 00:30:00.407:6212) : auid=root ses=570 op="updated rules" path=/var/opt/sun/comms/messaging64/log/mail.log_yesterday key=mail.log_yesterday list=exit res=1 ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=3 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425765 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=2 name=/opt/sun/comms/messaging64/data/log/mail.log_current inode=425765 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=1 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=0 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6213) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6213) : arch=x86_64 syscall=rename success=yes exit=0 a0=7fff81d5caea a1=7fff81d5cb1f a2=0 a3=0 items=4 ppid=16442 pid=16453 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=mv exe=/bin/mv key=mail.log_yesterday ...
ここでは、「return_job」によって行われている mail.log ファイルのローテーションが発生していることがわかります。 ‘ これはデフォルトで 00:30 に発生し、ユーザー「mailsrv」によって実行されます 」。 mail.log_yesterday ファイルが (mail.log に) cat され、削除され、mail.log_current が mail.log_yesterday に名前が変更されていることがわかります。
auditd によるシステム監査について理解する
CentOS/RHEL で /var/log/audit/audit.log ファイルのデフォルトのアクセス許可を変更する方法
CentOS/RHEL 6 でシステム ログに書き込まれた監査ログ エントリを停止する方法