在Ubuntu上,SELinux(Security-Enhanced Linux)并不是默認啟用的安全模塊,而是使用AppArmor作為其強制訪問控制(MAC)框架。不過,如果你確實需要在Ubuntu上配置SELinux,以下是一些基本步驟和策略配置:
首先,確保系統已經安裝了SELinux及相關工具??梢允褂靡韵旅顏戆惭b:
sudo apt update
sudo apt install selinux-basics selinux-policy-default selinux-utils
安裝完成后,需要將SELinux設置為“寬松”或“嚴格”模式。要將其設置為“寬松”模式,請編輯 /etc/selinux/config
文件并更改以下行:
SELINUX=enforcing
將其更改為:
SELINUX=permissive
保存并關閉文件。然后重新啟動計算機以使更改生效:
sudo reboot
要檢查SELinux是否已啟用并運行,可以在終端中輸入以下命令:
sestatus
SELinux策略可以通過多種方式進行管理,包括使用命令行工具 semanage
和 audit2allow
,或者通過圖形界面工具如 Policy Configurator。
例如,要允許Apache Web服務器訪問用戶主目錄中的文件,可以運行以下命令:
sudo setsebool -P httpd_enable_homedirs 1
要定制SELinux策略,需要編寫一個 .te
文件,其中包含策略規則。例如,創建一個名為 my-custom-policy.te
的文件,包含以下內容:
policy_module(my_custom_policy, 1.0)
require {
type httpd_t;
class file {
read write;
}
}
allow httpd_t self:file {
read write;
}
編譯策略:
checkmodule -M -m -o my-custom-policy.mod my-custom-policy.te
安裝編譯好的策略:
sudo semodule -i my-custom-policy.pp
驗證策略:
使用 audit2why
和 ausearch
工具檢查策略是否按預期工作:
grep my_custom_policy /var/log/audit/audit.log
ausearch -m avc -ts recent
請注意,SELinux在Ubuntu上的支持有限,并非所有功能都可用。在某些情況下,您可能需要考慮使用其他發行版,如CentOS或RHEL,以獲得更好的SELinux支持。