DoS elleni védekezés

Fórumok

DoS elleni védekezés

Hozzászólások

Ez ígéretesnek tűnik. Ki fogom próbálni.
Köszönöm.

Sziasztok!

A következő problémában kérném a segítségeteket:
Adott egy kiszolgáló az interneten. Néha rosszindulatú felhasználók előszeretettel floodolják egy-egy portját azzal, hogy különböző IP címekről folyamatosan új kapcsolatokat kezdeményeznek vele. Ennek a korlátozására eddig azt használtam, hogy korlátoztam a létrhozható syn kapcsolatokat másodpercenként.
Azonban ha a limittel korlátozom a létrehozható syn kapcsolatok számát akkor a hasznos kapcsolatokat is lekorlátozom így, mivel a támadó kitölti a limitben meghatározott tcp kapcsolatok számát másodpercenként. Ez sokszor ahhoz vezet, hogy a felhasználó nem éri el egyszerűen a kiszolgálót így a támadó megint eléri a célját: elérhetetlenné teszi a kiszolgálót.

Ismer valaki olyan megoldást vagy modult az iptables/netfilterhez ami képes arra, hogy korlátozza ip címenként a másodpercenként, percenként létrehozható maximális kapcsolatok számát? Pl mondjuk A hoszt és B hoszt kapcsolódik. 5 másodpercenként 1 syn lehetséges hosztonként. A hoszt hamarabb kapcsolódik, és megpróbál újrakapcsolódni 10x de ekkor az első kapcsolat után már nem lesz lehetősége újrakapcsolódni 5 mp-ig. A többi hoszt nem függ tőle. Láttam erre egy modult patch-o-maticban de nem fordult le 2.6.11-es kernel alatt. :(

Valakinek valami ötlete?

A válaszokat előre is köszönöm!

Üdvözlettel: lzoli

Nézzed ezt át.

http://www.config.hu/content.php?article.38

Hasonlóképpen csináltam én is. Az a baj, hogy itt is minden bejövő új kapcsolatra illeszkedik a limit, és nem külön hosztonként.

patch-o-magicban volt egy iplimit, de mar nem elerheto helyette van connlimit:

This adds an iptables match which allows you to restrict the
number of parallel TCP connections to a server per client IP address
(or address block).

Examples:

# allow 2 telnet connections per client host
iptables -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT

# you can also match the other way around:
iptables -p tcp --syn --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT

# limit the nr of parallel http requests to 16 per class C sized
# network (24 bit netmask)
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 \
--connlimit-mask 24 -j REJECT

Igen én is erre gondoltam de ez az ami nem fordul le 2.6 alatt. (2.6.10, 2.6.11 alatt próbáltam)