一.selinux定义
selinux(安全增强型linux):内核级的加强形火墙,内核上的插件,改变后要重启,是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签。在seLinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法替代它。这意味着那些潜在的恶意软件所能造成的损害可以控制到最小。
二.selinux简介
实验环境的配置
vim /etc/sysconfig/selinux ##开启selinux,disabled-->enforcing
reboot ##重启虚拟机
getenforce ##查看状态
rm -rf /etc/vsftpd/* ##更新ftp的环境
yum reinstall vsftpd -y ##重新安装vsftpd
systemctl start vsftpd ##开启服务
1.文件安全上下文
安全上下文是指一类定义某个进程允许做什么的许可和权限的集合
安全上下文匹配可以访问,特定的程序只能访问安全上下文匹配的文件,如果不匹配会被内核禁止,还会影响服务本身的功能。
ls -Z file ##查看文件的安全上下文
ls -Zd dir ##查看目录的安全上下文
文件安全上下文限制了访问用户的权限,有利于系统的安全性
由图可知/mnt/test与/var/ftp文件的安全上下文不一致,即使将test移入/var/ftp下也无法看见test
2.更改安全上下文
临时更改
chcon -t public_content_t /var/ftp/test ##更改test的安全上下文为public_content_t
测试
重启服务后其安全上下文就会恢复
永久更改
semanage fcontext -l | grep /hello ##查看该文件安全上下文列表
semanage fcontext -a -t public_content_t '/hello(/.*)?' ##永久更改目录安全上下文
restorecon -FvvR /hello ##刷新文件安全列表
ls -Z /hello ##查看安全上下文
3.设定本地用户文件上传
getsebool -a | grep ftp ##查看关于ftp的所有sebool的值
setsebool -P ftp_home_dir on ##打开selinux本地用户上传开关,-P为永久开启
布尔型 开关0----->关 1------>开 on-->开 , off--> 关
测试
4.匿名用户上传文件
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES ##在配置文件中打开匿名用户上传参数
systemctl restart vsftpd
getsebool -a | grep ftp
setsebool -P ftpd_anon_write on
ls -Zd /var/ftp/pub
semanage fcontext -a -t public_content_rw_t /var/ftp/pub ##安全上下文加入可写的权限说明
restorecon -FvvR /var/ftp/pub
测试
三.selinux的模式
enforcing ##警告并拒绝
disabled ##不警告不决绝
permissive ##警告但是不拒绝
setenforce 1 ##警告并拒绝-------->enforcing
setenforce 0 ##警告但是不会有拒绝---->permissive
注意:
(1)当selinux关闭时,该命令无法使用
(2)使用该命令时只能切换到开启时的俩种状态,即Enforcing和Permissive
(3)使用该命令切换selinux的状态时,不需要重启虚拟机
四.解决selinux的报错问题
> /var/log/messages
> /var/log/audit/audit.log
cat /var/log/audit/audit.log
cat /var/log/messages
/var/log/aduit/报错不能生成解决方案
rpm -qa | grep setroubleshoot ##查看报错的文件
setroubleshoot-server-3.2.17-2.el7.x86_64 ##报错的文件
yum install setroubleshoot-server-3.2.17-2.el7.x86_64 -y ##安装报错软件
> /var/log/messages ##清空日志
cat /var/log/messages ##查看报错解决方案