SELinux之庐山真面目

大部分接触过Linux的人都应听说过SELinux(更准确的说,尝试关闭),甚至某些过往的经历让您对SELinux产生了偏见。不过随着日益增长的0-day安全漏洞,或许现在是时候去了解下这个在Linux内核中已经有8年多历史的强制性访问控制系统(MAC)了。


SELinux与强制访问控制系统

SELinux全称Security Enhanced Linux(安全强化Linux),是MAC(Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。

强制访问控制系统的用途在于增强系统抵御0-Day攻击(利用尚未公开的漏洞实现的攻击行为)的能力。所以它不是网络防火墙或ACL的替代品,在用途上也不重复。

要更了解SELlinux为何重要、及能够为你做什么,最简单的方法就是参考一些例子。

举例来说,系统上的Apache被发现存在一个漏洞,使得某远程用户可以访问系统上的敏感文件(比如/etc/passwd来获得系统已存在用户),而修复安全漏洞的Apache更新补丁尚未释出。此时SELinux可以起到弥补该漏洞的缓和方案。因为/etc/passwd不具有Apache的访问标签,所以Apache对于/etc/passwd的访问会被SELinux阻止。


相比其他强制性访问控制系统,SELinux有如下优势:

  • 控制策略是可查询而非程序不可见的。
  • 可以热更改策略而无需重启或停止服务。
  • 可以从进程初始化、继承和程序执行三个方面通过策略进行控制。
  • 控制范围覆盖文件系统、目录、文件、文件启动描述符、端口、消息接口和网络接口。


SELinux模式

SELinux拥有三个基本的操作模式,当中Enforcing是缺省的模式。此外,它还有一个targetedmls的修饰语。这管制SELinux规则的应用有过广泛,当中targeted是较宽松的级别。

  • Enforcing:这个缺省模式会在系统上启用并实施SELinux的安全性政策,拒绝访问及记录行动。
  • Premissive:在Premissive模式下,SELinux会被启用但不会实施安全性政策,而只会发出警告及记录行动。Permissive模式在排除SELinux的问题是很有用。
  • Disabled:SELinux停用。

1、查看当前模式:

使用sestatus

或使用getenforce


2、改变运行状态:

setenforce [ Enforcing | Permissive | 1 | 0 ]

该命令可以立刻改变SELinux运行状态(热更改策略),在Enforcing和Permissive之间切换,其结果保持至关机或重启。一个典型的用途看看到底是不是SELinux导致某个服务或者程序无法运行。若是在setenforce 0 (Permissive)以后服务或者程序依然无法运行,那么就可以肯定不是SELinux导致的。

若是想要永久变更SELinux运行状态,可以通过更改其配置文件/etc/sysconfig/selinux实现。注意当从Disabled切换到Permissive或者Enforcing模式后需要重启计算机并为整个文件系统重新创建安全标签:

# touch ./autorelabel
# reboot

http://linuxtoy.org/archives/selinux-introduction.html


开启semanage

# yum provides /usr/sbin/semanage 或者输入 # yum whatprovides /usr/sbin/semanage

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值