📖 Linux 入侵檢測與日誌分析

分類:資安與維運 | 作者:pake | 發布時間:2024-10-02 20:23

Linux 入侵檢測與日誌分析

入侵檢測(Intrusion Detection)與日誌分析(Log Analysis)是 Linux 伺服器安全防護的重要組成部分。透過適當的監控機制與日誌分析,可以有效發現潛在攻擊與異常行為,確保伺服器的完整性與可用性。

本篇將介紹如何使用 auditdfail2banOSSEC 等工具進行入侵檢測,並涵蓋系統關鍵日誌的分析技巧。


目錄


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 入侵檢測與日誌分析的完整教學,涵蓋 auditdfail2banOSSEC 以及 Rootkit 偵測等技術。透過這些方法,您可以提升 Linux 伺服器的安全性,有效防範攻擊與異常行為。

⬅ 上一篇 下一篇 ➡
🔙 返回 資安與維運 📚 返回教學列表 🏠 返回首頁