WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur skyddar man sig mot ddos? (https://www.wn.se/forum/showthread.php?t=32327)

Danielos 2008-10-02 18:02

Jag blir just nu attackerad av ddos och jag undrar om jag har gjort allt eller man kan göra mer?

Jag kör mod_dosevasive mod_limitipcon samt pfsense brandvägg men det räcker inte, jag har runt 10 000 ip som är på mig, någon som har någon bra idé, vad kan man göra med pfsense?

Jawn 2008-10-02 18:43

Webbhotellet bör ha någon lösning, vet när jag blir DDOSad (vilket är rätt ofta) kopplar ThePlanet in något som heter fireslayer som filtrerar bort all skräptrafik.

Danielos 2008-10-02 18:45

Tack Jawn, men jag ligger inte direkt på ett webbhotell, utan kör 26 dedikerade servrar i ett helrack.

SimonP 2008-10-02 19:35

På vilket sätt gör dom DDOS attacken?
Det finns ju olika sätt, vissa är svårare att stoppa än andra.

Björklund 2008-10-02 20:22

Är det CPU i servrarna, brandväggarna eller bandbredd som knäcker dig?

Sortera ut 10% av de som gör dig mest skada.
Vänd dig till din ISP och be dem blockera dem. Då bår det fungera bättre. Sedan kan du ta nästa 10% osv...

Om du kör BGP själv så kolla om din ISP stödjer BGP communites där du kan null routa själv så slipper du kontakta dom. Då går det lite fortare.

Om det bara är dina CPUn i dina servrar som knäcker dig så null routa dem i dina routrar.

Danielos 2008-10-02 20:57

Det fungerar som anonyma gäster som accessar väldigt många sidor, och jag har provat att blockera dom 300 värsta i iptables utan resultat.

crazzy 2008-10-02 21:09

Citat:

Originally posted by danielos@Oct 2 2008, 20:57
Det fungerar som anonyma gäster som accessar väldigt många sidor, och jag har provat att blockera dom 300 värsta i iptables utan resultat.

Rätta mej om jag har fel men om du blockar dem i iptables på själva servrarna så borde väl dem ändå bli belastade av att behöva fundera på om paketen ska droppas eller inte?

Danielos 2008-10-02 21:11

Det är rätt crazzy, attacken är inte så stor egentligen, men mjukvaran, apache och php, mysql orkar inte med den enorma lasten det innebär, jag har haft ett mjukvarubaserat ddos skydd, men det fungerar lite halft.

Magnus_A 2008-10-02 22:11

Kolla med patrikweb, han hade lite intressanta synpunkter på hur man skyddar sig mot attacker tidigare.

Björklund 2008-10-03 05:35

Citat:

Originally posted by danielos@Oct 2 2008, 20:57
Det fungerar som anonyma gäster som accessar väldigt många sidor, och jag har provat att blockera dom 300 värsta i iptables utan resultat.

300 av 10.000 räcker inte. Går det inte att blocka mer?

najk 2008-10-03 08:04

Har du ingen fysisk brandvägg med stöd för dos? Annars kan du få låna en av Halon för utvärdering i 30 dagar utan kostnad. Dom har ett bra dos skydd och lite annat godis i sig.

Danielos 2008-10-03 11:29

Jag ska höra med Halon, annars har jag sett denna: http://www.intruguard.com/
Eller finns det fler?

magic 2008-10-03 11:30

Det du behöver göra är att filtrera trafiken innan de når dina servrar.
Du måste logga trafiken och analysera hur du kan blockera dem. om alla t.ex. har en unik user agent skulle du kunna enkelt spara ner dem alla och blockera dem i en brandvägg som står innan dina webbservrar. problemet med den typ av attack du är utsatt för är att om du blockerar 5000 ip, så har de snart 5000 nya ip att attackera från, det finns snorungar med enormt stora "botnät" på IRC som bara behöver ge ett litet kort kommando i en kanal för att "flooda" en viss URL.

Det ända lösningen är att antingen stänga ner servrarna en stund så de tröttnar eller filtrera bort den framför dina webbservrar, då det inte bara går att stänga ner port 80 så måste du antingen plocka ut en lista och blockera varje ip eller automatiskt blockera dem baserat av http throttle.

BarateaU 2008-10-03 11:59

Borde det inte vara simpelt att sätta att efter XX requests /min så blockas den ip'n temporärt i XX min/tim.
Dvs auto mode.

Danielos 2008-10-03 12:28

i pfsense har jag satt:
Maximum state entries per host: 70
Maximum new connections / per second (jag antar att det är per IP): 15/5
State Timeout in seconds: tomt (eller ska man ha 5s här )

Och det verkar fungera rätt bra. Någon som har funderingar eller förbättringar på dessa inställningar?

BarateaU 2008-10-03 13:12

Ser väll bra ut, nått som är bra också är ifall du märker att du blir ddos'ad så kan du dra åt snaran extra för tillfället.

15/5, är det 15 anslutningar per 5 sek?

Danielos 2008-10-03 15:35

Citat:

Originally posted by BarateaU@Oct 3 2008, 13:12

15/5, är det 15 anslutningar per 5 sek?

Det stämmer, och pfsense verkar fungera väldigt bra just nu med dessa inställningar mot ddos.

Danielos 2008-10-03 15:41

Citat:

Originally posted by najk@Oct 3 2008, 08:04
Annars kan du få låna en av http://halon.se/ för utvärdering i 30 dagar utan kostnad. Dom har ett bra dos skydd och lite annat godis i sig.

Fast Halon för väl inget nytt under solen, det är väl Linux/Freebsd med iptables och netfilter? Eller kan patrikweb rätta mig?

patrikweb 2008-10-03 17:07

Nästan alla brandväggar bygger på liknande, att betala pengar för en brandvägg är ju endast för att få något som blinkar sätt och kanske ett häftigt GUI.

Visst du får ju hårdvaran med, fast ska man se kostnaden så är det inte värt.

Men till din fråga om DDoS, hur ser trafiken ut?

Är det endast SYN paket eller skapar dom en full connection?

Viktigaste är kolla hur paketet ser ut i innehåll, skickar dom några headar?

Normalt så skickar dom aldrig några useragent eller liknande vilket gör det lätt att identifera och droppa.

Så normalt blir paketstorleken mycket lägre än legtima anslutningar vilket gör att du skulle kunnat skapa ett filter som droppar paket som är under en viss storlek mot port 80. Annars får du hitta ett mönster och sedan skapa ett L7 filter för matcha och droppa.

patrikweb 2008-10-03 17:13

Citat:

Ursprungligen postat av crazzy
Citat:

Ursprungligen postat av danielos
Det fungerar som anonyma gäster som accessar väldigt många sidor, och jag har provat att blockera dom 300 värsta i iptables utan resultat.

Rätta mej om jag har fel men om du blockar dem i iptables på själva servrarna så borde väl dem ändå bli belastade av att behöva fundera på om paketen ska droppas eller inte?

Det droppas av kernel innan det ens paketet behandlas på något sätt, så blir ändå minimal belastning. Så med ett någorlunda modern maskin så skulle det inte vara några problem att droppa några 100Mbit.

Lumax 2008-10-03 19:37

Citat:

Originally posted by danielos@Oct 3 2008, 12:28
i pfsense har jag satt:
Maximum state entries per host: 70

Ett vanligt problem med att begränsa anslutningar är ju att man inte vill blocka googlebot.
Nån som vet var man kan hitta en lista över IP-nummer som används av googlebot, msnbot och slurp?

Björklund 2008-10-03 20:15

Citat:

Ursprungligen postat av patrikweb
Citat:

Originally posted by -crazzy@Oct 2 2008, 21:09
Citat:

Ursprungligen postat av danielos
Det fungerar som anonyma gäster som accessar väldigt många sidor, och jag har provat att blockera dom 300 värsta i iptables utan resultat.

Rätta mej om jag har fel men om du blockar dem i iptables på själva servrarna så borde väl dem ändå bli belastade av att behöva fundera på om paketen ska droppas eller inte?


Det droppas av kernel innan det ens paketet behandlas på något sätt, så blir ändå minimal belastning. Så med ett någorlunda modern maskin så skulle det inte vara några problem att droppa några 100Mbit.

Det är bandbredden som knäcker en server först utan antal paket per sekund.
Tillräckligt många paket med sekund så knäcker den servern. Ju mer iptables-regler du har ju långsammare går det.

Bättre att droppa dem innan de kommer till servern.

Danielos 2008-10-03 20:32

Citat:

Originally posted by patrikweb@Oct 3 2008, 17:07
Är det endast SYN paket eller skapar dom en full connection?
Viktigaste är kolla hur paketet ser ut i innehåll, skickar dom några headar?
Normalt så skickar dom aldrig några useragent eller liknande vilket gör det lätt att identifera och droppa.
Så normalt blir paketstorleken mycket lägre än legtima anslutningar vilket gör att du skulle kunnat skapa ett filter som droppar paket som är under en viss storlek mot port 80. Annars får du hitta ett mönster och sedan skapa ett L7 filter för matcha och droppa.

Det är nog full connection för dom syns som gäster på forum, det kan bli runt 700-800 gäster på ett specifikt forum. Kan man skapa filter på en pfsense brandvägg tror du?

patrikweb 2008-10-04 14:53

Vet inte om du klarar kunna sätta L7 filter i den, har du analyserat trafiken något?

Typ kör en tcpdump för se exakt vad dom skickar och om alla skickar exakt samma saker.

Om inte kan du säkert koda ihop ett eget L7 filter med ett shellscript, hitta mönstret i tcpdump och använda grep, awk och liknande för att få ut själva IP och sedan pipa det till PF för drop.

Allt brukar gå lösa med shellscript och lite olika tools om man inte har en brandvägg där du ska skapa filter som du vill.


Alla tider är GMT +2. Klockan är nu 03:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson