1.2. 示例
以下示例演示了 SELinux 如何提高安全性:
- 默认操作为 deny(拒绝)。如果 SELinux 策略规则不存在允许访问(如允许进程打开一个文件),则拒绝访问。
- SELinux 可以限制 Linux 用户。SELinux 策略中包括很多受限制的 SELinux 用户。可将 Linux 用户映射到受限制的 SELinux 用户,以便利用其使用的安全规则和机制。例如,将 Linux 用户映射到 SELinux
user_u
用户,导致 Linux 用户无法运行(除非其他配置)设置用户 ID (setuid)应用程序,如 sudo 和 su。如需更多信息,请参阅 第 3.3 节 “受限制和未限制的用户”。 - 增加进程和数据的分离。进程在自己的域中运行,阻止进程访问其他进程使用的文件,并阻止进程访问其他进程。例如:在运行 SELinux 时,除非有其他配置,攻击者将无法侵入 Samba 服务器,然后使用 Samba 服务器作为攻击向量读取和写入其它进程使用的文件(如 MariaDB 数据库)。
- SELinux 可帮助缓解配置错误带来的破坏。不同的 DNS 服务器通常会在彼此间复制信息,这被称为区传输(zone transfer).攻击者可以利用区传输来更新 DNS 服务器使其包括错误的信息。当在 Red Hat Enterprise Linux 中将 Berkeley Internet 名称域(BIND)作为 DNS 服务器运行时,即使管理员忘记限制哪些服务器可以执行区域传输,默认的 SELinux 策略也会阻止区域文件 [1] 通过 BIND
named
守护进程本身或其它进程的区传输被更新。 - 请参阅 NetworkWorld.com 文章 A Stbelt for server 软件:SELinux 阻止实际利用[2]有关 SELinux 的背景信息,以及 SELinux 已阻止的各种漏洞的信息。
[1]
包括 DNS 服务器所使用的信息(如主机名到 IP 地址映射)的文本文件。
[2]
达利亚州马提提."服务器软件的空间:SELinux 阻止现实利用"。2008 年 2 月 24 日发布.访问日期:2009 年 8 月 27 日: http://www.networkworld.com/article/2283723/lan-wan/a-seatbelt-for-server-software--selinux-blocks-real-world-exploits.html