是否可以根据IP地址投放特定页面?


8

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

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

这可能吗?我离Apache专家还很远,所以我不确定这将很难实现。但是即使花了我几个小时,满足感也将是无价的。

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


“总是来自同一虚拟云提供商” OVH?我注意到许多脚本小子出于某种原因使用它们的服务。
hd。

不,online.net ...到目前为止,他们还没有对我的虐待报告中的任何一个做出回应。另外,当我第一次发送滥用请求时,我发现他们会自动将投诉转发给客户。因此,他如何找到我的个人网站。好的工作,online.net ....
Aurelius

Answers:


25

只需使用相应的监狱安装fail2ban并完成它即可。不要费心给出自定义响应,因为它很可能永远不会被看到。


1
当然。但这绝对是我一直想做的事情。即使他从未见过,只是这种可能性使我笑得如此之快,几乎哭了起来。
Aurelius

14
好吧:1)恕我直言,弄清楚如何显示对脚本小子的小侮辱在这里没有话题。2)这样做仍然会消耗您的apache资源,而fail2ban / iptables会阻止上游的请求,因此您的应用程序永远不必处理它。
EEAA

1
哦,肯定的。但是我希望在永久禁止之前能有一些乐趣。无论是否小事,我只想笑,这是应业务人士使用服务器的要求。
Aurelius

4
@Aurelius,如果您知道ip,并且此人没有屏蔽它,为什么您不在应用程序本身(在这种情况下为php)中执行此操作。只需验证它是否为ip xx.xx.xx.xx,以及是否只是通过响应杀死该脚本即可,就可以了die("blah blah");
Miguel

被接受为答案,主要是因为我不知道fail2ban,所以总体上说,这真的很有帮助。上面的Miguel答案以及下面的BlackWebWolf答案都是我要研究的东西!
奥勒

5

我们有相当大的可能性来扭转可能的攻击。使用iptables将云提供程序(地址范围)重定向到其他端口-即使在普通标头中,也可以为攻击者提供响应。

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

Header set GetOut "Better luck next time!"

呵呵呵!这就是我在说的。好主意!我将对此进行调查。
Aurelius

5
这种策略可能会适得其反,因为它可以使攻击者知道什么在起作用,什么没在起作用,最好只是默默地将请求传递给任何内容,而不要在其僵尸攻击软件中触发任何警报标志。例如,理想情况下返回所请求页面的html。他们从不知道您抓住了他们,什么也没有发生,而且您的网站更加安全。抵制让他们知道的冲动,这总是一个错误。它只是帮助他们调试问题。在您的情况下,只需切换到更多的动态IP范围等,就很难解决该问题。
Lizardx

1
没错,不建议您这样做-甚至可能很危险。使用蜜罐的策略总是更好,但是问题很明确-如何
诱骗

我真的不在乎这是不是一个错误-我已经安装了fail2ban,无论如何他都会被禁止。我高度怀疑他真的能到达任何地方。据我所知,WordPress的最新版本实际上修复了此安全漏洞?更不用说暴力破解超过20个字符的密码了。是的,这不是在我们的宇宙生命周期中发生的。
奥勒留斯

blackwebwolf,它类似于有人询问如何实现php弃用的mysql_扩展名,而从技术上讲,它可以回答这个问题,但这个答案是错误的,因为真正的答案是正确的做法,在这种情况下,例如,使用mysqli_或xpdo。这只是我们许多人过去所做的想法,应该纠正以拖钓等任何方式做出的回应,而不是巨大的负面回应,因为这是一个严重的错误,并且如果有人曾经因为那个错误,人们会立即明白为什么这个问题是错误的。
Lizardx

3

使用ModSecurity(这是Apache的第三方WAF模块),这非常容易。虽然确实涉及学习其规则语言语法。

您也可以使用ModSecurity删除连接而不是完全响应。

话虽如此,如其他人所建议的那样,仅为此安装ModSecurity,很可能会忽略响应,这可能是过大了。


2

我会使用fail2ban并丢弃来自已知滥用位置的请求。而且,如果您认为不应归咎于攻击者的服务提供商,请向其滥用电子邮件地址报告攻击。

如果您想花一些时间做一些会使攻击者放慢速度的事情,则可能需要尝试制作tarpit。首先,您当然必须知道攻击的来源。然后,您可以使用apache将请求从ip(范围?)重定向到特定脚本。尽管我自己还没有尝试过,但这也许可以解决问题。然后,只需实施一个脚本,例如,每15秒打印一个点(或/ dev / null中的内容)以使攻击者的连接无限期保持打开状态。

由于攻击者最有可能使用脚本来攻击您的站点,因此可能需要花费一些时间才能注意到攻击已停止,因为所有连接似乎都处于活动状态,因此不会超时,并且不会当场拒绝请求。

问题是您将时间和资源投入到可能不会像更重要的问题那样有帮助的事情:保护登录。当您不知道在哪里攻击时,很难进行攻击。考虑以下一些:

  • 限制访问登录页面(仅您的Intranet?ip范围?vpn?其他?)。
  • 添加reCaptcha或其他验证问题以登录。
  • 使用多因素身份验证
  • 隐藏您的登录页面。如果可能,请不要从您的主页链接到该网站,也不要使用/ login或其他明显的位置。

谢谢(你的)信息!因此,为澄清起见,A)能够登录的两个用户具有随机生成的长密码。B)在登录页面上有一个验证码。C)我正在尝试使.htaccess正常运行以阻止对该页面的访问。但是,似乎.htaccess的标准已多次更改-我一直在各处看到不同的语法,到目前为止htaccess几乎无法使用。
奥勒留斯

另外,我已经将所有攻击报告给online.net,但没有任何反应。
奥勒

htaccess的一些有用技巧:stackoverflow.com/questions/6441578/…(我强烈建议摘要认证)。

查看此页面上的评论,摘要似乎不是一个好主意?httpd.apache.org/docs/2.4/mod/mod_auth_digest.html
Aurelius

1
你让我在那里。是的,我记得从使用摘要身份验证的那一刻起,到处都没有https。我们不使用htacces密码的原因是,这不是一个长期的解决方案。可以在发布前一周使用它来隐藏某些东西,但是对于日常使用,您不需要其他级别的密码。它甚至没有那么安全。当资源完全不在公共Internet上显示时,我们将走上正确的道路。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.