5.5. 保护 Apache HTTP 服务器的安全

Apache HTTP 服务器是红帽企业 Linux 包括的最稳定和最安全的服务之一。保护 Apache HTTP 服务器安全的方法和技术多得数不胜数 — 在这里我们无法逐一详述。

在配置 Apache HTTP 服务器时阅读它的文档是很重要的。这些文档包括:《红帽企业 Linux 参考指南》的“Apache HTTP 服务器”这一章;《红帽企业 Linux 系统管理指南》的“Apache HTTP 服务器 配置”这一章;以及在 http://www.redhat.com/docs/manuals/stronghold/ 上的原有手册。

以下是管理员应该小心使用的配置选项列表。

5.5.1. FollowSymLinks

该指令被默认启用,在创建到万维网服务器的文档根的符号链接时请小心。例如,提供一个到 / 的符号链接就不是个好主意。

5.5.2. Indexes 指令

该指令被默认启用,但它可能不应该被启用。要阻止访问者浏览服务器上的文件,你可以删除该指令。

5.5.3. UserDir 指令

UserDir 指令被默认禁用,因为它可以确认某个用户帐号在系统上是否存在。要启用服务器上的用户目录浏览,请使用以下指令:

UserDir enabled 
UserDir disabled root

这些指令为除了 /root/ 以外的所有用户目录激活浏览。要把用户添加到禁用帐号列表中,在 UserDir disabled 行中添加一个用空格隔开的用户列表。

5.5.4. 不要删除 IncludesNoExec 指令

按照默认设置,服务器端包括(server-side includes)模块不能执行命令。除非在极端必要的情况下,建议你不要改变这个设置,因为它有可能会使攻击者能够在系统上执行命令。

5.5.5. 限制对可执行目录的权限

对于任何包含脚本或 CGI 的目录,请确定只给根用户以写权限。这可以通过键入以下命令来达到:

chown root <directory_name>
chmod 755 <directory_name>

还有,总是在把脚本放入生产环境之前校验它们在系统上的运行情况符合你的设想。