一、selinux概念
selinux(安全增强型linux):内核级的加强形火墙,内核上的插件,改变后要重启,是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签。
二、selinux的模式
Disable ##不警告不拒绝(关闭状态)
Enforcing ##强制模式,如果不符合就会拒绝访问
Permissive ##警告模式,不符合会警告但是可以访问
1、用命令修改selinux的模式,重启后才能生效
getenforce ##查看当前SELinux的模式
setenforce 0 ##设置当前SELinux的模式为Permissive
setenforce 1 ##设置当前SELinux的模式为Enforcing
三、安全上下文
ls -Z 文件名 # 查看文件的安全上下文
ps -Z 进程pid # 查看进程的安全上下文
(1)、临时修改安全上下文:
1、
getenforce
---Enforcing ##当前SELinux的状态为强制模式
yum install vsftpd lftp -y ##安装vsftpd lftp服务
systemctl enable vsftpd ##开机自动启动ftp服务
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld
(2)永久修改安全上下文
semanage fcontext -a -t public_content_t '/westos(/.*)?'
##/westos(/.*)?---->目录及目录里面的内容
semanage fcontext -l | grep westos ##查看
restorecon -FvvR /westos/
ls -Zd /westos/
测试
1、建立目录,编写匿名权限
2、重启配置文件,匿名登陆
(3)管理selinux的布尔值
getsebool -a | grep ftp ##查看ftp的布尔值情况
setsebool -P ftpd_anon_write on ##修改布尔值策略改为开启
(4)监控selinux冲突
1、需要修改文件配置,重启后需要建立一个文件,将文件移动到/var/ftp ,先清空日志,有利于下一步的检查
注释掉匿名用户锁定的家目录
2、登陆到网页查看是否可以看到文件
3、查看日志,在日志中可以找到解决方法
4、恢复/var/ftp文件的安全上下文
5、再次在网页浏览,可以看到文件
setroubleshoot是查看SElinux日志报错的命令
[root@localhost ftp]# rpm -qa | grep setrouble ##查找排错工具安装包
[root@localhost ftp]# yum remove setroubleshoot-server-3.2.17-2.el7.x86_64 ##卸载
[root@localhost ftp]# > /var/log/audit/audit.log
[root@localhost ftp]# > /var/ftp/messages ##清空日志
[root@localhost ftp]# cat /var/log/audit/audit.log ##查看效果没有出错提示
[root@localhost ftp]# cat /var/log/messages
在浏览器中刷新查看日志
[root@localhost ftp]# cat /var/log/audit/audit.log ##查看为空
[root@localhost ftp]# cat /var/log/messages ##没有出错工具提示
[root@localhost ftp]# yum install setroubleshoot-server -y ##安装排错包
[root@localhost ftp]# > /var/log/audit/audit.log
[root@localhost ftp]# > /var/ftp/messages ##清空日志
在浏览器中刷新再次查看日志
[root@localhost ftp]# cat /var/log/messages ##有排错提示
[root@localhost ftp]# cat /var/log/audit/audit.log ##可以查看到日志