一、基本selinux安全性概念

selinux(安全增强型linux):内核级的加强形火墙,内核上的插件,改变后要重启。
selinux是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限标签(控制哪些用户对哪些文件具有哪些访问权,selinux的另一个不同之处在于,若要访问文件必须具有普通访问权限和selinux访问权限。因此,即使以超级用户身份运行程序,根据进程以及文件或资源的selinux安全性上下文可能拒绝访问文件或资源)

二、selinux的三种模式

enforcing 强制模式,selinux 主动拒绝访问尝试读取类型上下文为tmp_t的web服务器。在强制模式中,selinux既记录冲突,也强制执行规则
permissive 宽容模式,通常对于对问题进行故障排除。在许可模式下,即使没有明确规则,selinux也允许所有交互,并且记录所有被拒绝的交互。此模式可以用于确定你是否有selinux问题。无需重新引导即可从强制模式转为许可模式,或者从许可模式转向强制模式
disable 不警告不拒绝/关闭状态

selinux工作模式的设定:

情况一: disable与enforcing或者permissive的切换

第一步:查看,并且进入配置文件

 [[email protected] Desktop]# getenforce                    ###查看selinux状态  
 Enforcing                       
 [[email protected] Desktop] vim  /etc/selinux/config       ###进入配置文件

Linux SElinux
第二步:配置文件如下
Linux SElinux
第三步:重启系统后再次查看
Linux SElinux
注意: disable与enforcing或者permissive的切换需要重启系统,否则不生效

情况二: enforcing与permissive的相互切换,此情况是不需要重启系统的,如下图所示:

[[email protected] Desktop]# getenforce                    ###查看selinux状态  
 Enforcing                                              ###强制模式
[[email protected] Desktop]# setenforce 0                  ###开启
[[email protected] Desktop]# getenforce                    ###查看selinux状态  
Permissive                                              ###宽容模式
[[email protected] Desktop]# setenforce 1                  ###关闭
[[email protected] Desktop]# getenforce                    ###查看selinux状态  
Enforcing                                               ###强制模式

Linux SElinux

注意: 如果系统在关闭(disable)SElinux的状态下运行了一段时间,
在打开SElinux之后的第一次重启速度可能比较慢,因为系统必须为磁盘中的文件创建安全上下文。

三、selinux对服务、进程以及文件的影响

  1. 针对文件,会对系统中每个文件添加安全上下文(context)
  2. 针对进程,会对系统中的每个进程添加安全上下文(context)
  3. 会在系统服务上设定sebool开关
  4. 当进程安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
  5. sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebol值

当selinux状态为enforcing时:
Linux SElinux
Linux SElinux
lftp看不见移动到默认访问目录下的文件westosfile
Linux SElinux当我们用ls -Z查看文件的标签,发现hhh文件的安全上下文不同
Linux SElinux
当selinux状态为disabled时:
Linux SElinux
lftp可以看见移动到默认访问目录下的文件gao
Linux SElinux
总结:当selinux为enforcing时,它会给系统中的文件,进程,服务添加安全上下文,相对应的能访问,不对应的无法访问

四、修改安全上下文

1. 临时修改安全上下文

chcon -t  安全上下文  文件/目录

文件安全上下文:
Linux SElinux
lftp访问,访问不到,如下所示:
Linux SElinux
临时目录文件安全上下文:

建立新的目录,查看其安全上下文,并将其修改为vsftpd匿名用户的默认访问目录
Linux SElinux
配置文件如下所示:
Linux SElinux
重启服务,再次查看,发现lftp查看不到,如下所示:
Linux SElinux
Linux SElinux
临时更改目录的安全上下文,并用lftp查看,发现之前文件和新建文件都可以看见,如下:
Linux SElinux
Linux SElinux
重启selinux,如下:
Linux SElinux
Linux SElinux
reboot重启系统,再次进入配置文件进行设置,如下所示:
Linux SElinux
查看目录安全安全上下文,发现恢复原本
Linux SElinux
因此,证明安全上下文更改是临时的

2. 永久修改安全上下文

由于某些安全上下文被系统记录着,所以是永久的

semanage fcontext -l            ##查看 
semanage fcontext -a -t public_content_t '/ftpdir(/.*)?'      ##更改系统记录的安全上下文 
restorecon -RvvF /ftpdir/       ##使目录本身的安全上下文也

Linux SElinux
Linux SElinux
Linux SElinux
用lftp查看,可以查看到,如下:
Linux SElinux
五、修改selbool值

用student上传文件:
1.在真机上连接167,上传文件发现不能上传,出现553报错,如下所示:
Linux SElinux
2.查看并开启服务功能,如下所示:
Linux SElinux
3.再次上传,发现上传成功
Linux SElinux

匿名用户上传:
1.修改文件的权限,并进行配置文件
Linux SElinux
Linux SElinux
2. 开启服务,如下图所示:
Linux SElinux
3. 使默认家目录子目录可写
Linux SElinux
4. lftp检测
Linux SElinux
注意: sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值

六、selinux提供解决方案

1.首先在/mnt里建立一个文件,然后将文件移动到/var/ftp下
Linux SElinux
2. lftp查看不到文件
Linux SElinux
3. 为了保证实验环境纯净,将日志清空
Linux SElinux
4.查看日志,发现没有解决方法,如下图所示:
Linux SElinux
4. 发现selinux提供了一个解决问题的软件包,并且将软件包安装
<1>搜索软件包
Linux SElinux
Linux SElinux
<2> 安装软件包
Linux SElinux
Linux SElinux
5. 清空日志,再次查看,出现解决方案
Linux SElinux
Linux SElinux
Linux SElinux
6. 按照上一步解决方案处理,如下所示:
Linux SElinux
7.再次查看,出现文件ppp
Linux SElinux

相关文章:

  • 2021-08-07
  • 2021-12-06
  • 2021-08-12
  • 2021-10-14
  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-08
  • 2022-01-19
  • 2022-01-08
  • 2021-07-21
相关资源
相似解决方案