Me he encontrado un artículo muy interesante en Linuxaria sobre como detectar si nuestro Servidor se encuentra bajo ataque DDoS (Distributed Denial of Service), o lo que es lo mismo,Ataque de Denegación de Servicios.
Este tipo de ataques es bastante habitual y puede ser el motivo por el cual nuestros servidores estén algo lentos (aunque también puede ser un problema de Capa 8) y nunca está de mas estar prevenidos. Para ello, se puede usar la herramienta netstat, la cual nos permite ver las conexiones de red, tablas de rutas, estadísticas de las interfaces y otras series de cosas.
Ejemplos de NetStat
netstat -na
Esta pantalla se incluyen todas las conexiones de Internet activas en el servidor y sólo las conexiones establecidas.
netstat -an | grep :80 | sort
Mostrar sólo las conexiones activas de Internet al servidor en el puerto 80 , que es el puerto http y ordenar los resultados. Útil en la detección de una sola inundación (flood) por lo que permite reconocer muchas conexiones provenientes de una dirección IP.
netstat -n -p|grep SYN_REC | wc -l
Este comando es útil para saber cuántos SYNC_REC activa se están produciendo en el servidor. El número debe ser bastante bajo , preferiblemente menos de 5 . En los incidentes de ataques de denegación de servicio o bombas por correo, el número puede ser bastante alto. Sin embargo, el valor siempre depende del sistema, por lo que un valor alto puede ser normal en otro servidor.
netstat -n -p | grep SYN_REC | sort -u
Haz una lista de todas las direcciones IP de los implicados.
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
Enumere todas las direcciones IP únicas del nodo que están enviando el estado de la conexión SYN_REC .
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Utilice el comando netstat para calcular y contar el número de conexiones de cada dirección IP que hace al servidor.
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Cantidad de direcciones IP que se conectan al servidor mediante el protocolo TCP o UDP.
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Verifique las conexiones marcadas como ESTABLECIDOS en lugar de todas las conexiones, y muestra las conexiones para cada IP.
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
Muestra y lista de direcciones IP y su número de conexiones que se conectan al puerto 80 en el servidor. El puerto 80 es utilizado principalmente por HTTP para peticiones Web.
Cómo mitigar un ataque DOS
Una vez que haya encontrado la IP que están atacando el servidor puede utilizar los siguientes comandos para bloquear su conexión a su servidor :
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
Tenga en cuenta que usted tiene que reemplazar $IPADRESS con las direcciones IP que se han encontrado con netstat.
Después de la cocción el comando anterior, MATAR todas las conexiones httpd para limpiar su sistema y reiniciarlo posteriormente usando los siguientes comandos:
killall -KILL httpd
service httpd start # Para los sistemas de Red Hat /etc/init/d/apache2 restart # Para sistemas Debian
Fuente: Linuxaria
Fuente:
http://blog.desdelinux.net/