Т.е. приходит пакет UDP на сервер с запросом ....getstatus..
Сервак отправляет ответ с инфой сколько игроков и т.д.
Я защитился блокированием диапазонов адресов.
Код: Выделить всё
# cod4_rules_file
# IPFILTER ipf rules
#
block in log quick from 50.57.34.86/32 to any
block in log quick from 61.14.142.157/32 to any
block in log quick from 61.14.0.0/16 to any
block in log quick from 66.101.212.95/32 to any
block in log quick from 66.101.0.0/16 to any
block in log quick from 69.42.213.194/32 to any
block in log quick from 69.42.0.0/16 to any
block in log quick from 70.39.101.130/32 to any
block in log quick from 70.39.0.0/16 to any
block in log quick from 90.151.208.0/20 to any
block in log quick from 90.151.220.181/32 to any
block in log quick from 95.0.239.99/32 to any
block in log quick from 95.0.0.0/16 to any
block in log quick from 184.172.248.133 to any
block in log quick from 199.83.0.0/16 to any
block in log quick from 199.83.128.94/32 to any
block in log quick from 199.83.130.94/32 to any
block in log quick from 199.255.166.25/32 to any
block in log quick from 199.255.166.99/32 to any
block in log quick from 199.255.0.0/16 to any
block in log quick from 204.93.213.40/32 to any
block in log quick from 204.93.0.0/16 to any
block in log quick from 208.45.0.0/16 to any
block in log quick from 208.82.0.0/16 to any
block in log quick from 209.87.152.138/32 to any
block in log quick from 209.87.0.0/16 to any
В инете нашел правила для линуха на iptables, но уменя freebsd

http://forum.4gf.cz/topic/957-ddos-utok ... 4-servery/
Смысл прост, если приходит пакет с определенным размером (от 45 до 47 байт) на порт UDP 28960,
то пропускать не более 20 пакетов за одну секунду, всё остальное дропать.
Код: Выделить всё
iptables -A INPUT -p UDP -m length --length 42:45 -m recent --set --name getstatus_cod
iptables -A INPUT -p UDP -m string --algo bm --string "getstatus" -m recent --update --seconds 1 --hitcount 20 --name getstatus_cod -j DROP
Есть ли у BSD`эшных файрволов (pf, ipf, ipfw) что-то подобное?