Webszerver terheléses támadásának kivédése

Fórumok

Sziasztok!

Tisztában vagyok vele, hogy botnetek elleni védekezés igencsak nehézkes, vagy teljesen lehetetlen.
Olyan egyszerűbb támadási típusokra gondolok, ami a 80,443-as portokat érinti és egy ip címről érkezik.
Elárasztva a webszervert különböző requestekkel, ami után már a terheltségből adódóan több kapcsolatot már nem tud megfelelő időn belül kiszolgálni. (Vagy akár új kapcsolatot létrehozni)
Apache mod_evasive-t már próbáltam, teszteltem szerintem használhatatlan, több fórumon is utána olvastam.
Valószínűleg iptables lenne még megoldás. (teszteltem egy kezdetleges megoldást) Ott van -e lehetőség akár egy másik ip vagy portra átirányítás, illetve van -e értelme mondjuk kiszűrve azokat a felhasználókat, akik valamilyen okból rátenyereltek az F5-re.

Ha tudtok konkrétumokat írjatok, saját tapaszlatokat.
Ha van valakinek élesben működő iptables scriptje azt is szívesen veszem.

Ami már teszteltem:
INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 100 --hitcount 50 -j ${DACTION}

Köszönöm a válaszokat!

Hozzászólások

Egy topic nem elég?

Itt is leírom: egy normális dDOS úgy néz ki, hogy kitömik a sávszéled. Szóval dobálhatod te el a kapcsolatokat apache modullal, iptables-szel vagy akármivel is, ha teletolják a sávszéledet akkor az érdemi vásárló nem fog eljutni hozzád. Vagy ha el is jut, akkor se lesz jó a "felhasználói élmény", szóval nem fog nálad vásárolni.

A hosting-ban az egy darab szervereteknek mennyi sávszéle is van? 100 megán lóg? Mert ha igen, akkor egy sima lakossági user is lezúz benneteket egy gigás digi csomaggal, és ettől nincs "egyszerűbb támadási típus"...
Aki pedig rátenyerel az F5-re az azért tenyerel rá, mert lassan töltődik be neki a weboldal. Persze lehet, hogy van tízezerből egy aki nem azért, de azt a "normál ügymenet" tartalékából simán ki kell tudnod szolgálni.

Az iptables megoldás pedig azért is "nagyon jó", mert ma a szolgáltatók jeletős része NAT-ol. Ha jól tudom a 3-ból 2 mobilszolgáltató, és a té vezetéken is elkezdte már jó ideje.

A másik topic alapján nekem nagyon úgy néz ki, hogy kb. nulla pénzből akartok kihozni egy fél világot kiszolgáló webshop-ot, aminek hamarosan el kell indulni (black friday?). És ugye a gombhoz varrjátok a kabátot, mert adottságként van egy (1 darab) belépő szintű szerveretek és egy valamilyen tailormade webshop sw-etek (ami gondolom nem skálázódik, de legalább a fejlesztőn kívül senki se ért hozzá). Ezen felül költeni nem akartok, hanem azt várjátok, hogy itt a hup-on valaki majd csak megmondja a tutifrankót, hogy hogyan tudtok birkavesével földrengést megelőzni...

Gondoltam más kérdéskört érint a cím alapján, ezért tettem bele új topicba.
dDOS-t direkt nem írtam. Csak találgatsz de közel nem jársz a valósághoz, nem értem a hozzáállásodat. Mi értelme van degradáló hozzászólást írni, lehet így jobban érzed magad. Ezt intelligensebb formában is elő lehet adni.
Tisztában vagyok azokkal a dolgokkal amit az utolsó bekezdésben írtál, egyet is értek vele.
Magyarázkodásba nem hiszem, hogy bele kellene mennem ugyanis nem látom értelmét.

A többi észrevételt köszi!

- ezt a témát már az előző topic-ban is kérdezgetted, ott is szóba került. Jobb ötlet itt se lesz szerintem.
- DOS és dDOS között túl nagy különbség nincs jelen esetben. Ha nem egy lakossági nettel fektet le benneteket aki akar, akkor tízzel. Az meg már szegről-végről dDOS...
- találgatok persze, de lényegtelen, hogy holnap indultok-e vagy karácsonykor, mert nem álltok készen. Nem tudom mennyire reális az a forgalom amire számítottok (a ti érdeketekben remélem, hogy nem), de elég messze vagytok a készen állástól
- nem célom degradálni, csak őszinte vagyok. Lehet hogy nyers, de csak őszinte. Nem fogom a szart kakinak nevezni csak azért, mert valakinek ez jobban tetszik. Barna anyagdarabkának pláne nem.
- és ugye a stílusbeli problémák általában akkor szoktak előkerülni, amikor a tényekbe nem lehet belekötni, márpedig a leírtakkal lényegében Te is egyetértesz
- és nem, nem érzem magam ettől jobban, mert átérzem a helyzeted. Magyarázkodnod pláne nem kell, építettem már én is szarból várat. Az eredmény nem meglepetés, jó szar vár lett...

