我对 DDoS 攻击以及它的实际工作原理有一些疑问,我真的需要一些很好的解释,因为我找不到任何可以帮助我的好参考资料。
问题 :
PPS(每秒数据包数)和 MBPS 之间有什么关系?如果数据包被防火墙丢弃,那么 500k/秒这样的巨量 pps 是否会导致 DDoS ?
像 syn/udp flood 这样的 ddos 是否只能通过 iptables 来完全缓解,iptables 是否可以处理任何种类的 ddos 以及它的强度和速度,安装在受到攻击的同一台服务器上的 iptables 是否可以处理大量的 pps 并将其丢弃而不会出现任何问题或影响性能?
对于 syn 洪水攻击,大多数人建议使用 syn cookies 作为缓解 syn 洪水攻击的完美解决方案,但不幸的是,尝试它并没有帮助,为什么? syn cookies 是否有限制或是否需要在服务器上进行某些调整,例如文件描述符?
将服务器上的网卡从 100mbit 升级到 1gbps 是否有助于进一步减轻 DDoS 攻击,还是没有效果?
注意:我的意思是在这种情况下只升级网络接口,但网络速度仍然相同
- 攻击者的连接速度(例如来自 100mbps 服务器的攻击)是否可以每秒发送更多数据包或占用比 10mbps 的正常连接更多的带宽?换句话说,具有 1GBPS 连接的单个服务器是否可以像大型僵尸网络的 DDoS 攻击一样使整个服务器瘫痪,而大型僵尸网络有大约 10 万台受感染的计算机通过家庭连接在线?
答案1
你必须在这里说得更具体一些。有几种方法可以实施 (D)DoS:
a) “应用程序 DoS”(不知道是否存在正确的名称),是指网络可以处理流量,但应用程序服务器无法处理的情况。即传入流量低于网络速度,但请求数量高于应用程序服务器可以处理的数量。(或您的代理,或攻击者正在连接的任何设备)
在这种情况下,是的(问题 1),数据包数量越多,过滤/丢弃数据包的负载就越高。但通常如果有简单的规则(在特定数量的并发连接后丢弃数据包),大多数防火墙都可以以线速工作。如果您有更复杂的规则(L4、L7 等),并且规则数量很多,那么大量数据包会产生足够高的负载,防火墙会丢弃所有未进入缓冲区的数据包(因为缓冲区已满)。
对于 iptables(问题 2),情况也一样。如果只有一条 DROP 规则,它就可以毫无问题地处理大量数据包。如果规则更复杂,负载就会增加,并且无论规则是什么,内核都会开始丢弃数据包。
Syncookies(问题 3)可以很好地处理 syn 泛洪,因为系统不需要为连接保留一些资源。如果僵尸网络计算机用 ack 响应 syn/ack,则握手已完成,并且资源被保留和使用。这取决于您使用什么来测试 syncookies。
升级网卡(问题 4)取决于网络/互联网提供商。如果您有 20/20mbit 线路,则 100mbit 或 1gig 卡无关紧要,因为您受到 ISP 的限制。如果您有 200mbit 线路,那么拥有千兆卡会大有帮助(但为什么您要拥有 100mbit 卡和付费的 200mbit 服务??)。
b) (D)DoS 攻击流量大于您的网络/互联网连接速度。当攻击者向您发送的流量(无论是哪种 - tcp、udp、icmp 等)超过您的网络连接所能处理的速度时,就是这种情况。如果发生这种情况,您基本上就完蛋了,而且您无能为力。当然,您可以致电您的 ISP,安排他们为您设置防火墙(只允许来自您所在国家/地区的连接等),如果他们能做到并且您负担得起的话。
从理论上讲,DDoSing 的计算机数量无关紧要。如果您有一条 10mbit 的线路,而攻击者发送了 100mbit 的 UDP 流量,您的连接将“停止工作”。流量是来自 1 个使用 100mbit 线路的 PC,还是来自 100 个使用 1mbit 线路的 PC,这都无关紧要。但对于您的 ISP 来说,阻止 1 个 IP 要比阻止 100 个、1000 个或数百万个不同的 IP 容易得多,而且更难知道哪些流量是合法的(人们需要您的服务),哪些是恶意攻击流量。
答案2
每秒数据包 (pps) 和每秒兆比特 (Mbps) 的关系如下:
Megabit per second = Packet per second * packet size (bits) / 1,000,000
iptables 可以帮助您以某种方式控制 DDOS 攻击,但问题在于如何区分攻击请求和合法请求。是的,您可以在网关和服务器上使用 iptables。
我认为升级您的 NIC 或改变其速度不会对防御 DDOS 攻击的能力产生任何影响,因为在大多数情况下您的带宽远低于接口速度。