所以我在我的服务器上运行了一些流行的 Web 应用程序。我希望这些可以从任何计算机上访问,而不会造成太多漏洞。
我使用 Apache 2.4.29 作为我的 HTTP 服务器。我目前对攻击者隐藏应用程序中潜在安全漏洞的想法是AuthType Basic
为相关虚拟主机启用 HTTP 基本身份验证 () 作为附加安全层。当然,我只允许 SSL 连接。
现在这一切都很容易完成。但我的问题是:我怎样才能最好地避免使用 HTTP 基本身份验证的蛮力式攻击?即,如何启用速率限制?
我目前的计划是这样的:
由于我使用 ufw(简单防火墙)来限制 SSH 连接,我想我可以在用于 HTTPS 的特定端口上做同样的事情。但是,我看到了两个问题:
- 攻击者不能在
Connection: Keep-Alive
不重新连接的情况下使用并继续尝试不同的密码吗?所以限制传入连接在这里没有任何用处。 - 如果我以某种方式禁用
Connection: Keep-Alive
,我想我会遇到底层 Web 应用程序的问题,因为它们需要大量单独的连接,以便浏览器可以检索其他文件。
如果我可以指示 Apache 只为经过身份验证的用户保持连接并在尝试失败时断开连接,那将是完美的。有没有办法做到这一点?我实际上不确定默认行为是什么,并且对 HTTP 了解不够,无法轻松测试。
Apache 中的KeepAlive
andMaxKeepAliveRequests
设置显然可以基于每个虚拟主机进行配置,但我不确定如何根据成功的身份验证更改这些设置。