IPtables - Accept Arbitrary Packets
Posted
by
Asad Moeen
on Server Fault
See other posts from Server Fault
or by Asad Moeen
Published on 2012-06-29T06:29:46Z
Indexed on
2012/06/29
9:18 UTC
Read the original article
Hit count: 299
I've achieved a lot on blocking attacks on GameServers but I'm stuck on something. I've blocked major requests of game-server which it aceepts in the form "\xff\xff\xff\xff" which can be followed by the actual queries like get status
or get info
to make something like "\xff\xff\xff\xff getstatus " but I see other queries if sent to the game-server will cause it to reply with a "disconnect" packet with the same rate as input so if the input rate is high then the high output of "disconnect" might give lag to the server. Hence I want to block all queries except the ones actual clients use which I suppose are in the form "\xff\xff\xff\xff" or .... so,
I tried using this rule :
-A INPUT -p udp -m udp -m u32 ! --u32 0x1c=0xffffffff -j ACCEPT
-A INPUT -p udp -m udp -m recent --set --name Total --rsource
-A INPUT -p udp -m udp -m recent --update --seconds 1 --hitcount 20 --name Total --rsource -j DROP
Now where the rule does accept the clients but it only blocks requests in the form "\xff\xff\xff\xff getstatus " ( by which GameServer replies with status ) and not just "getstatus " ( by which GameServer replies with disconnect packet ). So I suppose the accept rule is accepting the simple "string" as well. I actually want it to also block the non-(\xff) queries. So how do I modify the rule?
© Server Fault or respective owner