如何防止LOIC(DDOS)攻击?

程序LOIC(最近的消息很多)造成了很大的损失。 我可以在我的服务器上做什么来防止这种攻击? 自动阻止IP时收到一个奇怪的连接? 因为大多数情况下这将是一个单一的用户

有没有解决scheme?

在ISC SANS Diary的这个话题中 ,有一条评论中有非常强烈的线索。

通过DarkFiber:

我曾经与一个来自匿名和他们的LOIC工具不断受到攻击的组织合作。 减轻这些DoS攻击是非常容易的,因为它们不是特别的带宽密集型。 只要在防火墙上限制每IP间隔的连接就足以阻止攻击。 我相信正确configuration的检查点能够检测并完全放弃这些攻击。 但是,收听他们的IRC频道是保持领先一步的最佳方式。 在射击之前,攻击者通常不会传播目标和载体。

为了限制来自源IP的stream量,基于@ sysadmin1138的说法,有一个很好的iptables模块叫做“hashlimit”。 以下是一组示例规则:

iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min \ --hashlimit-burst 500 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP 

这样做最多可以允许500个数据包(不是连接,因为HTTP可以在每个连接上执行多个事务,所以您必须考虑是否只对所有数据包或SYN数据包执行此操作)。 如果超过500个/分钟,则将其降至50 /分钟,直到速率下降。 超出这些限制的任何东西都会得到DROP。

虽然通常你想把一些IP列入白名单,所以你可能想要创build一个表格并跳转到80端口,然后在那里制定你的白名单规则,最后放下。 这样,非HTTP数据包不会检查这些白名单规则,而且您可能有多个服务都会调用该白名单规则集。

另外,您可能需要启用SYN cookie ,以便DoS发送SYN数据包时对您的系统影响甚微。

我曾与几家全球性银行及其互联网服务提供商合作,研究DDoS缓解技术的有效性。 自己做起来非常困难,但是我们看到,运行良好的是ISP与DDoS缓解合作伙伴联手。 你最好的select就是看看这个IT安全协议栈上这个问题的答案,正如David的答案所说的那样。

哦,阻止LOIC变得困难的原因是最初的是从志愿者networking,这是相当小的运行。 最近的一些也在攻击非法僵尸networking,所以他们已经放大了一个重要的因素,每个僵尸networking增加了3万多台机器。

我可以想象带宽消耗取决于指向您的网站的僵尸networking的大小。

http://www.theregister.co.uk/2010/12/09/twitter_api_wikileaks_ddos/

“星期三加利福尼亚时间下午1点之前,对Visa最残酷的攻击事件开始了,当时组织者发出了一个IRC的命令,使网站stream量超过了它能处理的stream量。

正如Rory先前指出的那样,在没有来自上游提供商的帮助的情况下,要缓解海量的似乎合法的请求是非常困难的,并且通常您的2级或3级isp需要来自提供商的帮助。 为了有效地减轻严重的攻击,需要与自己和您的ISP及其上游提供商进行协调的努力,而不需要大量的资金投入。

交通洪水也只是一个攻击的媒介,需要一个体面的僵尸networking才能有效地实现。 SYN洪水攻击只需要来自less数几个主机,并且可以迅速削弱您的前端服务器,但是您可以通过确保您的tcp堆栈已经被加固,查看安全应用程序模块,并确保这些filter在您的外围networking套件中启用。

有ddos缓解设备,如您可以购买的toplayer和DDoS缓解pipe理服务,如一个Prolexic报价。

多层次的方法是缓解的唯一方法,在你自己的烤面包。

从根本上说,这种拒绝服务攻击涉及向服务器发送比它能处理的更多的请求。 它可能是大量的机器人发送简单的请求(虽然它不需要数十亿来closures一台服务器 – 几千台)或less数机器人发送要求执行很长的请求。

第二种攻击types是最恶毒的,因为一个机器人可能会打倒服务器。 例如,当M变大的时候,MySQL的LIMIT N OFFSET M是非常慢的,所以一个简单的攻击就是连续快速地请求200到500个页面,堵塞所有的MySQL工作线程。 在不受保护的服务器上,这可以通过萤火虫来完成。 唯一的解决办法是确定代价高昂的操作,然后优化它们,让它们连续(这样堵塞该部分的网站不会使网站的其余部分),或检测IP,要求昂贵的操作和拒绝执行该操作,除非有一定的等待时间间隔。

第一种攻击types很难取消,因为你需要很多机器人。 另一方面,从服务器上停下来也很困难:如果你有成千上万的机器人以尽可能快的速度向你发送数据,你的带宽将被洪水所吞噬,服务器也无能为力(即使它平坦拒绝99%的请求),所以如果你认为你可能成为一个目标,防洪路由器是一个很好的select。

来源:stackoverflow.com

这比所有这些build议都容易。

 -A INPUT -d {your_server_ip} -p tcp -m connlimit --connlimit-above 8 --connlimit-mask 24 -j REJECT --reject-with tcp-reset 

或DROP,但两者的后果将永远不会相同。

这是一个可以通过限制Linux服务器上每个IP连接的数量来减轻一些DDOS攻击的工具http://www.ddosattack.info

警告

由于负面评价可能暗示,这种做法是不受欢迎的。 这是极端的 – 它可能会造成更多的损害,那么你已经经历了。 另一方面,如果您的服务器由于DDOS而降低了100%,那么下面的locking方法将为您的情况提供一些解决scheme。

只有在没有其他帮助时才试用

locking方法

设置一个临时的防火墙规则,将删除目的地(您的服务器的IP)新的传入连接。 您的服务器将在攻击期间丢弃新的连接。

这将实现什么

它将保持服务器负载下降。 让你在攻击期间pipe理服务器。 保持有效的客户白名单提供的服务。

定期恢复服务

您需要定期在短时间内删除防火墙规则。 这将提供一个机会来检测攻击何时结束或何时减less。 一旦攻击结束,您的脚本应永久删除防火墙规则。

白名单

您可以将您和您的主pipe的工作站白名单列出,以便在攻击期间您都可以访问服务器。

推出真实客户的IP列表(一般来说是一件好事)和白名单。

  • 从访问日志中parsingDDOS启动之前用户的IP地址。
  • 保留那些在任何时候都有validation码解决scheme的IP列表。

一些合法的客户可以使用他们的服务器。 去争取更多的真正的好处 – 如果你列出一些DDOS的话,那么没什么大不了的。

您可以尝试将大量的IP空间添加到白名单。 查看在服务器启动之前可以处理多less个DDOSer再次减速。

另一个白名单的想法

  1. 白名单是一大块IP。 我们称之为区域A.
  2. 找出什么是最多的IP
  3. 阻止区域A并等待20分钟(大多数真正的用户将放弃尝试到那个时候)
  4. 白名单地区A再次获得活跃用户的列表。
  5. 比较2个列表 – 仍然在冲击的IP很可能是DDOSers – 阻止他们并白名单中的所有其他状态A.
  6. 对下一个大块的IP(区域B)重复步骤1到6。