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

🐧 Linux SELinux 介紹與實務教學(安全性強化基礎)

    🐧 Linux SELinux 介紹與實務教學(安全性強化基礎)

    在企業級 Linux 發行版(如 Red Hat / Rocky / CentOS)中,SELinux(Security-Enhanced Linux) 是核心安全架構之一,負責限制程序與資源間的存取權限。 本文將從原理、模式設定、日誌觀察到故障排除,帶你全面理解這項強大的安全機制。

    🔐 一、什麼是 SELinux?

    SELinux 是由 NSA(美國國安局) 開發的存取控制機制,採用 Mandatory Access Control(MAC), 不同於傳統 Discretionary Access Control(DAC) 只依靠檔案擁有者設定權限, SELinux 更嚴格地根據「程序類型(Type)」與「安全上下文(Context)」來判斷是否允許行為。

    # 查看系統是否啟用 SELinux
    getenforce        # Enforcing / Permissive / Disabled
    sestatus          # 顯示完整狀態
    cat /etc/selinux/config

    ⚙️ 二、SELinux 模式與用途

    • Enforcing:啟用並強制執行安全策略(建議預設)。
    • Permissive:僅記錄違規行為,不阻擋(用於測試)。
    • Disabled:完全停用(重啟後生效)。
    # 臨時切換模式(重開機後失效)
    sudo setenforce 0    # 改為 Permissive
    sudo setenforce 1    # 改為 Enforcing
    
    # 永久設定(需重啟)
    sudo vi /etc/selinux/config
    SELINUX=enforcing

    🧩 三、安全上下文(Security Context)結構

    每個檔案、程序、Port 都有對應的 SELinux Context,以四段表示:

    user:role:type:level

    例如:

    system_u:object_r:httpd_sys_content_t:s0
    • user:SELinux 使用者身分。
    • role:角色(例如 system_r 表系統角色)。
    • type:最重要的部分,控制哪些程序可存取。
    • level:安全等級(多用於 MLS/MCS)。
    # 查看檔案 Context
    ls -Z /var/www/html
    
    # 查看程序 Context
    ps -eZ | grep httpd

    🧠 四、常見問題與修復

    • HTTPD 無法存取目錄:Context 錯誤導致。
    • sudo restorecon -Rv /var/www/html
    • 新增自訂目錄提供 Web:需設定標籤。
    • sudo semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"
      sudo restorecon -Rv /srv/www
    • 檢視阻擋日誌:
    • sudo ausearch -m AVC,USER_AVC -ts recent
      sudo journalctl -t setroubleshoot

    🧰 五、SELinux 與常見服務整合

    服務常見布林值設定指令
    HTTPD允許連外setsebool -P httpd_can_network_connect 1
    FTP允許上傳setsebool -P ftp_home_dir 1
    Samba允許共享家目錄setsebool -P samba_enable_home_dirs 1

    📊 六、實務觀察與建議

    • 初次建置新服務時,先觀察 /var/log/audit/audit.log 是否有拒絕紀錄。
    • 善用 setroubleshoot 工具提供修正建議。
    • 避免直接停用 SELinux,而是針對特定服務開放對應布林值。

    📘 結語

    SELinux 並非阻礙,而是防止「系統被誤用」的守護者。 掌握其運作邏輯與常見設定後,你將能讓 Linux 伺服器同時兼具 穩定與安全。 建議與 systemd、Fail2Ban 等安全模組一同使用,形成多層防護。


    🔗 延伸閱讀

    — WWFandy・系統與網路筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級