Linux には、audit という名前の監査 RPM があり、プロセスとコマンドも監視するための auditd サービスを提供します。 audit RPM を使用すると、読み取り、書き込み、実行などの単純なファイル操作を監査できます。この投稿では、Linux システムでのファイル アクセスを監視する方法を紹介します。 「ファイルが読み取られた/変更されたのはいつですか?」、「特定のファイルを編集したのは誰ですか?」など。
1. auditd サービスが実行されていない場合は、最初に開始します。
# service auditd start ### CentOS/RHEL 6 # systemctl start auditd ### CentOS/RHEL 7
2. auditctl を使用します 監視するファイルを指定するコマンド:
# auditctl -w /etc/hosts -p war -k hostswrap
-w :監査/監視するファイルを指定します。
-p :監査/監視する操作/権限。r は読み取り、w は書き込み、x は実行、a は追加。
-k :この監査ルールのキーワードを指定します。監査ログを検索するときに、このキーワードで検索できます
3. コマンド ラインで auditctl を実行して実行中の監査システムに加えた変更は、システムの再起動後は保持されないことに注意してください。変更を永続的にするには、それらを /etc/audit/audit.rules に追加します 現在 audit にロードされていない場合は、auditd サービスを再起動して、変更されたルール セットをロードします。
# vi /etc/audit.rules -w /etc/hosts -p war -k hostswrap
# service auditd restart ### CentOS/RHEL 6 # systemctl restart auditd ### CentOS/RHEL 7
4. auditd サービスの現在の監査ルールを一覧表示するには、「l」オプションを使用します。
# auditctl -l No rules AUDIT_WATCH_LIST: dev=8:5, path=/etc/hosts, filterkey=hostswrap, perms=rwa, valid=0
5. ファイル /etc/hosts へのアクセスがないか、監査ログを確認します。
# ausearch -f /etc/hosts -i | less type=FS_WATCH msg=audit(05/28/18 11:21:27.216:10) : watch_inode=4313009 watch=hosts filterkey=hostswrap perm=read,write,append perm_mask=read type=SYSCALL msg=audit(05/28/18 11:21:46.251:19) : arch=i386 syscall=open success=yes exit=5 a0=c679b5 a1=0 a2=1b6 a3=0 items=1 pid=16056 aui d=unset uid=oracle gid=dba euid=oracle suid=oracle fsuid=oracle egid=dba sgid=dba fsgid=dba comm=ons exe=/home/oracle/oracle/product/10.2.0/c rs_1/opmn/bin/ons ---- type=PATH msg=audit(05/28/18 11:21:38.697:11) : name=/etc/hosts flags=follow,access inode=4313009 dev=08:05 mode=file,644 ouid=root ogid=root rdev=00:00 type=CWD msg=audit(05/28/18 11:21:38.697:11) : cwd=/newspace/TAR/May type=FS_INODE msg=audit(05/28/18 11:21:38.697:11) : inode=4313009 inode_uid=root inode_gid=root inode_dev=08:05 inode_rdev=00:00 type=FS_WATCH msg=audit(05/28/18 11:21:38.697:11) : watch_inode=4313009 watch=hosts filterkey=hostswrap perm=read,write,append perm_mask=writ e .....
ログには、操作時間、ファイルの読み取り/書き込みの処理/コマンド、uid などが表示されます。