14 步 Apache 安全最佳实践清单(包含 PDF 电子书)

已发表: 2017-11-22

Railwayfx / stock.adobe.com

Apache 目前仍然是全球领先的 Web 服务器软件,拥有 45.8% 的市场份额。 最终大约有 8000 万个网站的 Web 服务器由 Apache 提供支持。 相当令人印象深刻,对吧?

Apache 是一款开源 Web 服务器软件,自 1995 年以来一直存在,因此仅此一点就足以说明其可靠性和寿命。 然后是在 Apache 服务器上运行的知名网站:Apple、Adobe 和 Paypal 只是将其网站委托给 Apache 的几个主要品牌。

当然,这并不意味着 Apache 100% 安全,因为没有任何软件能够 100% 免受黑客攻击,尤其是当它是一个众所周知且值得信赖的平台时(很像 WordPress)。 但如果您正在寻找 Apache 安全 PDF 电子书、模块、指南、教程、框架或 Web 服务器安全清单,那么您来对地方了。

如果您想强化 Apache 安全性或遇到任何 Apache 安全问题或尝试修补一两个漏洞,以下清单将为您提供 14 种安全最佳实践,可添加到您网站的安全计划中。

我们 WP Buffs 的团队帮助网站所有者、代理合作伙伴和自由职业者合作伙伴实施 Apache 安全最佳实践。 无论您需要我们管理 1 个网站还是支持 1000 个客户站点,我们都会为您提供支持。

终极 Apache 安全最佳实践清单

对于那些想要真正强化 WordPress 网站的人来说,像保护任何其他连接并为您的网站提供支持的软件一样保护 Apache 是至关重要的。 如果不这样做甚至会影响您网站的速度。 因此,您将这样做:

1.更新Apache

您知道 WordPress 以及您安装的任何插件和主题需要如何定期更新吗? 您的网络服务器也是如此。

如果您担心您的站点没有在最新版本的 Apache 上运行,您可以使用 httpd -v 命令行进行检查。 如果输出的版本与 Apache 的当前版本不匹配,您可以使用以下命令更新它:

# yum update httpd
# apt-get install [add Apache version here]c

2.开启日志

如果您与托管 WordPress 托管提供商合作,他们将负责监控您的服务器和 WordPress 是否存在漏洞和其他警告信号。 也就是说,您也应该关注您的服务器流量。

使用 Apache,您可以通过更新 mod_log_config 模块来访问此活动日志。 基本上,它会告诉您用户每次接触您的服务器时都会做什么。

3. 获取 SSL 证书

由于您的 Web 服务器处理对您网站的所有浏览器/服务器请求,因此使用 SSL 证书保护其安全非常重要。 好消息是您现在可以免费获得 SSL 证书。 这现在比以往任何时候都更加重要,因此,如果您没有技术能力自行安装,任何优质托管提供商都可以为您完成。

4. 添加防火墙

除了 SSL 加密的额外保护之外,您的 Web 服务器还应该使用防火墙进行强化。 对于 Apache,这意味着打开 ModSecurity。

要将其安装在您的服务器上,您可以执行以下命令:

# yum install mod_security
# /etc/init.d/httpd restart

一旦防火墙启用,它将阻止许多恶意活动到达您的服务器,例如 SQL 注入、会话劫持和跨站点脚本编写。

5.安装mod_evasive

Mod_evasive 模块可以保护您的 Apache 服务器免受暴力破解和 DDoS 攻击,因此请确保也启用此功能。 它将并发和失败的登录尝试列入黑名单,并监控恶意 IP。

6. 设置 HTTP 限制

如果您知道要监视哪些类型的操作,那么阻止分布式拒绝服务 (DDoS) 攻击就非常简单。 由于 DDoS 往往是通过大量请求反复攻击您的服务器而发生的,因此您的目标应该是设置限制以防止这种情况发生。

