保护和强化 Apache Web 服务器的 10 个最佳实践

为了确保您的网络应用程序的安全,请使用以下最佳实践来保护和加强您的 Apache 网络服务器。

Web服务器是网络应用的关键构成部分。配置不当或使用默认配置可能会暴露敏感信息,从而带来安全风险。

作为网站所有者或管理员,您应该定期对网站进行安全扫描,以发现潜在的网络威胁,以便在黑客攻击发生之前采取相应的防御措施。

下面将介绍一些必要的配置,以保障您的 Apache 网络服务器安全。

以下所有配置都可以在您的 Apache 实例的 httpd.conf 文件中找到。

注意:在修改配置文件之前,务必进行备份,以便在出现错误时轻松恢复。

禁用 HTTP TRACE 请求方法

默认情况下,`TraceEnable on` 允许使用 TRACE 方法,但这不应该允许任何请求主体与请求一起发送。

将 `TraceEnable` 设置为 `off` 会导致核心服务器和 `mod_proxy` 向客户端返回 405 (Method Not Allowed) 错误。

`TraceEnable on` 可能会导致跨站点跟踪问题,并可能使黑客有机会窃取您的 Cookie 信息。

解决方案

通过在 Apache 配置中禁用 TRACE HTTP 方法来解决此安全隐患。

您可以通过在 Apache Web 服务器的 `httpd.conf` 文件中修改或添加以下指令来实现:

TraceEnable off

以单独的用户和用户组运行

默认情况下,Apache 配置为在 `nobody` 或 `daemon` 用户下运行。

除非您清楚地知道自己在做什么以及相关的风险,否则请勿将用户(或用户组)设置为 `root`。

解决方案

最佳实践是以非 `root` 帐户运行 Apache。请在 Apache Web 服务器的 `httpd.conf` 文件中修改 `User` 和 `Group` 指令:

User apache
Group apache

禁用服务器签名

关闭服务器签名是默认设置,这会阻止在服务器响应中添加页脚行。

启用服务器签名 (On) 会在页脚中添加一行,其中包含服务器的版本号和虚拟主机的 `ServerName`。

解决方案

最好禁用服务器签名,因为您可能不希望公开您正在运行的 Apache 版本信息。

ServerSignature Off

禁用服务器令牌

此指令控制服务器响应标头字段是否包含有关服务器操作系统类型以及已编译模块的信息。

解决方案

ServerTokens Prod

限制对特定网络或 IP 地址的访问

如果您希望您的网站仅对特定的 IP 地址或网络可见,您可以在 `httpd.conf` 文件中修改您的站点目录设置。

解决方案

在 `Allow` 指令中指定网络地址:

<Directory /yourwebsite>    
Options None    
AllowOverride None    
Order deny,allow    
Deny from all    
Allow from 10.20.0.0/24  
</Directory>

在 `Allow` 指令中指定 IP 地址:

<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.1.56
</Directory>

仅使用 TLS 1.2

据报道,SSL 2.0、3.0 以及 TLS 1.0 和 1.1 存在多个加密漏洞。

需要有关配置 SSL 的帮助? 请参考相关指南。

解决方案

SSLProtocol -ALL +TLSv1.2

禁用目录列表

如果您的网站目录下没有 `index.html` 文件,客户端将在浏览器中看到列出的所有文件和子目录(类似于 `ls -l` 命令的输出)。

解决方案

要禁用目录浏览,您可以将 `Options` 指令的值设置为 “None” 或 “-Indexes”:

<Directory />
Options None
Order allow,deny
Allow from all
</Directory>

或者

<Directory />
Options -Indexes
Order allow,deny
Allow from all
</Directory>

删除不必要的 DSO 模块

检查您的配置并删除冗余的 DSO 模块。

安装完成后,默认会激活许多模块。您可以删除不需要的模块。

禁用空密码和弱密码

只允许使用强密码,从而阻止所有试图使用较低密码套件进行握手的尝试。

解决方案

SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

保持更新

Apache 是一个活跃的开源软件,保持 Apache Web Server 安全性的最简单方法是保持使用最新版本。每个版本都会添加新的修复程序和安全补丁。请始终升级到 Apache 的最新稳定版本。

以上只是一些基本的配置。如果您想深入了解,可以参考更详细的安全和加固指南。

喜欢这篇文章吗? 欢迎分享给其他人!