防御Source Engine Query泛洪攻击(三)
上一篇文章《防御Source Engine Query泛洪攻击(二)》介绍了将被攻击的端口短暂封禁的方法,以避免服务器因响应查询包发送大量数据影响服务器的上行带宽,但这种方法也会导致正常玩家在端口遭受DDoS攻击时无法搜索到服务器,本文将介绍使用白名单的方法来实现降低服务器在攻击时无法被正常玩家搜索到的几率。 由于UDP数…
2022-09-10iptables显示规则命中速率
之前一直使用watch 'iptables -vxL'来查看iptables规则实时状况,虽然通过这样查看累计数能够大概了解到规则命中的情况,但只能通过估算来得知命中速度,在有时候不太方便。 在优化iptables规则时,偶然阅读 Cloudflare 的 How to drop 10 million packets per second 这篇文章,发现其使用了mmwatch的工具,可以把iptables的规则从累计命中数转为每秒速度。 $ mmwatch 'iptables -L -v -n -x | head' Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes ta…
2020-03-27防御Source Engine Query泛洪攻击(二)
上一篇文章《防御Source Engine Query泛洪攻击(一)》提到使用限速模块对单IP进行请求限速,但若攻击者使用伪造的IP发送数据包,那么限速模块就不能很好地起到作用了。 在没有很好的方法防御的情况下,可以使用主动丢弃被DDoS攻击的端口的查询包(即类似于封禁端口)的方法来防止查询包到达游戏服务器,防止产生反射流量…
2020-03-23防御Source Engine Query泛洪攻击(一)
Source Engine Query泛洪是使用Source引擎游戏服务器的查询协议来进行的攻击,攻击者只需要发送一小段数据包,服务端会返回几倍的数据,形成反射性攻击。由于正常玩家在查询服务器时也会使用到此协议,因此不能直接封禁,否则将影响正常玩家。我的策略是对数据包进行限流,若超出阈值则拉黑,使用linux iptables来实现,主…
2020-01-09修改linux iptables recent模块的ip_list_tot参数
linux下iptables的recent模块默认一个表只能保存100条数据,不能满足需求,因此需要把这个参数调高一点。 起初找到这个配置文件,位于sys/module/xt_recent/parameters目录下,由于是内核级模块,在root下也没有权限直接修改,因此需要用以下办法。 首先先清理iptables的现有规则(记得备份现有规则)。 iptables -F 然后先删除模块。 rmmod xt_recent 调整配置 modprobe ipt_recent ip_list_tot=50000 重新配置iptables规则。 查看最新配置,如果返回的是调整后的…
2020-01-09