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 ##直接将设置值写入配置文件(修改)