SELinux在Ubuntu中的工作原理基于強制訪問控制(MAC),通過為系統資源(進程、文件、端口等)打上安全上下文標簽,并依據策略規則限制主體(進程)對客體(資源)的訪問,即使進程擁有root權限也無法繞過策略。
安全上下文(Security Context)
每個進程、文件、端口等資源都會被標記唯一的上下文標簽(如httpd_t
、httpd_sys_content_t
),包含用戶、角色、類型等信息,用于標識其安全級別和訪問權限。
ls -Z
(文件/目錄)、ps -Z
(進程)。策略規則(Policy Rules)
httpd_t
進程訪問httpd_sys_content_t
類型的文件,但禁止訪問其他類型的文件。工作模式
/var/log/audit/audit.log
)。決策流程
當進程嘗試訪問資源時,內核依次檢查:
sudo apt install selinux-basics selinux-policy-default
sudo selinux-activate # 啟用SELinux
sudo setenforce 0
(Permissive)/ 1
(Enforcing)。/etc/selinux/config
,修改SELINUX=
參數后重啟。semanage
:管理文件/端口標簽、布爾值(如允許服務訪問特定端口)。audit2allow
:根據日志生成自定義策略模塊,解決策略攔截問題。參考來源: