🐧 Linux Log 全面強化指南:Auditd、Journalctl、Rsyslog、ELK / SIEM 整合實戰
Linux 系統的事件紀錄(Logging)是所有資安、維運與問題診斷的核心。 本指南將完整解析 Auditd、Journalctl、Rsyslog、ELK / SIEM 整合 的完整流程,並提供企業級最佳實務,讓你能打造可追蹤、可稽核、具可視化能力的日誌平台。
本篇涵蓋:
- Auditd:行為稽核與安全事件追蹤
- Journalctl:Systemd 日誌查詢、篩選與持久化
- Rsyslog:集中式日誌傳輸
- ELK / SIEM:高階分析、視覺化、安全告警
📌 一、Linux Log 架構快速總覽
Linux 完整的事件記錄系統由三層組成:
| 層級 | 元件 | 目的 |
|---|---|---|
| 稽核層 | Auditd | 追蹤系統層級事件、指令執行、檔案存取 |
| 日誌層 | Systemd Journal | 應用程式與系統服務訊息 |
| 集中傳輸層 | Rsyslog | 日誌收集與轉送至 SIEM / ELK |
這三層對應企業日誌需求:
- 完整性(Integrity) → Auditd
- 可追蹤性(Traceability) → Journalctl
- 集中分析(Correlated Analytics) → Rsyslog + SIEM
📌 二、Auditd:核心稽核系統(Security Events)
Auditd 是 Linux 安全稽核核心,可追蹤:
- 檔案存取(read/write/delete)
- 指令執行(execve)
- sudo 行為
- 認證、登入失敗
- 系統設定修改
🟦 基本查看
sudo ausearch -m avc
sudo aureport --summary
🟦 設定稽核規則
-w /etc/passwd -p wa -k passwd_changes
-a exit,always -F arch=b64 -S execve -k exec_monitor
Auditd 是 SIEM 中的核心來源,可提供「不可否認性」紀錄。
📌 三、Journalctl:Systemd 的日誌核心
Journalctl 提供比傳統 syslog 更完整的結構化日誌,包含:
- 系統服務啟動與錯誤
- Kernel 訊息
- 應用程式輸出
🟦 查看服務日誌
journalctl -u nginx
🟦 持續追蹤(tail)
journalctl -f
🟦 指定期間查詢
journalctl --since "1 hour ago"
🟦 啟用日誌持久化
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
若未開啟,重開機後日誌會消失。
📌 四、Rsyslog:集中式日誌傳輸與 SIEM 整合
Rsyslog 是 Linux 最成熟的日誌傳輸框架,可以:
- 收集本地日誌
- 傳送到 Log Server
- 支援 TCP、UDP、TLS 加密傳輸
🟦 傳送所有日誌到遠端 SIEM
編輯 /etc/rsyslog.d/90-siem.conf:*.* @@10.10.10.50:514
> @ = UDP
> @@ = TCP(推薦)
🟦 啟用設定
sudo systemctl restart rsyslog
Rsyslog 與 ELK / Splunk 完全相容,是集中式日誌的標準做法。
📌 五、ELK / SIEM:日誌分析、視覺化與告警
ELK(Elasticsearch + Logstash + Kibana)可提供:
- 全文索引
- 儀表板(Dashboard)
- 攻擊偵測
- 事件關聯分析(Correlation)
📦 典型架構流程
Auditd → Journalctl → Rsyslog → Logstash → Elasticsearch → Kibana
🎯 SIEM 可偵測的行為包含:
- 暴力登入攻擊
- 敏感檔案讀寫
- sudo 異常使用
- 可疑的 execve 連續執行
- 高權限帳號新增
重點: 日誌必須「可搜尋」且「具備上下文」,ELK 才能做有效分析。
📌 六、完整的 Linux Logging 最佳實務
- 啟用 Auditd 並確保有適當規則
- 啟用 Journal 日誌持久化
- Rsyslog 傳送所有日誌到集中伺服器
- ELK/Splunk 建立儀表板(登入錯誤、sudo、檔案存取)
- 定期檢查 Auditd Policy 避免誤報
📌 七、常見錯誤與陷阱
❌ Journalctl 沒有持久化
重開機後日誌消失 → 無法做 Forensics。
❌ 全部日誌丟進 ELK 造成爆量
建議先做 Parser 與等級分類。
❌ 沒有 Auditd 規則,事件不完整
ELK 只能看到 service log,而非系統行為。
📌 八、結語
Linux 的日誌能力比一般認知更強大。 從 Auditd 的稽核能力、Journalctl 的結構化日誌,到 Rsyslog 的集中收集,再到 ELK/SIEM 的視覺化監控,你可以打造一個企業級、可稽核、可追蹤的系統安全平台。
如需更深入整合(Ex: Filebeat、OpenSearch、SOAR 自動化告警),我也可以協助製作延伸篇。
🔗 延伸閱讀
💬 歡迎在下方留言交流!
想了解更深入的日誌分析?ELK / SIEM 部署?或是 Auditd 規則最佳化?歡迎留言交流!
— WWFandy・Linux Logging / SIEM 技術筆記
沒有留言: