Could you use the firewall to rate limit using "-m limit --limit 1/s
--limit-burst 10" or similar?

Maybe something like this?
iptables -t nat -A PREROUTING -p udp -d SERVER_IP --dport SERVER_PORT -m
 string --algo kmp --string 'TSource Engine Query' -m length --length 53 -m
limit --limit 1/s --limit-burst 10 -j REDIRECT --to-port 21015

Maybe won't even need the proxy if the firewall is limiting the DOS packets?

I have not tried the above.

} -----Original Message-----
} From: [email protected] [mailto:hlds_linux-
} [email protected]] On Behalf Of Kaspars
} Sent: Sunday, September 06, 2009 9:43 AM
} To: Half-Life dedicated Linux server mailing list
} Subject: Re: [hlds_linux] A2S_INFO DDOS fix
} 
} firewall rule could be adjusted to this:
} iptables -t nat -A PREROUTING -p udp -d SERVER_IP --dport SERVER_PORT -m
} string --algo kmp --string 'TSource Engine Query' -m length --length 53 -j
} REDIRECT --to-port 21015
} 
} As for the rate limit... I don't think this is a good idea, because
} setting
} such a limit will make the server disappear from the browser list for
} legit
} clients. And if you have a good connection, you probably will not notice
} the
} traffic increase anyway.
} 
} 
} 2009/9/6 Ronny Schedel <[email protected]>
} 
} >
} > I forgot an important part, your query proxy has still no rate limit. It
} > can
} > be used to flood spoofed IP's.
} >
} >
} > > Hi,
} > >
} > > If you are on the hlds windows mailing list, then you probably already
} > > know
} > > about A2S_INFO DDOS attacks. I have mistakenly posted a *fix* on the
} list
} > > for *nix servers which I should have posted here.
} > >
} > > In short:
} > > If your server gets ddosed with A2S_INFO packets, it will get really
} > > laggy.
} > > Setting sv_max_queries_sec to a low value will make the server
} disappear
} > > from the server browser list. I'm providing you with a UDP Caching
} Proxy
} > > which will query the server with A2S_INFO requests not more than once
} in
} > a
} > > five seconds and respond to the client with the cached data.
} > >
} > > Setup:
} > > 1. Get the source from http://www.gign.lv/tmp/querycache.c
} > > 2. Compile with gcc querycache.c -o querycache
} > > 3. Open an UDP port in firewall for the proxy server, lets say 21015
} > > 4. Make sure you have iptables NAT, REDIRECT and string match support
} > > compiled into kernel or as modules
} > > 5. execute: iptables -t nat -A PREROUTING -p udp -d
} > > YOUR_EXTERNAL_TF2_SERVER_IP --dport YOUR_SERVER_PORT -m string --algo
} kmp
} > > --string 'TSource Engine Query' -j REDIRECT --to-port 21015
} > > 6. Run querycache (probably under screen, so you can detach from it)
} > >
} > > I've been ddosed with about 300req/sec and it works good, however I
} don't
} > > give any warranty that it will work for you.
} > > _______________________________________________
} > > To unsubscribe, edit your list preferences, or view the list archives,
} > > please visit:
} > > http://list.valvesoftware.com/mailman/listinfo/hlds_linux
} > >
} >
} >
} > _______________________________________________
} > To unsubscribe, edit your list preferences, or view the list archives,
} > please visit:
} > http://list.valvesoftware.com/mailman/listinfo/hlds_linux
} >
} _______________________________________________
} To unsubscribe, edit your list preferences, or view the list archives,
} please visit:
} http://list.valvesoftware.com/mailman/listinfo/hlds_linux


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to