Linux安全之SELinux理解

安全增强式 linux,即SELINUX(Security-Enhanced Linux)是一个 Linux 内核的安全模块,其提供了访问控制安全策略机制,包括了强制访问控制(Mandatory Access Control,mac) 。SELinux 是一组内核修改和用户空间工具,已经被添加到各种 Linux 发行版中 。其软件架构力图将安全决策的执行与安全策略分离,并简化涉及执行安全策略的软件的数量 。

Linux安全之SELinux理解

文章插图
 
Linux安全之SELinux理解
1. SELinux 介绍
安全增强式 Linux(SELinux)是一种强制访问控制的实现 。它的作法是以最小权限原则为基础,在 Linux 核心中使用 Linux 安全模块 。它并非一个 Linux 发行版,而是一组可以应用在类 Unix 操作系统(如 Linux、BSD 等)的修改 。SELinux 更能遵从最小权限的理念安全增强式SELinux是一个在内核中实践的强制访问控制安全性机制
 
Linux安全之SELinux理解

文章插图
 
Linux安全之SELinux理解
两种访问控制
 
  • DAC:自主访问控制
  • MAC:强制访问控制
 
SELinux有两种工作级别
 
  • strict: 每个进程都受到 selinux 的控制
  • targeted: 仅有限个进程受到 selinux 控制,只监控容易被入侵的进程
1.1 为什么需要 SELinux 
在未启用 SELinux 的情况下,要控制用户的文件访问权,唯有通过酌情访问控制(DAC)方法如文件权限或访问控制清单(ACL) 。不论用户或程序都可以将不安全的文件权限赋予其它人,或反过来访问系统在正常运作下无须访问的部份 。举个例说:
 
  • 管理员不能控制用户:用户可以把谁都可读入的权限赋予敏感文件,例如 ssh 金钥及惯常用来放置这些金钥的目录,~/.ssh/ 。
  • 进程可以更改安全性属性:每位用户的邮件文件应该只供该用户读入,但邮件客户端软件有能力将它们改为谁都可读入 。
  • 进程继承用户的权限:假若 Firefox 被木马程序所占用,它可能会阅读用户的私人 ssh 金钥,尽管它没有理由如此做 。
 
基本上在传统 DAC 模式只在两个权限级别,root及用户,而当中不能简易地实施最小权限的理念 。很多由 root 引导 1 的进程在后期会撇除它们的权限并以受限制的用户身份来运行,有些则会在 chroot 的情况下执行,但这些安全措施都是酌情的 。
1.2 解决方案
SELinux 更能遵从最小权限的理念 。在缺省的 enforcing 情况下,一切均被拒绝,接着有一系列例外的政策来允许系统的每个元素(服务、程序、用户)运作时所需的访问权 。当一项服务、程序或用户尝试访问或修改一个它不须用的文件或资源时,它的请求会遭拒绝,而这个行动会被记录下来 。
由于 SELinux 是在内核中实践的,应用程序无须被特别编写或重写便可以采用 SELinux 。当然,如果一个程序特别留意稍后所提及的 SELinux 错误码,它的运作可能会更畅顺 。
理论上,下列样例方案可提供更高安全度:
 
  • 局限只有某些获授权的程序可读入用户的 ~/.ssh/ 目录
  • 防止派发邮件程序更改拥有群组、群组设置或其它读档权限
  • 阻止浏覧器读入用户的主目录
2. SELinux 的操作2.1 SELinux 的三种模式 
SELinux 拥有三个基本的操作模式,当中 Enforcing 是缺省的模式 。
 
  • Enforcing这个缺省模式会在系统上启用并实施 SELinux 的安全性政策,拒绝访问及记录行动
  • Permissive在 Permissive 模式下,SELinux 会被启用但不会实施安全性政策,而只会发出警告及记录行动 。Permissive 模式在排除 SELinux 的问题时很有用
  • DisabledSELinux 已被停用
 
SELinux 的模式可以通过 Adminstration 选单里的 SELinux 图像管理界面、或者在命令行执行 system-config-selinux 来查看及更改(SELinux 图像管理界面是 policycoreutils-gui 组件的一部份,缺省是不会被安装的) 。
2.2 获取当前 SELinux 运行状态
sestatus 命令
# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted


推荐阅读