Preprecitev DDOS-a

Ponavadi imam load < 0.1 danes pa mi procesor nabije na 100% in load tudi do 40 (!)

S htop vidim, da se kar naenkrat ustvari vecja stevilka mysql procesov.
V apache error logu sem videl tudi

mysqlselectdb(): Too many connections

Sumim, da me eden napada z http floodom, ki ga analytics ne zazna(saj je online obiskovalcev vedno konstantno in ni vecjih odstopanj).

Zanima me kako lahko zaznam tak napad in ga preprecim.

Server tece na debianu.

LP

18 odgovorov

newrelic.com - v casu triala bi ze moral videti kaj ti nagaja

Ram ni nikoli vec uporabljen kot 20-25%

Ce bi mi stalno to zabijalo bi rekel ok verjetno je skripta slabo optimizirana ampak zabije na case, npr. od vcerajsnega reseta je load < 0.50 ze kaksih 12-15h

Bom pa pogledal newrelic, pa mogoce dobimo odgovore :)

Lahko vidiš zadevo tudi v GA. Glej tabelo obiska po državi in filtriraj po ogledih. Če imaš po večini slovenski promet in je na prvem mestu po ogledih ala Senegal, potem že nekaj ni vredu.

Obvezno namesti firewall in se malo poigraj z nastavitvami. Prvih nekaj dni spremljaj ban log in vidiš po IPjih koliko je pravih in koliko lažnih. Nastaviš omejitve povezav na IP, št zahtevkov itd. Ubistvu ponavadi šele, ko si namestiš firewall in obvestila, vidiš koliko sranja ti strežnik sprocesira popolnoma brez veze.

V htaccess ali firewall ban list lahko kar dodaš tale seznam:
http://www.countryipblocks.net/proxies/

Lahko tudi blokiraš popolnoma tiste splošne spam origine Nigeria, Senegal...

Je pa to never ending story. Pomaga recimo tudi če hardwersko narediš presežek. Se pravi št. jeder na procesorju, količina rama, diski in strežnik enostavno prebavi potem vse. Vse je samo stvar računice kaj se ti bolj splača.

Zunanji servisi za spremljanje pridejo bolj v poštev pri manjših straneh. Pri večjih straneh je problem promet. Ko jim pošlješ skozi nekaj 10 tisoč ogledov znajo rahlo zakomplicirati :)

1

Za nazaj boš težko kaj ugotovil, za sproti pa lahko vklopiš in spremljaš Apache server-status, v MySQL-u pa spremljaš "SHOW PROCESSLIST", ki ti pokaže trenutne zahteve in koliko časa se že izvajajo.

Lahko tudi vklopiš logiranje SQL ukazov, ki se dolgo časa izvajajo (longquerytime nastaviš koliko sekund se mora izvajati, da se zabeleži, v log-slow-queries pa ime datoteke, v katero se beležijo dolgotrajne zahteve).

Te zahteve potem pregledaš - predvsem kakšen manjkajoči indeks lahko po nepotrebnem upočasnjuje hitrost odgovorov.

skrt:
Lahko vidiš zadevo tudi v GA. Glej tabelo obiska po državi in filtriraj po ogledih. Če imaš po večini slovenski promet in je na prvem mestu po ogledih ala Senegal, potem že nekaj ni vredu.

To je pa beden nasvet. Če mu kdo napada spletno stran - potem tega GA ne bo zaznal. Vsaj če ima napadalec IQ nad sobno temperaturo.

1

technolog:

skrt:
Lahko vidiš zadevo tudi v GA. Glej tabelo obiska po državi in filtriraj po ogledih. Če imaš po večini slovenski promet in je na prvem mestu po ogledih ala Senegal, potem že nekaj ni vredu.

To je pa beden nasvet. Če mu kdo napada spletno stran - potem tega GA ne bo zaznal. Vsaj če ima napadalec IQ nad sobno temperaturo.

Večina spammerjev se ne ubada s skrivanjem. Najdejo proxy, ki deluje in ti na polno bombardira stran. Če nimaš nekega malo bolj naprednega znanja za administracijo strežnika je tudi GA za prvo silo dober.

Takole zgleda spam napad preko GA, na strani, ki je izključno za slo publiko.

3

Ja razumem to ampak pri meni ni povecanja obiska.