fbpx Protección contra DoS en Linux: Detectar y Mitigar Ataques | Certificação Linux

Cómo detectar un ataque de Denial of Service en Linux

📅 03/10/2018 ⏱ 5 min ✍️ Uira Ribeiro
Linuxcomandos
Cómo detectar un ataque de Denial of Service en Linux
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

Los ataques del tipo Denial of Service son difíciles de mitigar, ya que generalmente se hacen pasar por conexiones normales y tráfico normal, pero de forma abundante, hasta que el servidor ya no tenga más recursos para resolver las solicitudes y el servicio quede indisponible.

Una de las maneras de verificar si hay demasiadas conexiones y de dónde vienen es con el comando netstat.

La manera más simple es listar las conexiones con el comando netstat -an

$ netstat -an

Conexiones Internet activas (servidores y establecidas)

Proto Recv-Q Send-Q Dirección local               Dirección remota             Estado      

cp        0      0 0.0.0.0:11211               0.0.0.0:*                   ESCUCHA       

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   ESCUCHA       

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   ESCUCHA       

tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   ESCUCHA       

tcp        0      0 127.0.0.1:11211             127.0.0.1:51898             ESTABLECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:51570             ESTABLECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:53800             ESTABLECIDA

tcp        0      0 127.0.0.1:53800             127.0.0.1:11211             ESTABLECIDA

tcp        0      0 127.0.0.1:11211             127.0.0.1:52002             ESTABLECIDA

Pero eso es difícil de contar, ya que las conexiones de ataque de denegación de servicio son rápidas.

La opción viable, aún con el comando netstat es:

$ netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

     34 127.0.0.1

      1 50.31.164.148

      1 50.31.164.147

      1 50.31.164.146

      1 35.155.143.94

      1 10.8.0.6

De esta forma, este comando contará las conexiones establecidas por dirección IP de origen.

También puedes hacer una alteración en el comando anterior, para listar, por ejemplo, solamente las conexiones en el puerto 80:

$ netstat -lan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

      1 0.0.0.0

      1 169.254.169.254

      2 127.0.0.1

     64 149.56.180.254

En este ejemplo, este servidor está siendo víctima de un ataque SYN_SENT, proveniente de la IP 149.56.180.254 con 64 conexiones, lo cual puede ser confirmado a través del netstat:

netstat -an|grep 149.56.180.254

tcp        0      0 172.30.1.187:80             149.56.180.254:38165        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:5557         SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:3605         SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:18728        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:35138        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:23965        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:41358        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:44263        SYN_RECV    

tcp        0      0 172.30.1.187:80             149.56.180.254:52759        SYN_RECV   

En este caso, podemos crear una regla de IPTABLES para hacer un DROP de todas las conexiones provenientes de esta dirección:

# iptables -I INPUT -s 149.56.180.254 -j DROP

Al ejecutar netstat nuevamente podemos observar que las solicitudes de conexiones SYN desaparecieron:

# netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

      1 0.0.0.0

      1 169.254.169.254

      2 127.0.0.1

¿Te gustó esta publicación? Conoce el curso de Firewall Iptables y el Entrenamiento en línea de Pfsense, de Certificación Linux

Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí con trial de 7 días gratis. Si ya tienes una cuenta, puedes acceder aquí.

¿Te gustó? ¡Comparte :-)

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp