熱門分類
載入中…
目錄0%

🛡️ Linux 系統安全實戰:SELinux、AppArmor、Auditd、Fail2Ban 深度解析

    🛡️ Linux 系統安全實戰:SELinux、AppArmor、Auditd、Fail2Ban 深度解析

    Linux 在企業環境中廣泛使用,而伺服器安全不再只是「防火牆」或「改 SSH Port」這麼簡單。 真正完整的 Linux 安全架構包含:

    • 🔐 SELinux — 強制存取控制(MAC)
    • 🔐 AppArmor — 檔案路徑為主的應用程式安全框架
    • 📜 Auditd — 行為審計、事件追蹤
    • 🚫 Fail2Ban — 防暴力破解(SSH / Web / Mail)

    本篇將從實務角度深度解析這四大安全框架的定位、差異與最佳實務,協助你打造更完整的 Linux 主機安全策略。


    📌 第一章:SELinux — 最強大的強制安全框架(MAC)

    SELinux(Security-Enhanced Linux)是 Linux 最高級別的存取控制系統,採用 MAC(Mandatory Access Control)強制存取控制,比傳統的 DAC(chmod / chown)更嚴格。

    1.1 SELinux 三個運作模式

    模式說明
    Enforcing強制執行規則,阻擋違規行為(預設 & 最安全)
    Permissive不阻擋,只記錄違規行為(用於除錯)
    Disabled完全停用(不建議)
    sestatus
    

    1.2 常見 SELinux 問題:Permission denied(但檔案權限正常)

    此時可查:

    ausearch -m avc -ts recent
    

    1.3 SELinux 類型(Type / Domain)

    每個 process 與檔案都有「安全上下文」:

    ls -Z
    ps -eZ
    
    例子: - httpd_t(Apache) - ssh_t - var_log_t

    1.4 常見修復方式(非常重要)

    修復 SELinux 檔案標籤:

    restorecon -Rv /var/www/html
    

    允許服務使用特定行為(Boolean):

    setsebool -P httpd_can_network_connect on
    

    📌 第二章:AppArmor — 路徑為中心的「輕量安全框架」

    AppArmor 是 Ubuntu / Debian 系統預設使用的安全框架,它不像 SELinux 那麼複雜,以「檔案路徑」為核心。

    2.1 AppArmor Profiles 概念

    每個應用程式都有 Profile,包括:

    • 允許讀寫哪些檔案
    • 允許執行哪些 System call
    • 允許哪些能力(Capabilities)

    2.2 查看 Profile

    aa-status
    

    2.3 套用 Profile

    aa-enforce /etc/apparmor.d/usr.sbin.nginx
    

    2.4 AppArmor 與 SELinux 的差異

    項目SELinuxAppArmor
    控制模型安全上下文(Context)路徑為主(Profile)
    複雜度較高較低
    部署難度偏中高較容易
    預設系統RedHat / Rocky / FedoraUbuntu / Debian

    📌 第三章:Auditd — 行為追蹤與安全審計

    Auditd 是 Linux 的審計(日誌偵測)框架,用於監控:

    • 檔案存取
    • 登入行為
    • 系統設定變更
    • 安全事件

    3.1 啟動 Auditd

    systemctl enable --now auditd
    

    3.2 增加一條觀察規則(監控重要檔案)

    auditctl -w /etc/passwd -p war -k passwd_changes
    

    代表:

    - -w:監控路徑 - -p:行為(write / read / attribute) - -k:事件名稱

    3.3 查詢審計紀錄

    ausearch -k passwd_changes
    

    3.4 永久規則(/etc/audit/rules.d)

    寫入規則檔後重啟 auditd 即可。


    📌 第四章:Fail2Ban — 防暴力破解最佳利器

    Fail2Ban 會自動讀取 log,若發現暴力破解行為,就會:

    - 將 IP 加入封鎖 - 使用 iptables / nftables 阻擋 - 支援 SSH、Web、Mail、FTP、多種服務 - 可自訂 Filter 與 Jail

    4.1 安裝 Fail2Ban

    apt install fail2ban -y
    或
    yum install fail2ban -y
    

    4.2 啟用 SSH 防暴力破解

    建立:
    /etc/fail2ban/jail.local
    
    內容:
    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 5
    bantime = 1h
    

    4.3 查看封鎖與狀態

    fail2ban-client status sshd
    

    4.4 Web Server 防禦特例(很常用)

    [nginx-http-auth]
    enabled = true
    port = http,https
    logpath = /var/log/nginx/error.log
    maxretry = 3
    

    📌 第五章:四大框架如何搭配?(完整安全架構)

    企業常用搭配方式如下:

    ✔ RedHat / Rocky / Oracle Linux:

    • SELinux(核心防護)
    • Auditd(審計)
    • Fail2Ban(暴力破解防禦)

    ✔ Ubuntu / Debian:

    • AppArmor(預設)
    • Auditd(追蹤)
    • Fail2Ban(常用)

    📌 第六章:最佳實務(企業部署建議)

    • 🔒 勿關閉 SELinux,建議使用 Permissive 找問題 → 再切回 Enforcing
    • 📜 AppArmor Profile 保持最小授權原則(Least Privilege)
    • 🧪 Auditd 對敏感檔案與設定做監控(passwd / sudoers / SSH 設定)
    • 🚫 Fail2Ban 監控 SSH + Nginx + Postfix,提升實際防護效果
    • 🔄 定期 review 安全 Log(Audit + System Log)

    📌 結語

    Linux 的安全遠比想像中的更完整:從最底層的強制存取控制(SELinux/AppArmor)、到審計框架(Auditd)、再到暴力破解防禦(Fail2Ban),形成多層次安全防護。 只要妥善設定,就能大幅提高伺服器安全性,避免不必要的入侵與誤用風險。

    下一篇將推出: 《Linux 系統攻擊面縮減指南:Sysctl、Kernel Hardening、SSH 配置、Firewall 全面加固》


    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級