Szerintem ebből - a feladat mélyebb ismerete nélkül - két lehetőség van. Vagy egy kőlevest főztök, amihez követek ugye már van, csak a többit kell "kiverni" a megrendelőből. Vagy csináltok valamit szegény ember vizel és főz jeligére, aztán vagy bejön, vagy nem.

Cloud szerver, ott tudtommal van ilyen védelem. Olyan cloud kell, ami automatikusan több sávszélt ad, ha fogyóban van (ilyenkor többet is fizetsz), így ddos esetén sincs gond.

Gigabites hálózaton van, nem hiszem hogy gond lenne a sávszéllel.
A statikus tartalmak külön szerveren / domain alatt fognak menni.

Valóban, komolyabb igény esetén érdemes elgondolkodni felhő alapú kiszolgáláson.
Előző topic-ban említették az Amazon szolgáltatásait, szerintem is érdemes utána olvasni.

Figy egy felig komolyan gondolt DDoSnal nem egy gigabitet tomnek ki, hanem sokat. Raadasul fillerekbe kerul. Az egyetlen ami megmentheti a gepedet, hogy ha a szolgaltatodnak jo magyar szokas szerint keves a nemzetkozi savszelessege es elobb fogy el mint a Te geped. Cloudflare, Prolexic, stb. olyan szolgaltatok akik arra epitettek a business modeljuket, hogy baromi sok savszeljuk van es az o gepeik jo esellyel kepesek kiszurni a DDoS-t statisztikai elemzessel.

Ha nem akarod nagyon megszivatni magad, meg se probald szerver szinten kiszurni, mert a legitim felhasznaloiddal tolsz ki, akik a random nem betoltodo oldallal amikor megprobaljak mobilneten rafrissitgetni hogy vegre betoltson. Komolyan. Ne csinald. Vannak szakemberek, akiknek ez a dolguk. Se Te Se en nem vagyunk azok. Kesz configot meg nem fogsz kapni senkitol, mert az a _te_ _gepedre_ _egyedi_.

Ha mar mindenkeppen akarod csinalni, semmikepp ne IP-t tilts, mert a CGN-ek koraban siman lehet, hogy nagy hirtelen egy fel szolgaltatot kitiltasz egy user helyett.

--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT

Nekem újabban a telefonon (mobilnet) ugat a tecső hogy gyanús dolgokat sejt az én ípécímemről és most bocsi, de nem. Nyilván a NAT miatt van a gyanakvás. Szóval igen, változnak az idők.

Bár épp most köpött le az itthoni wifiről is, úgyhogy ez más lesz...

Szerintem a védekezés módja a kiszolgált oldaltól függ. Lehet általánosságban rate limiteket megadni, de mindig lesznek kivételek. A nagyobb proxy-k esetén gond lehet, pl. ha egy főiskola/egyetem/kollégium http proxy-n netezik, akkor egy IP-t fogsz látni.
-statikus tartalomnál referer vizsgálat
-kimenő kapcsolatok szűrése, tiltása
-POST tiltása IP vagy URL kivételekkel
-HEAD tiltása
-keep alive kikapcsolás vagy látogatóknak megfelelő időzítés
-sysctl net/netfilter beállítása az egyedi igényeknek

Én így védekezem, a fail2ban nagyon jó az ilyen helyzetekben!

Jó pár DDOS támadást blokkolt már.

"Értem én, hogy villanyos autó, de mi hajtja?"

Akkor az nem DDOS volt.

Megprobalom szemleltetni.

Tegyuk fel hogy a szervered egy nagy raktarhaz odavezeto 4 savos uttal.

A fail2ban a portasbacsi

Namost a DDOS az nem abbol all hogy jon egy darab biciklis futar es allandoan nyomja a csengot a portasod meg elzavarja.

A DDOS az abbol all hogy sok ezer kisebb vagy nagyobb futar ( biciklistol a KOMATSU domperig bezarolag ) a te kicseszett kapud elott fog tolongani egeszen addig amig a hozzad vezeto utat teljesen le nem blokkoljak ugy hogy meg egy gyalogos se tud a kozelebe ferkozni a gyarkapudnak.

Ezen hogyan segit a portasbacsi?

