需要帮助检查 tcpdump 文件以阻止攻击

需要帮助检查 tcpdump 文件以阻止攻击

我需要一些帮助,我的游戏服务器已经遭受了两天的 DoS 攻击。带宽攻击没有问题,因为我使用 OVH 托管,这些攻击会被过滤掉,但我的游戏服务器端口受到攻击,导致服务器超时并断开所有玩家的连接。

因此一开始很简单,他用相同长度(1062)的数据包发起攻击。

444 0.017859    159.208.182.160 192.95.55.2 UDP 1062    Source port: 53407  Destination     port: 27016
445 0.017902    14.87.205.89    192.95.55.2 UDP 1062    Source port: 22286  Destination    port: 27016
446 0.017907    68.191.26.190   192.95.55.2 UDP 1062    Source port: 48964  Destination port: 27016
447 0.017992    201.50.53.136   192.95.55.2 UDP 1062    Source port: 13001  Destination port: 27016
448 0.017993    58.15.28.176    192.95.55.2 UDP 1062    Source port: senip  Destination port: 27016

所以我做了:

iptables -A INPUT -p udp --dport 27016 -m length --length 1062 -j DROP

果然,我的服务器突然恢复了活力。流量大概是 1000 - 4000 KB/s。

接下来你知道的,他开始发送 12 MB/s 的流量,我应该能够处理,因为我使用的是千兆位,而且我也确实这样做了,因为只有被攻击的服务器瘫痪了(同一台服务器上有 4 台服务器在 4 个不同的 IP 地址上运行,其他服务器都正常)。

我再次运行 tcpdump,结果还是一样。我之前阻止的所有长度为 1062 的攻击?所以我有点卡在这里,不知道该怎么办。

有人能看看我的 tcpdump 文件并告诉我我做错了什么以及如何阻止这次攻击(或不能阻止)吗?我真的会很感激!

我很难用 wireshark 读取它,我一直试图用长度、十六进制代码等来阻止数据包,但都没有成功。

http://www.mediafire.com/download/8xe7cvx33dlgwxx/ddos2.tar.gz

谢谢!

哦,还有一件事,在攻击期间我的 dmesg 输出如下:

[35126.217197] nf_conntrack: table full, dropping packet
[35144.702662] nf_conntrack: table full, dropping packet
[35147.513124] nf_conntrack: table full, dropping packet

我已经尝试过诸如 sysctl -w net.netfilter.nf_conntrack_max=524280 之类的操作,但似乎没有任何区别。

谢谢。

答案1

如果您不打算应用 NAT 或基于状态检测的过滤,那么最好不要使用连接跟踪。您可以使用表NOTRACK中的目标按数据包禁用连接跟踪raw。这样应该可以避免table full您看到的消息。

合适的规则可能如下所示:

-A PREROUTING -p udp --dport 27016 -j NOTRACK
-A OUTPUT -p udp --sport 27016 -j NOTRACK

相关内容