在 apache2 中阻止 IP

在 apache2 中阻止 IP

好的,这里还有另一个新手问题。我有多个 IP 正在探测我的服务器,以查找 phpmyadmin 和其他管理员内容,看起来他们在寻找可以破解的东西,但老实说,我不在乎他们是谁,我只想阻止他们。我该如何阻止这些 IP?是在 .htaccess 中吗?我在 apache 中拥有所有身份验证模块,并且它们都已激活。

答案1

使用 Apache 实现此目的的最佳方式是使用访问控制模块。基本上,只需将类似以下内容放入 .htaccess 中

 Deny from 10.252.46.165

更多相关信息请见这里

但是,这不一定是最好的方法,因为 Apache 仍在处理请求。实际上,您可以在某些 IP 的所有传入流量到达 Apache 或任何其他服务之前阻止它们。这样做的缺点是您需要拥有对服务器的 root 访问权限。有关这方面的信息可以找到这里

答案2

如果您的服务器和互联网之间有防火墙?那将是阻止它们的最佳位置。在服务器上阻止 IP 访问您的服务器将保护您免受暴力攻击,但不能保护您免受 DDoS 攻击,因为它们仍在发出您的服务器必须拒绝的请求。

如果您必须在本地执行此操作,我建议您在 iptables 中执行此操作。

答案3

可能更安全的做法是阻止所有人访问敏感 URL(PHPMyAdmin 等),只允许几个 IP 地址进入,这样您仍然可以访问这些服务。示例:

<Location /sensitive/url>
    Order allow,deny
    Allow from 127.0.0.1 a.b.c.d your.manager.hosts.address
    Deny from all
</Location>

当然,这取决于具体情况是否适合您的需要。

您还可以将其与 HTTP 身份验证结合使用,这种方法可能更灵活。如果您使用OrderRequire

Satisfy Any

<Location /><Directory />块中,那么您可以从任何地方访问此资源。在这种情况下,如果您来自行中定义的 IP 地址之一Allow,则可以照常访问 URL。但是,如果您来自其他主机,则 Web 服务器会要求输入用户名和密码。

我希望这能有所帮助。

相关内容