如何通过 IP 地址阻止客户端访问我的 Web 服务器上的某些 URL?

Whi*_*cat 9 firewall webserver

如何永久阻止任何访问已知易受攻击页面的 IP 地址,例如/phpMyadmin/?我正在运行 Debian 服务器,我经常看到机器人或黑客扫描我的服务器以寻找漏洞。

73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyadmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin2/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin3/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin4/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
Run Code Online (Sandbox Code Playgroud)

我已经关注了这个 stackoverflow 问题:如何保护 phpMyAdmin

我希望开始阻止机器人占用带宽。

And*_*ton 18

这可能比您想要的更重,但您可以考虑使用 fail2ban ( https://www.fail2ban.org )。这是一个工具,可以监视您的日志文件并自动禁止生成与一组可自定义模式匹配的日志的地址。

  • tbh 这正是`fail2ban` 旨在解决的问题。它有点重,但又一次,所需的标准本身是相当动态的。所有被认为是 `fail2ban` 的东西都和你尝试使用标准工具解决这类问题一样轻。 (5认同)

R..*_*ICE 7

别。充其量你只会让你的日志不那么杂乱;在最坏的情况下,您最终会阻止合法访问者,这些访问者碰巧(通过 DHCP)获得了一个 IP 地址,该地址曾经属于某个人的 PC 作为僵尸网络节点被感染。

这里真正的问题是日志混乱,它可以通过配置您的日志记录来解决已知的漏洞扫描请求,您的站点没有,也不会,因为您没有使用易受攻击的漏洞他们正在扫描的框架。如果您担心日志记录完全丢失(也许他们提供证据表明谁应对不同的攻击负责,或者攻击何时开始等),那么只需在短时间内限制来自给定 IP 的垃圾 URL 的多个日志条目应该工作得更好。

  • `fail2ban` 禁令是暂时的 - 在 Y 秒内出现 X 次错误登录尝试,Z 分钟禁令,具有可配置的 XY 和 Z。在我看来,删除主动入侵尝试的日志是一个危险得多的选择。 (6认同)
  • 发生这种情况的几率为 0.1%,此 *phpmyadmin* 实例的合法用户应该能够仅向 OP 发送消息以解除阻止。此外,fail2ban 可以在扫描攻击碰巧击中服务器上未修补或零日漏洞之前将其关闭。 (2认同)
  • 另一个相关的问题是越来越多地使用 CGN。一个 ISP 可以让数百个客户共享一个 IP 地址,这使得 IP 阻塞充其量是危险的,即使是临时的。您可以同时拥有合法用户和来自同一地址的主动扫描。 (2认同)