Fedora 的缺省 SELinux 策略

在Fedora Core 3系统中,缺省的策略是"targeted "策略。对于此种选择人们议论纷纷,问题在于我们希望能使尽可能多得人使用SELinux。如果人们觉得这玩意太可怕并且妨碍了人们做他们想做的事,那么人们会把它关掉。所以我们在这个时候宁愿为大多数人提供适量的保护策略,也不会为了少部分人而提供严格的保护策略。缺省的Fedora Core 3安装会激活 SELinux 并使用"targeted "策略,你也可以通过运行 system-config-securitylevel 这个程序将策略改为更加严格的 "strict "策略。

如果你安装了策略的源文件包,那么策略的源文件就在/etc/selinux/X /src/policy/目录里面(X指你选则的策略,可以是 “strict” 或者 “targeted”)在这个目录下有一个叫作domains/program/的子目录,里面为每一个守护进程对应了一个.te文件。你可以删去那些你不使用也不打算使用的守护进程所对应的.te文件,从而减少内核内存空间的使用,并提高性能。比如,你的系统没有BIND服务,你完全可以删掉 named.te 文件。然后如果你使用"make load"命令重新装载策略到内核的话,内核对内存的使用量就会减少。然而也要小心,如果你误删了其它文件,那么你的系统将不能正常启动进入 enforcing模式。所以目前,这种调节最好还是由内行来做。

刚开始接触SElinux的你,要注意一个内核参数,它用来决定你系统的内核运行于 强制(enforcing )模式还是自由(permissive)模式,那就是"enforcing"参数。在自由模式下SELinux只是记录他该做什么,而事实上并不做任何动作。在强制模式下SElinux会来真格的。如果你的策略有错误,在强制模式下系统可能会阻止你登陆!所以正常情况下你应改在启动时传 enforcing=1 给内核,当你的SELinux策略有问题时,你可以临时传enforcing=0给内核来查错。在/etc/selinux/config这个init的配置文件中相应的有一个选项,通过设置它,也可以使系统进入自由模式。

如果你打算中止使用SELinux,你可以使用 selinux=0 这个内核参数。这会关闭SELinux的全部功能,就好像你的内核并没有把SElinux机制编译进去一样。所以当系统出了问题时,比如系统崩溃,有些人就用此方法进行理事的恢复工作,但是我并不赞成这种做法。当你临时使用 selinux=0 进入系统后,你所建立的任何文件将不会拥有SELinux上下文标记。这就意味着,如果你替换了诸如/etc/passwd 或/etc/shadow等重要文件,那么下一次进入SELinux时,系统就不会正常的工作。这不是严重的问题,当你从CD引导时,做系统恢复时,或使用一个不支持 XATTRs备份软件恢复系统时,同样的问题也会发生。这个问题虽然可以通过为受到影响的文件系统重新标记上下文来解决,但是使用 enforcing=0 来代替 selinux=0 不是更好吗?

你可以编辑/etc/selinux/config来临时关闭SELinux。

Fedora Core 2的释放是SELinux一次重要的发展。他是第一套提供对SELinux完整支持的主流Linux发行版本。Fedora Core 3 也是一个重要的里程碑,因为他是第一套将SELinux作为默认安装选项的Linux发行版本。
Red Hat Enterprise Linux 4 见会跟随 Fedora Core 的开发步伐,其对SELinux的支持也会得到进一步的发展。

当 RHEL 4 发布时,她将会从 Fedora Core 系统和在Fedora 上学习SELinux的用户那里获得非常大的益处。