Centos

有沒有辦法記錄誰上傳或更改了特定文件?(分)

  • May 8, 2012

可能重複:

我的伺服器被黑了 緊急

有一個文件一直感染程式碼。我不知道為什麼。所以我想記錄誰上傳或更改了文件。有沒有辦法記錄誰上傳或更改了特定文件?

PS:沒有FTP登錄。我們只使用 SSH 和 Plesk。

就在這裡。審計子系統有一些非常簡潔的會計功能。

執行以下命令將審核對文件的更改:

auditctl -w /my/specificly/modified/file.txt -p w -k "suspect file change"

這將在此文件上設置一個監視,每當它被寫入修改時,都會記錄更改,並且會被廣泛記錄。

您可以檢查日誌:

ausearch -i -k "suspect file change"

這將返回輸出,例如:

type=PATH msg=audit(05/08/2012 17:32:32.353:13118) : item=1 name=/tmp/test.txt inode=5767528 dev=fd:00 mode=file,644 ouid=root ogid=root rdev=00:00 obj=staff_u:object_r:user_tmp_t:s0 
type=PATH msg=audit(05/08/2012 17:32:32.353:13118) : item=0 name=/tmp/ inode=5767169 dev=fd:00 mode=dir,sticky,777 ouid=root ogid=root rdev=00:00 obj=system_u:object_r:tmp_t:s0 
type=CWD msg=audit(05/08/2012 17:32:32.353:13118) :  cwd=/home/matthew/Testbed/C/fanotify 
type=SYSCALL msg=audit(05/08/2012 17:32:32.353:13118) : arch=x86_64 syscall=unlinkat success=yes exit=0 a0=0xffffffffffffff9c a1=0xb540c0 a2=0x0 a3=0x7fff50cfba20 items=2 ppid=13699 pid=2773 auid=matthew uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts0 ses=2 comm=rm exe=/usr/bin/rm subj=staff_u:sysadm_r:sysadm_t:s0 key=some file 

如果你想要更強大的東西,你可以去做一些事情,比如監視通常不傾向於這樣做的使用者的任何刪除。對於性能,規則越具體越好。

auditctl -a exit,always -F arch=b64 -S unlink -S rmdir -F auid=78 -F dir=/var/www/vhost

-F 定義過濾器,-S 定義系統呼叫,過濾器越多,核心跟踪它的強度就越小。所以在這種情況下,我過濾使用者(apache)、vhosts 目錄和arch。Arch 變得重要 b64 是 64 位 b32 對於 32 位。

您可以通過將規則放入 /etc/audit.rules 來長期設置這些規則。

引用自:https://serverfault.com/questions/387158