如何调整Linux内核以抵御DDoS? (HAProxy的)

请不要回答“这是不可能的”,因为这是浪费时间。 我正在开发云设备,我有一个合理的理由来保护这一层免受DDoS攻击,而且也没有几家公司在做相同的事情,所以请不要告诉我,我没有这个意思,很多公司都希望购买这个解决scheme,看到与使用股票Linux实施它的问题

由于缺less像CPU和RAM这样的资源,我的Linux内核在10.000连接上崩溃。 我想知道如何安全地限制它,它不会在netfilter连接跟踪表或其他地方创buildtcp / ip连接,当有人试图从各种主机打开100.000连接?

网卡是1GBps和缓冲区最大,它可以采取很多的连接,但我想它只有5.000在同一时间,其余的被丢弃,除非有空闲的连接插槽。 在内核级别,所以不会污染netfilter或其他任何东西,并且会尽快删除。 有这些因素:

  • HAProxy连接的数量仅限于5.000
  • Linux崩溃了10.000打开的连接
  • 我想每分钟经受住100.000次打开的连接,所以也许netfilter可以处理它,但是没有HAProxy。
  • 现有的连接继续运行

这是为了使机器不受oos攻击而承受DDoS攻击,而且一旦攻击中断,服务就会自动以低速率恢复正常的方式。

这是关于服务器实例的物理层,而不是交换机。 假设交换机正在向我传递我能处理的这么多的stream量,上游提供商并不总是有可能调整或保护这个。

我不同意没有任何事情可以做。 有很多事情你可以做,根据攻击的大小和硬件的大小,你有一个很好的保卫自己的机会。

对于SYN泛滥google一下。 你可能想要一个崭新的Linux内核,因为最近有很多改进。 去3.6并启用syn cookie。 还有一些其他的可调参数可以调整。 请务必先阅读,因为随机调整的东西从来不是一个好主意,并会导致问题。

如果是一个HTTP洪水,这是最近常见的,你可能要考虑清漆。 您可能能够通过某种模式识别攻击请求,并在vcl_recv中将其closures。 您可以部署屏蔽模块以杀死这些连接,因为提供错误页面是一种浪费的努力。 被警告:这不是一个快速的解决scheme,将需要大量的努力,你的目的。

祝你好运。

没有真正的方法可以减轻受到攻击的主机的DDOS。

stream量到达主机时,已经通过本地networking堆栈并占用本地资源。 没有任何的嘲弄或回旋可以改变这一点。

您需要与上游供应商合作,以防止stream量首先到达您的机器。 如果他们不提供这种服务,你可能会从他们购买,或者你可以find一个提供者。

你遭受什么样的ddos攻击? 如果是syn洪stream,则可以启用syn cookie。

我将介绍DDoS上游pipe理的要求,但作为一种中间措施,您可能希望在自己的路由器上采用某种方式的连接pipe理或整合连接,或者在服务器之前切换一跳或多跳。 从崩溃中反弹回来的最好方法不是首先崩溃。 路由器/防火墙/交换机实际上并没有终止数据包,并且(希望)被devise成以更高的速率运行。