LINUX系统之SELINUX:安全增强型linux

1 基本SELINUX安全性概念

1.1 SELINUX概念

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

 WEB服务器的HTTPD进程设置了SELINUX上下文system_u:system_r:httpd_t标签。该上下文的重要部分是第三个用冒号分隔的字段SELINUX类型:httpd_t
系统上的文件和资源也设置了SELINUX上下文标签,并且重要的部分是SELINUX类型。例如,/var/www/html中的文件具有类型httpd_sys_content_t。/tmp和/var/tmp中的文件通常具有类型tmp_t
 SELINUX策略具有允许以httpd_t身份运行的进程访问标记为httpd_sys_content_t的文件的规则。没有规则允许这些进程访问标记有tmp_t的文件,因此将拒绝这些访问,即使常规权限指出应该允许这些访问。
总结来说,考虑SELINUX对访问文件和服务权限的影响。
(1)对于访问文件,selinux会给与系统中的每个文件一个安全上下文(CONTEXT),同时给予每个程序一个CONTEXT,若此程序的安全上下文与文件的安全上下文不匹配,则文件不能被系统访问,若匹配,则可以访问,而文件的安全上下文,与此文件所在的目录有关。
(2)对于服务权限,selinux限制服务使用功能,加了功能限制,就是在内核上加了功能插件。

2 SELINUX模式

2.1 三种模式
2.1.1 强制模式(enforcing)
在这里插入图片描述

强制模式:SELINUX主动拒绝访问尝试读取上下文tmp_t的web服务器。在强制模式中,SELINUX既记录冲突,也强制执行规则。
2.1.2 许可模式(permissive)
在这里插入图片描述
许可模式:通常用于对问题进行故障排除。在许可模式下,即使没有明确规则,SELINUX也允许所有交互,并且记录所有被拒绝的交互。此模式用于确定你是否有SELINUX问题。无需重新引导即可从强制模式转为许可模式,或再从许可模式转回强制模式。
2.1.3 关闭
disabled为关闭SELINUX,访问文件或资源只需拥有普通权限即可。
2.2 三种模式的切换
 从许可和强制模式切换为关闭状态,必须修改其配置文件/etc/sysconfig/selinux,然后关机重启。同样,从关闭状态切换成另外两种,也必须修改配置文件,重启系统。
 许可模式和强制模式的相互切换,可以使用setenforce进行切换。

getenforce    查看当前为哪种模式
setforce 0    切换成许可模式
setforce 1    切换成强制模式

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

3 显示进程和文件的安全上下文

以ftp服务为例:
pa auxZ | grep ftp    显示ftp的安全上下文
ls -Z /var/ftp/       显示ftp默认发布目录的安全上下文,ftpd_t只能访问标签为public_content_t的文件

在这里插入图片描述

4 SELINUX安全上下文访问规则示例

接下来,我们同样以上一片博文中的ftp服务为例进行示例:
4.1 关闭状态
在这里插入图片描述
在这里插入图片描述

4.2 许可模式

该模式下对文件访问和服务权限都没有影响,但是在日志文件会生成警告信息。
/var/log/audit/audit.log该文件为SELINUX的日志文件,在该模式下,会生成警告日志。
在这里插入图片描述
在这里插入图片描述

4.3 强制模式
(1)对访问文件的影响:
在这里插入图片描述
(2)对服务功能的影响:
在这里插入图片描述

5 管理文件的SELINUX上下文

5.1 临时更改文件上下文

情况1:目录的安全上下文已经永久设定:
--chcon -t public_content_t file|dir           更改文件或目录的安全上下文为public_content_t
--chcon -t public_content_t file|dir -R        若是目录,-R表示递归更改,包括目录本身
                                               /var/ftp的默认上下文为public_content_t,当修改完下属的子文件的上下文与该目录上下文一致,则为永久修改

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

情况2:目录的安全上下文没有永久设定:
当把匿名用户家目录修改为/ftpdir之后,会发现ls -Zd /ftpdir/的标签为:default_t
mkdir /ftpdir/pub -p                          更改匿名用户的家目录为此目录
chont -t public_content_t /ftpdir -R          先改为disabled 关机 再改为enforcing 在关机重启 证明它是临时设定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.2 永久更改文件上下文

semanage是永久在内核中修改目录的上下文 必须需要刷新 
semanage fcontext -l | grep /var/ftp                          查看/var/ftp的永久上下文设定
semanage fcontext -l | grep /ftppdir          
semanage fcontext -a -t public_context_t '/ftpdir(/.*)?'      添加永久上下文,-a:add, -t:类型,     (/.*)?表示ftpdir目录下的所有内容
restorecon -RvvF /ftpdir/                                     必须刷新才会生效,把该目录下的文件永久刷新成与该目录一致的上下文

在这里插入图片描述

6 管理服务的bool值

如何在enforce 1的情况下开启某种服务?
当为强制模式时,服务的某些功能被关闭。必须当普通服务和SELINUX的权限同时都打开时,该服务才可用。
我们以开启ftp中匿名用户上传的功能为例说明:

vim /etc/vsftpd/vsftpd.conf                   在主配置文件中开启匿名用户上传的功能
chgrp ftp /var/ftp/pub    
chmod 775 /var/ftp/pub
chcon -t public_content_rw_t /var/ftp/pub     将该目录的权限改为可读可写
getsebool -a | grep ftp                       显示ftp功能的布尔值
setsebool -P ftpd_anon_write 1                修改匿名用户写的功能的布尔值为1

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

6 selinux的日志分析

/var/log/audit/audit.log         该文件存放seliunx的日志信息,存在selinux的报错,但不会有解决方案
/var/log/messages                存在selinux的日志以及解决方案
setroubleshoot                   采集/var/log/audit/audit.log中的日志并进行分析提出解决方案,存入/var/log/messages中,若是不安装此软件,/var/log/messages就没有selinux的解决方案与日志存在

(1)存在解决软件setroubleshoot
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)不存在解决软件:
在这里插入图片描述
在这里插入图片描述
########################The End######################################

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值