1.SELinux介紹
(1) SELinux是Security Enhanced Linux的縮寫,意思是安全強化的linux,設計的目標是避免資源的誤用。SELinux是通過MAC(強制訪問控制)的方式來控制進程,其控制的主體是進程,目標是該進程能否讀取的文件資源。MAC針對特定的進程和特定的文件資源進行權限控制。
(2)SELinux是在進行程序,文件等權限設置依據的一個內核模塊。由於啓動網絡服務的的也是程序,因此SELinux也是能夠控制網絡服務能否訪問系統資源的。
(3)SELinux在運行中進程能否訪問文件資源,重點在於策略內的規則以及實際的安全上下文。進程通過SELinux策略內的規則後,與文件資源的安全上下文進行比較,比較正確則可以訪問文件資源;反之則訪問失敗。
2.SELinux的模式
getenforce ##查看selinux狀態
setenforce 0|1 ##SELinux模式在permissive與enforcing之間轉換
0 permissive ##警告狀態
1 enforcing ##強制狀態
SELinux模式調整
vim /etc/sysconfig/selinux
SELINUX=
enforcing ##強制模式:SELinux正在運行中,且已正確開始限制domain/type了。
permissive ##警告模式:SELinux正在運行中,不過僅有警告信息並不會實際限制domain/type的訪問。該模式可以用來調試SELinux。
disabled ##關閉模式:SELinux沒有實際運行。
注意:當在/etc/sysconfig/selinux文件內修改selinux的工作模式後,應重啓(reboot)系統。
3.安全上下文
進程與文件系統的安全上下文必須一致才能順利訪問。
安全上下文的組成:
Identify:role:type
身份識別:角色:類型
(1)Identify(身份標識)
主要有以下三種:
root:表示root的帳號身份
system_u:表示系統進程方面的表示
user_u:表示一般用戶帳號的身份
(2)角色
通過角色可判斷數據屬於程序,文件資源還是代表用戶
object_r:代表的是文件或目錄等文件資源
system_r:代表的是進程,一般用戶也會被指定爲system_r
(3)類型
一個主題進程能不能訪問文件資源與類型字段有關。domain與type搭配才能順利讀取文件資源。
type:在文件資源上稱爲類型
domain:在主題程序上稱爲域
4.修改安全上下文
(1)安全上下文查看
ls -Z ##查看目錄或文件的安全上下文
(2)臨時修改安全上下文
chcon ##通過直接指定的方式來處理安全上下文的數據。
-R ##連同該目錄下的子目錄也修改
-t ##後面接上安全上下文的字段,如http_sys_content_t
-r ##後面接上角色,如:system_r
-u ##後面接身份識別,如system_u
chcon -t public_content_t /westos ##臨時修改安全上下文
restorecon ##使用默認的安全上下文來還原
restorecon -RvvF ##刷新安全上下文,臨時修改刷新後不生效
(2)永久修改安全上下文
semanage ##安全上下文的查詢與修改
fcontext ##主要用於安全上下文
semanage fcontext -a ##增加
-m ##修改
-d ##刪除
-l ##查詢默認安全上下文設置
semanage fcontext -a -t public_content_rw_t '/westos(/.*)?'
##永久修改安全上下文。-a表示添加,-t表示指定類型
restorecon -RvvF /westos/ ##刷新後生效。R表示遞歸的,vv表示多個文件,F表示刷新
5.策略
(1)targeted:針對網絡服務限制較多,針對本機限制較少,是默認的策略;
(2)strict:完整的SELinux限制,限制方面較爲嚴格。
6.布爾值的查詢與修改
布爾值的種類即是規則。
getsebool -a ##查看系統內所有布爾值的設定情況
getsebool -a | grep ftp ##查看ftp的布爾值
setsebool -P ftp_home_dir on ##直接將設置值寫入配置文件(修改)