Naja de itt jon kepbe amit a masik temaban mondtam: egyuttmukodo fejleszto nelkul ez agyrem. Failtobanbol tiltani kb olyan, mint amikor egy adott utcabol jovoket kollektive valogatas nelkul arconsimogatunk egy szeneslapattal. IPv4-nel egyre tobb szolgaltato fog CGN-t alkalmazni, azaz sok user lesz egy IP-n, IPv6-nal meg akkor kerek uj IP-t amikor jol esik.

Ugy kell felepiteni az alkalmazast, hogy amikor feny derul egy ilyenre, azt gyorsan lehessen orvosolni. Ez pedig csak fejlesztovel megy, nem lehet rendszergazdai oldalrol megoldani.

--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT

En is most raktam fel, centos5-on nicns mod_evasive.
Arra jo, hogy maga a szerver nem hal le, mert mar keptelen kiszolgalni a lekerest. nyilvan rendes (D)DoS ellen nem megoldas, de arra jo, hogy a nyilvanvalo botokat kiszurje. Ot perc alatt 600 lekeres, az mar az, nincs ember, aki otpercig masodpercenkent kerje le akarmelyik odlalt.
Webaruhazat wget-tel meg normalis ember nem tolt le...

--
http://www.micros~1
Rekurzió: lásd rekurzió.

Atlag napi 1-2 kitiltas jon. Tudom, hogy nagyon messze van a jo megoldastol, de segit.
Szerencsere az apache logban egy oldal lekeres egy bejegyzes, nem szamolja kulon a kepeket/scripteket/anyamtyukjat.

Nekem csak wget-tel (mirror) sikerult elernem, hogy kitiltson. Nyilvan johet egy egesz ceg natolt halorol, akkor elerhetik a kitiltast, de az sem olyan egyszeru: max. ot perc alatt kell 600 letoltest produkalniuk.
Szoval minden valoszinuseg szerint normal forgalomban ezt nem erik el.

--
http://www.micros~1
Rekurzió: lásd rekurzió.

Támadónak így is kiszolgál egy 403-as hibaoldalt. Tehát a problémát nem szünteti meg, csak a terhelésen segít valamennyit.
Még ha jól be is tudod konfigurálni, talán egy scriptel ami bedobja iptables-be mondjuk ha többször tiltva lett már az adott ip úgy hasznos lehet.
De a felmerült kérdésekre (pl. NAT) ez sem jó alternatíva.

Igy van, nekem az kellett, hogy mondjuk hajnali haromtol ne alljon reggelig az egesz aruhaz, mert valaki agyatlan modon tulterhelte.
Ebben az esetben ez is orom. Mondjuk, az is igaz, hoyg a vasarlok/erdeklodok 99%-a magyar, tehat ha vietnami cimet tilt ki, nem eri nagy veszteseg az aruhazat - ellenben ha az egesz all egy vietnami cim miatt, az nem tul jo. Vagy kinai, azok jellemzoen akkor aktivak, amikor Kozep-Europaban nem annyira.

Amugy egy orara szol a kitiltas, de jelezheti is a kitiltott. Annal mindenkeppen jobb, hogy az aruhaz lehal.

--
http://www.micros~1
Rekurzió: lásd rekurzió.

Te most egyébként komolyan számítasz (nemzetközi) DDoS támadásra vagy csak szimplán egy - amúgy legális forgalomból adódó - túlterhelés ellen szeretnél valahogy védekezni?

--
https://us.gacivs.info

Ez jó kérdés. Lehet szidni szegény kollégát, hogy szarból akar várat építeni, de ennél azért van még sokkal lejjebb is, és azért többnyire ellavíroznak azok is valahogy. Őt legalább érdekli a téma. De a weboldalak nagy részének nem praktikus, hogy egyáltalán védekezzen egy szándékos DDoS ellen, és statisztikai alapon nagy részük soha nem is lesz ilyen áldozata.

--

Egy csomo VPS-nel adnak (ingyen) alapszintu DDOS vedelmet.

En most legutobb egy 6EUR/ho *fizikai* szerverre fizettem be, amihez "ingyen" jar DDOS vedelem:
https://www.online.net/en/dedicated-server/ddos-arbor

Lehet favago megoldas, de en a helyedben befizetnek egy ilyenre, aztan tennek ra egy nginx reverse proxy-t, oszt' jonapot kivanok. :)

A kerdes az az, hogy van-e vajon nektek havi <2000 Ft-otok egy ilyenre.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

En egy peldat irtam anyagiakkal egyutt, viszonyitasi alapnak.

Tavol alljon tolem, hogy konkret szolgaltatora beszeljek ra valakit is.

Tudod, csakhogy a nagysagrendeket tisztaba tegyuk... :)

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Limitálni kell a comments_per_page változó értékét maximum 300-ra.