是否可以根据 IP 地址提供特定页面?

Aur*_*ius 8 http-headers apache-2.4

我一直是对我拥有的两个 WordPress 网站进行暴力攻击的目标。攻击者正在使用旧的 XML-RPC 来放大暴力密码攻击。幸运的是,我们的密码生成得非常好,所以我非常怀疑他永远不会去任何地方。

我一直在使用 iptables 来阻止他再次弹出的请求(总是来自同一个虚拟云提供商),但我更愿意修改服务器,以便每当他的 IP 地址请求任何页面时,他都会收到一个响应告诉他获得生命。大多数请求都是 POST,所以理想情况下,我只想修改响应标头以包含诸如“下次祝你好运!”之类的内容。或同样令人满意的东西。

这可能吗?我远不是 Apache 的专家,所以我不确定实现这会有多困难。但即使需要我花费数小时,满足感也将是无价的。

作为参考,我正在运行 Ubuntu 16.04.2 LTS,Apache 2.4.18 托管 Wordpress 4.7.3。

EEA*_*EAA 25

只需使用适当的 jail安装fail2ban并完成它。不要费心提供自定义响应,因为它很可能永远不会被看到。

  • 嗯:1)恕我直言,弄清楚如何对脚本小子进行轻微的侮辱在这里是题外话。2) 这样做仍然会消耗您的 apache 资源,而 fail2ban/iptables 会阻止上游请求,因此您的应用程序永远不必处理它。 (14认同)
  • @Aurelius,如果您知道 ip,并且此人没有屏蔽它,为什么不在应用程序本身中执行此操作,在这种情况下为 php。只需验证它是否是 ip xx.xx.xx.xx,如果它只是通过响应杀死脚本,`die("blah blah");` (4认同)

小智 5

有一种可能性,我们做了很多,来扭转可能的攻击。使用 iptables 将云提供商(地址范围)重定向到不同的端口 - 并在那里为攻击者提供响应,即使在普通标头中也是如此。

在 Apache 中,您可以通过示例修改标头:

Header set GetOut "Better luck next time!"
Run Code Online (Sandbox Code Playgroud)

  • 这个策略可能会适得其反,因为它让攻击者知道什么是有效的,什么是无效的,最好只是默默地将请求传递给什么,而不是在他的机器人攻击软件中触发任何警报标志。例如,理想情况下返回所请求页面的 html。他们永远不知道你抓住了他们,什么也没有发生,你的网站更安全。抵制让他们知道的冲动,这是一个错误,总是。它只是帮助他们调试问题。在您的情况下,只需切换到更动态的 IP 范围等,使问题更难解决。 (5认同)