一、SElinux
1 SElinux
安全增强型 Linux(Security-Enhanced Linux
)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
2 SElinux对系统的影响
SELinux插件开启时会为系统中开启的每一个程序和每一个文件加载一个标签,特定标签的程序只能读取或者操作特定标签的文件,如果标签不配套,该访问就会被禁止,这种在文件上的标签被称为 安全上下文
,在程序上的标签为sebool值
二、selinux的开启及模式调整
改变selinux状态:
vim /etc/sysconfig/selinux
参数 | 含义 |
---|---|
SELINUX=enforcing | selinux开启,级别为强制 |
SELINUX=permissive | selinux开启,级别为警告 |
SELINUX=disable | selinux关闭 |
其中强制模式表示警告加拒绝,警告模式只有警告
setenforce 0|1 ##更改selinux当前的级别0警告1强制
getenforce ##查看selinux的状态
注意:当selinux从关到开,或值从开到关,需要重启系统
三、sebool的设定
selinux的bool值的查看:
getsebool -a | grep ftp
设定sebool值:
setsebool -P ftp_home_dir on
查看目录安全上下文:
ls -Zd /var/ftp/pub/
更改目录安全上下文:
semanage fcontext -a -t public_content_rw_t "/var/ftp/pub(/.*)?" #更改安全上下文
restorecon -RvvF /var/ftp/pub/ #刷新
四、修改文件上下文
1 临时修改文件上下文
在/mnt
目录中新建文件testfile
并移动到ftp发布目录/var/ftp
中,使用命令ls -Z
查看文件的上下文如下:
登陆ftp
查看文件:
可以用以下命令来修改文件上下文:
chcon -t public_content_t testfile #public_content_t为新的文件上下文
再次登陆ftp发现可以看到文件testfile
:
2 永久更改文件上下文
使用chcon
命令更改目录上下文后重启selinux,更改将会还原,要使更改永久生效,需要将目录增加到selinux
安全列表中,可以使用以下命令查看selinux
安全列表:
semanage fcontext -l
semanage fcontext -l | grep ftp #筛选出与ftp有关的信息
使用以下命令永久更改文件上下文:
semanage fcontext -a -t public_content_t '/westos(/.*)?' #将文件或目录添加到selinux安全列表中
restorecon -RvvF /westos/ #刷新
五、SElinux的排错
在系统中负责记录SElinux错误信息的服务为 setroubshoot-server
,并会在/var/log/messages
中提供解决方案
示例:
当/var/ftp/
目录下有ftp
不能访问的文件时,错误信息会被记录在/var/log/audit/audit.log
:
在/var/log/messages
中提供解决方案:
当setroubshoot-server
被卸载时,错误信息将不会被记录,并且不会有解决方案