
# 用 Linux Auditd 監控系統安全:從零開始嘅實戰教學
做 IT 嘅你一定聽過呢句:「你唔知俾人 hack 咗,唔代表你冇俾人 hack。」要知自己有冇俾人搞過,最基本就係開返個 audit log。今日就同大家實戰示範點樣用 Linux 內置嘅 **auditd** 去監控系統安全,由安裝到設定,step-by-step 跟住做就得。
## 乜嘢係 Auditd?
**Auditd** 係 Linux kernel 內置嘅審計系統,可以記錄系統入面發生嘅所有事件 — 邊個 user 喺咩時間改過咩 file、邊個 process 做過咩 system call,全部有紀錄。佢唔係 antivirus,但係 forensic 調查嘅時候,auditd log 就係你嘅救命稻草。
## Auditd 安裝同基本設定
大部份 Linux distro 都內置咗 auditd,如果冇就裝咗先:
# Ubuntu/Debian
sudo apt update && sudo apt install auditd -y
# RHEL/CentOS/Rocky
sudo dnf install audit -y
裝完之後,啟動同 enable service:
sudo systemctl start auditd
sudo systemctl enable auditd
sudo systemctl status auditd
見到 `active (running)` 就代表成功。
## Auditd 核心設定檔
主設定檔喺 `/etc/audit/auditd.conf`,呢度控制 log 嘅 rotation、size limit 同 storage 位置。預設已經 OK,但建議改一改 max log file size:
sudo sed -i 's/^max_log_file = .*/max_log_file = 50/' /etc/audit/auditd.conf
咁每個 audit log file 最多 50MB,唔會食曬你個 disk。
## Auditd 規則設定:監控關鍵檔案
真正嘅力量喺 `/etc/audit/rules.d/` 入面。我哋建立一個自訂規則檔:
sudo nano /etc/audit/rules.d/custom.rules
加入以下 Auditd 規則:
# 監控 /etc/passwd 同 /etc/shadow 嘅改動(防止 privilege escalation)
-w /etc/passwd -p wa -k identity_changes
-w /etc/shadow -p wa -k identity_changes
-w /etc/sudoers -p wa -k sudo_changes
# 監控 SSH config 改動
-w /etc/ssh/sshd_config -p wa -k sshd_config_changes
# 監控所有 user 嘅 crontab 改動
-w /var/spool/cron -p wa -k cron_changes
# 記錄所有 sudo 執行
-a always,exit -F exe=/usr/bin/sudo -F arch=b64 -S execve -k sudo_exec
每個 `-w` 代表 watch 一個 file/directory,`-p wa` 代表監控 write + attribute change,`-k` 係自訂 key 方便之後 search。
## Auditd 規則生效同驗證
寫完規則之後,要重新載入:
sudo augenrules --load
sudo systemctl restart auditd
檢查規則係咪生效:
sudo auditctl -l
你應該見到頭先加嘅所有 Auditd 規則。
## Auditd Log 搜尋實戰
而家試下觸發一個 event — 改一改 `/etc/passwd`(唔好真係改,用 `touch` 就得):
sudo touch /etc/passwd
然後用 `ausearch` 搜返出嚟:
sudo ausearch -k identity_changes -i
你會見到類似咁嘅 output:
type=PROCTITLE msg=audit(07/06/2026 13:30:00.123:456) : proctitle=touch /etc/passwd
type=PATH msg=audit(07/06/2026 13:30:00.123:456) : item=0 name=/etc/passwd ...
type=SYSCALL msg=audit(07/06/2026 13:30:00.123:456) : arch=x86_64 syscall=openat success=yes exit=3 ...
清清楚楚 — 邊個 user、咩時間、咩 command、改咗咩 file,全部有齊。
## Auditd 報表工具:aureport
`aureport` 可以幫你 generate summary report:
# 睇今日所有 audit event 摘要
sudo aureport --start today
# 睇 authentication 相關 event
sudo aureport -au --start today
# 睇 failed event(可能係攻擊嘗試)
sudo aureport --failed --start today
## Auditd 進階:整合 SIEM
如果你公司有 Splunk、ELK 或者 Wazuh 呢類 SIEM,可以將 auditd log forward 過去做 centralized monitoring。最簡單係用 `audisp-remote` plugin:
sudo nano /etc/audisp/plugins.d/au-remote.conf
改 `active = yes`,然後設定 remote server address 就得。
## 總結
**Auditd** 係 Linux 安全監控嘅基石,免費、內置、功能強大。花半個鐘 set 好基本規則,將來出事嘅時候你就會多謝今日嘅自己。記住:log 唔會阻止攻擊,但冇 log 就一定查唔到攻擊。
🔗 參考資料:NVD NIST 漏洞資料庫
有咩問題歡迎留言討論!