以下是您需要建立的一些限制:

  • 保持活动=打开
  • 保持连接超时
  • 限制请求体
  • 限制请求字段
  • 限制请求字段大小
  • 限制请求行
  • 限制XML请求体
  • 最大客户数
  • 最大保持活动请求数
  • 最大请求工作者数
  • 请求读取超时
  • 暂停

7. 删除未使用的模块

通过在 Apache 服务器上保留未使用、未维护或过期的模块,您的网站将通过一个甚至不需要存在的入口点向黑客开放。

您应该做的第一件事是找出哪些模块实际上是活动的。 您可以使用 LoadModule 命令来执行此操作。 一旦您筛选了列表并确定了不需要的模块,只需在要停用的每个模块之前添加“#”符号,然后重新启动即可。

8. 更改默认用户和组

一般来说,任何软件上保留的默认设置和用户都是一种糟糕的安全做法。 原因很简单:如果您使用 Apache 默认用户名或组名,那么您可以打赌黑客也知道这些默认名称是什么。

您不应保留默认设置,而应创建一个新的非特权帐户来运行 Apache 进程。 使用#groupadd 和#useradd 命令,您可以设置新实体。 只需记住使用您创建的新用户名和组名更新您的 httpd.conf 即可。

9. 阻止目录访问

这是需要更改的默认设置的另一个示例。 在本例中,授予目录文件的访问权限允许任何人随心所欲地进行探索。

要将总块放置到位,请使用以下命令:

<Directory "/">
Require all denied
</Directory>

如果您想允许某些用户访问,您可以这样做:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

如果您想启用对目录中某些文件夹的访问,可以这样做:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

您可能还想仔细阅读 Apache 模块存储库以进一步调整用户访问权限。

10. 不要发布目录

您是否知道,如果您的服务器没有索引文件,用户将能够看到您存储在根目录中的所有内容? 这显然不好,因此您需要使用以下命令禁用此默认设置:

<Directory /var/www/html>
Options -Indexes
</Directory>

11.隐藏服务器详细信息

由于 Apache 是开源软件,因此如果服务器端未禁用这些设置,则可以轻松获得有关所用版本的详细信息。 由于黑客可以使用这些敏感信息来找出如何闯入您的服务器,因此您需要阻止这些信息。

您需要禁用两件事:

  • ServerSignature – 这是 Apache 的版本
  • ServerTokens – 包括操作系统版本以及其他敏感服务器详细信息

其他用户只需查看您网站上的错误页面即可找到此信息,因此阻止显示此信息非常重要。 为此,请使用以下内容更新 httpd.conf:

ServerSignature Off
ServerTokens Prod

12.隐藏ETag

不幸的是,Apache 中的 ETag 标头包含许多有关您的服务器的敏感详细信息。 显然,任何与外界共享此类信息的内容都应该被隐藏。 此外,如果您正在运行电子商务网站,则需要隐藏此网站以符合 PCI 要求。

为此,请将以下指令添加到您的 httpd.conf 中:

FileETag None

13.禁用.htaccess覆盖

.htaccess 对于任何 WordPress 网站来说都是一个重要文件。 这就是为什么您需要锁定它并确保其他人无法覆盖您的配置设置。

要禁用此功能,请将以下内容添加到根目录下的 httpd.conf 中:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14.禁用SSI和CGI

如果不加以检查,启用服务器端包含 (SSI) 的文件可能会给您的站点带来许多安全问题。 CGI 脚本也是如此。 为了防止黑客使您的服务器过载或将恶意脚本注入您的代码中,请记住通过选项指令关闭它们或限制它们的操作。

以下是您可以使用的一些选项值:

  • 选项 全部
  • 选项包括NOEXEC
  • 选项 - 包括
  • 选项-ExecCGI
  • 选项-包括-ExecCGI
  • 选项 多视图

照顾您的 Apache 服务器

为了加强网站的安全性,请特别注意您的 Apache 服务器。 服务器配置错误和保留默认设置等问题可能会让您的网站面临风险,就像未更新的核心或不安全的 PHP 编码实践一样。

想提供反馈或加入对话吗?在 Twitter 上添加您的评论。