Linux Auditd 檔案監控教學:IT 管理員必學安全審計技巧

# 用 Linux Auditd 監控檔案變更:IT 管理員必學嘅安全審計技巧 做 IT 管理員,最怕就係俾人問:「邊個改咗呢個 config file?」或者「幾時有人郁過 /etc/passwd?」冇審計機制嘅話,你只能夠靠估。今日就同大家分享點樣用 Linux 內置嘅 **auditd** 去監控關鍵檔案變更,唔使裝任何額外軟件,內置就有! ## Auditd 係乜嘢嚟? **auditd*...

# 用 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 #監控 #技術分享

Linux Auditd 檔案監控教學:IT 管理員必學安全審計技巧 - 文章重點速覽 infographic