SELinux(Security-Enhanced Linux)是一種在Linux系統上實現強制訪問控制(MAC)的安全模塊。它通過定義一套規則來限制進程對文件、網絡和其他資源的訪問。在Ubuntu系統中,SELinux默認是禁用的,但你可以通過以下步驟啟用并配置它來控制文件訪問。
安裝SELinux包:
sudo apt update
sudo apt install selinux-basics selinux-policy-default
啟用SELinux:
sudo selinux-activate
驗證SELinux狀態:
sestatus
你應該看到SELinux status: enabled。
SELinux的配置文件位于/etc/selinux/config。你可以編輯這個文件來更改SELinux的模式。
sudo nano /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled可以禁用SELinux,或者改為SELINUX=permissive可以在不強制執行規則的情況下運行SELinux。
SELinux通過標簽(labels)來控制文件和目錄的訪問。每個文件和目錄都有一個SELinux標簽,SELinux策略使用這些標簽來決定是否允許訪問。
查看文件和目錄的SELinux標簽:
ls -Z
更改文件或目錄的SELinux標簽:
sudo chcon user_home_t /path/to/file_or_directory
這里user_home_t是一個示例標簽,你可以根據需要選擇合適的標簽。
永久更改文件或目錄的SELinux標簽:
sudo chcon -R user_home_t /path/to/file_or_directory
使用restorecon命令恢復默認標簽:
sudo restorecon -Rv /path/to/file_or_directory
假設你想限制某個用戶只能訪問其主目錄中的文件,你可以創建一個自定義的SELinux策略。
安裝policycoreutils-python-utils:
sudo apt install policycoreutils-python-utils
生成自定義策略模塊:
sudo ausearch -c 'user_home_access' --raw | audit2allow -M mypol
加載自定義策略模塊:
sudo semodule -i mypol.pp
驗證策略是否生效:
sudo ausearch -m avc -ts recent
通過這些步驟,你可以啟用并配置SELinux來控制文件訪問,從而提高系統的安全性。