Detectar y Mitigar Ataques Dos/DDos con el Comando Netstat

En la mayoría de las situaciones cuando notamos que la velocidad del servidor se reduce considerablemente, el resultado puede ser debido a la saturación del tráfico. Son ataques DoS (denegación de servicio) o DDoS (Distributed Denial of service).

Estos ataques son un intento de que los recursos del servidor o la red no estén disponibles para sus usuarios. Normalmente estos ataques son dirigidos a sitios o servicios establecidos en servidores web de alto perfil, como bancos, punto de ventas, e incluso servidores de nombre raíz. En este tipo de ataque se trata de usar los recursos totales de manera que el sistema ya no pueda ofrecer sus servicios y bloquea toda comunicación con los usuarios reales.

Veremos cómo tratar de identificar las IP que genera el ataque y como bloquearlas.

  1. Todas las conexiones de internet activas en el servidor, pero solo las conexiones que fueron establecidas.

 Netstat –na

  1. Mostrar las conexiones activa de internet al servido en el puerto 80,  lo cual es el puerto http y ordena los resultados de estos. Es útil para detectar una sola inundación (flood) por lo que le da el acceso a reconocer muchas conexiones provenientes de una dirección IP

Netstat –an | grep: 80 | sort

  1. Este comando  es útil para saber cuántos SYNC REC activas se producen en el servidor. El numero debe ser muy bajo, preferiblemente menos de 5. Existen incidentes de ataques de denegación de servicio o bombas por correo, el número puede ser demasiado alto. Sin embargo, el valor puede ser normal en otro servidor.

Netstat –n p|grep SYN_REC | wc -I

  1. Para hacer una lista de todas las IP e los implicados.

Netstat –n –p | grep SYN_REC |sort -u

  1. Enumera todas las direcciones IP únicas del nodo que envía el estado de la conexione SYN_REC.

Netstat –n –p | grep SYN_REC | awk ‘{print $5}’ | awk –F: ‘¨print $ 1}’

  1. Usa el comando netstat para calcular el número de conexiones de cada dirección IP que hace al servidor

Nestat –ntu | awk ‘{print $5}’ | cut –d: -f1 |sort| uniq-c |sort -n

  1. Cantidad de IP que están conectadas al servidor mediante el protocolo TCP O UDP.

Netstat –anp |grep ‘tcp|udp’ | awk ‘{print $5}’|cut –d: -f1 | sort | uniq –c | sort -n

  1. Verificar las conexiones marcadas como ESTABLECIDOS en lugar de todas las conexiones, y muestra las direcciones para cada IP.

Netstat –ntu | grep ESTAB | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq –c |sort -nr

  1. Mostrar las direcciones IP y el número de conexiones que se conectan al puerto 80 en el servidor. El puerto 80 se usa principalmente en HTTP para peticiones Web.

Netstat –plangrep: 80|awk {‘print $5’}|cut -d: -f 1|sort|uniq -c|sort -nk 1

DETENER ATAQUE:

Al localizar las IP que atacan al servidor usamos el siguiente comando de iptables para bloquearlas en nuestro servidor. Recordando siempre el cambiar $IPADRESS por las direcciones IP que localizaste con netstat.

Iptables –A INPUT 1-s $IPADRESS -j DROP/REJECT

Y por último solo queda hacer un kill. Ósea matar todas las conexiones activas httpd y reiniciar.

MATAR CONEXIONES:

Killall –KILL httpd

REINICIAR EN REDHAT, CENTOS Y DERIVADOS:

Service httpd start

REINICIAR EN DEBIAN, UBUNTU Y DERIVADOS:

/etc/init/d/apache2 restart

Estas medidas son útiles contra los pequeños ataques y como primera medida. Contra grandes DDoS  debemos tomar otras medidas.

Deja un comentario