1. 程式人生 > >linux audit審計(5)--audit規則配置

linux audit審計(5)--audit規則配置

類型 https 不存在 avi mit linux. 文件監控 usr RM

audit可以配置規則,這個規則主要是給內核模塊下發的,內核audit模塊會按照這個規則獲取審計信息,發送給auditd來記錄日誌。

規則類型可分為:

1、控制規則:控制audit系統的規則;

2、文件系統規則:也可以認為是文件監控,可以監控一個特定文件或者一個路徑。

3、系統調用規則:可以記錄特定程序的系統調用。

audit規則可以通過auditctl,在命令行裏輸入,這些設置的規則為臨時的,當系統重啟後就不存在了。可以通過配置/etc/audit/audit.rules文件,當每次audit服務啟動後,都會從這個文件來加載規則。

auditctl,這個命令可以配置audit規則,audit根據這些規則來決定哪些事件會被記錄。The auditctl

program is used to control the behavior, get status, and add or delete rules into the 2.6 kernel‘s audit system.

控制規則:

-b 設置在內核中audit緩沖空間的最大值。

-f 這個選項來決定內核如何處理critical erros:0=silent 1=printk 2=panic.默認值為1。

-e 設置使能標誌,設置為0,為關閉了audit,設置為1,則開啟audit;當設置為2時,表示鎖定,一般在設置完其他規則後最後設置,防止其他人修改規則;任何修改規則的行為都會被拒絕,並且記錄審計日誌,只有當重啟系統後,這個使能標誌才可以被修改。

-s 查詢audit內核狀態。如:

linux-xdYUnA:/var/log/audit # auditctl -s
enabled 1
failure 1
pid 27106
rate_limit 0
backlog_limit 8192
lost 106978588
backlog 0

-l 列出所有當前配置的規則。

-D 刪除所有當前加載的規則。

定義文件系統規則:

auditctl -w path_to_file -p permissions -k key_name

path_to_file 為要做審計的文件或路徑;

permissions為要記錄的許可:rwx 文件或路徑的讀寫執行,a

修改文件或路徑的屬性。

r — read access to a file or a directory.
wwrite access to a file or a directory.
x — execute access to a file or a directory.
a — change in the files or directorys attribute.

key_name 為一個可選字符串,明確哪些規則產生的這些日誌。過濾時可以使用。

如下舉例:

定義規則,記錄所有對/etc/passwd文件的寫入以及屬性修改,可以輸入如下命令:

~]# auditctl -w /etc/passwd -p wa -k passwd_changes

記錄所有對/etc/selinux/目錄的寫入以及屬性修改,可以輸入如下命令:

~]# auditctl -w /etc/selinux/ -p wa -k selinux_changes

記錄所有執行了/sbin/insmod命令,向內核插入模塊的行為,輸入如下命令:

~]# auditctl -w /sbin/insmod -p x -k module_insertion

定義系統調用規則:

auditctl -a action,filter -S system_call -F field=value -k key_name

action和filter 明確一個事件被記錄。action可以為always或者never,filter明確出對應的匹配過濾,filter可以為:task,exit,user,exclude。

system_call 明確出系統調用的名字,幾個系統調用可以寫在一個規則裏,如-S xxx -S xxx。系統調用的名字可以在/usr/include/asm/unistd_64.h文件中找到。

field=value 作為附加選項,修改規則以匹配特定架構、GroupID,ProcessID等的事件。具體有哪些字段,可以參考man linux https://linux.die.net/man/8/auditctl

例如:

定義一個規則,當每次使用系統調用adjtimex或者settimeofday時,並且為64位架構,記錄審計日誌,命令可以輸入如下:

~]# auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change

一個文件被user ID為1000或者更大的用戶刪除,或重命名,記錄審計,命令如下:

~]# auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete

註意,-F auid!=4294967295 這個是為了排除login UID沒有被設置的用戶。

也可以通過系統調用規則,來定義文件系統規則,如下的系統調用規則,與-w /etc/shadow -p wa的文件系統規則等同:

~]# auditctl -a always,exit -F path=/etc/shadow -F perm=wa

linux audit審計(5)--audit規則配置