SElinux:Secure Enhanced Linux
SElinux工作與linux內核中他所實現的功能叫做強制訪問控制機制。DAC:是linux的自主訪問控制。MAC:是SElinux引入的訪問法則,叫作強制訪問控制。
SElinux有兩種工作級別:
strick:嚴格級別,每個進程都收到SElinux的控制: targeted:僅有限個進程受到SElinux控制: 只監控容易被入侵的進程:
SElinux是如何工作的
subject: 進程 object: 包括進程,文件, 文件支持的操作:open, read, write, close, chown, chmod 該模型為一個進程對另一個對象進行操作,被操作的對象可以為進程,也可以是文件目錄等,subject:存在domain(域), object:存在type(類型),而所允許的操作其subject和object要求域內存在所允許的類型的文件 selinux圍繞一個進程所能夠對另外一個進程被操縱資源的操作功能, 被操縱資源的操作功能受限于一個文件被操作資源和操作者兩者是否位于同一個區域內。 SElinux為每個文件提供了安全標簽,也為進程提供了安全標簽,安全標簽使用冒號隔開由五段組成, 最后兩段對于在CentOS系列的文件系上是無太多意義的:selinux必須在系統啟動時候激活內核加載此功能 user:role:type user:selinux的user; role:角色 type:類型
SElinux規則庫:庫里定義了很多規則
規則說明了哪種域能訪問哪種或哪些種類型內的文件
如何配置SElinux:
SElinux是否啟用: 啟用與否的模式有三種: enforcing:強制,每個受限的進程都必然受限 permissive:啟用,每個受限的進程違規操作不會被禁止,但會被記錄于審計日志 disabled:關閉 注意:如果當前系統SElinux處于disabled狀態,無論需要啟用為enfotcing,permissive狀態, 都需要重啟系統讓內核對根文件系統上的所有文件做打標簽以后才能啟用。如果當前系統SElinux處于permissive狀態, 需要改為enfotcing就簡單多了,想看以下命令; 相關命令: getenforce:獲取selinux當前狀態: setenforce 0|1 0:設置為permissive 1:設置為enforcing 注意:此設定重啟系統后無效;需要當前系統selilnux為啟用狀態。如果要想永久有效需要改配置文件,改完以后需重啟 配置文件:/etc/sysconfig/selinux,/etc/selinux/config SELINUX={disabled|enforcing|permissive} 給文件重新打標: chcon: chcon [OPTION]... CONTEXT FILE... chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE... chcon [OPTION]... --reference=RFILE FILE... -R:遞歸打標; 還原文件的標簽: restorecon [-R] /path/to/somewhere 設定某些布型特性: getsebool:顯示布爾型特性 getsebool [-a] [boolean] setsebool:設置布爾型特性 setsebool [ -P] boolean value | bool1=val1 bool2=val2 … -P:保存在策略庫中,立刻有效
練習1、啟用SElinux策略并安裝http服務,改變網站的默認主目錄為/website,添加SElinux文件標簽規則,使網站可訪問
1)安裝httpd,并且開啟, 修改SElinux配置文件為enforcing強制狀態然后重啟,并且重啟后需要httpd是開啟狀態
2)創建/website并且給目錄打標
3)編輯httpd.conf文件,修改默認目錄為/website
]#vim/etc/httpd/conf/httpd.conf
練習2、修改上述網站的http端口為9527,增加SElinux端口標簽,使網站可訪問
1)修改httpd服務監聽端口配置文件
2)安裝semange ]# yum install policycoreutils-python -y
3)將9527設置為httpd監聽端口
練習3、啟用相關的SElinux布爾值,使上述網站的用戶student家目錄可通過http訪問
]# setsebool httpdenablehomedirs=on
配置完成,清空防火墻策略,訪問測試
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/48719