Elleni védelem SYN Flood támadás, a hagyományos notebook admin)

Tulajdonképpen ez fog összpontosítani elleni védelem SYN flood támadás:

Nagyon népszerű DoS támadás során küldött nagyszámú SYN csomagokat a szerverre. Ebben a beállításban a TCP kapcsolat nem szüntetik meg. A sorban a félig nyitott kapcsolatok kéréseket töltött gyorsan, ezért a telepítés nem normális kapcsolatokat. Mivel a vegyület nem kell kitölteni, egy ilyen támadás több erőforrást igényel a támadó gép, így könnyen megvalósítható és figyelemmel kísérhető.


Adjuk SYN támadás csak - netstat parancs megjeleníti egy hatalmas listát félig nyitott kapcsolatok:

Mi lehet egyszerűen számolni a számát:

Először is - ellenőrizze tcp_syncookies paraméter - meg kell egyenlő 1:

És hagyja. Alapértelmezésben az új disztribúció, ez a lehetőség mindig be van kapcsolva.

Ha a tcp_syncookies telepítve (csak ha a kernel lefordításra CONFIG_SYNCOOKIES), akkor a kernel kezeli SYN TCP csomagokat normál üzemmódban mindaddig, amíg a hely tele van. A feltöltés után a sorban mechanizmus SYN cookie-e kapcsolva.

Engedélyezése SYN cookie-mechanizmus egy nagyon egyszerű módja a harcot SYN flood támadásokat. Ebben az esetben, egy kicsit több CPU-t, mert az kell, hogy hozzon létre, és ellenőrizze cookie-t. Mivel az alternatív elutasítja az összes kérelmet csatlakozni, SYN cookie-k egy jó választás.

Azt is meg kell növelni a sorban az félig nyitott kapcsolatok - tcp_max_syn_backlog (a Debian Lenny alapértelmezett 1024 csatlakozások):

Ezen felül, tudjuk csökkenteni a várakozási időt tcp_synack_retries csatlakozás:

Egész szám (1 bájt) tcp_synack_retries meghatározza a próbálkozások száma SYNACK csomag újraküldési passzív TCP kapcsolatot. A kísérletek száma nem haladhatja meg a 255 Az alapértelmezett érték 5 másodperc felel meg körülbelül 180 megkísérel végrehajtani összeköttetés.

Csökken 1 (körülbelül 9 másodperc):

Integer tcp_fin_timeout fájl határozza meg a menteni foglalat állami FIN-WAIT-2 bezárását követően a helyi párt. Partner nem zárja be a kapcsolat elveszett, ezért zárja be a saját után timeout. Az alapértelmezett beállítás 60 másodperc. A 2.2-es kernel általánosan használt érték 180 másodperc, és mentheti ezt az értéket, de ne felejtsük el, hogy a WEB-terhelt szerverek, azt kockáztatja, hogy kiad egy csomó memóriát megőrizni polurazorvannyh halott linkeket. Aljzatok képes FIN-WAIT-2 kevésbé veszélyes, mint a FIN-WAIT-1, mert nem képes befogadni több mint 1,5 Kbyte memóriát, de lehet hosszabb.

Tcp_keepalive_probes egész változó számát állítja keepalive átviteli minta, ami után a kapcsolat megszakadt. Alapértelmezett vezetünk 9 mintát.

Tcp_keepalive_intvl integer változó meghatározza az átviteli intervallum mintákat. Artwork tcp_keepalive_probes * tcp_keepalive_intvl meghatározza azt az időt, ami után a kapcsolat megszűnik hiányában visszajelzést. Az alapértelmezett időtartam 75 másodperc, azaz kikapcsolási idő hiányában visszacsatolás lesz körülbelül 11 perc alatt.

Ez határozza meg a csomagok maximális száma a feldolgozási sorba, ha a felületet kap csomagokat gyorsabb, mint a kernel nem tudja feldolgozni azokat.

A legnagyobb számú nyílt aljzatok, vár kapcsolatokat.

Mivel hasonló változásokat kernelparamétereket dobni újraindítás után - hozzátéve, hogy /etc/rc.local:

Ezen felül, akkor adjunk hozzá egy korlátot a SYN csomagok egységnyi idő alatt az iptables:

A számos új SYN csomagok - maximum 500 másodpercenként, a küszöbérték túllépése 1500 - új csomagok blokkolva vannak:

További egyértelműen, ez a kritérium lehet elképzelni, mint egy bizonyos tartály egy kimenettel, amelyen keresztül egy bizonyos csomagok száma egységnyi idő (azaz a sebesség „szivárgás”). „Szivárgás” Speed ​​pontosan meghatározza az értéket --limit. --limit burst mérete határozza meg a teljes „tartály térfogata”. És most képzeljük el a szabályt --limit 3 / perc --limit-sorozatban 5, majd miután megkapta 5 csomag (egy nagyon rövid ideig), a kapacitás a „töltse”, és minden további csomag hatására „túlcsordulás” képesség, azaz "Trigger" kritériumoknak. 20 másodperc után, a „szint” a tartályban csökken (összhangban a nagysága --limit), így készen áll, hogy elfogadja más csomagkapcsolt anélkül „túlfolyó” konténerek, azaz kiváltó feltétel.

Mint ez: