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

SELinux 与强制访问控制系统

SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)
强制访问控制系统的用途在于增强系统抵御 0-Day 攻击(利用尚未公开的漏洞实现的攻击行为)的能力。所以它不是网络防火墙或 ACL 的替代品,在用途上也不重复。

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

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

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

了解和配置 SELinux

1. 获取当前 SELinux 运行状态
getenforce可能返回结果有三种:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止可疑行为,Enforcing 代表记录警告且阻止可疑行为。目前常见发行版中,RHEL 和 Fedora 默认设置为 Enforcing,其余的如 openSUSE 等为 Permissive。
2. 改变 SELinux 运行状态
setenforce [ Enforcing | Permissive | 1 | 0 ]该命令可以立刻改变 SELinux 运行状态,在 Enforcing 和 Permissive 之间切换,结果保持至关机。一个典型的用途是看看到底是不是 SELinux 导致某个服务或者程序无法运行。若是在 setenforce 0 之后服务或者程序依然无法运行,那么就可以肯定不是 SELinux 导致的。若是想要永久变更系统 SELinux 运行环境,可以通过更改配置文件 /etc/sysconfig/selinux 实现。注意当从 Disabled 切换到 Permissive 或者 Enforcing 模式后需要重启计算机并为整个文件系统重新创建安全标签(touch /.autorelabel && reboot)。
3. SELinux 运行策略
配置文件 /etc/sysconfig/selinux 还包含了 SELinux 运行策略的信息,通过改变变量 SELINUXTYPE 的值实现,该值有两种可能:targeted 代表仅针对预制的几种网络服务和访问请求使用 SELinux 保护,strict 代表所有网络服务和访问请求都要经过 SELinux。RHEL 和 Fedora 默认设置为 targeted,包含了对几乎所有常见网络服务的 SELinux 策略配置,已经默认安装并且可以无需修改直接使用。若是想自己编辑 SELinux 策略,也提供了命令行下的策略编辑器 seedit 以及 Eclipse 下的编辑插件 eclipse-slide 。

更详细的请见:http://www.ha97.com/4336.html

转载于:https://www.cnblogs.com/raind/p/10288409.html

SELinux简介(转载)相关推荐

  1. Sybase数据库简介 (转载)

    一.Sybase数据库简介 (转载) 1.版本 1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品.SYBASE ...

  2. PowerMock 简介--转载

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-powermock/ EasyMock 以及 Mockito 都因为可以极大地简化单元测试的书 ...

  3. ListView控件使用简介(转载)

    ListView控件使用简介 ListView控件在各类程序中,具有数据显示直观,操作方便的特点.所以使用率极高,但控件的各类参数众多,很多初学者不易掌握,在此列举该控件的一些常用方法,属性,希望对初 ...

  4. FMEA简介(转载)

    FMEA简介 http://www.quality-world.cn/guanli/2195.html FMEA(Failure Mode and Effect Analysis,失效模式和效果分析) ...

  5. sliva数据库简介--转载

    sliva rRNA数据库(http://www.arb-silva.de/)用来检查和比对RNA序列,既可以针对16S/18S,SSU,也可以针对23S/28S, LSU,包括了Bacteria, ...

  6. CSS中expression使用简介(转载)

    定义 IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以 ...

  7. csv文件简介(转载)

    所谓"CSV",是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件.下面是一个实际CSV文件中的部分内容,让大家对他有一个感性的认识.我们选的 ...

  8. Java 理论与实践: 非阻塞算法简介--转载

    在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情.Java 语言中主要的同步手段就是synchronized 关键字(也称为内在锁),它强制实行互斥,确保 ...

  9. JSP 简介(转载)

    什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%> ...

最新文章

  1. Excel如何批量将表中的0替换成空值?同时不能影响正常数字中包含的0
  2. Python3开发过程常见的异常(最近更新:2019-04-26)
  3. 高并发-【抢红包案例】之一:SSM环境搭建及复现红包超发问题
  4. Redis:redis入门
  5. 使用tensorflow书写逻辑回归
  6. $.post $.getScript
  7. 计算机房消防知识培训,通信机房消防知识培训课件.ppt
  8. 学习编程的方法与建议
  9. 酒精测试仪检定设备设计与验证
  10. Range的学习笔记
  11. STM32 跑马灯程序设计
  12. 基于exchange 2010迁移exchange 2016搭建共存环境
  13. python运动目标检测_运动目标检测(3)—光流法
  14. android逆向笔记 -- 记一次解决飞天助手未知模拟器方法
  15. Polkadot的PLO第一阶段: Equilibrium在DOT上筹集了850万美元
  16. openwrt 使用自定义 DNS
  17. 添加图书的代码C语言,C语言图书系统代码.doc
  18. java棒棒糖和皮卡丘八音盒_KFC用玩具提前要走了压岁钱
  19. 高斯滤波器(Gaussian Filter) python实现及部分原理说明(opencv)
  20. SQL Server添加MDW性能监控报表(转载)

热门文章

  1. oracle中随机整数怎么写,PLSQL生成随机整数
  2. 《操作系统真相还原》二
  3. winform控件之DateTimePicker
  4. 成都UI设计培训机构该怎么选择?
  5. Linux的桌面环境比较与选择(gnome、kde、xfce、lxde 等)
  6. 今天开始学习用vs.net开发smartphone软件
  7. Mac下使用SSH连接远程Linux服务器
  8. strcmp比较结果异常的一种可能原因
  9. 技术转移服务哪家强?大院大所告诉你
  10. viterbi算法通俗理解