使用以下最佳实践保护和强化 Apache 网络服务器,以确保您的网络应用程序安全。
Web 服务器是基于 Web 的应用程序的重要组成部分。 配置错误和默认配置可能会暴露敏感信息,这是一种风险。
作为网站所有者或管理员,您应该定期对您的网站执行安全扫描以查找在线威胁,以便您可以在黑客攻击之前采取行动。
让我们通过必要的配置来保持您的 Apache 网络服务器。
以下所有配置都在您的 apache 实例的 httpd.conf 中。
注意:修改前对必要的配置文件进行备份,出错时容易恢复。
目录
禁用跟踪 HTTP 请求
默认的 TraceEnable on 允许 TRACE,这不允许任何请求主体伴随请求。
TraceEnable 关闭导致核心服务器和 mod_proxy 向客户端返回 405(方法不允许)错误。
TraceEnable on 允许跨站点跟踪问题,并可能为黑客提供窃取您的 cookie 信息的选项。
解决方案
通过在 Apache 配置中禁用 TRACE HTTP 方法来解决此安全问题。
您可以通过在 Apache Web 服务器的 httpd.conf 中修改/添加以下指令来完成。
TraceEnable off
作为单独的用户和组运行
默认情况下,Apache 配置为在没有人或守护进程的情况下运行。
不要将用户(或组)设置为 root,除非你确切地知道你在做什么,以及危险是什么。
解决方案
在它自己的非 root 帐户中运行 Apache 很好。 在 Apache Web 服务器的 httpd.conf 中修改用户和组指令
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、1.1 存在多个加密缺陷。
在配置 SSL 方面需要帮助? 请参阅本指南。
解决方案
SSLProtocol -ALL +TLSv1.2
禁用目录列表
如果您的网站目录下没有 index.html,客户端将看到浏览器中列出的所有文件和子目录(如 ls –l 输出)。
解决方案
要禁用目录浏览,您可以将 Option 指令的值设置为“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 的最新稳定版本。
以上只是一些基本的配置,如果你想深入了解,那么你可以参考我的分步安全和加固指南。
喜欢阅读这篇文章吗? 与世界分享怎么样?