一.Selinux的功能
相当于对文件和应用程序多加一层保护
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载,标签内记录程序和文件的安全上下文(context);一个文件的安全上下文和程序的安全上下文匹配时,这个访问才会被允许
对于程序功能的影响:当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭,当需要此功能时需要手动开启功能开关,此开关叫做sebool
二.Selinux的状态及管理
vim /etc/selinux/config
SELINUX=disabled selinux关闭
SELINUX=enforcing selinux开机设定为强制状态此状态为selinux开启
SELINUX=permissive selinux开机设定为警告状态此状态为selinux开启
"selinux开启和关闭的状态的切换需要重启系统"
enforcing 强制模式,会拒绝所有未经允许的,同时发送警告
permissive 如果有未经允许的会发送警告,但不会拒绝
getenforce | 查看selinux的状态 |
---|---|
setenforce 0 | 警告模式 |
setenforce 1 | 强制模式 |
selinux日志: /var/log/audit/audit.log
在/mnt/下新建一个文件,移动到pub目录下,在selinux强制模式下访问时访问不到,也不会显示
当seliunx模式调整为警告模式后再次访问
三.Selinux的安全上下文
(1)安全上下文的查看
ls -Z | 查看文件的安全上下文 |
---|---|
ls -Zd | 查看目录的安全上下文 |
ps axZ | 查看进程的安全上下文 |
( 2)修改安全上下文
临时修改:此方式更改的安全上下文在selinux重启后会还原
chcon -t | 标签 | 文件/目录 |
chcon -t | public_content_t | /var/ftp/westosfile1 |
chcon -Rt | public_content_t /westosdir | 修改目录及目录中的所有子文件的安全上下文 |
修改后文件的标签后再次访问,可以访问到:
(3)永久修改:如果需要特殊指定安全上下文需要修改内核安全上下文列表
semanage fcontext -l 查看内核安全上下文列表
semanage fcontext -a -t public_content_t '/westosdir(/.*)?' ##-a:表示添加,t:指定安全上下文;
restorecon -RvvF /westosdir/ 刷新安全上下文
touch /.autorelabel 重启系统时selinux初始化文件标签开关文件
四.SEBOOL
getsebool -a 显示服务的bool值
setsebool -P ftpd_anon_write on 更改
五.SEPORT
semanage port -l | grep ssh
semanage port -a -t ssh_port_t -p tcp 1111
selinux会规定每个服务可以使用的端口,当配置文件中的端口号不存在时,服务就会启动失败,此时指定增加端口既可。
六.setrouble
排错工具
/var/log/audit/audit.log
selinux警告信息
/var/log/messages
selinux问题解决方案
setroubleshoot-server
此软件功能是采集警告信息并分析得到解决方案存放到message中
当selinux开启时(enforcing),新建的文件移动到/var/ftp中以后,lftp看不到移动过去的文件,查看日志文件/var/log/audit/audit.log
:selinux警告信息
查看/var/log/messages,会有selinux问题解决方案
执行解决方案提供的命令后:
再次访问,可以看到测试文件
解决方案都是由setroublshoot-server 所提供的,因此卸载该服务时将不会收到解决方案。
另外,再查看解决方案时,必须要先查看警告信息,再查看日志中的解决方案,因为此软件的功能是需要先采集到selinux的警告信息后,再进行相关分析才能给出解决方案并放到message中。