selinux #内核加强型火墙
准备工作:
vim /etc/sysconfig/selinux ##开启内核加强型火墙
SELINUX=enforcing (强制并拒绝)
reboot
rm -rf /etc/vsftpd
yum reinstall vsftpd ##重装vsftpd服务保持一个纯净的环境
mkdir /westos
touch /westos/westosfile{1…3}
1.上下文访问标签的更改
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos ##设定默认用户的家目录为/westos
此时通过匿名登陆216,并不能看到/westos下的文件
原因为当selinux开启后,只有上下文访问标签相同才能正常显示
ls -Zd /westos/ ##查看/westos的上下文访问标签
ls -Zd /var/ftp/pub/ ##查看/pub的上下文访问标签
解决方法:
1:临时设定:
chcon -t public_content_t /westos/ -R ##临时设定/westos的上下文访问标签
ls -Zd /westos/ ##再次查看/westos的上下文访问标签
此时
可以正常链接
restorecon -FvvR /westos/ ##执行刷新
ls -Zd /westos/ ##由于是临时的所以执行刷新后又变了回来(selinx的开启和关闭也会导致临时设定失效)
2:永久设定
semanage fcontext -a -t public_content_t ‘/westos(/.*)?’
##永久设定
semanage fcontext -l | grep westos
此时查看/westos的上下文访问标签发现并未更改
ls -Zd /westos/
执行刷新
restorecon -FvvR /westos/
再次查看/westos的上下文访问标签发现发生了更改
ls -Zd /westos/
此时便可正常连接
lftp 172.25.254.216
2.服务默认bool值的设置
chmod 775 /home/student ##给家目录权限
##本地用户开启上传权限
lftp 172.25.254.216 -u student
getsebool -a | grep ftp ##查看ftp服务的bool值
setsebool -P ftp_home_dir on ##更改默认bool值 -P(永久)
此时本地用户便可正常上传
lftp 172.25.254.216 -u student
##匿名用户开启上传权限
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
systemctl restart vsftpd.service
getsebool -a | grep ftp
setsebool -P ftpd_anon_write on ##更改默认bool值
semanage fcontext -a -t public_content_rw_t /var/ftp/pub
##将pub目录的安全上下文改为可写
restorecon -RvvF /var/ftp/pub/ ##执行刷新
此时匿名用户便可正常上传
4.如何更改selinux工作状态
selinux的工作状态:
Enforcing | ##强制并拒绝 |
---|---|
Permissive | ##警告 可以在/var/log/audit/audit.log查看警告 |
disabled | ##不工作 |
getenforce ##查看当前工作状态
setenforce 0|1 ##更改当前工作状态1(Enforcing) 0(Permissive)