linux中的selinux相关知识

selinux简介

selinux(安全增强型linux):内核级的加强形火墙,内核上的插件,改变后要重启是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。

在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签。

(控制哪些用户对哪些文件具有哪些访问权,selinux的另一个不同之处在于,若要访问文件必须具有普通访问权限和selinux访问权限。因此,即使以超级用户身份运行程序,根据进程以及文件或资源的selinux安全性上下文可能拒绝访问文件或资源)

实验环境准备:重新安装vsftpd服务

rm -fr /etc/vsftpd/
yum reinstall vsftpd -y

vim /etc/sysconfig/selinux		  ##disabled-->enforcing
getenforce  					  ##查看状态
reboot

开启的两种形式:permissive/enforcing
给服务加上一个开关
boolean布尔型 开关0 1
on–>开 , off–> 关
有选择性的打开
文件上的标签和所能访问的服务上的标签不一致则不能访问

1.安全上下文

这个是我们主要修改的地方,进程必须和文件的安全上下文对应(不是必须一样)才能对其进行访问。

ls -Z 文件名    	  	 	 #查看文件的安全上下文

ps -Z 进程pid             #查看进程的安全上下文

实验:
在/mnt目录建立一个文件,并且把文件移动到匿名用户的pub目录里。
因为安全上下文不一致不能看到此文件
在这里插入图片描述
在这里插入图片描述
说明:
context共分为五个部分,以:分隔。

userroletypesensitivitycategory
身份识别文件、进程、用户数据类型安全级别划分的不同分类
unconfined_u不受限的用户或文件system_u受限的进程或文件object_r文件,system_r进程和用户何种类型进程访问何种文件s0最低,只有在msl才有意义这一位没有什么大的作用

注意:安全上下文匹配可以访问,特定的程序只能访问安全上下文匹配的文件,如果不匹配会被内核禁止,还会影响服务本身的功能。

1)临时更改安全上下文:

chcon -t public_content_t /var/ftp/fire		##更改fire文件的安全上下文为public_content_t

在这里插入图片描述

2)永久更改安全上下文

semanage fcontext -a -t public_content_t '/redhat(/.*)?'
									##/redhat(/.*)?---->目录及目录里面的内容
semanage fcontext -l | grep redhat ##查看redhat目录与目录中文件的安全上下文
restorecon -FvvR /redhat/				##刷新
ls -Zd /redhat/

在这里插入图片描述

2selinux的常用作用

1)本地用户可上传

getsebool  -a | grep ftp  		 ##查看功能是否开启
setsebool  -P ftp_home_dir on 	 ##开启上传文件功能

在这里插入图片描述
在这里插入图片描述

测试:

lftp 172.25.254.223 redhat
ls
put /etc/passwd 					##文件上传成功

在这里插入图片描述

2)匿名用户上传

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES
anon_upload_enable=YES		##允许匿名用户上传
systemctl restart vsftpd.service

在这里插入图片描述

2.打开selinux匿名用户上传开关。

getsebool -a | grep ftp				##查询权限开关
setsebool -P ftpd_anon_write on	##打开ftp匿名用户写权限

在这里插入图片描述
3.更改匿名用户家目录权限和安全上下文可写

chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
ls -Zd /var/ftp/pub/									 ##查看目录的安全上下文
semanage fcontext -a -t public_content_rw_t /var/ftp/pub ##开启安全上下文写权限
semanage fcontext -l | grep  /var/ftp/pub			 	 ##查看pub目录的安全上下文更改
restorecon -RvvF /var/ftp/pub/							 ##刷新安全上下文

在这里插入图片描述

5)测试

在这里插入图片描述

3)selinux的三种状态

1)disabled:不警告不决绝

2)permissive:警告但是不拒绝

3)enforcing(强制警告):拒绝并且警告

setenforce 0:警告但是不拒绝---->permissive
setenforce 1:警告并拒绝-------->enforcing
getenforce:查看状态

实验:

cd /mnt
touch test
mv test /var/ftp
lftp 172.25.254.223
ls  					##看不到
setenforce 0   			##警告但是不拒绝
getenforce 				##查看状态
lftp 172.25.254.223
ls   					##看得到

在这里插入图片描述

setenforce    		##警告并拒绝
getenforce  		##查看状态
lftp 172.25.254.218
ls   				##看不到

4)报错解决方案:

1.下载所需软件

yum install setroubleshoot-server-3.2.17-2.el7.x86_64

在这里插入图片描述

2.清空日志后可看到报错
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值