Hello.

Now one unfortunate fact about DoS attacks is that they are designed
to interrupt service.  The main reason why they work so well is
because UDP packets can be spoofed.  Thus you are unable to identify a
IP to ban as the IPs reported will not be the real source of the
packet.  Almost a year ago I suffered a 30Mbit/sec DoS attack on a
CS:S server.   (Everyone who knows my name can probably guess why
someone would want to attack me.)  Given the nature of the attack and
the fact that my game server was empty I just firewalled off the port
they were attacking (save bandwidth).  While Query Cache can help you
server show that its up, in the end if someone has enough bandwidth
they can take your server down.

While VALVe can probably make a better query mechanism they won't be
able to fix this problem.  Since this problem is actually a problem
with the way the internet is designed.

The main problem lies in the UDP protocol.  Since no handshakes are
required (since UDP is stateless) its easy to spoof the source IP with
just a Linux box (or a modded Windows).  The only true solution when
your getting DoS'd is for your ISP (host) to find the source of the
attack through tickets to up-stream providers.  However, most ISPs
will not bother to trace the origin of the attack (due to the fact
that most come from zombie machines).

On Thu, Jan 6, 2011 at 11:53 AM, Marco Padovan <[email protected]> wrote:
> Nice! Will give it a try if it's already part of the kernel I use :)
>
> Thank you
> Il giorno 06/gen/2011 18.43, "frostschutz" <[email protected]> ha
> scritto:
>> On Thu, Jan 06, 2011 at 05:28:43PM +0100, Marco Padovan wrote:
>>> The single bucket is problematic due to how we manage the gameservers,
> will
>>> update the status this evening :p
>>
>> So I came across this in the iptables man page...
>>
>> ----
>> hashlimit
>>
>> This patch adds a new match called 'hashlimit'. The idea is to have
> something like 'limit', but either per destination-ip or per
> (destip,destport) tuple.
>>
>> It gives you the ability to express
>> '1000 packets per second for every host in 192.168.0.0/16'
>>
>> '100 packets per second for every service of 192.168.1.1'
>> with a single iptables rule.
>> ----
>>
>> So you can use hashlimit for a 20 pps for each port solution,
>> still with just a single rule.
>>
>> iptables -m hashlimit --hashlimit 20/s --hashlimit-mode destip-destport
>>
>> (might also need --hashlimit-htable-size/max/, not sure...)
>>
>> Regards
>> frostschutz
>>
>> _______________________________________________
>> 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