web-dev-qa-db-ja.com

監査ログからのファイルアクセスに関する関連情報の表示

Linuxマシンがあり、3人のユーザーがいると仮定します-

user1user2、およびuser3は、マシンにログインできます。

ルールを作成しました

$ auditctl -w /etc/file.txt -p rwxa

file.txtにアクセスするいくつかのアプリを使用し、大量のログデータを作成するため、毎日、誰が、何時にfile.txtにアクセスしたかを確認したい場合は、情報過多を最小限に抑えるためにどのようにアクセスしますか。他のユーザー(file.txtuser1user2、そのアプリ、リモートユーザーなど)からのuser3へのファイルアクセスのみを表示する必要があります。

1
xralf

監査イベントをフィルタリングおよびレポートするためのユーザースペースツールがあります。いくつかの例については、 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sec-Creating_Audit_Reports.html を参照してください。

あなたの場合、あなたは次のようなことを試すことができます:

ausearch --start today --success no --file /etc/file.txt | aureport --file

当日のファイルで失敗したすべてのアクセス試行を確認します。

その他のオプションについては、ausearchおよびaureportのマニュアルページを確認してください。

1
Rafał Krypa

Auditdをインストールしたとすると、auditctlを使用してルールを作成したように思われますが、uidでgrepを実行できます。

以下を使用してuidを見つけます。

id user1
id user2
id user3

問題のユーザーIDを選択してログを確認します。

cat /var/log/audit/audit.log | grep uid=1000

これは、1000がファイルアクセスを表示したいユーザーであると想定しています。たとえば、ユーザー1000が監査済みのfile.txtを表示したとき、この場合はcatを使用して表示されます。

type = SYSCALL msg = audit(1484859413.000:83):Arch = c000003e syscall = 2 success = yes exit = 3 a0 = 7ffd50e9eefb a1 = 0 a2 = 20000 a3 = 7ffd50e9c8d0 items = 1 ppid = 28517 pid = 28545 auid = 1000 uid = 1000 gid = 1000 euid = 1000 suid = 1000 fsuid = 1000 egid = 1000 sgid = 1000 fsgid = 1000 tty = pts0 ses = 435 comm = "cat" exe = "/ bin/cat" key =(null)type = PATH msg = audit(1484859413.000:83):item = 0 name = "test.txt" inode = 4847 dev = 08:01 mode = 0100644 ouid = 1000 ogid = 1000 rdev = 00:00 nametype = NORMAL

これがあなたが探していたものだったといいのですが!