Jos*_*osh 6 networking ddos pfsense
上周,我的网络遭到 DDoS 攻击,使我们 100 MBps 的互联网链接完全饱和,几乎关闭了我们托管的所有站点和服务。
我明白(从这次经历以及其他答案中)我无法处理这样的 DDoS 攻击,因为即使我们丢弃了数据包,它们仍然通过我们的链接发送并且使我们的连接饱和。
然而,当这种情况发生时,我的 ISP(奇怪的是)无法告诉我攻击来自哪里。他们说如果我能确定来源(EG通过tcpdump
),我可以给他们IP地址来阻止。但是事情tcpdump
实在是太重了,跑起来是不可能的。我只是无法查看输出。
我们几乎所有的服务器都在 pfSense 路由器后面。如何使用 pfSense 检测 DDoS 攻击,以便告诉我的 ISP 阻止谁?我不想自己阻止攻击,我只想获得警报/能够查看使用比正常情况更多带宽的 IP 地址列表。
pfSense 路由器正在运行 Snort,如果它可以以任何方式提供帮助。
Lad*_*ada 14
有几种不同类型的 DDoS,因此有关它们的任何通用信息可能仅适用于一种特定类型。例如,DDoS 总是耗尽您的带宽的想法是不正确的。您需要做的是分析(部分)流量,确定它为什么会破坏您的网站,找到一种识别它的方法,然后决定可以阻止流量的操作。
DDoS 流量可能看起来不像真正的流量,但使其与众不同的不一定是数量。在我们最近的一次 DDoS 攻击中,我们的托管服务提供商决定阻止前 10 个连接最高的 IP 地址。当然,这些都与 DDoS 无关,其中之一实际上是 Google 机器人。他们会封锁我们的办公室,除非他们认出 IP 地址。使用标准的建议netstat
,sort
并uniq
找到最高的连接不一定好建议。
我们的 DDoS 是 SYN 泛滥,这意味着需要检测的几件事:
您可能只看到每个 IP 地址一次,这会使阻止您已经看到的 IP 地址变得毫无意义。在实践中,我们在 10 分钟内看到 100,000 个唯一的源 IP 地址和每秒 140,000 个数据包,这意味着(平均)每个 IP 地址大约每秒返回一次。在我们的案例中,阻止 IP 地址是有效的。总带宽只有 70Mb/s,而且由于源地址被欺骗,整个 DDoS 很容易被某处的单个服务器推出。
由于每个 IP 地址每秒仅发送大约一个数据包,这大大低于几乎任何其他合法 IP 地址。我们的许多网站主页的大小都高达 1 MB,这意味着用户认为单个请求包含数千个数据包。
大多数源端口是随机的,但在几个小时内它发生了变化,源端口始终为 1234。这使得识别流量变得非常容易。
在我们的例子中,问题是每秒的数据包数量大于防火墙可以处理的数量。在我们的防火墙上阻止这些 IP 地址是行不通的,因为防火墙是问题所在,但如果流量通过防火墙并且网络盒是问题所在,则在防火墙上进行阻止会有所帮助。当源端口切换到 1234 时,我们的托管服务提供商能够阻止来自我们防火墙的上游流量。
还有其他类型的 DDoS,其中一些会占用您的带宽。无论如何,我们的防火墙关闭了我们的防火墙,这意味着我们无法访问我们基础设施的任何部分。对于您的具体问题,您将需要某种带外方式与您的防火墙和/或盒子进行通信,以便如果您的互联网管道被填满,您仍然可以诊断问题。无论如何,这通常是一个好主意,因为您的管道还有很多其他方式可以下降。当我在数据中心走动时,我倾向于在其他人的机架中看到很多 ADSL 调制解调器,如果其中一些用于带外通信,我不会感到惊讶。
我见过的另外两种 DDoS 类型是反射 DNS 请求和昂贵的 HTTP 请求。如果您运行 DNS 解析器,反射的 DNS 请求会特别麻烦,因为您不想阻止这些 IP 地址,以防您想从其中一个收到真实的答案。我会更改我的主机以使用新的 DNS 解析器(可能是免费的公共解析器)并阻止所有其他 DNS 流量。
昂贵的 HTTP 请求往往针对您的 CPU/内存/IOPS。它们还带有许多识别信息,例如 HTTP 标头,并且源地址不能被欺骗。像 mod_security 这样的工具可以做一些惊人的事情来识别和阻止这些类型的请求。它甚至可以断开 tcp 连接而不是发回 HTTP 响应。
简而言之:
归档时间: |
|
查看次数: |
36323 次 |
最近记录: |