概述
auditctl 動態管理 Linux 審計系統的規則。這些規則在核心層級定義,並可設定為記錄各種事件,例如特定的檔案存取、系統呼叫和使用者活動。審計日誌通常儲存在 /var/log/audit/audit.log 檔案中。
主要功能
- 添加和刪除審計規則
- 查詢當前啟用的審計規則列表
- 監視檔案和目錄的存取
- 監視特定的系統呼叫
- 設定基於使用者和群組的審計規則
安裝
auditctl 是 'audit' 或 'auditd' 套件的一部分。如果您的 Linux 發行版預設未安裝,您可以使用以下命令進行安裝。
Debian/Ubuntu
sudo apt update
sudo apt install auditd
在 Debian 或 Ubuntu 系統上安裝 auditctl。
RHEL/CentOS/Fedora
sudo yum install audit
# 或
sudo dnf install audit
在 RHEL、CentOS 或 Fedora 系統上安裝 auditctl。
安裝後,您需要啟動並啟用 auditd 服務:`sudo systemctl enable auditd --now`
主要選項
auditctl 命令透過各種選項來定義和管理審計規則。
規則管理
規則定義
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`auditctl` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
使用 auditctl 設定審計規則的各種範例。
列出所有當前審計規則
sudo auditctl -l
檢查當前核心中載入的所有審計規則。
監視 /etc/passwd 檔案的變更
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
監視對 /etc/passwd 檔案的所有寫入 (w) 和屬性變更 (a) 存取,並分配 'passwd_changes' 金鑰。
監視對 /etc/shadow 檔案的讀取嘗試
sudo auditctl -w /etc/shadow -p r -k shadow_read
監視對 /etc/shadow 檔案的讀取 (r) 嘗試,並分配 'shadow_read' 金鑰。
監視 /var/log 目錄中的檔案創建/刪除
sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes
監視 /var/log 目錄中的檔案創建 (creat) 和刪除 (unlink) 系統呼叫。分配 'log_dir_changes' 金鑰。
監視特定使用者 (UID) 的檔案刪除嘗試
sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete
監視使用者 UID 為 1000 的檔案刪除 (unlink) 系統呼叫。指定 64 位元系統架構。
刪除所有審計規則
sudo auditctl -D
刪除當前載入的所有審計規則。(注意:請謹慎使用。)
刪除具有特定金鑰的規則
sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d
刪除具有 'passwd_changes' 金鑰的規則。必須使用與添加規則時相同的選項。
提示與注意事項
使用 auditctl 時的實用提示和注意事項。
永久儲存規則
透過 auditctl 添加的規則在系統重新啟動後會消失。若要永久保留規則,請將規則新增至 /etc/audit/rules.d/audit.rules 檔案,然後使用 'augenrules --load' 或 'systemctl restart auditd' 命令進行套用。
- 規則檔案: /etc/audit/rules.d/audit.rules
- 套用規則: sudo augenrules --load
效能影響
設定過多的審計規則或監視廣泛的目錄可能會影響系統效能。建議僅設定必要的最低規則,並專注於關鍵路徑。
檢查日誌檔案
審計事件記錄在 /var/log/audit/audit.log 檔案中。使用 ausearch 和 aureport 命令來檢查這些日誌會更有效率。
指定架構 (-F arch=b64/b32)
監視系統呼叫時,建議在 64 位元系統上明確指定 '-F arch=b64',在 32 位元系統上指定 '-F arch=b32'。這是因為系統呼叫號碼可能因架構而異。