对公共因特网开放的 Web 服务器需要不断加强管理。对于软件和意外的错误配置,安全问题似乎都是不可避免的。有关如何处理这些问题,在此有一些提示。
在 Apache 软件中发现漏洞时,SUSE 将会发出安全忠告。其中包含修正漏洞的描述,用户应该尽快地采纳这些描述意见。SUSE 安全性声明可以从以下位置处获取:
在 SUSE Linux Enterprise Server 中,默认情况下,DocumentRoot 目录 (/srv/www/htdocs) 和 CGI 目录 (/srv/www/cgi-bin) 都属于用户和组 root。您不能更改这些权限。如果任何用户都可写入这些目录,则任何用户都可以将文件放入这些目录中。之后,具有 wwwrun 权限(该权限允许用户随意访问文件系统资源)的 Apache 可能会执行这些文件。使用 /srv/www 的子目录可存放虚拟主机的 DocumentRoot 和 CGI 指令,并确保目录和文件属于用户和组 root。
默认情况下,在 /etc/apache2/httpd.conf 中拒绝对整个文件系统的访问。不应该重写这些指令,而是要明确启用对于 Apache 可读的所有目录的访问权(请参见第 40.2.1.2.3 节 “基本虚拟主机配置”获取细节)。如此操作后,请确保任何重要文件(例如密码或系统配置文件)均不能从外部读取。
Perl、PHP、SSI 或任何其他编程语言中的交互脚本基本上可以运行任意命令,因此存在通常的安全性问题。将从服务器执行的脚本只能从服务器管理员信任的源安装,允许用户运行他们拥有的脚本通常不是好的做法。还建议对所有脚本执行安全性审计。
为了尽可能简化脚本的管理,通常会将 CGI 脚本的执行限制于特定目录而不是全局使用它们。指令 ScriptAlias 和 Option ExecCGI 用于配置。SUSE Linux Enterprise Server 默认配置不允许从任何位置都能执行 CGI 脚本。
所有 CGI 脚本都会作为同一个用户运行,所以不同的脚本可能会彼此冲突。模块 suEXEC 允许您在不同的用户和组下运行 CGI 脚本。