Linux Auditd 安全監控實戰教學:由安裝到進階規則設定

# 用 Linux Auditd 監控系統安全:從零開始嘅實戰教學 做 IT 嘅你一定聽過呢句:「你唔知俾人 hack 咗,唔代表你冇俾人 hack。」要知自己有冇俾人搞過,最基本就係開返個 audit log。今日就同大家實戰示範點樣用 Linux 內置嘅 **auditd** 去監控系統安全,由安裝到設定,step-by-step 跟住做就得。 ## 乜嘢係 Auditd? **Auditd*...

Linux Auditd 安全監控實戰教學:由安裝到進階規則設定 - 文章重點速覽 infographic

# 用 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 漏洞資料庫

有咩問題歡迎留言討論!