Portál AbcLinuxu, 26. dubna 2024 02:35


Dotaz: Apache - ochrana vytíženého serveru

26.6.2007 00:26 vendin
Apache - ochrana vytíženého serveru
Přečteno: 441×
Odpovědět | Admin
Ahoj, po několika letech údržby webového serveru s asi 20 doménami a nynějším objemem okolo 30 tisíc unikátních návštěv za den jsem dospěl do stadia, kdy zřejmě přestává stačit moje konfigurace vzežlá z občasných modifikací klasické defaultní konfigurace Apache v Red Hat EL 4.
Pro představu: HW je 4 jádra Intel Xeon / 4GB RAM. (běží tam i Mysql)
Stav je takový, že občas se podaří zahltit tento server náhodným skenům a poskléze útokům na formuláře a skripty (které jsou vesměs proprietární aplikace třetích stran)
Jako příklad uvedu:
Nejvíce navštěvovaná aplikace obsahuje přízpěvky pod články, ke autoři implementovali antispamové algoritmy (asi bayes). Vložení příspěvku zabere stroji okolo 0,5s času, než prozkoumá a uloží příspěvek. Problém je v tom, že občas se stane že "někdo" vyvolá útok na tuto diskusi formou nekolik desítek / stovek požadavků naráz. Železo i aplikce to většinou "sfoukne", ale už se stalo, že útočník vyvolal takový počet konexí, že se vypotřeboval jejich maximální počet definovaný v apache a server násleně odmítal další požadavky.
Pravda - zvýšení max. počtu konexí pomohlo probém dočasně vyřešit, ale přijde mi to nekoncepční, přestože stroj to stíhá, chtěl by to nějak dořešit.
Hledám nějaké řešení na úrovni
a) buťo firewallu (?SYN,...)
b) nebo změny nastavení apache či použití dodatečného modulu ap.
Nemám možnost modifikovat aplikaci.
Navíc se stává i to, že časem vypluje na povrch i chyba programátora v některé z aplikací (např. nějaké zacyklení, mnoho selectů do databáze apod.) které se vlastně chová podobně - vyvolá zátěž která ovlivní celý server.
Pokud máte někdo čas a chuť podělit se o své řešení, budu velice rád. Stačí princip, konkrétní implemence by se už nějak dohledala a zvládla.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.6.2007 10:51 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Apache - ochrana vytíženého serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na úrovni firewallu by mohl pomoci connlimit z iptables, který limituje počet současných spojení z jedné IP (nebo rozsahu).
oVirt | SPICE
26.6.2007 11:18 Stanislav Petr | skóre: 27 | Praha
Rozbalit Rozbalit vše Re: Apache - ochrana vytíženého serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pravdepodobne to co hledas se jmenuje mod_security. http://www.modsecurity.org/
No jo... Co bych cekal od systemu, kterej se vypina tlacitkem start... http://glux.org
26.6.2007 12:19 marekb | skóre: 16 | blog: Co se nevešlo do /dev/null | Praha
Rozbalit Rozbalit vše Re: Apache - ochrana vytíženého serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim,

doporucuji pred Apache predradit nginx ve funkci reverzni proxy + serveru statickeho obsahu, pokud je to v konkretni aplikaci realne..

Viz. napr.:

http://blog.kovyrin.net/2006/05/18/nginx-as-reverse-proxy/
26.6.2007 13:02 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Apache - ochrana vytíženého serveru
Tato rada by sa dala zovseobecnit. Pred Apache treba predradit nejaku cache statickeho obsahu. Problem je ale asi ten, ze staticky obsah predstavuje pre dany server iba marginalnu zataz. Ako bolo uvedene, server ide do kolien pri akciach, ktore bud potrebuju generovany obsah, alebo same obsah menia ci pridavaju. Eliminovanie dotazov na staticky obsah by malo neadekvatne maly ucinok vzhladom na namahu, ktoru je treba vynalozit.

Apropos, "predradit cache" znamena pridat zelezo; urobit cache na tom istom serveri nedava velky zmysel. Ked uz ale "pridat zelezo", tak bud nahradit terajsi server dvomi a rozdelit aplikacie (z kontextu vyplyvalo, ze ich tam je viacej), alebo aplikacie ponechat a oddelit "backend" (databazu a pod.).

Kazdopadne, dosiahnut napravu bez pridania zeleza je asi mozne len zavedenim obmedzeni, napr. na pocet sucasnych pripojeni z jednej IP a pod., ako bolo uvedene vyssie.
26.6.2007 12:20 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Apache - ochrana vytíženého serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
mozes skusit tiez mod_cband

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.