SELinux(Security-Enhanced Linux)是一種在Linux操作系統中實現強制訪問控制(MAC)的安全模塊。它可以幫助你限制CentOS用戶的權限,提高系統安全性。以下是如何使用SELinux限制CentOS用戶權限的步驟:
確認SELinux已安裝并啟用:
在終端中運行以下命令,查看SELinux的狀態:
getenforce
如果輸出結果為“Enforcing”,則表示SELinux已啟用。如果輸出結果為“Disabled”,則需要啟用SELinux。
要啟用SELinux,請編輯/etc/selinux/config
文件,將SELINUX=disabled
更改為SELINUX=enforcing
,然后重啟系統。
為用戶分配角色:
SELinux使用角色來限制用戶訪問特定資源。首先,你需要為用戶分配一個角色??梢允褂?code>semanage login命令將用戶添加到一個角色中。例如,要將用戶user1
添加到角色user_r
中,請運行以下命令:
sudo semanage login -a -s user_r user1
為角色分配權限:
接下來,你需要為角色分配訪問特定資源的權限。這可以通過編輯相應的策略文件來實現。策略文件通常位于/etc/selinux/targeted/policy/policies/
目錄中。
例如,要允許用戶訪問/var/www/html
目錄,你需要編輯httpd_sys_content_t
類型的策略文件??梢允褂?code>audit2allow工具自動生成策略文件。首先,確保已安裝policycoreutils-python
包:
sudo yum install policycoreutils-python
然后,使用ausearch
命令查找與訪問/var/www/html
相關的拒絕記錄:
sudo ausearch -m avc -ts recent
假設輸出結果中有一條記錄與訪問/var/www/html
相關,你可以使用audit2allow
生成策略文件:
sudo ausearch -m avc -ts recent | audit2allow -M mypol
這將生成一個名為mypol.te
的策略文件和一個名為mypol.pp
的策略模塊文件。
最后,使用semodule
命令加載生成的策略模塊:
sudo semodule -i mypol.pp
測試策略:
現在,你應該已經限制了用戶訪問特定資源的權限。嘗試以受限用戶身份執行操作,以確保策略生效。
請注意,SELinux策略可能會很復雜,因此在修改策略文件時要謹慎。在生產環境中應用更改之前,請務必在測試環境中充分測試策略。