Portál AbcLinuxu, 7. června 2024 09:50


Dotaz: TCP syn flood mi na chvíli "usmrtil" firewall, proč?

6.10.2015 20:50 dd
TCP syn flood mi na chvíli "usmrtil" firewall, proč?
Přečteno: 483×
Odpovědět | Admin
Ahoj, mám následující síť:

   internet
      |
      |
     eth0
      |
router+firewall
  |           |
eth1         eth2
  |           |
  |           |
(DMZ )       (vnitrni sit, klienti, monitoring server)
(web, ..)
Z internetu router natuje provoz do vnitřní sítě přes eth2. Přes eth1 routuje do DMZ, kde je web, mail apod. Na web server byl několikaminutový SYN flood útok, provoz cca 60 Mbit/s (nevím přesně, většinu útoku byl router pro monitoring server nedostupný). Na web serveru se objevilo v logu:
Oct  6 15:19:00 web kernel: possible SYN flooding on port 80. Sending cookies.
...
Jenže na routeru/firewallu, kde je několik pravidel typu max. počet spojení za minutu ze zdrojové IP adresy se objevilo toto:
Oct  6 15:19:10 r kernel: martian source .....
Oct  6 15:19:10 r kernel: ll header: ....
Oct  6 15:19:15 r kernel: __ratelimit: 20252 callbacks suppressed
Oct  6 15:19:15 r kernel: xt_hashlimit: max count of 65536 reached
Oct  6 15:19:15 r kernel: xt_hashlimit: max count of 65536 reached
....
Myslím si, že xt_hashlimit to hlásí z toho důvodu, že TCP syn flood byl z moc IP najednou a pravidla na omezení počtu spojení za minutu na zdrojovou adresu vytváří každé jedno záznam v hash tabulce a ta se prostě zaplnila. OK. Jenže jedna otázka je - jak ty tabulky defaultně zvětšit, druhá zásadnější - proč byly nedostupné všechny stroje v DMZ? Hash tabulky se vztahují ke konkrétnímu pravidlu na web tak proč to ovlivnilo i ostatní servery a zapříčinilo nedostupnost routeru?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.10.2015 21:23 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: TCP syn flood mi na chvíli "usmrtil" firewall, proč?
Odpovědět | | Sbalit | Link | Blokovat | Admin
jak ty tabulky defaultně zvětšit

iptables
6.10.2015 21:58 dd
Rozbalit Rozbalit vše Re: TCP syn flood mi na chvíli "usmrtil" firewall, proč?
Takže jedině překompilovat iptables nebo pokaždé specifikovat velikost? A je to tak, že 2 různá pravidla = 2 tabulky, tzn. nesdílí se to a proto je divné, proč byl router úplně nedostupný? ...
6.10.2015 22:13 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: TCP syn flood mi na chvíli "usmrtil" firewall, proč?
6.10.2015 21:59 Petr Holik
Rozbalit Rozbalit vše Re: TCP syn flood mi na chvíli "usmrtil" firewall, proč?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj,

vezmu to postupne: Dalsi vec je, ze pokud mas zapnuty connection tracking, tak to je take potreba zvysit, jinac to take vetsi pocet spojeni nezvladne sysctl net.ipv4.netfilter.ip_conntrack_max defaultne cca 65k

60Mbit: 1024 * 1024 * 60 / 8 / 60 bajtu (cca velikost TCP SYN paketu) = 131 172 SYN paketu za sekundu := to je cca sakra hodne :) Pokud se dobre pomatuju, radove 30Mbit SYN znedostupnilo relativne nedavno docela velke zpravodajske weby. zvlast, kdyz pro kazdy paket se musi divat do hashtabulky a hledat naky omezeni.

Muzes vyzkouset iptables -A XYZ -p tcp --syn -m limit --limit X/s mohlo by se chovat lepe. Ale obecne, pokud nemas hodne zeleza a casu experimentovat, tak se tomu brani dost tezko(pokud teda nepouzijes neco ve stylu https://www.cloudflare.com/ a podobne.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.