DDoS ja muud rünnakud vs iptables (anti-DDoS-i turvalisus iptablesis)

Vältige rünnakut DDoS koos iptables Sellel on palju võimalusi paketi suuruse, ühenduse piirangu jne järgi. Siit näeme, kuidas saavutame eesmärgi lihtsal, intuitiivsel ja hästi selgitatud viisil ning peatame muud tüütud rünnakud meie serverite vastu.

# 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

See loeb SYN-pakettide arvu (TCP-ühenduse alustamine) iga IP-aadressi jaoks viimase 10 sekundi jooksul. Kui see jõuab 30-ni, loobub ta sellest paketist, nii et ühendust ei suudeta luua (TCP proovib mitu korda uuesti, kui see langeb alla selle seatava piiri).

#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

Siin on meie Paste skript: Kleepige.DesdeLinux.net (eelmine skript)

Viited:


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   KZKG ^ Gaara DIJO

    Ja seetõttu panin enne DDoS-i rünnakuid juhendaja 😉
    Põhjuse või probleemi (eelmine õpetus) esitamine / selgitamine ja ka lahenduse pakkumine (see õpetus) 🙂

    1.    diasepaan DIJO

      täiuslik

  2.   koratsuki DIJO

    Laste kommid ...

  3.   Hugo DIJO

    Hea artikkel.

    Minu kaks senti:

    UDP pakettide puhul puudub SYN lipp, kuna see on riikliku kontrollita protokoll. Paradoksaalsel kombel eksisteerivad aga UUDED ja ESTATUD olekud, kuna iptables kannab sisemiselt selleks laudu.

    Teiselt poolt, minu arvates on REJECT asemel parem kasutada DROP-i sihtkohta kahel põhjusel: esiteks annab tagasilükkamisega teavet võimalikule ründajale ja ka arvuti kasutab osa oma ühenduvusest saatmiseks teatis ründavale meeskonnale.

    Teine asi on see, et ICMP-protokolli (ja üldiselt) puhul on mugav reguleerida nii taotlusi kui ka vastuseid, sest ilmselt oleme mingil hetkel huvitatud iseenda pingimisest ja selle funktsiooni lubades võiks keegi kasutada robotivõrku ja võltsida Lähtekoha aadressilt tehke paljudele nendele ohustatud arvutitele lõputu ping ja vastused läheksid meie serverisse ja laguneksid, kui piiranguid ei seataks.

    Tavaliselt luban ICMP-tüüpi tüüpe 0,3,8,11 ja 12 sisendpiiranguga üks sekund sekundis ja purskega maksimaalselt kaks või neli ning kõik muu jäetakse DROP-i teha.

    Tegelikult, välja arvatud TCP-protokoll, mida saab paremini reguleerida, tuleks kõiki teisi kaitsta DDoS-vastase meetmega hiljutise tüübivaste abil. Mis puutub kurioosumisse, siis selle mooduli autorile meeldib kõigepealt värskendus ja seejärel komplekt paigutada.

    Iptables on tõesti väga paindlik ja võimas, siiani on ainus asi, mida ma olen teinud ettepaneku teha ja ma pole seda veel saavutanud (kuigi olen selle saavutamise lähedal), on võimaldada psd-moodulil vältida portskannimist, kuid isegi kõigega Olen õppinud tööriista kohta, arvan, et pole veel isegi pinda kriimustatud. 😉

    Igatahes tuleb siin maailmas alati õppida.

  4.   koratsuki DIJO

    Head punktid Hugo, meie sõnastiku fail: D, nagu alati, õppimine ...

    1.    Hugo DIJO

      Muide, juba sain PSD mooduli enda jaoks tööle. Probleem oli selles, et see sõltus algselt tuuma funktsionaalsusest, mis oli koos patch-o-maticuga aegunud, seega eemaldati see vaikimisi netfiltris sisseehitatud moodulitest. Nii et nüüd Debianis, et kasutada laiendit psd, peate kõigepealt seda tegema:


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

      Seejärel saab seda tavapäraselt kasutada vastavalt juhistele:

      man xtables-addons

      1.    ära DIJO

        Hugo, miks te ei avalda iptables.sh koos oma ettepanekutega selle postituse skripti (mis on hea), sealhulgas psd parandamiseks

        tänan

  5.   nelson DIJO

    Suurepärane artikkel, suurepärased iptables ja suurepärane selgitus aadressilt @hugo. Olen üha enam veendunud, et mul on veel palju õppida.

  6.   koratsuki DIJO

    See pole sina üksi, vähemalt mina ... mul on miljon puudu ... 😀

  7.   Miguel Ingel DIJO

    Tere kõigile ja aitäh panuse eest, kuid tõsi on see, et oleme meeleheitel, me ei tea, mida nüüd teha, ja tuleme selle iptable'i poole, et teame, et olete süsteemide eksperdid.
    Olen Hispaanias vasturünnakuallikaga kogukonna juht ja oleme üks väheseid, kes seisavad endiselt vaevu, me saame masina vastu pidevalt rünnakuid ja muid rünnakuid teatud aja tagant, konstant eemaldab vähe, kuid lages server, kuid see, mis on aeg, teeb rohkem kahju. Meie masin on paigaldatud 6.2 sendile
    ja meil on serverite juhtimiseks tcadmin. Võite teha meile konfiguratsiooni, mis suudaks seda tüüpi rünnakut isegi natuke peatada, me oleme juba meeleheitel
    ja me ei tea, kelle poole pöörduda, teame, et botnetvõrke on kaks, üks omatehtud ja teine ​​aja ja jõu eest makstud. Oleme seda tüüpi jõhkraid rünnakuid talunud juba peaaegu aasta, kui aitaksite meid, oleksime igavesti tänulikud, sest see on nüüd jätkusuutmatu, mulle meeldib konfigureerida servereid nagu hoobie ja ma pole laps, kellele ma teile kinnitan, kuid see on minu jaoks palju. Kui soovite, et mu ts3 räägiks või mida iganes ma armastaksin, kui saaksite meid aidata, siis postitaksime siia tulemused ja kõik, mis paljude inimeste heaks lahendatud on, kinnitan teile selle aasta kõige külastatavamat ajaveebi, sest see on uskumatu, kuidas see neid rünnakuid tüütab ddos. Kuna proovisime seda iseseisvalt konfigureerida ja blokeerisime juurdepääsu masinale, pidime selle biosist vormindama, nii et kujutage ette, kuidas meil on.
    Saadan südamliku tervituse. Ja õnnitlen kadunud blogi eest. Paljud inimesed leiavad selle ajakohastatud ajaveebi. -Miguel Angel-

    1.    KZKG ^ Gaara DIJO

      Tere kuidas läheb 🙂
      Kirjutage minu meilile, aitame teid hea meelega 😀 -» kzkggaara[@]desdelinux[.]net

  8.   Arthurshelby DIJO

    Tere kutid! Siiani, kui töötan, võtke see skript, muide väga hea ... ainult üks kahtlus: kas "hiljutine" moodul ei vähenda jõudlust?

    Tervitused - aitäh / kellele meeldite?

  9.   Jose tapia DIJO

    Suurepärane kaastöö, mu sõber, panen teid Costa Rica kallistuse juhendmaterjali juurde, mida me paigaldame

  10.   Cristian Ivory Reinoso DIJO

    Tere,

    Kas skripti ei saa kasutada mitmes pordis?
    Mul on mänguserver ja saan rünnakuid nii veebi- kui ka mänguserveri pordidesse.

    Tervitus.