LOIC 程序(最近几天经常出现在新闻中)造成了很大的破坏。我可以在我的服务器上做些什么来防止这种攻击?当收到陌生连接时自动阻止 IP?因为大多数情况下它都是单个用户。
这个问题已经有解决方案了吗?
答案1
在 ISC SANS此主题的日记条目,其中一条评论中有一个非常强有力的线索。
由 DarkFiber 提供:
我曾经与一个组织合作过,该组织不断受到匿名者及其 LOIC 工具的攻击。缓解这些 DoS 攻击非常容易,因为它们对带宽的要求并不高。只需在防火墙上限制每个 IP 每个间隔的连接数就足以阻止攻击。我相信正确配置的检查点能够检测并彻底阻止这些攻击。但监听他们的 IRC 频道是领先该组织一步的最佳方式。攻击者在开火前很少会广播他们的目标和攻击向量。
答案2
要按源 IP 限制流量,根据 @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 个,直到速率下降。任何超出这些限制的数据包都会被丢弃。
虽然通常您希望将某些 IP 列入白名单,但您可能希望创建一个表,如果是端口 80,则跳转到该表,然后将白名单规则放入其中,最后丢弃。这样,非 HTTP 数据包就不会检查这些白名单规则,并且您可以让多个服务都调用该白名单规则集。
此外,你可能还想启用SYN cookie,因此如果 DoS 发送 SYN 数据包,它对您的系统的影响就很小。
答案3
我曾与几家全球银行及其 ISP 合作,研究 DDoS 缓解技术的有效性。单打独斗很难,但我们发现 ISP 与 DDoS 缓解合作伙伴合作效果很好。最好的办法是查看以下问题的答案IT Security Stack Exchange 上的这个问题正如大卫的回答说明了一切。
哦,阻止 LOIC 变得更加困难的原因是,最初的 LOIC 是由志愿者网络运行的,这些网络规模相当小。最近的 LOIC 也利用了非法僵尸网络,因此规模大大扩大,每个僵尸网络增加了 30,000 多台机器。
答案4
从根本上讲,此类拒绝服务攻击涉及向服务器发送超出其处理能力的请求。这可能是大量机器人发送简单请求(尽管摧毁一台服务器并不需要数十亿个请求 - 最多几千个请求),也可能是少数机器人发送执行时间极长的请求。
第二种攻击类型是最恶毒的,因为单个机器人就足以搞垮一台服务器。例如,MySQL 的 LIMIT N OFFSET M 在 M 变大时会变得非常慢,因此一个简单的攻击就是快速连续地请求 500 个页面中的 200-300 个页面,从而阻塞所有 MySQL 工作线程。在不受保护的服务器上,可以使用 firebug 来完成此操作。唯一的解决方案是识别成本高昂的操作,然后对其进行优化,使其按顺序执行(这样阻塞网站的这一部分不会使网站的其余部分瘫痪),或者检测请求成本高昂的操作的 IP 并拒绝执行该操作,除非遵守一定的等待间隔。
第一种攻击类型更难实现,因为你需要很多机器人。另一方面,从服务器上阻止它也更难:如果有成千上万的机器人以最快的速度向你发送数据,你的带宽将被洪水吞噬,服务器对此无能为力(即使它直接拒绝 99% 的请求),所以如果你认为自己可能成为目标,那么具有洪水预防功能的路由器是一个不错的选择。
来源:stackoverflow.com