Preprecitev DDOS-a
 
jurij123 16. feb 2012 20:28:51 Pridružen od:
20. nov 2010
572 objav
675 148 10
#1

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


všeč(1) ni všeč(0) spam(0)
 
slayer 16. feb 2012 23:55:45 Pridružen od:
4. jul 2011
472 objav
295 32 11
#2

Težko se zaščitiš, sploh brez primerne infrastrukture. Mimogrede, koliko imaš online obiskovalcev normalno?


všeč(0) ni všeč(0) spam(0)
 
bl4ckb1rd 17. feb 2012 00:04:16 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#3

najhitreje boš videl s tole komando:


netstat -ntu | grep ':' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | uniq -c | sort -nr

Koliko dejansko je povezav iz enega ipja oz. večih... Če je tega res veliko 200+ iz enega ipja, lahko to smatraš kot DOS napad. Če to ni res, potem povečaj limit povezav na MySQL, saj butaš limit max. uporabnikov. Preveri tudi da ne delaš persistent connectionov na bazo, ker v tem primeru hitro zabiješ te cifre.


všeč(8) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
bl4ckb1rd 17. feb 2012 00:19:18 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#4

Aja še to, če gre za navaden DOS napad, se pravi iz enega ali omejeno število IPjev, se jih da do določene mere poblokirat v Firewallu, tako da ti kurijo samo linijo, ne zabijejo ti pa strežnika. Če gre za masiven DDOS napad, pa prav veliko glede tega ne moreš, vsaj ne z laičnim znanjem...


všeč(0) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
jurij123 17. feb 2012 00:28:43 Pridružen od:
20. nov 2010
572 objav
675 148 10
#5

@blackbird



Sem poizkusil tudi to in ugotovil, da je tam max 30 povezav na en IP.



Zdajle si mi dal misliti in bom pogledal v kodi, ce sem kje pozabil zapret povezavo do mysqla.



Ker predvidevam da je limit 1024 jaz pa imam online 500-600 obiskovalcev se zadeva hitro zafila.



Bom porocal.



LP


všeč(0) ni všeč(0) spam(0)
 
bl4ckb1rd 17. feb 2012 01:04:48 Pridružen od:
18. avg 2008
1122 objav
750 91 11
všeč(0) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
jurij123 18. feb 2012 19:25:03 Pridružen od:
20. nov 2010
572 objav
675 148 10
#7

Sem nastavil limit na 500 ampak se vedno mi zabija procesor(online je cca. 400 userjev).Ampak cudno je, da se potem sprosti in je nekaj casa OK potem pa spet zraste...


všeč(0) ni všeč(0) spam(0)
 
jurij123 18. feb 2012 21:07:50 Pridružen od:
20. nov 2010
572 objav
675 148 10
#8

Sem ugotovil problem(vsaj upam).



Disk je bil 95% zaseden zaradi apache logov.

Ko sem jih pobrisal in vse resetiral je load med 0.01 in 0.10 :)



Persistent povezav nisem delal, sem pa povecal max_con limit na 500.



Mogoce kdo ve zakaj ima disk vezo s tem?



LP


všeč(0) ni všeč(0) spam(0)
 
technolog 18. feb 2012 21:27:50 Pridružen od:
14. nov 2011
598 objav
768 300 22
#9

Ja. Fragmentacija...



Bolj poln ko je disk, na več kosov se drobijo vse datoteke. In zato traja več časa, da glava trdega diska prebere vse koščke. To seveda ne velja za SSD.


všeč(0) ni všeč(0) spam(0)
Z linuxom že 7 let. Pro web development.
 
jurij123 18. feb 2012 21:30:22 Pridružen od:
20. nov 2010
572 objav
675 148 10
#10

Aha logicno ja technolog :)



Aja pa zgleda je problem nazaj ker sem spet videl 20 loada - seveda je padel kasneje.

Obiskovalci se niso povecali :S Glavni problem je spet mysql.



Res me zanima kako hudica bi odkril, ce gre za napad ali kaj drugega :(


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se