DDoS és egyéb támadások vs iptables (Anti-DDoS biztonság az iptables szolgáltatásban)

Kerülje el a támadást DDoS a iptables Számos módja van rá, csomagméret, csatlakozási korlát stb. Szerint. Itt meglátjuk, hogyan fogjuk könnyen, intuitívan és jól megmagyarázható módon elérni a célt, valamint megállítani a szervereinket ért egyéb bosszantó támadásokat.

# Iptables

IPT="/sbin/iptables"
ETH="eth0"

#Todo el tráfico syn
$IPT -P INPUT DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A OUTPUT -m state --state INVALID -j DROP
$IPT -P FORWARD DROP
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A FORWARD -m state --state INVALID -j DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A FORWARD -i lo -o lo -j ACCEPT

#Cuando sube la carga
$IPT -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable

#La que mejor va
$IPT -N syn-flood
$IPT -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
$IPT -A syn-flood -j LOG --log-prefix "SYN flood: "
$IPT -A syn-flood -j DROP

#Igual que el de arriba pero muy raw
$IPT -N syn-flood
$IPT -A INPUT -i eth0:2 -p tcp --syn -j syn-flood
$IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A syn-flood -j DROP
$IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT

#Descartar paquetes mal formados
$IPT -N PKT_FAKE
$IPT -A PKT_FAKE -m state --state INVALID -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
$IPT -A PKT_FAKE -f -j DROP
$IPT -A PKT_FAKE -j RETURN

#Syn-flood
$IPT -N syn-flood
$IPT -A INPUT -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A FORWARD -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A syn-flood -m limit --limit 4/s --limit-burst 16 -j RETURN
$IPT -A syn-flood -m limit --limit 75/s --limit-burst 100 -j RETURN -A syn-flood -j LOG --log-prefix "SYN FLOOD " --log-tcp-sequence --log-tcp-options --log-ip-options -m limit --limit 1/second
$IPT -A syn-flood -j DROP

#Requiere módulo "recent"
modprobe ipt_recent
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 -j DROP

# explicación:
# Se añade cada ip que se conecte a la tabla de recent
# Por por cada ip en la tabla de recent si hace mas de x hits en x segundos, se dropea.
$IPT -I INPUT -p tcp --syn -m recent --set
$IPT -I INPUT -p tcp --syn -m recent --update --seconds 10 --hitcount 30 -j DROP

#UDP Flood
$IPT -A OUTPUT -p udp -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p udp -m limit --limit 100/s -j ACCEPT
$IPT -A OUTPUT -p udp -j DROP

Ez azt jelenti, hogy megszámolja a SYN csomagok számát (A TCP-kapcsolat elindul) minden egyes IP-címre az utolsó 10 másodpercben. Ha eléri a 30-at, eldobja azt a csomagot, így a kapcsolat nem jön létre (A TCP többször megpróbálja újra, amikor a beállítható határérték alá esik).

#Evitando Layer7 DoS limitando a 80 la máxima cantidad de conexiones
$IPT -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min --hashlimit-burst 80 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j DROP

#Permitir el ping, pero a 1 paquete por segundo, para evitar un ataque ICMP Flood
$IPT -A INPUT -p icmp -m state --state NEW --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
$IPT -A INPUT -p icmp -j DROP

#Evitando que escaneen la máquina
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,RST SYN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,RST FIN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,FIN FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,URG URG –j DROP

Itt van a beillesztés szkriptje: Paszta.DesdeLinux.net (előző szkript)

