Linux 入侵檢測與日誌分析
入侵檢測(Intrusion Detection)與日誌分析(Log Analysis)是 Linux 伺服器安全防護的重要組成部分。透過適當的監控機制與日誌分析,可以有效發現潛在攻擊與異常行為,確保伺服器的完整性與可用性。
本篇將介紹如何使用 auditd
、fail2ban
、OSSEC
等工具進行入侵檢測,並涵蓋系統關鍵日誌的分析技巧。
目錄
- Linux 重要日誌介紹
- 使用
auditd
監控系統事件 - 設定
fail2ban
防禦 SSH 暴力攻擊 - 使用
rkhunter
偵測 Rootkit - 安裝與設定
OSSEC
作為 HIDS - 分析系統日誌
- 結語
Linux 重要日誌介紹
Linux 系統中,所有關鍵操作都會被記錄在 /var/log
目錄中,以下是常見的日誌:
日誌檔案 | 說明 |
---|---|
/var/log/auth.log 或 /var/log/secure |
SSH 登入、密碼變更、sudo 操作記錄 |
/var/log/syslog |
系統核心與應用程式日誌 |
/var/log/messages |
重要系統事件 |
/var/log/dmesg |
核心啟動時的記錄 |
/var/log/fail2ban.log |
Fail2Ban 封鎖攻擊 IP 記錄 |
/var/log/audit/audit.log |
SELinux 與 auditd 記錄 |
使用 auditd
監控系統事件
安裝 auditd
sudo dnf install audit audit-libs -y
sudo systemctl enable --now auditd
設定監控規則
監控 /etc/passwd
檔案的變更:
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
監控使用者執行 sudo
命令:
sudo auditctl -a always,exit -F arch=b64 -S execve -F euid=0 -k sudo_exec
查詢 auditd
記錄
顯示所有登入記錄:
sudo ausearch -m USER_LOGIN
顯示最近的異常行為:
sudo ausearch -m AVC -ts recent
設定 fail2ban
防禦 SSH 暴力攻擊
安裝 fail2ban
sudo dnf install fail2ban -y
sudo systemctl enable --now fail2ban
設定 SSH 防禦規則
編輯 /etc/fail2ban/jail.local
:
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
重新啟動 fail2ban
服務:
sudo systemctl restart fail2ban
查看封鎖狀態
sudo fail2ban-client status sshd
使用 rkhunter
偵測 Rootkit
安裝 rkhunter
sudo dnf install rkhunter -y
更新 Rootkit 定義
sudo rkhunter --update
執行系統檢查
sudo rkhunter --check --sk
安裝與設定 OSSEC
作為 HIDS
OSSEC(Open Source Host-based Intrusion Detection System)是一款開源的 HIDS,可以監控日誌、檔案變更與系統異常行為。
安裝 OSSEC
sudo dnf install ossec-hids ossec-hids-server -y
設定 OSSEC 規則
編輯 /var/ossec/etc/ossec.conf
,新增:
<syscheck>
<frequency>3600</frequency>
<directories check_all="yes">/etc,/bin,/sbin,/usr/bin,/usr/sbin</directories>
</syscheck>
啟動 OSSEC
sudo systemctl enable --now ossec-hids
查看 OSSEC 事件
sudo tail -f /var/ossec/logs/alerts.log
分析系統日誌
檢查 SSH 登入記錄
sudo grep "Accepted" /var/log/secure
找出多次失敗的 SSH 嘗試
sudo grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | head -10
監控 /var/log/messages
sudo tail -f /var/log/messages
監控 Nginx 或 Apache 日誌異常請求
sudo tail -f /var/log/nginx/access.log | grep "404"
設定 logwatch
產生日誌報告
安裝 logwatch
:
sudo dnf install logwatch -y
產生日誌報告:
sudo logwatch --detail High --mailto admin@example.com --range today
結語
本篇提供了 Linux 入侵檢測與日誌分析的完整教學,涵蓋 auditd
、fail2ban
、OSSEC
以及 Rootkit 偵測等技術。透過這些方法,您可以提升 Linux 伺服器的安全性,有效防範攻擊與異常行為。