yum search selinux
yum install setroubleshoot-server.x86_64 -y
selinux:内核插件,加强型防火墙
(1)配置文件:/etc/sysconfig/selinux
(2)三种状态:
enforcing //强制=1 setenforce=1
permissive //警告=0 setenforce=0
disabled //关闭
注:
enforcing与permissive相互切换:直接设置setenforce=0/1
enforcing / permissive与disabled相互切换:修改配置文件/etc/sysconfig/selinux,并reboot
(3)查看当前selinux的状态:getenforce
1.disabled与enforcing的区别:
移动文件到ftp的发布目录中:
(1)disabled:
(2)enforcing:
对文件的影响:
(1)enforcing
(2)disabled
- selinux给每个文件加上一个标签,标签匹配才能被访问;移动过去的文件,是一个重命名的过程,不改变文件标签,在强制级别enforcing中,标签不匹配,所以无法查看。
对功能的影响:
修该ftp配置文件,使匿名用户可以上传文件到/var/ftp/pub/下
(1)disabled
(2)enforcing
这也就是上一节我们需要在disabled下进行ftp实验的原因了。
2.怎么解决安全上下文(标签)不一致的问题:
(1)更改文件标签:将移进去的文件标签改成与发布目录一致即可
chcon -t public_content_t filename
(2)当我们新建发布目录时:
mkdir /ftpdir
vim /etc/vsftpd/vsftpd.conf
anon_root=/ftpdir
在新的发布目录下创建文件,依旧无法查看:
更改新建的发布目录标签,并让其永久生效:
chcon -t public_content_t /ftpdir/ -R //临时指定,没有改变内核记录,
//-->disabled重启-->enforcing重启,又变为默认default_t
semanage fcontext -a -t public_content_t '/ftpdir(/.*)?' ///内核设定,永久有效
restorecon -RvvF /ftpdir //刷新
-a 添加
-t 指定类型
更改后刷新,可以看到类型的变化,然后再查看,发现标签已经改过来了,同时可以访问了
总结:
- 默认发布目录:存在不相同的标签,可用chcon -t public_content_t进行更改,这个时永久生效的,因为他的上级目是public_content_t
- 新建的发布目录:默认标签为default_t,用chcon -t public_content_t进行更改,不会永久生效,因为他的上级目录标签没有改过来,重启后又会变为原来的标签;使用semanage fcontext -a -t public_content_t ‘/ftpdir(/.*)?’ 更改改变了内核记录,永久有效,重启不会再变为原来的标签。
3.设置selinux为enforceing仍然可以上传文件
(1)匿名用户
chcon -t public_content_rw_t /var/ftp/pub/ //让匿名用户具有读写这个目录的权力
getsebool -a | grep ftp //查看ftp匿名用户能干的事情的状态为off还是on
setsebool -P ftpd_anon_write 1(on)让匿名用户可以上传
(2)本地用户
与匿名用户同样的道理
4.与selinux相关的两个日志
/var/log/messages //系统日志,提供一些解决方案 ,需要安装服务才能提供解决方案
/var/log/audit/audit.log //selinux真正的日志,不提供解决方案
(1)安装提供解决方案的软件:setroubleshoot
yum search selinux
yum install setroubleshoot-server.x86_64 -y
往/var/ftp/pub/移动文件,匿名用户登陆查看不到,此时查看两个日志文件
(2)不装setroubleshoot软件时
注:做完实验记得把setroubleshoot装上