referenciák:


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   KZKG ^ Gaara dijo

    És ezért tettem egy oktatóanyagot a DDoS támadások előtt 😉
    Az ok vagy probléma megfogalmazása / magyarázata (előző bemutató), valamint a megoldás (ez a bemutató) megadása

    1.    diazepán dijo

      tökéletes.

  2.   koratsuki dijo

    Gyerekcukorka ...

  3.   Hugo dijo

    Jó a cikk.

    Két centem:

    UDP csomagok esetén a SYN jelző nem létezik, mivel az állapotkontroll nélküli protokoll. Paradox módon az ÚJ és a LÉTREHOZOTT állapot azért létezik, mert az iptables belsőleg hordoz táblákat erre a célra.

    Másrészről véleményem szerint jobb a DROP célt használni a REJECT helyett, két okból: egy elutasítással egy információt adunk egy lehetséges támadónak, és a számítógép is a csatlakozásának egy részét használja értesítés a támadó csapatnak.

    A másik dolog az, hogy az ICMP protokoll (és általában) esetében kényelmes szabályozni mind a kéréseket, mind a válaszokat, mert valószínűleg valamikor érdekel minket a pingálás, és ennek a funkciónak az engedélyezésével valaki használhat botnetet, és meghamisítja a forráscímet, hogy ezeknek a veszélyeztetett PC-knek számos vége nélkül pingáljon, és a válaszok a szerverünkre kerülnek, összeomolva, ha nem szabnak korlátokat.

    Általában megengedem a 0,3,8,11 és 12 ICMP típusokat, másodpercenként egy bemeneti határértékkel és maximum kettő vagy négy sorozattal, és minden más a DROP-ra marad.

    Valójában, kivéve a jobban szabályozható TCP protokollt, az összes többit anti-DDoS méréssel kell megvédeni egy nemrégiben megjelölt típusegyeztetés révén. Ezzel kapcsolatban érdekességként a modul szerzője előbb szereti elhelyezni a frissítést, majd a készletet.

    Az Iptables valóban nagyon rugalmas és hatékony, egyelőre az egyetlen dolog, amit javasoltam és még nem értem el (bár közel állok hozzá), az az, hogy lehetővé tegyem a psd modul számára, hogy elkerülje a portok beolvasását, de mindennel együtt Megismertem ezt az eszközt, azt hiszem, még nem is karcoltam meg a felületet. 😉

    Egyébként ezen a világon mindig tanulni kell.

  4.   koratsuki dijo

    Jó pontok Hugo, a szószedetünkhöz: D, mint mindig, tanul ...

    1.    Hugo dijo

      Egyébként már megkaptam a psd modult, hogy működjön nálam. A probléma az volt, hogy kezdetben egy kern funkcionalitásától függött, amelyet a patch-o-matic mellett elavultak, ezért alapértelmezés szerint eltávolították a beépített modulokból a netfilterben. Tehát most a Debianban a psd kiterjesztés használatához először ezt kell tennie:


      aptitude -RvW install iptables-dev xtables-addons-{common,source} module-assistant
      module-assistant auto-install xtables-addons-source

      Ezután normálisan használható, az utasításoknak megfelelően:

      man xtables-addons

      1.    el dijo

        Hugo, miért nem tesz közzé egy iptables.sh fájlt a javaslataival a bejegyzés szkriptjének javítására (ami jó), beleértve a psd-t is

        Köszönöm

  5.   nelson dijo

    Kiváló cikk, kiváló iptables és kiváló magyarázat a @hugo-tól. Egyre jobban meg vagyok győződve arról, hogy még sokat kell tanulnom.

  6.   koratsuki dijo

    Nem te vagy egyedül, legalábbis én ... millióm hiányzik ... 😀

  7.   Miguel Angel dijo

    Üdvözlet mindenkinek, és köszönöm a közreműködést, de az az igazság, hogy kétségbe vagyunk esve, nem tudjuk, mit tegyünk most, és azért fordulunk Önhöz ezért az iptable-okért, amelyekről tudjuk, hogy Ön a rendszerek szakértője.
    Én egy spanyol közösség vezetője vagyok a kontrasztrájk források között, és azon kevesek közé tartozunk, akik még mindig alig állnak, állandó támadásokat kapunk a géptől és más támadásokat időnként, az állandó keveset távolít el, de lappolja a szervert egy kicsit, de az, amelyik ideje van, nagyobb kárt okoz. Gépünk 6.2 centire van felszerelve
    és megvan a tcadmin a szerverek vezérlésére. Készíthet nekünk egy olyan konfigurációt, amely egy kicsit megállíthatja az ilyen típusú támadásokat, az már az, hogy kétségbe vagyunk esve
    és nem tudjuk, kihez kell fordulnunk, tudjuk, hogy két botnet létezik, az egyik házi, a másik fizetett az időért és az erőért. Csaknem egy éve elviseljük az ilyen típusú brutális támadásokat, ha tudna segíteni nekünk, örök hálásak lennénk, mert ez most fenntarthatatlan, imádom konfigurálni a szervereket, mint a hoobie, és nem vagyok olyan gyerek, akit biztosíthatok, de ez sok nekem. Ha azt akarod, hogy a ts3-asom beszéljen, vagy bármi, amit szeretnék, segítsen nekünk, így ide tesszük közzé az eredményeket és mindent, ami sok ember érdekében megoldódott, ez lenne az év leglátogatottabb blogja, amelyet biztosítok, mert hihetetlen, hogy bosszantja ezeket a támadásokat ddos. Mivel önállóan próbáltuk konfigurálni, és blokkoltuk a hozzáférést a géphez, a bioszból kellett formáznunk, hogy képzelje el, hogy vagyunk.
    Szívélyes üdvözletet küldök. És gratulálok a hiányzó bloghoz, sokan találnak egyet, amelyet ezzel a bloggal frissítettek. -Miguel Angel-

    1.    KZKG ^ Gaara dijo

      Helló, hogy vagy?
      Írj az email címemre, szívesen segítünk 😀 -» kzkggaara[@]desdelinux[.]háló

  8.   ArthurShelby dijo

    Helló srácok, egészen mostanáig, amíg dolgozom, vegyük ezt a szkriptet, egyébként nagyon jó ... csak egy kétség: A "legújabb" modul nem csökkenti a teljesítményt?

    Üdvözlet - Köszönöm / Ki tetszik?

  9.   Jose tapia dijo

    Kiváló közreműködés barátom, be fogom helyezni egy oktató videó referenciáiba, amelyet szerelünk, egy ölelés Costa Ricából

  10.   Cristian Ivory Reinoso dijo

    Helló,

    Nem tudja használni a szkriptet több porton?
    Van játékkiszolgálóm, és támadásokat kapok mind az internet, mind a játékkiszolgáló portjai felé.

    A köszöntés.