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:把设置添加进规则库,使之永久生效,若不使用此选项则只当前有效,重启系统会失效