[GUIA]Bloquear Ataques por DDoS

Topic created · 31 Mensajes · 7190 Visitas
  • Bueno aqui veo a muchos ...que saven mucho de ataques DDOS ... pero el guabina que pasa tanta gente lo odia i nadie hace nada o es que requeson es el puto amo? xD ... weno ...no probe la guia pero iwal +1 espero que funcione 🙂

  • ami no me sale el pf.config solo el pf.os me podrian ayudar?

  • ami no me sale el pf.conf solo el pf.os me podrian ayudar?

  • para el que creo la guia , primero se le agradeceria qe responda los comentarios, y dudas,

    = tengo una , donde creo el script bloqueo , , , y la lista la creo y la dejas en blanco,

    no entiendo, pon el post de donde lo sacaste ,

    gracias

  • esto no sirve men, solo es un copy & traducción & paste, y ademas el script esta hecho para no dejar pasar ninguna ip que no sea local o que tengas en una lista de ip permitida, cosa que no es viable para un servidor, ademas que se salto la parte de compilar el kernel con el pf y sin eso no funciona el pf.

    aca el link original http://home.earthlink.net/~valiantsoul/pf.html

  • DJZed en este foro eres el unico k no se merece respeto.. asi k nose para k te enojas tanto.. :|||:

  • gracias aquiles, por la respuesta ,

  • @DjZed said:

    Antes de empezar la guía, vamos a ver primero que es un ataque mediante DDoS.

    DDoS viene de la abreviación en inglés de "Distributed Denial Of Service", que en español viene a ser "Ataque de Degeneración de Servicio". Básicamente este tipo de ataques se basa en sobrecargar los recursos de la máquina o lo que se vaya a atacar. Es un ataque bastante común y que está jodiendo bastante, así que aquí la guía para para el ataque DDoS en nuestros servidores de Metin2 por FreeBsd.

    Primero vamos a activar el cortafuegos(firewall) y para ello debemos agregar las siguientes líneas al archivo rc.conf el cual se encuentra en la carpeta /etc/:

    pf_enable="YES"
    pf_rules="/etc/pf.conf"
    pf_flags=""
    pflog_enable="YES"
    pflog_logfile="/var/log/pflog"
    pflog_flags=""
    

    Ahora vamos a configurar el firewall, para ello vamos a /etc/pf.conf/ y lo abrimos con el editor de texto que utilicemos y le añadimos las siguientes líneas:

    block in all
    pass in quick on lo0
    pass out quick on lo0
    table  persist file "/var/db/lalista(lo llamamos como queramos)"
    block quick from 
    pass in quick on sis0 proto tcp from any to any port 22 keep state
    pass in quick on sis0 proto tcp from any to any port 80 keep state
    pass in quick on sis0 proto tcp from any to any port 3690 keep state
    pass out all keep state
    

    De esta manera bloqueamos las entradas.

    Ahora vamos a crear "lalista"(o el nombre que hayan escogido ustedes) y para ello la damos el siguiente permiso:

    touch /var/db/lalista
    chmod 644 /var/db/lalista
    

    Ahora vamos a crear el script al cual vamos a llamarlo bloqueo y para guardarlo le daremos permiso chmod 751 :

    #!/usr/bin/perl
    
    use strict;
    
    my @assholes = ();
    
    open (IN, "/var/log/auth.log");
    while () {
            if ($_ =~ /Invalid user.*from ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) {
                    push(@assholes, $1);
            }
            if ($_ =~ /Did not receive identification string from ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) {
                    push(@assholes, $1);
            }
    }
    close (IN);
    
    @assholes = sort {lc($a) cmp lc($b)} @assholes;
    
    my @allowedIPs = ();
    open (IN, "/var/db/allowed-ips");
    while () {
            if ($_ =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {
                    push(@allowedIPs, $_);
            }
    }
    close (IN);
    
    chop(@allowedIPs);
    
    my $tmp = "";
    foreach my $asshole (@assholes) {
            if ($asshole eq $tmp) {
                    $asshole = "";
            } else {
                    if ($asshole =~ /127\.0\.0\.1/) {
                            $asshole = "";
                    }
                    if ($asshole =~ /192\.168\.[0-9]+\.[0-9]+/) {
                            $asshole = "";
                    }
                    foreach my $allowedIP (@allowedIPs) {
                            if ($asshole =~ /$allowedIP/) {
                                    $asshole = "";
                            }
                    }
                    $tmp = $asshole;
            }
    }
    
    @assholes = sort {lc($b) cmp lc($a)} @assholes;
    
    my $popCount = 0;
    foreach my $asshole (reverse @assholes) {
            if ($asshole eq "") {
                    $popCount++;
            }
    }
    
    for (my $i = 0; $i < $popCount; $i++) {
            pop (@assholes);
    }
    
    my $list = "";
    foreach my $asshole (@assholes) {
            $list = $list . $asshole . " ";
    }
    
    exec "/sbin/pfctl -t bloqueo -T add $list";
    

    Ahora vamos a /etc/syslog.conf y lo abrimos para editarlo y añadirle la siguiente línea:

    auth.info;authpriv.info                         | exec /usr/bin/perl /sbin/bloqueo.pl
    

    de esta manera nos ejecutará el script para el bloqueo de ips externas.

    Espero que les sirva :miau:

    bueno muchas gracias pero no podrias esplecar un poko mas claro es k en alguinos puntos no te entendi bn

  • Deberían de abrir una sección nueva que se llame algo así como escribir PAJA. En vez de ayudar lo que hacen es vanagloriarse de tontadas, a los que tienen la duda con mucho gusto si pudiera los ayudara. Para ayudarlos en lo que pueda mi msn es: luis.a.fernandez.g@hotmail.com

    Un saludo no pajero.

  • Perdonen por abrir el post pero me hizo gracia algo:

    #! / Usr / bin / perl

    use strict;

    my @ pendejos = ();

    abrir (IN, "/ var / log / auth.log");
    mientras que () {
    if ($ _ = ~ / usuario no válido. * de ([0-9] + \. [0-9] + \. [0-9] + \. [0-9] +) /) {
    push (@ pendejos, $ 1);
    }
    if ($ _ = ~ / No recibió cadena de identificación a partir de ([0-9] + \. [0-9] + \. [0-9] + \. [0-9] +) /) {
    push (@ pendejos, $ 1);
    }
    }
    cerrar (IN);

    @ Pendejos = {tipo lc ($ a) CMP LC ($ b)} @ imbéciles;

    my @ allowedIPs = ();
    abrir (IN "/ var / db / permitido ips-");
    mientras que () {
    if ($ _ = ~ / [0-9] + \. [0-9] + \. [0-9] + \. [0-9] + /) {
    push (@ allowedIPs, $ _);
    }
    }
    cerrar (IN);

    chop (@ allowedIPs);

    my $ tmp = "";
    foreach my $ gilipollas (@ pendejos) {
    if ($ gilipollas eq $ tmp) {
    $ Ano = "";
    } Else {
    if ($ gilipollas = ~ / 127 \ .0 \ .0 \ .1 /) {
    $ Ano = "";
    }
    if ($ gilipollas = ~ / 192 \ .168 \. [0-9] + \. [0-9] + /) {
    $ Ano = "";
    }
    foreach my $ allowedIP (@ allowedIPs) {
    if ($ gilipollas = ~ / $ allowedIP /) {
    $ Ano = "";
    }
    }
    $ Tmp = $ gilipollas;
    }
    }

    @ Pendejos = {tipo lc ($ b) cmp lc ($ a)} @ imbéciles;

    my $ popCount = 0;
    foreach my $ gilipollas (reverse @ pendejos) {
    if ($ gilipollas eq "") {
    $ PopCount + +;
    }
    }

    para (my $ i = 0; $ i