selinux: 内核加强型火墙
selinux(安全增强型linux):内核级的加强形火墙,内核上的插件,改变后要重启
是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。
在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签。
(控制哪些用户对哪些文件具有哪些访问权,selinux的另一个不同之处在于,若要访问文件必须具有普通访问权限和selinux访问权限。因此,即使以超级用户身份运行程序,根据进程以及文件或资源的selinux安全性上下文可能拒绝访问文件或资源)
rm -rf /etc/vsftpd #删除配置文件
yum reinstall vsftpd -y #重新安装vsftpd
重启服务
vim /etc/sysconfig/selinux
修改SELINUX为enforcing
reboot #重启
对文件:访问的标签和服务标签不一致就不能看
1.临时设定:
mkdir /westos
ls -Zd /westos
touch /westos/file{1..3}
指定匿名用户家目录到westos
vim /etc/vsftpd/vsftpd.conf
添加
anon_root=/westos
systemctl restart vsftpd #重启服务
ls -Z /westos #查看文件安全设定为default_t
客户机上lftp 172.25.254.214
ls #无法查看westos下的内容
chcon -t public_content_t /westos/ -R
ls -Z /westos #重新查看文件的安全设定为public_content_t
客户机上lftp 172.25.254.214
ls #此时就可以查看westos下的目录
vim /etc/sysconfig/selinux
修改SELINUX为disable
reboot重启
ls -Z /westos #发现之前设定的又变为了default_t
2.永久设定
semanage fcontext -a -t public_content_t '/westos(/.*)? '# /westos(/.*)?表示目录及目录里面的内容
semanage fcontext -l | grep westos ##查看
restorecon -FvvR /westos/
测试:lftp 172.25.254.214
3.本地用户可上传
lftp 172.25.254.214 -u student
ls
getsebool -a | grep ftp ##查看功能是否开启
setsebool -P ftp_home_dir on ##开启上传文件功能
重新上传
4.匿名用户上传
1)
mkdir /var/ftp/pub/
chmod 755 /var/ftp/pub/
chgrp ftp /var/ftp/pub/
2)
vim /erc/vsftpd/vsftpd.conf
写入:anon_upload_enable=YES
systemctl restart vsftpd
3)
getsebool -a | grep ftp
setsebool -P ftpd_anon_write on #再次查看就会发现服务开启
4)更改安全上下文
semanage fcontext -a -t public_content_rw_t /var/ftp/pub
restorecon -RvvF /var/ftp/pub/
5)测试:lftp 172.25.254.218
5.selinux的三种状态
1)disabled:不警告不决绝
2)permissive:警告但是不拒绝
3)enforcing(强制警告):拒绝并且警告
setenforce 0:警告但是不拒绝---->permissive
setenforce 1:警告并拒绝-------->enforcing
getenforce:查看状态
例子
setenforce 0 ##警告但是不拒绝
getenforce ##查看状态
lftp 172.25.254.214
ls ##看得到
setenforce 1 ##警告并拒绝
getenforce ##查看状态
lftp 172.25.254.218
ls ##看不到
6.报错解决方案:
rm -fr /var/ftp/pub/
mkdir /var/ftp/pub/
chmod 775 /var/ftp/pub/
chgrp ftp /var/ftp/pub/
> /var/log/messages
> /var/log/audit/audit.log
lftp 172.25.254.218 ##上传文件
cat /var/log/audit/audit.log
cat /var/log/messages
/var/log/aduit/报错不能生成解决方案