SELinux介紹與設置
??selinux強制訪問控制的一種策略,在傳統的linux系統中,一切皆文件,有用戶,組和權限來控制訪問,在selinux中,一切皆對象,由存放在擴展屬性域的安全元素控制訪問,所有文件、端口、進程都具備安全上下文,安全上下文主要分為五個安全元素user、role、type、sensitivity、category。
二、五個安全元素
user:登錄系統的用戶類型,如root,user_u,system_u,所屬本地進程都屬於自由(unconfined)進程
role:定義文件,進程和用戶的用途:文件:object_r,進程和用戶:system_r
type:數據類型,在規則中,何種進程類型訪問何種文件都是基於type來實現的,多服務公用的類型有public_content_tsensitivity:限制訪問的需要由組織定義的分層
category:對於規定組織劃分不分層的分類
三、selinux工作模式
??selinux主要模式有:strict(centos5)、targeted、minimun(centos7)、mls幾類,selinux系統默認選擇是targeten,strict已經不再使用,minimun和mls穩定性不足
四、實際上下文和期望上下文
實際上下文:存放在元數據中,查看文件上下文:ls -Z。查看進程上下文:ps -Z
期望上下文:期望上下文也可以理解為默認上下文,它存放在二進制的selinux策略庫中。查看期望上下文的命令為semanage fcontext -l查看系統所有期望上下文
五、開啟和禁用selinux
更改配置文件類型一般只在enforcing和disabled兩個模式下相互切換,因為第二種只是報警,沒有任何意義,該配置只有在重啟後有效
查看當前selinux的狀態命令為
getenforce查看當前狀態
setenforce臨時開啟或關閉selinux
setenforce 0|1,其中0代表permissive,1代表enforcing
sestatus詳細查看當前selinux狀態
給文件重新打安全標簽
chcon該命令直接更改實際上下文,不會更改期望上下文,如果系統重新打安全標簽,將更改,這裏不建議這麽更改。
chcon [-R] [-u user] [-r role] [-t type] 目錄|文件,其中-R遞歸打標簽。
restorecon 目錄或文件,-R遞歸
1、對默認安全上下文查詢與更改。註意:在更改期望上下文後,需要restorecon 更改目錄,讓實際安全上下文和期望上下文同步
semanage fcontext -l
semanage fcontext -a -t 類型 目錄或文件
restorecon -Rv 目錄,恢復期望上下文,並顯示過程,如果期望上下文和實際上下文一致將不顯示任何信息
semanage fcontext -d -t 類型 目錄或文件
2、selinux更改端口標簽
查看端口標簽
semanage port -l
添加端口,若需要讓該服務多增加一個不是默認端口號的端口,則需要添加新的端口號,這裏以ssh為例
semanage port -a -t 類型 -p tcp|udp 端口號
只需要在將ssh配置文件/etc/ssh/sshd.conf文件中的port端口改成2222重啟服務即可
刪除端口,只需要將a改成d即可
semanage port -d -t 類型 -p tcp|udp 端口號
修改現有端口為新標簽
semanage port -m -t 類型 -p tcp|udp 端口號
3、selinux布爾值
查看當前系統所有布爾值
getsebool -a|名稱
semanage boolean -l
semanage boolean -l -C查看當前已經修改過的bool值
設置布爾值
setsebool [-P] 需要修改的bool值=[0|1]
setsebool [-P] 需要修改的bool值 [on|off]
設置布爾值時,如果需要讓操作存入磁盤,永久有效,則需要在中間加上-P參數
SELinux介紹與設置