此时,玩SELinux系统就有些价值了。例如,我们使用一个带有严格策略的Fedora Core 4 的发行版。这些大多数例子基本上都能在Red hat Enterprise Linux version 4或者是Fedora Core 5上运行了。虽然可能有些不同,但是你也可能能够使用其他发行版运行。“获取SELinux例子策略”,描述了如何获取贯穿我们这本书作为例子使用的策略文件和其他资源,并且描述了应该如何相应的配置你的系统。
以Permission模式运行:
SELinux能够在访问检查发生地方,以permission模式运行,但不是允许访问,他仅仅就是简单的检查他们。当首次学习SELinux的时候,这个模式是非常有用的,你可能想要以这个模式来探索系统。当然,如果你想要提高SELinux访问的安全性的话,permission模式是不应该被用在操作系统中的。注意,一些工具能够在/usr/sbin中找到,这些通常不会存放在普通的用户路径当中。
查询SELinux当前的模式最简单的方式 就是运行getenforce命令。如果想要设置系统的安全模式为permission模式的话,运行命令setenforce 0。(你一定要以root身份登录系统,并且域标识为sysadm_t才能改变系统到permission模式)。为了是系统回到enforcing模式,运行命令setenforce 1。(因为你是在permission模式下,你需要一root的身份登录来改变系统的模式到enforcing模式。)
我们已经提及到了添加到系统命令的-Z 选项。例如ls和ps这样的命令显示文件和进程的安全上下文。作为一个练习,运行命令ps -Z和ls -Z来为运行的进程和可执行文件检查各种各样的安全上下文。
重新审视密码例程
纵观这一章节,我们使用了shadow密码文件和密码程序的例子。如果你检测这两个文件的安全上下文,他们的类型分别应该是shadow_t和passwd_exec_t。正如之前讨论过的,passwd_exec_t是passwd_t域
的entrypoint类型。为了见证域转换是如何工作的,我们运行下列的命令。你需要两个终端窗口或者是虚拟控制台了来运行这些命令。
在第一个窗口中,运行passwd命令
这一命令开始了密码程序,并且提示用户输入密码。不要输入密码,而是要换到第二个终端。在第二个终端中,使用su命令切换到root用户,然后运行ps命令:
正如你所看到的,运行着的密码程序的类型是passwd_t,正如在上面章节例子中描述的一样。
重新使用策略文件
在FC4系统中,包含内核策略的二进制文件放置为有名的目录/etc/selinux/中。在那个目录中的配置文件(config)指明了要被使用和在启动的时候被加载的策略。你也可以在这个文件中配置系统以permission权限启动。作为我们的联系,我们使用FC4的严格的策略,他应该在这个地方:
/etc/selinux/strict/policy/policy.[ver]
策略的版本映射了SELinux策略编译器(checkpolicy)的版本。在我们的例子中,版本是19。从策略源中配置一个SELinux系统并且创建一个内核策略文件将在第三部分详细讨论。现在,我们想要查看策略文件中都是有什么。
查看策略文件内容的一个有用的工具是 策略分析工具apol,他是由Tresys Technology创建的,发行在SELinux的工具包中,被称作SeTools。SeTools包被包含在大多数的SELinux发行版中。运行命令apol来检测你的系统中是否存在该工具。如果不存在,我们附录D提供了如何获取SeTools包的信息。
apol工具是一个精致的SELinux策略分析工具,在整本书中,我们都将使用这个工具来分析SELinux策略文件。就现在来说,我们想要使用这个工具的基本功能来分析策略文件的概要。运行apol并且打开一个严格的策略文件。在菜单Query->Policy Summary中,你可以查看策略统计资料的概述。
apol有一系列的主选项卡(Policy Components,Policy Rules,Analysis等等),这些选项卡能够帮助你以多种方式查询和分析策略。花费一些时间来探索Policy Components和Policy Rules,并且熟悉策略的这两部分内容和apol工具。你将会发现使用apol来分析你的策略和实例是非常有用的,在我们后面的”SELinux策略语言”这一章节中。