SELinux介绍:
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统。是个经过安全强化的Linux操作系统,实际上,基本上原来的运用软件没有必要修改就能在它上面运行。真正做了特别修改的RPM包只要50 多个。像文件系统EXT3都是经过了扩展。对于一些原有的命令也进行了扩展,另外还增加了一些新的命令。
对于SELinux来说,它有三个工作模式:
Enforcing :强制模式:主动拒绝访问尝试读取类型上下文为tmp_t的web服务器。在强制模式中,selinux既记录冲突,也强制执行规则,即当违反了规则,就会被停止操作,并被记录。
Permissive:许可模式:通常用于对问题进行故障排除,在许可模式下,selinux允许所有交互,并记录所有被拒绝的交互。
Disabled:关闭模式。不开启selinux进行系统工作。
注:
当从disable关闭模式到permissive/disable的工作状态时,需要重新加载引导,即reboot重起系统。
工作方式:
给文件或者进程添加安全上下文【content】,当安全上下文标签匹配时可以访问,标签不匹配时,就被拒绝。
selinux有 自己的配置文件:/etc/sysconfig/selinux
vim /etc/sysconfig/selinux
更改配置文件中的SELINUX=“ ”即可修改selinux的模式。
当
从
d
i
s
a
b
l
e
切
换
其
他
两
种
状
态
时
,
或
者
其
他
切
换
到
d
i
s
a
b
l
e
时
,
需
要
r
e
b
o
o
t
\color{blue}{当从disable切换其他两种状态时,或者其他切换到disable时,需要reboot}
当从disable切换其他两种状态时,或者其他切换到disable时,需要reboot
查看selinux状态:
getenforce
查看文件/目录的包含安全上下文的属性:
ls -Z file ###file为文件名
上面我们说了,当安全上下文匹配时,selinux才会允许访问那么如何设置或者更改安全上下文呢?
【安全上下文的临时更改:】
chcon -t 安全上下文 file
例:chcon -t public_content_t /mnt/file
【永久更改文件安全上下文 :】
semanage fcontext -l ##列出所有文件的安全上下文
semanage fcontext -a -t public_content_t '/xyy(/.*)?'
在selinux中添加目录/xyy及其中所有文件的安全上下文public_content_t
restorecon -Rvvf /xyy/ ##重新加载该目录,使更改生效
除了更改安全上下文外,我们在SELinux处于enforcing状态下,也可以采用setsebool修改选项bool的值来达到服务正常使用。
getsebool | grep 服务名称
setsebool -P bool值 on |off
例:
getsebool -a | grep ftp ###查看ftp的各个功能bool值
setsebool -P ftpd_anon_write 1 ###更改ftpd_anon_write这一功能的bool值
大大的小小阳