selinux------>内核级加强型防火墙
1.selinux简介
selinux(安全增强型linux防火墙):内核级的加强型防火墙,内核上的插件,改变后需要重启
为每个服务设定开关(bool布尔值控制)文件上的标签和所能访问的服务的标签值不同,则无法访问
是可以保护系统安全性的额外机制,在某种程度上,他可以被看作是与标准权限系统并行的权限系统
在常规模式中,以用户身份运行进程,并且系统上的文件和其它资源都设置了权限标签
可以控制那些用户对那些文件具有那些访问权,selinux的另一个不同之处在于,若要访问文件必须具有普通访问权限和selinux访问权限。因此,即使以超级用户身份运行程序,根据进程以及文件或资源的selinux安全性上下文可能拒绝访问资源或文件
2.实验环境配置
vim /etc/sysconfig/selinux ##更改disable为enforcing
getenforce ##查看状态
reboot ##重启生效
开启的两种形式:permissive/enforcing
目的:给服务加上一个开关
bool值:0 1
on–>开,off–>关
可以有选择性的打开
3.临时更改上下文
chcon -t public_content_t /westos
实验步骤:
(1)新建目录文件,查看安全上下文
mkdir /westos
ls -Z /westos ##查看安全上下文
touch /westos/file{1..3}
这时安全上下文为default_t
(2)更改匿名用户家目录
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
systemctl restart vsftpd
匿名用户无法查看家目录下的文件
(3)查看/westos目录的安全上下文
(3)临时更改上下文后查看安全上下文
chcon -t public_content_t /westos -R
(4)匿名登陆后可以访问目录下的文件
lftp 172.25.254.226---->ls
(5)更改selinux的状态
vim /etc/sysconfig/selinux
更改状态为disabled
重启
重启后查看安全上下文与之前一样,改变selinux状态后再次重启
重启之后查看安全上下文,恢复成默认的
(6)这时匿名用户登陆后,查看不了/westos的内容
4.永久更改安全上下文
semanage fcontext -a -t public_content_t '/westos(/.*)?'
##引号中的内容表示/westos的目录以及目录中的内容,即永久修改安全上下文
semanage fcontext -l | grep /westos ##查看
restorecon -FvvR /westos/ ##刷新
实验步骤
(1)更改安全上下文
(2)查看/westos的安全上下文 是否被更改
(3)用匿名用户登陆测试查看
5.selinux下本地用户的上传权限
lftp 172.25.254.200 -u hhh ---->put /etc/passwd ##默认无法上传
getsebool -a | grep ftp ##查看ftp的权限
setsebool -P ftp_home_dir on ##修改ftp_home_dir的bool值
lftp 172.25.254.200 -u hhh ---->put /etc/passwd ##修改后可以上传
6.selinux下匿名用户的上传权限
(1)增加匿名用户的上传权限并查看这时能否上传
vim /etc/vsftpd/vsftpd.conf ##更改配置文件,开启服务
加入:write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub ##把ftp加入到pub组中
chmod 775 /var/ftp/pub ##修改pub的权限
(2)修改bool值
getsebool -a | grep ftp ##查看sebool的值,查看是否开启ftpd_anon_write
setsebool -P ftpd_anon_write on ##开启ftpd_anon_write
这时依旧无法上传
(3)设定目录可写
ls -Zd /var/ftp/pub/ ##查看pub的权限
semanage fcontext -a -t public_content_rw_t /var/ftp/pub##修改为public_content_rw_t
restorecon -RvvF /var/ftp/pub/ ##对/pub/中的东西一起赋权
7.系统对文件访问的两种回应
(1)拒绝访问
setenforce 1 getenforce—>Enforcing
(2)警告但可以访问
setenforce 0 getenforce—>Permissive
步骤: touch /mnt/file
mv /mnt/file /var/ftp
lftp 172.25.254.226 ----> ls ##输入ls看是否能访问到刚刚传输的file
情况1
情况2
8.查看报错的解决方法
日志文件记录错误
(1)cat /var/log/messages(报错且会提示解决方案)
卸载服务:rpm -qa | grep setroubleshoot ##查询服务所在软件
yum remove setroubleshoot-server-3.2.17-2.e17.x86_64 ##卸载软件
安装服务:yum search setroubleshoot ##查询所在软件
yum install setroubleshoot-server.x86_64 -y ##安装
(2)cat /var/log/audit/audit.log(只会报错)
验证,当setenforce 1时,会拒绝访问,这时可以使用日志文件查询错误
日志1
日志2