DDoS ja muut hyökkäykset vs iptables (Anti-DDoS-suojaus iptablesissa)

Vältä hyökkäystä DDoS kanssa iptables Sillä on monia tapoja tehdä se, pakettikoon, yhteysrajoituksen jne. Mukaan Täällä näemme, miten saavutamme tavoitteen helposti, intuitiivisesti ja hyvin selitetyllä tavalla sekä lopetamme muut ärsyttävät hyökkäykset palvelimiamme vastaan.

# 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

Se laskee SYN-pakettien määrän (TCP-yhteys alkaa) jokaiselle IP-osoitteelle viimeisen 10 sekunnin aikana. Jos se saavuttaa 30, se hylkää kyseisen paketin, joten yhteyttä ei muodosteta (TCP yrittää useita kertoja, kun se putoaa alle asetettavan rajan).

#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

Tässä on Liitä meidän käsikirjoitus: Liitä.DesdeLinux.net (edellinen kirjoitus)

viitteet:


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   KZKG ^ Gaara dijo

    Ja siksi laitoin opetusohjelman ennen DDoS-hyökkäyksiä 😉
    Syy tai ongelma (edellinen opetusohjelma) ja ratkaisu (tämä opetusohjelma) 🙂

    1.    diatsepa dijo

      Perfecto.

  2.   koratsuki dijo

    Lasten karkit ...

  3.   Hugo dijo

    Hyvä artikkeli.

    Kaksi senttiäni:

    UDP-pakettien tapauksessa ei ole SYN-lippua, koska se on protokolla ilman valtion ohjausta. Paradoksaalisesti UUDET ja PERUSTETUT tilat ovat kuitenkin olemassa, koska iptables kantaa sisäisesti taulukoita tätä tarkoitusta varten.

    Toisaalta mielestäni on parempi käyttää DROP-kohdetta REJECT-sijasta kahdesta syystä: ensinnäkin hylkäämisellä tiedot annetaan mahdolliselle hyökkääjälle ja myös tietokone käyttää osan liitettävyydestään lähettääkseen ilmoitus hyökkäävälle joukkueelle.

    Toinen asia on, että ICMP-protokollan (ja yleensä) tapauksessa on kätevää säännellä sekä pyyntöjä että vastauksia, koska olemme todennäköisesti kiinnostuneita jossain vaiheessa pingata itseämme, ja mahdollistamalla tämän toiminnon joku voisi käyttää botnet ja väärennä lähdeosoitetta pingataksesi monia näistä vaarantuneista tietokoneista ilman loppua, ja vastaukset menisivät palvelimellemme, romahtivat sen, ellei rajoituksia aseteta.

    Sallin yleensä ICMP-tyypit 0,3,8,11 ja 12, joiden syöttöraja on yksi sekunnissa ja purske kaksi tai neljä, ja kaikki muu jätetään DROP: n tehtäväksi.

    Itse asiassa, lukuun ottamatta TCP-protokollaa, jota voidaan paremmin säätää, kaikki muut tulisi suojata anti-DDoS-toimenpiteellä äskettäisen tyyppikohdistuksen avulla. Tässä mielenkiinnon kohteena tämän moduulin kirjoittaja haluaa sijoittaa päivityksen ensin ja sitten sarjan.

    Iptables on todella joustava ja tehokas, toistaiseksi ainoa asia, jonka olen ehdottanut tekevän enkä ole vielä saavuttanut sitä (vaikka olenkin lähellä sen saavuttamista), on mahdollistaa psd-moduulin välttää porttikanavia, mutta jopa kaikella Olen oppinut työkalusta, en usko, että olen edes naarmuttanut pintaa vielä. 😉

    Joka tapauksessa tässä maailmassa sinun on aina opiskeltava.

  4.   koratsuki dijo

    Hyviä pisteitä Hugo, sanastossamme: D, kuten aina, oppiminen ...

    1.    Hugo dijo

      Muuten, sain jo psd-moduulin toimimaan minulle. Ongelmana oli, että se riippui aluksi ytimen toiminnasta, joka oli vanhentunut yhdessä patch-o-maticin kanssa, joten se poistettiin oletusarvoisesti netfilterin sisäisistä moduuleista. Joten nyt Debianissa käyttääksesi psd-laajennusta, sinun on ensin tehtävä tämä:


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

      Sitä voidaan sitten käyttää normaalisti ohjeiden mukaisesti:

      man xtables-addons

      1.    pois dijo

        Hugo, miksi et julkaise iptables.sh-ohjelmaa ehdotuksillasi tämän viestin (mikä on hyvä) komentosarjan parantamiseksi, mukaan lukien psd

        kiitos

  5.   nelson dijo

    Erinomainen artikkeli, erinomaiset iptables ja erinomainen selitys käyttäjältä @hugo. Olen yhä vakuuttuneempi siitä, että minulla on vielä paljon opittavaa.

  6.   koratsuki dijo

    Se ei ole sinä yksin, ainakaan minä ... Minulta puuttuu miljoona ... 😀

  7.   Miguel Angel dijo

    Hei kaikille, ja kiitos panoksesta, mutta totuus on, että olemme epätoivoisia, emme tiedä mitä tehdä nyt, ja tulemme sinulle tämän iptabletin suhteen, jonka tiedämme olevasi järjestelmien asiantuntija.
    Olen johtava yhteisö Espanjassa vastalakkolähteistä ja olemme yksi harvoista, jotka vielä tuskin seisovat, saamme jatkuvasti koneelta hyökkäyksiä ja muita hyökkäyksiä ajoittain, vakio poistaa vähän, mutta hämmentää palvelinta vähän, mutta se, jolla on aikaa, vahingoittaa enemmän. Koneemme on asennettu 6.2 senttiin
    ja meillä on tcadmin hallita palvelimia. Voisit tehdä meille kokoonpanon, joka voisi pysäyttää tämän tyyppisen hyökkäyksen jopa vähän, se on, että olemme jo epätoivoisia,
    emmekä tiedä kenen puoleen kääntyä, tiedämme, että on olemassa kaksi botnet-verkkoa, yksi kotitekoinen ja toinen maksaa ajasta ja voimasta. Olemme kestäneet tämän tyyppisiä julmia hyökkäyksiä melkein vuoden ajan, jos voisit auttaa meitä, olisimme ikuisesti kiitollisia, koska se on nyt kestämätöntä, rakastan konfiguroida palvelimia kuten hoobie, enkä ole lapsi, josta vakuutan sinulle, mutta tämä on paljon minulle. Jos haluat ts3: n puhuvan tai mitä tahansa, mitä haluaisin, jos voisit auttaa meitä, niin lähetämme tähän tulokset ja kaiken, mikä on ratkaistu monien ihmisten hyväksi, se olisi vuoden suosituin blogi, josta vakuutan teille koska on uskomatonta, miten se ärsyttää näitä hyökkäyksiä ddos. Koska yritimme määrittää sen itse ja estimme pääsyn koneeseen, jouduimme muotoilemaan sen biosta, joten kuvittele kuinka olemme.
    Lähetän sydämellisen tervehdyksen. Ja onnitteluni puuttuvasta blogista, monet ihmiset löytävät tämän päivitetyn. -Miguel Angel-

    1.    KZKG ^ Gaara dijo

      Hei kuinka voit 🙂
      Kirjoita sähköpostiini, autamme sinua mielellämme 😀 -» kzkggaara[@]desdelinux[.]netto

  8.   ArthurShelby dijo

    Hei kaverit tähän asti, kun työskentelen, ota tämä komento, muuten erittäin hyvä ... vain yksi epäilys: Eikö "viimeisin" moduuli heikennä suorituskykyä?

    Terveisiä - kiitos / kuka pidät sinusta?

  9.   Jose tapia dijo

    Erinomainen panos ystäväni, laitan sinut viitteisiin opastusvideoon, jonka asennamme, halauksen Costa Ricasta

  10.   Cristian Ivory Reinoso dijo

    Hei,

    Etkö voi käyttää komentosarjaa useissa portteissa?
    Minulla on pelipalvelin ja saan hyökkäyksiä sekä verkkoon että pelipalvelimen portteihin.

    Tervehdys.