一、selinux简介
selinux(安全增强型Linux):内核级的加强形火墙,内核上的插件,改变后要重启。是可以保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。
基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
二、安装vsftpd服务
rm -fr /etc/vsftp/
yum reinstall vsftpd -y
vim -fr /etc/sysconfig/selinux ##disabled-->enforcing
getenforce ##查看状态
reboot
开启的两种形式:
permissive/enforcing
给服务加上一个开关
boolean布尔型 开关0 1
on–>开,off–>关
有选择的打开
文件上的标签和所能访问的服务上的标签不一致则不能访问
注意:安全上下文匹配可以访问,特定的程序只能访问安全上下文匹配的文件,如果不匹配会被内核禁止,还会影响服务本身的功能。
1.临时更改安全上下文:
chcon -t public_content_t /westos
mkdir /westos
ls -Zd /westos
touch /westos/file{1..3}
安全上下文为default
更改匿名用户家目录
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
chcon -t public_content_t /westos/ -R
ls -Zd /westos ##查看安全上下文
vim /etc/sysconfig/selinux
写入:disabled
重启服务后
ls -Zd /westos
安全上下文恢复默认default_t
lftp 172.25.254.239
ls
查看不了/westos里的文件
内核上的安全上下文记录
default_t默认
2.永久更改安全上下文
semanage fcontext -a -t public_content_t '/westos(/.*)?' ##/westos(/.*)?-->目录及目录里面的内容
semanage fcontext -l | grep westos ##查看
restorecon -FvvR /westos/
ls -Zd /westos/
lftp172.25.254.239
3.本地用户可上传
systemctl start vsftpd ##打开服务
lftp 172.25.254.218 -u student
ls
put /etc/inittab ##553报错
getsebool -a | grep ftp ##查看功能是否开启
setsebool -P ftp_home_dir on ##开启上传文件功能
lftp 172.25.254.200 -u student
ls
put /etc/inittab ##文件上传成功
4.匿名用户上传
mkdir /var/ftp/pub/
chmod 775 /var/ftp/pub/
chgrp ftp /var/ftp/pub/
vim /erc/vsftpd/vsftpd.conf ##写入:anon_upload_enable=YES
getsebool -a | grep ftp
setsebool -P ftpd_anon_write on
更改安全上下文
semanage fcontext -a -t public_content_rw_t /var/ftp/pub
restorecon -RvvF /var/ftp/pub/
lftp 172.25.254.239
5.selinux的三种状态
1)disable:不警告不拒绝
2)permissive:警告但是不拒绝
3)enforcing(强制警告):拒绝并且警告
setenforce 0:警告但是不拒绝—>permissive
setenforce 1:警告并拒绝—>enforcing
getenforce:查看状态
cd /mnt
touch sue
mv /mnt/sue/ /var/ftp
lftp 172.25.254.218
ls ##看不到
setenforce 0 ##警告但是不拒绝
getenforce ##查看状态
lftp 172.25.254.239
ls
sentenforce ##警告并且拒绝
getenforce ##查看状态
lftp 172.25.254.239
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.239 ##上传文件
cat /var/log/audit/audit.log
cat /var/log/messages
/var/log/aduit/报错不能生成解决方案
yum search setroubleshoot
yum install setroubleshoot-server.x86_64 -y
cat /var/log/messages
> /var/log/messages
lftp 172/25/254.200
cat /var/log/messages