4.5. 可用网络服务

对于系统管理员来说,控制用户对管理权限的使用是一个重要的问题;对于安装和操作 Linux 系统的人员而言,决定和控制哪些网络服务应该处于活跃状态就更为重要。

许多红帽企业 Linux 中的服务都像网络服务器一样。如果机器上运行某个网络服务,那么这个叫做守护进程(daemon)的服务器程序就在一个或多个网络端口上监听连接。每一个此类服务器都应该被作为潜在的攻击渠道对待。

4.5.1. 对服务的威胁

网络服务可以给 Linux 系统带来许多威胁。以下列举了一些主要威胁:

注记注记
 

ExecShield 是一个 x86 兼容的单或多处理器内核支持的可执行的内存分段和保护程序。红帽企业 Linux 使用 ExecShield 来解决缓冲溢出的危险。ExecShield 把内存分为可执行段和不可执行段来减少缓冲溢出的危险。任何试图在可执行内存段以外执行的代码 (如缓存溢出产生的有害代码) 都将触发一个内存段错误中止。

ExecShield 也包括了对 AMD64 平台的 No eXecute( NX)技术和 Itanium 和 Intel® EM64T 系统的 eXecute Disable (XD)技术的支持。这些技术和 ExecShield 一起使用可以阻止不良的代码和一个可执行的 4kb 代码在可执行段的虚拟内存空间内执行。这可以减少利用缓存溢出对系统进行攻击的危险。

关于 ExecShield 和 NX 或 XD技术的详情,请参阅New Security Enhancements in Red Hat Enterprise Linux v.3, Update 3”。它可以从以下得到:

http://www.redhat.com/solutions/info/whitepapers/

要把受到网络攻击的暴露程度限制在一定范围内, 你应该关闭所有不使用的服务。

4.5.2. 识别和配置服务

为增强安全性,多数和红帽企业 Linux 一起安装的网络服务都被默认关闭。不过,其中有几个明显的例外:

在决定是否让这些服务继续运行时,最好是听凭常识,宁可过于小心也不疏忽大意。例如,如果没有打印机,你就不必运行 cupsdportmap 端口也同理,如果你不挂载 NFSv3 文件卷或使用 NIS(ypbind 服务),那么 portmap 就应该被禁用。

红帽企业 Linux 中包括了三个用来开关服务的程序。它们是:服务配置工具system-config-services)、ntsysvchkconfig。关于使用这些工具的信息,请参阅《红帽企业 Linux 系统管理指南》的“控制对服务的使用”这一章。

图 4-3. 服务配置工具

如果你对某服务的目的不清楚,服务配置工具中有一个描述字段可能会对你有所启发,如图 4-3所示。

但是仅仅查看哪些网络服务在引导时被启用是不够的。优秀的系统管理员还应该检查哪些端口被打开或正在监听。关于这个课题的详情,请参阅第 5.8 节

4.5.3. 不安全服务

任何网络服务都有潜在的不安全因素。这就是关闭不使用服务之所以非常重要的原因。服务漏洞会被例行检查、揭示和修补,从而使更新与网络服务有关的软件包这一点显得格外重要。关于这个问题的详情,请参阅第3章

和其它网络协议相比,某些网络协议具有固有的不安全因素。它们包括任何进行以下事务的服务:

带有固有不安全因素的服务包括:

所有远程登录和 shell 程序(rloginrshtelnet)都应该避免使用,使用 SSH 来替代它们。(关于 sshd 的详情,请参阅第 4.7 节。)

FTP 固有的对系统安全的威胁性没有远程 shell 那么严重,但是 FTP 服务器必须被谨慎配置和监视才能避免问题的发生。关于保护 FTP 服务器的安全的详情,请参阅第 5.6 节

应该谨慎实现并放置在防火墙之后的服务包括:

关于保护网络服务安全的详情,请参阅第5章

下节讨论了可以用来设置简单防火墙的工具。