46.6. 安全性

对公共因特网开放的万维网服务器需要不断加强管理。对于软件和意外的错误配置,安全问题似乎都是不可避免的。有关如何处理这些问题,在此有一些提示。

经常更新

在 Apache 软件中发现漏洞时,SUSE 将会发出安全忠告。其中包含修正漏洞的说明,用户应该尽快地采纳这些说明意见。SUSE 安全声明邮件列表可在 http://www.suse.com/us/private/support/online_help/mailinglists/ 处获得。有关 SUSE Linux 包的安全问题的最新信息也可在 http://www.novell.com/linux/security/securitysupport.html 上在线查看。

此外,您应该订阅 Apache 声明邮件列表(http://httpd.apache.org/lists.html#http-announce),其中会发布最新的发行版和错误修复。

DocumentRoot 权限

在 SUSE Linux 中,默认情况下,DocumentRoot 目录(/srv/www/htdocs)和 CGI 目录(/srv/www/cgi-bin)都属于用户。您不能更改这些权限。如果任何用户都可写入这些目录,则任何用户都可以将文件放入这些目录中。之后,具有 wwwrun 权限(该权限允许用户随意访问文件系统资源)的 Apache 可能会执行这些文件。将 /srv/www/htdocs/srv/www/cgi-bin 子目录与 Directory 指令结合使用可组织特定于用户或域的数据(请参见 Directory)。

CGI 和 SSI 目录

Perl、PHP、SSI 或任何其他编程语言中的交互脚本基本上可以运行任意命令。将 CGI 和 SSI 的执行(请参见 第 46.5.1.2 节 “通用网关接口:mod_cgiScript Alias第 46.5.1.1 节 “使用 mod_include 的服务器端包含 ”)限制于特定目录,而非允许它们全局执行,是减少风险的一种选择。

通常,另一种选择是对 CGI 使用 mod_suexec(请参见 第 46.5.2.1 节 “使用 mod_suexec 作为另一个用户运行 CGI。 ”)。对于 Apache 模块,配置解释器时考虑安全性(例如 第 46.5.3.2 节 “提供 PHP 服务:mod_php4mod_php5 中所述)有助于保护万维网环境的安全。

访问权限

通常,特别是在测试环境中,由于测试是一种设置,因此很少处理对万维网服务器的访问权限。这会导致意外泄露敏感信息,甚至将整个服务器暴露给未经授权的用户。将 Order 指令(http://httpd.apache.org/docs-2.0/mod/mod_access.html#order)和 .htaccess 文件(请参见 第 46.3.2.3.3 节 “AccessFileName 文件名)相结合可仅允许特定用户或客户端访问某些万维网站点。

此外,可以使用“混淆安全性”方法:典型的示例是在非标准端口运行 Apache(请参见 网络设备选择)。这将产生 URL 附带端口(例如 http://www.example.com:8765),在测试环境中这是可接受的。