Fedora Core 3 SE Linux 新特性
安全增强型 Linux (SE Linux) 现在是 Fedora Core 3 (FC3) 安装的默认配置。当您安装 FC3 时,可以选择关闭 SE Linux。或者,您可以在安装后手动关闭它。在 FC2 中,SE Linux 默认未安装,但在安装过程中提供了一个选项,您必须提供selinux作为引导加载程序的参数。
FC3 中的默认 SE Linux 策略是目标策略。提供了两种类型的策略——目标策略和严格策略。目标策略是 FC3 中的新特性。在目标策略下,只有一些更常用的守护进程在 SE Linux 的限制下运行。这些守护进程包括 named、httpd、dhcpd、portmap、squid、nscd、syslogd、snmpd 和 ntpd。这些守护进程在它们自己的域中运行;例如,httpd 在 httpd_t 域中运行。
没有安装策略的守护进程和系统进程在 unconfined_t 域中运行。在 unconfined_t 域中运行的进程应用了标准的 Linux DAC(自主访问控制)。SE Linux MAC(强制访问控制)被应用,因为在 unconfined_t 中运行的进程有一个策略,允许一切。
要查看哪些域是目标域,请检查您的 /etc/selinux/targeted/src/domains/program/ 目录。要查看哪些程序在不受限制的情况下运行,请运行ps axZ以查看在 unconfined_t 域中运行的内容。
严格策略将 SE Linux MAC 控制应用于所有进程。unconfined_t 域在严格策略中默认不使用,因为每个守护进程都有一个域,并且用户登录有受限域。在目标策略下,用户登录域不存在限制。严格策略默认未安装,因为它更难管理。由于 SE Linux MAC 控制应用于除少量重要的系统进程(init 脚本、insmod、hotplug、firstboot、RPM 和 anaconda)之外的所有进程,因此严格策略比目标策略更安全。这与仅应用于目标策略下少量重要守护进程形成对比。可以看出,可用性和安全性之间存在权衡。如果您要运行严格策略,您将更可能手动编辑策略,因为控制更严格。您想要执行的操作很可能不被允许,因此您将被要求进行本地自定义。
您可以从目标策略切换到严格策略,反之亦然,但您应该首先在非生产系统上进行测试。如果您要在生产系统上从目标策略更改为严格策略,您可能会发现您想要执行的某些操作是不允许的,需要手动修改系统策略。如果您对故障排除和解决 SE Linux 策略相关问题没有信心,建议您运行目标策略。从严格策略切换到目标策略不应导致任何重大故障。
从一种策略类型更改为另一种策略类型的过程非常简单,并且可以在 Fedora Core 3 test3 SELinux FAQ(请参阅资源)中找到命令行说明。另一种更改为其他策略类型的方法是运行 system-config-securitylevel 程序。它目前仅在图形模式下可用,而不在文本模式下可用。在撰写本文时,FC3 预发布版本中存在一个错误:system-config-securitylevel 脚本未创建 /.autorelabel 文件,因此您必须手动创建它。此错误将在 FC3 正式版中修复。此文件的存在会导致所有文件系统在启动时重新标记。/etc/rc.sysinit 脚本会在启动时删除此文件。
在 FC2 中,SE Linux 目录是 /etc/security/selinux;在 FC3 中,它已更改为 /etc/selinux,并带有 strict 和 targeted 子目录。在 strict 和 targeted 目录下,您可以找到 strict 和 targeted 策略的必要文件。strict 和 targeted 目录还包含一个名为 booleans 的文件。此文件包含可能更改的项目的默认值的设置,例如 httpd_enable_cgi,这是一个允许运行 CGI 脚本的值。
/etc/selinux/config 文件也是 FC3 中的新增内容。它包含 SELINUX 变量,可以设置为 enforcing、permissive 或 disabled。config 文件还包含 SELINUXTYPE 变量,可以设置为 targeted 或 strict。config.v 文件是 config 文件的版本控制文件。您可以手动编辑 config 文件,但不建议这样做。相反,您应该使用 system-config-securitylevel 程序。config 文件在启动时读取,因此在运行时更改它不会改变您系统的当前运行状态。如果您在 strict 和 targeted 之间更改 SELINUXTYPE 变量的值,则必须重新加载新策略并重新标记所有文件系统。创建 .autorelabel 标志文件是执行此操作的唯一推荐方法,然后重新启动。
更详细地讨论 /etc/selinux/ 目录超出了本文的范围,但将在以后的文章中介绍。
目前正在进行的工作是使严格策略更灵活,并使默认设置更容易开箱即用。还在进行安全增强型 X 的工作,其目的是控制 X 会话,以便例如,恶意 X 程序不会干扰显示器上的其他 X 程序。这方面的例子包括程序无法嗅探键盘以及在 X 用户不知情的情况下看到窗口或隐藏窗口。
SE Linux 用户群正在持续增长,并且随着 Fedora 版本中包含 SE Linux,越来越多的人意识到它的许多优点。乍一看,SE Linux 可能显得相当令人生畏,许多用户发现目标策略是一个很好的起点。可以在 FAQ、HOWTO、邮件列表、已发表的文章和 IRC 频道中找到支持。
Faye Coker 是一名自由系统管理员,经常发现自己运行 ISP 的系统并将服务器转换为 Linux。她曾在欧洲和澳大利亚工作过。在 Linux 会议上,她还被问过“你迷路了吗?”太多次了。