Like Tree3Likes
  • 3 Post By Daniel B.

sobrecarga de servidor (ataque?) (ayuda)

Esta es una discusión para el tema sobrecarga de servidor (ataque?) (ayuda) en el foro Configuración de Servidores, bajo la categoría Área Administrativa; Hola cordial saludo a todos Vengo a cometarles un problema muy grande que tengo con mi web, resulta que hace un momento todo iba bien cuando de repente resutaron mas de 8 mil personas conectadas, ...
Página:


Resultados 1 al 6 de 6

Temas similares

  1. problemas con ataque Respuestas: 6
    Por Amazon en el foro vBulletin 4 - Preguntas, Problemas y Soluciones
  2. Por Neoka21 en el foro Archivos de vBulletin 3.0 - 3.7
  3. Sobrecarga de la DB Respuestas: 5
    Por Amapola en el foro vBulletin 3 - Preguntas, Problemas y Soluciones
  4. Por pappocapo en el foro vBSEO
  5. Por illi.pro en el foro vBulletin 3 - Preguntas, Problemas y Soluciones
  1. #1
    Miembro Array
    Fecha de ingreso
    05 feb, 10
    Mensajes
    20
    Gustado
    0 Veces
    Me Gustan
    3 Veces

    Predeterminado sobrecarga de servidor (ataque?) (ayuda)

    Hola cordial saludo a todos

    Vengo a cometarles un problema muy grande que tengo con mi web, resulta que hace un momento todo iba bien cuando de repente resutaron mas de 8 mil personas conectadas, cosa que mi web aun no ha recibido somos demasiado nuevas y lo maximo conseguido eran 40 personas a la vez.



    Tengo gente inescrupulosa detras de mi web, es un concepto de web que en mi ciudad es demasiado perseguida por personajes que ya tiene establecidas las suyas y conocen del tema en realidad yo no soy un gran mago para esto , pero entre un amigo y yo nos defendemos, y recurrimos a ustedes por que veo que son gente demasiado entendida del tema y quisiera como unos tips, trucos como le quieran llamar de como puedo darle mas seguridad a mi servidorcomo puedo hacer que no sea tan facil a la hora de ser vulnerado, no se si sera posible pero les agradeceria toda la ayuda que me pudieran brindar.

    imagengt..jpg esta captura la alcance a hacer cuando el nivel de visitas fue bajando se demoro cerca de una hora en volver a la normalidad , la ip que aparecia decia lo siguiente:
    hosted-by.leaseweb.com.

    Muchas gracias a todos quienes nos puedan colaborar.

  2. #2
    Miembro especial Miembro de platino Array Avatar de Daniel B.
    Fecha de ingreso
    25 abr, 09
    Ubicación
    cl 56 Nicolas de Federman, Apt 402
    Mensajes
    312
    Gustado
    16 Veces
    Me Gustan
    2 Veces

    Predeterminado Re: sobrecarga de servidor (ataque?) (ayuda)

    No creo que te estén atacando,
    ¿Tu sitio web se vio lento en la avalancha de visitas?. Lo primero que podrías hacer es denegar el acceso a la IP "atacante".

    Verifica las conexiones entrantes al servidor, y a qué servicios se conectan:
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

    netstat -np | grep SYN_RECV | awk '{print $5}' | cut -d. -f1-4 | cut -d: -f1
    | sort -n | uniq -c | sort -n
    Ejemplo:
    tcp 0 0 192.168.0.3:80 192.168.0.5:60808 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60761 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60876 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60946 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60763 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60955 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60765 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60961 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60923 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:61336 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:61011 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60911 SYN_RECV
    tcp 0 0 192.168.0.3:80 192.168.0.5:60758 SYN_RECV
    Donde la IP 192.168.0.3 es la IP del servidor y 192.168.0.5 la del atacante, claramente es un SYN Flooding al servidor de apache que conecta por el puerto 80, también se llama SYN_RECV.

    Puedes mirar los logs del mod_evasive.

    Deteniendo el ataque
    Hay varias formas de hacerlo, te recopilaré algunas:
    Confirma que el uso de CPU no es muy alto y tienes muchos procesos corriendo en apache
    Comandos como Uptime - "w":
    Server@work >w
    12:00:36 up 2 day, 15:28, 6 users, load average: 0.60, 0.60, 0.47
    Cuenta los procesos HTTP, para hacer una comparación.
    [root@server root]# ps -aux|grep -i HTTP|wc -l
    22
    Determinar la red atacante
    Las conexiones a un servidor oscilan entre 100 más o menos, en un ataque estas obviamente se incrementan, es en ese momento cuando debes saber qué redes están lanzando ese ataque, como serán muchas máquinas esclavas, lo que más importa es la red, para poder bloquearla, ejecuta este comando para ver las conexiones:
    bash# netstat -lpn|grep :80|awk '{print $5}'|sort
    Si vez muchas conexiones de una IP entrante, probablemente sea esa la red atacante, claro, estamos más o menos repitiendo el primer proceso, pero esto en tiempo real.

    Parar el ataque

    1. Intenta usar 'iptables' o 'apf'
    iptables -A INPUT -s <Source IP> -j DROP
    Pero mira el syslog, porque hay falsos positivos, que son ips que no hacen flood, para prevenirlas con mod_evasive:
    <IfModule mod_evasive.c>
    # añadir estas líneas que corresponden a rangos de los bots de google
    DOSWhitelist 66.249.65.*
    DOSWhitelist 66.249.66.*
    </IfModule>
    Recuerda darle buen funcionamiento al mod_evasive:
    MaxRequestsPerChild 0, ponerle un valor alto como MaxRequestsPerChild 10000, no Ilimitado!.
    Acá hay ejemplos de configuración: Mod_evasive | eth0.us - Server admin info for cPanel, plesk, ensim and linux!


    Si usas apf entonces añade esas direcciones a /etc/apf/deny_hosts.rules, es una estrategia para bloquear la red, sin embargo, debes contactar al datacenter, tu proveedor, informales de la situación.

    Instala Portsentry para evitar los escaneos al host.

    2. Con mod_evasive.
    Esto es más de prevención, añadiendo esto, hará que 60 conexiones por 3/2 segundos es ya alarma de ataque:
    <IfModule mod_evasive.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 60
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 900
    </IfModule>
    <IfModule mod_evasive.c>
    DOSHashTableSize 3097
    DOSPageCount 1
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    </IfModule>
    4. Usando firewalls dinámicos tcplimit, ipdrop, ipblock...

    5. Usando reglas del iptables
    # todo el trafico syn
    -P INPUT DROP
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
    -A INPUT -m state --state INVALID -j DROP
    -P OUTPUT DROP
    -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
    -A OUTPUT -m state --state INVALID -j DROP
    -P FORWARD DROP
    -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
    -A FORWARD -m state --state INVALID -j DROP
    -A INPUT -i lo -j ACCEPT
    -A OUTPUT -o lo -j ACCEPT
    -A FORWARD -i lo -o lo -j ACCEPT


    # sube las cargas pero muchos wwww buena señal
    -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable



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



    # igual que el de arriba pero muy bestia
    -N syn-flood
    -A INPUT -i eth0:2 -p tcp --syn -j syn-flood
    -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
    -A syn-flood -j DROP


    -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit
    1/sec -j ACCEPT
    -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit
    --limit 1/sec -j ACCEPT

    # no es muy efectivo
    -A INPUT -s 0/0 -p tcp --syn --source-port 1000:5000
    --destination-port 80 -j DROP

    # no es muy efectivo
    -A INPUT -p tcp -m tcp --dport 80 --sport 1000:5000 --tcp-flags SYN SYN -j DROP

    # Descartar paquetes mal formados

    -N PKT_FAKE
    -A PKT_FAKE -m state --state INVALID -j DROP
    -A PKT_FAKE -p tcp --dport 80 --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
    -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,FIN SYN,FIN -j DROP
    -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,RST SYN,RST -j DROP
    -A PKT_FAKE -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
    -A PKT_FAKE -f -j DROP
    -A PKT_FAKE -j RETURN

    # syn-flood
    -N syn-flood
    -A INPUT -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
    -A FORWARD -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
    -A syn-flood -m limit --limit 4/s --limit-burst 16 -j RETURN
    -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
    -A syn-flood -j DROP

    # By pepel. Requiere módulo "recent"
    -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
    -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.


    iptables -I INPUT -p tcp –syn -m recent –set
    iptables -I INPUT -p tcp –syn -m recent –update –seconds 10 –hitcount 30 -j DROP

    Lo que hace es contar el número de paquetes SYN (inicio de conexión TCP) para
    cada dirección IP en los últimos 10 segundos. Si llega a 30 descarta ese paquete por
    lo que no se establecerá la conexión (el TCP volverá a intentar varias veces,
    cuando baje del límite podrá establecerse).(elhacker)
    Hay muchas formas más!.

    Prevenir el ataque

    Bueno, no es mucho que decir, no es posible rehusar totalmente un ataque DDoS/DoS, es posible prevenirlo, y en general estar muy atento, ya sea que tu red termine de esclava o tu máquina atacada, hay que saber defenderse y tener paciencia.

    • Instalar un firewall que tenga filtros de seguridad. Cómo APF Projects | R-fx Networks
    • Usar un HIDS, Sistema de detección de intrusos en un Host, para alertar de escaneos a puertos y posibles intentos de hackeo.

    Pues de pronto me dedique a hacer una mega-tutorial recopilando toda la documentación respecto a ataques a servidores web, ya que es un tema interesante y de mucha ayuda.

    Byebye.
    Última edición por Daniel B.; 28/02/2010 a las 15:16
    Andrés Durán, Ryuk y Franco les gusta esto.
    vBHispano | Políticas
    Zend | Certified Engineer

  3. #3
    Miembro especial Miembro de diamante Array Avatar de Andrés Durán
    Fecha de ingreso
    23 abr, 09
    Ubicación
    Costa Rica
    Mensajes
    5,478
    Gustado
    1988 Veces
    Me Gustan
    142 Veces

    Predeterminado Re: sobrecarga de servidor (ataque?) (ayuda)

    Impecable tu mensaje Daniel.
    "... porque creo firmemente en que algún día habrá una sola nación, hablaremos un mismo idioma, compartiremos la misma ilusión, estaremos unidos por un mismo sentimiento y las fronteras dejarán de existir... y algún día cambiaremos, y todo será mejor... "

  4. #4
    Miembro Array
    Fecha de ingreso
    05 feb, 10
    Mensajes
    20
    Gustado
    0 Veces
    Me Gustan
    3 Veces

    Predeterminado Re: sobrecarga de servidor (ataque?) (ayuda)

    wow!, no sabes cuanto te agradezco , me pondre a trabajar por que en este instante estoy siendo atacado , normalmente pasa de 2 a 3 veces por dia, MAGISTRAL explicacion. GRACIAS, en cuanto termine les aviso como me fue .

  5. #5
    Miembro especial Miembro de diamante Array Avatar de Ryuk
    Fecha de ingreso
    28 feb, 09
    Ubicación
    Chile!
    Mensajes
    1,357
    Gustado
    536 Veces
    Me Gustan
    221 Veces

    Predeterminado Re: sobrecarga de servidor (ataque?) (ayuda)

    Perdon por off-topic pero Daniel te mereces un aplauso!

    Impecable!


  6. #6
    Miembro especial Miembro de diamante Array Avatar de Eduardo Leon
    Fecha de ingreso
    11 oct, 09
    Ubicación
    Peru - Lima
    Mensajes
    772
    Gustado
    146 Veces
    Me Gustan
    23 Veces

    Predeterminado Re: sobrecarga de servidor (ataque?) (ayuda)

    haha muy bueno el tutorial.

    aunque los ataques son por inyecciones sql .

    aunk no hay muchas, pero dañan un tanto a nuestro sistema .
    Trata de buscar el post antes de pedir ayuda. Muchos usuarios postean las mismas preguntas que ya antes han sido respondidas.
    Foro de Animes Y Mangas - Manual de vBulletin
    No dare soporte por MP (use los foros para realizar tal accion)