维护系统的安全性极端重要。管理系统安全的方法之一是谨慎管理对系统服务的使用。你的系统可能需要提供对某些服务的公开利用(譬如 httpd,如果你在运行万维网服务器的话)。然而,如果你不需要提供某项服务,则应该把它关闭 — 这会降低你对可能会出现的漏洞利用情况的曝光率。
管理对系统服务访问的方法有好几种。根据服务、系统配置、以及你对 Linux 的掌握程度来决定应使用哪一种管理方法。
拒绝对某一服务的使用的最简便方法是将其关闭。不论是由 xinetd(我们会在本节后面详细讨论)管理的服务,还是在 /etc/rc.d 层次(又称 SysV)中的服务,都可以使用以下三种不同的应用程序来配置其启动或停止:
服务配置工具 — 一个图形化应用程序,它显示了每项服务的描述,以及每项服务是否在引导时启动(运行级别3、4、5),并允许你启动、停止、或重新启动每项服务。
ntsysv — 基于文本的程序。它允许你为每个运行级别配置引导时要启动的服务。对于不属于 xinetd 的服务而言,改变不会立即生效。你不能使用这个程序来启动、停止、或重新启动不属于 xinetd 的服务服务。
chkconfig — 一个允许你在不同运行级别启动和关闭服务的命令行工具。对于不属于 xinetd 的服务而言,改变不会立即生效。你不能使用这个工具程序来启动、停止、或重新启动不属于 xinetd 的服务服务。
你可能会发现以上工具比使用下面这些方法更简单 — 手工编辑位于 /etc/rc.d 目录下的大量符号链接,或者编辑 /etc/xinetd.d 中的 xinetd 配置文件。
管理对系统服务的使用的另一种方法是通过 iptables 来配置 IP 防火墙。如果你是 Linux 新手,请注意,iptables 可能不是你的最佳解决办法。设置 iptables 是一项复杂的作业,最好由经验丰富的 Linux 系统管理员来执行。
从另一角度而言,iptables 的优越性是它的灵活性。譬如,如果你需要一个定制的解决方案来为某些主机提供到某些服务的使用权,iptables 能够为你提供。关于 iptables 的详情,请参阅《红帽企业 Linux 参考指南》和《红帽企业 Linux 安全指南》。
此外,如果你寻找的是能够为你的家用机器设置常规访问规则的工具程序,并且(或者)你还是 Linux 新手,你应该尝试使用安全级别配置工具(redhat-config-securitylevel)。该工具允许你为系统选择安全级别,它和安装程序中的「防火墙配置」屏幕相似。
详情请参阅第20章 。如果你需要更确切的防火墙规则,请参阅《红帽企业 Linux 参考指南》中的“iptables”这一章。
在你配置到服务的访问之前,你必须理解 Linux 运行级别。运行级别是一种状态,或模式(mode),它由列在 /etc/rc.d/rc<x>.d 目录中的服务来定义,其中 <x> 是运行级别的数字。
现存的运行级别如下:
0 — 停运
1 — 单用户模式
2 — 没有使用(可由用户定义)
3 — 完整的多用户模式
4 — 没有使用(可由用户定义)
5 — 完整的多用户模式(带有基于 X 的登录屏幕)
6 — 重新引导
如果你使用的是文本登录屏幕,你所在的运行级别就是3。如果你使用的是图形化登录屏幕,你所在的运行级别就是5。
默认的运行级别可以通过修改 /etc/inittab 文件来改变,该文件在接近开头的地方有一行与下面相似:
id:5:initdefault: |
把这一行中的数字改成你想要的运行级别。所做改变在系统重新引导之后才会生效。
要立即改变运行级别,使用 telinit,之后跟随运行级别号码。你必须是根用户才能使用这个命令。telinit 命令并不改变 /etc/inittab 文件;它只改变当前的运行级别。当系统重新引导后,它会被引导入 /etc/inittab 中指定的运行级别。