SELinux 基礎入門

第二章:安裝與模式設定

哪些發行版預設啟用 SELinux?

Fedora、RHEL、CentOS、Rocky Linux、AlmaLinux 等紅帽系發行版預設都會啟用 SELinux;Debian / Ubuntu 則預設使用另一套機制 AppArmor,但也可以選擇安裝 SELinux。本系列以紅帽系為主。

三種運作模式

getenforce

會回傳以下其中一種:

  • Enforcing:強制模式,違反政策的操作會被拒絕並記錄
  • Permissive:寬容模式,違反政策的操作仍會被允許,但會記錄下來(適合除錯用)
  • Disabled:完全關閉 SELinux

暫時切換模式

sudo setenforce 1   # 切到 Enforcing
sudo setenforce 0   # 切到 Permissive

這個指令只在這次開機期間有效,重開機後會恢復成設定檔內的模式。

永久變更設定

編輯 /etc/selinux/config

SELINUX=enforcing
SELINUXTYPE=targeted
  • SELINUXenforcing / permissive / disabled
  • SELINUXTYPE:政策類型,targeted(預設,只針對特定服務套用嚴格規則)是最常見的選擇

修改 SELINUXTYPE 或從 disabled 切回啟用,需要重開機並重新標記整個檔案系統,這個過程可能需要一些時間。

查看完整狀態

sestatus

會顯示目前模式、政策類型、政策版本等資訊。

關於「乾脆關掉就好」

直接把 SELinux 設成 disabled 確實能讓很多問題「消失」,但同時也關掉了這層額外的保護。比較好的做法是保持 Enforcing,遇到問題時用後面章節介紹的工具找出真正的原因並修正,而不是關掉整個機制。