# 用 Linux Auditd 監控檔案變更:IT 管理員必學嘅安全審計技巧
做 IT 管理員,最怕就係俾人問:「邊個改咗呢個 config file?」或者「幾時有人郁過 /etc/passwd?」冇審計機制嘅話,你只能夠靠估。今日就同大家分享點樣用 Linux 內置嘅 **auditd** 去監控關鍵檔案變更,唔使裝任何額外軟件,內置就有!
## Auditd 係乜嘢嚟?
**auditd** 係 Linux kernel 嘅審計子系統,可以記錄系統入面發生嘅事件,包括檔案存取、系統呼叫、使用者登入等等。佢係 RHEL/CentOS/Ubuntu 預設內置嘅,只需要 enable 同 configure 就用得。
## Auditd 安裝同基本設定
首先確認 auditd 已經安裝咗:
# RHEL/CentOS/Rocky Linux
sudo dnf install audit -y
# Ubuntu/Debian
sudo apt install auditd -y
啟動 auditd 服務:
sudo systemctl enable --now auditd
sudo systemctl status auditd
見到 `active (running)` 就代表 OK 喇。
## Auditd 監控關鍵檔案變更
最常用嘅場景就係監控 `/etc/` 目錄下嘅 config file。用 `auditctl` 指令加 watch rule:
# 監控 /etc/passwd 任何變更(寫入、屬性變更)
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
# 監控 /etc/shadow
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
# 監控成個 /etc/sudoers.d/ 目錄
sudo auditctl -w /etc/sudoers.d/ -p wa -k sudoers_changes
# 監控 SSH config
sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config_changes
參數解釋:
– `-w`:watch 嘅路徑
– `-p wa`:監控 write (w) 同 attribute change (a)
– `-k`:key name,方便之後 search log
## Auditd 令 Rule 永久生效
上面用 `auditctl` 加嘅 rule 係 temporary 嘅,reboot 之後會消失。要永久生效就要寫入 `/etc/audit/rules.d/`:
sudo tee /etc/audit/rules.d/critical-files.rules << 'EOF'
# 監控關鍵系統檔案
-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/sudoers.d/ -p wa -k sudoers_changes
-w /etc/ssh/sshd_config -p wa -k sshd_config_changes
-w /etc/crontab -p wa -k cron_changes
EOF
# 重新載入 rules
sudo augenrules --load
## Auditd 查閱審計記錄
加咗 rule 之後,所有變更都會記錄喺 `/var/log/audit/audit.log`。可以用 `ausearch` 去 search:
# 搜尋 passwd 相關嘅變更記錄
sudo ausearch -k passwd_changes
# 搜尋今日嘅記錄
sudo ausearch -k passwd_changes --start today
# 用 aureport 睇 summary
sudo aureport -f -i --start today
輸出例子:
File Report
===============================================
# date time file syscall success exe auid event
1. 07/31/2026 10:15:23 /etc/passwd openat yes /usr/bin/vim.basic terry 12345
清清楚楚睇到邊個 user、用咩 program、幾時改過咩 file。
## Auditd 進階:監控特定使用者行為
除咗監控檔案,auditd 仲可以監控特定 user 嘅所有 system call:
# 監控 uid 1000 嘅所有動作
sudo auditctl -a always,exit -F arch=b64 -S all -F uid=1000 -k user_activity
不過呢個會產生大量 log,建議只喺 troubleshooting 時短暫使用。
## Auditd Log Rotation 管理
Audit log 會不斷增長,要 set 好 rotation:
sudo tee /etc/audit/auditd.conf << 'EOF'
max_log_file = 50
max_log_file_action = ROTATE
num_logs = 10
space_left_action = SYSLOG
admin_space_left_action = SUSPEND
EOF
## 總結
**auditd** 係一個輕量但強大嘅 Linux 審計工具,唔使額外安裝 agent,內置就有。對於需要 compliance(例如 PCI-DSS、ISO 27001)嘅環境嚟講,auditd 係最基本嘅安全審計要求。記住:出事先去搵 log 已經太遲,set 好 auditd rule 先係正確做法!
🔗 參考資料:NVD NIST 漏洞資料庫
你有冇用開 auditd?定係用其他 SIEM 方案?留言分享下你嘅經驗啦!
#IT教學 #安全 #Linux #監控 #技術分享




