17.4 對稽核進行設定

所有用於安全稽核的設定檔,都可以在 /etc/security 找到。 要啟動稽核服務之前,必須要有下面這些檔案:

Warning: 在編輯和維護稽核設定檔時一定要小心,因為設定檔中的錯誤會導致記錄事件不正確。

17.4.1 事件篩選表達式

在稽核設定檔中的許多地方會用到篩選表達式來確定哪些事件是需要稽核的。 表達式中需要指定要符合的事件類型,並使用前綴指定是否應接受或忽略符合的事件, 此外,還可以指定一個可選項指定符合成功或失敗的操作。 選擇表達式是按從左到右的順序計算的,而對於兩個表達式的情形, 則是透過將後一個追加到前一個之後來實作的。

下面列出了在 audit_class 中的預設事件類型:

這些稽核事件,可以透過修改 audit_classaudit_event 這兩個設定檔來進行自訂。

這個列表中,每個稽核類均包含一個表示符合成功/失敗操作的前綴, 以及這一項是否是增加或刪去對事件類或類型的符合。

下面例子中的篩選字串表示篩選成功和失敗的登入/登出事件, 而對執行事件,則只稽核成功的:

lo,+ex

17.4.2 設定檔

多數情況下,在設定稽核系統時, 管理員只需修改兩個檔案: audit_controlaudit_user。 前者控制系統級的稽核屬性和策略, 而後者則用於針對具體的使用者來微調。

17.4.2.1 audit_control 檔案

audit_control 檔案指定了一系列用於稽核子系統的預設設置。 透過檢視這個檔案,我們可以看到下面的內容:

dir:/var/audit
flags:lo
minfree:20
naflags:lo
policy:cnt
filesz:0

這裡的 dir 選項可以用來設置用於儲存稽核 log 的一或多個目錄。 如果指定了多個目錄,則將在填滿一個之後換用下一個。 一般而言, 稽核通常都會設定為儲存在一個專用的檔案系統之下, 以避免稽核系統與其它子系統在檔案系統滿的時候所產生的衝突。

flags 欄位用於為有主事件設定系統級的預選條件。 在前面的例子中,所有使用者成功和失敗的登入和登出都會被稽核。

minfree 參數用於定義儲存稽核 log 的檔案系統上剩餘空間的最小百分比。 當超過這臨界值時, 將產生一個警告。 前面的例子中,最小剩餘空間比例設置成了兩成。

naflags 選項表示稽核類稽核無主事件, 例如作為登入程序和系統服務的那些程序的事件。

policy 選項用於指定一個以逗號分隔的策略標志表, 以控制一系列稽核行為。 預設的 cnt 標志表示系統應在稽核失敗時繼續執行 (強烈建議使用這個標志)。 另一個常用的標志是 argv,它表示在稽核命令執行操作時, 同時稽核傳給 execve(2) 系統調用的指令參數。

filesz 選項指定了稽核 log 在自動停止記錄和翻轉之前允許的最大大小。 預設值 0 表示禁用自動 log 翻轉。 如果設定的值不是零,但小於最小值 512k, 則這個設定會被忽略,並在 log 中記錄這一消息。

17.4.2.2 audit_user

audit_user 檔允許管理員為了特定使用者, 而去指定進一步的稽核需求。 每行使用兩個欄位來設定使用者的稽核: 第一個是 alwaysaudit 欄位, 它指定了一組對該使用者總會進行稽核的事件; 而第二個則是 neveraudit 欄位, 它指定了一系列對該使用者不稽核的事件。

在下述 audit_user 示例檔案中, 稽核了 root 使用者的 登入/登出 事件,以及成功的命令執行事件, 此外,還稽核了 www 使用者的檔案新增和成功的命令執行事件。 如果與前面的示範 audit_control 檔案配合使用, 則 rootlo 項就是多餘的, 而對 www 使用者而言,其登入/登出事件也會被稽核 :

root:lo,+ex:no
www:fc,+ex:no

本文及其他文件,可由此下載:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢 <questions@FreeBSD.org>。
關於本文件的問題,請洽詢 <doc@FreeBSD.org>。