7.1 DAC與MAC
DAC:Linux自己的安全機制叫做DAC(Discretionary Access Control,自主訪問控制)
MAC:SELinux實現的功能叫做MAC(Mandatory Access Control,強制訪問控制機制)
7.2 selinux的工作級別與機制
SELinux:Secure Enhanced Linux,工作於Linux內核中。
SELinux有兩種工作級別:
strict:嚴格級別,每個進程都受到selinux的控制
targeted:僅有限個進程受到selinux的控制
只監控容易被***的進程
SELinux工作機制:
SELinux採用類似沙箱(sandbox)的方式來運行進程:
subject operation object
subject:進程
object:可以是進程,可以是文件
適用於文件的操作:open,read,write,close,chown,chmod
SELinux爲每個文件提供了安全標籤,也爲進程提供了安全標籤:
user:role:type
user:SELinux的user
role:角色
type:類型
SELinux規則庫:
規則:定義了哪種域能訪問哪種或哪些種類型內的文件
遵循“法無授權即禁止”的規則,也就是說沒有明確授權的所有操作均禁止
7.3 selinux的配置
SELinux是否啓用:在/etc/selinux/config文件中定義
SELinux的狀態:
enforcing:強制,每個受限的進程都必然受限
permissive:啓用,每個受限的進程違規操作時不會被禁止,但會被記錄於審計日誌
disabled:禁用
相關命令:
getenforce:獲取selinux當前狀態
setenforce 0|1
0:設置爲permissive
1:設置爲enforcing
此設定僅當前有效,重啓系統後無效
配置文件:/etc/sysconfig/selinux,/etc/selinux/config
SELINUX={disabled|enforcing|permissive}
給文件重新打標籤:
chcon:change context,改變上下文
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]
例:
getsebool -a getsebool ftp_home_dir
setsebool
語法:setsebool [ -PV] boolean value | bool1=val1 bool2=val2 ... -P:把設置添加進規則庫,使之永久生效,若不使用此選項則只當前有效,重啓系統會失效