我要做一个涉及端口转发的游戏服务器,我还听说人们可以DDoS攻击。当他们DDoS攻击时,他们攻击的是什么,互联网还是计算机?另外,什么是DDoS攻击?我怎样才能保护他们不受伤害呢?
发布于 2016-10-14 01:39:04
在正常的TCP通信中,您的服务器*在网络上静听,期望设置SYN标志的数据包。这些SYN数据包来自发起打开新套接字连接请求的客户端。服务器记录打开的连接请求,保存发件人的源IP地址(包含在数据包中),并发送一个响应,其中包含设置回源IP地址的SYN和ACK标志。当客户端接收到SYN/ACK数据包时,它将使用一个ACK数据包进行响应。当服务器接收到ACK时,套接字完全连接,应用程序可以开始相互发送数据。
分布式拒绝服务(DDoS)攻击是一种基于网络的攻击,其中数十或数千台受黑客攻击的计算机正在运行恶意软件,每秒钟向网络上的开放端口发送数千或数百万个请求。SYN攻击是恶意软件只发送SYN数据包的地方。被黑客攻击的计算机在每个数据包中写入一个随机地址作为源IP地址。您的服务器不知道它们不是有效地址,所以它只是尝试回复它们。
但攻击计算机运行的是恶意代码。他们永远不会得到响应(您的服务器礼貌地发送到随机源地址),也从不发送您的服务器正在等待的ACK数据包。这使得部分打开的套接字只在服务器内存中放置,等待请求完成。您的服务器对于它可以保持多少个部分打开的套接字只有有限的容量,并且只有有限的时间来响应它们。它不能处理一百万个半开套接字的队列。
但是,由于您的服务器相信所有套接字请求都来自合法用户,所以它会尽力响应所有这些请求,因为这正是它应该做的。在交通泛滥的情况下,它很快就被塞满了。如果幸运的话,它会将RST数据包发送回试图连接的每个人,一旦队列满了,就礼貌地拒绝他们的服务。如果你运气不好,你的网卡或服务器就会因为超载和崩溃而窒息。无论哪种方式,您的合法用户都被困在洪水中,也无法到达您的服务器--因此,他们被“拒绝服务”(由此得名)。
不幸的是,作为服务器所有者,您对DDoS攻击无能为力。数据包都来自随机地址,并且不包含发送它们的计算机的实际IP地址,因此没有一种简单的方法可以跟踪它们返回到攻击者。有了足够的钱,你就可以雇佣一家公司,通过各种托管和网络技巧来帮助你的网站维持下去。还有一些网络设备试图识别和排除SYN洪水数据包。但就像布赖恩·克雷布斯几周前发现的那样,就连他们也有自己的局限性。
*我编写了服务器,以保持简单的描述,但这次攻击将淹没任何正在监听该端口的网络设备。如果您使用的是典型的家庭路由器和端口转发到您的服务器,路由器的更有限的内存将被淹没,路由器很可能会崩溃之前,您的服务器。
https://security.stackexchange.com/questions/139715
复制相似问题