Mi servidor bajo ataque DDoS, ¿cómo puedo protegerme?

En caso de un ataque de Denegación de Servicio Distribuido, en adelante DDoS, es importante tener en cuenta que normalmente es imposible evitar por completo que se realice el ataque, pero sí es posible mitigar sus efectos y proteger el servidor para que pueda seguir funcionando de manera normal.

Por supuesto podrías aumentar la capacidad del servidor para poder soportar el tráfico adicional. Esto se puede hacer a través de la adición de más recursos como CPU, RAM o ancho de banda. Aunque normalmente resultará insuficiente si el ataque DDoS es severo.

Lo primero es intentar identificar el tipo de ataque que está sufriendo tu servidor. Esto te ayudará a elegir la mejor técnica de mitigación. Puedes utilizar herramientas de monitorización de redes como MRTG o SmokePing para determinar el tipo y el origen del ataque.


La solución rápida y manual: iptables

Ahora imagina que tienes un tienes un servidor en un VPS con un servidor web Apache2 y tu aplicación web está recibiendo un ataque de DDoS desde varias geolocalizaciones. Una de las herramientas que puedes utilizar rápidamente como contramedida es iptables, ya sabéis, el firewall de facto en Linux que permite establecer reglas para filtrar el tráfico entrante y saliente. Los pasos más comunes para mitigar el ataque con iptables serían los siguientes:

- Identifica la fuente del ataque: es importante saber de dónde provienen los paquetes de datos que están generando el ataque, para poder bloquearlas. Puedes utilizar herramientas como tcpdump o wireshark para analizar el tráfico y determinar las direcciones IP de las fuentes del ataque.

- Bloquea las direcciones IP de las fuentes del ataque: una vez que has identificado las direcciones IP de las fuentes del ataque, puedes utilizar iptables para bloquearlas. Por ejemplo, puedes usar el siguiente comando para bloquear todo el tráfico entrante de una determinada dirección IP:

iptables -A INPUT -s x.x.x.x -j DROP

- Si el ataque está originando desde varias direcciones IP, puedes bloquear el tráfico de todas esas direcciones IP usando una lista negra. Para crear una lista negra, primero crea un archivo de texto que contenga una dirección IP por línea. Luego, puedes utilizar el siguiente script para cargar la lista negra en iptables:

#!/bin/bash

# Nombre del archivo de la lista negra
BLACKLIST_FILE="/ruta/al/archivo/lista_negra.txt"

# Cargar la lista negra en iptables
while read IP; do
   iptables -A INPUT -s $IP -j DROP
done < $BLACKLIST_FILE


- Limita el ancho de banda disponible para cada IP: otra opción es limitar el ancho de banda disponible para cada dirección IP, para evitar que una sola fuente consuma todos los recursos disponibles. Puedes hacerlo con el siguiente comando:

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT

- También puedes usar el siguiente comando para permitir solo un determinado número de conexiones por minuto desde una dirección IP:

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 10/minute --limit-burst 10 -j ACCEPT

- Finalmente, asegúrate de guardar las reglas de iptables para que se apliquen después de reiniciar el servidor. Puedes hacerlo con el siguiente comando:

iptables-save > /ruta/al/archivo/iptables.rules

Si el ataque es muy severo, puede ser necesario desactivar temporalmente el protocolo TCP SYN cookies. Esto se puede hacer editando el archivo "/proc/sys/net/ipv4/tcp_syncookies" y estableciendo su valor en "0". Sin embargo, ten en cuenta que desactivar SYN cookies puede aumentar la carga en el servidor y hacer que sea más vulnerable a ataques.

La solución pro: servicios especializados contra ataques DDoS

También puede utilizar herramientas externas, como un servicio de protección contra ataques DDoS, para ayudar a mitigar el ataque. Estos servicios suelen tener servidores distribuidos por todo el mundo que actúan como una barrera entre su servidor y los atacantes, filtrando el tráfico malintencionado y permitiendo solo el tráfico legítimo.

Algunas de las más conocidas incluyen:

  • Cloudflare: El precio del servicio varía en función del plan elegido y del tráfico de la web, pero puede oscilar entre los 200 y los 20.000 dólares al año.
  • Akamai: El precio del servicio varía en función de la escala del ataque y del tráfico de la web, pero puede oscilar entre los 1.000 y los 100.000 dólares al año.
  • Imperva: El precio del servicio varía en función de la escala del ataque y del tráfico de la web, pero puede oscilar entre los 1.000 y los 100.000 dólares al año.
  • Prolexic: El precio del servicio varía en función de la escala del ataque y del tráfico de la web, pero puede oscilar entre los 1.000 y los 100.000 dólares al año.

Otras contramedidas

- poner un WAF (Web Application Firewall) delante del servidor web ya que en el caso de un ataque de DDoS puede ayudar a proteger el servidor de la siguiente manera:

  •  Filtrando el tráfico: un WAF puede analizar el tráfico entrante y bloquear los paquetes de datos que cumplan con ciertos criterios, como patrones de comportamiento sospechosos o direcciones IP conocidas por ser utilizadas en ataques de DDoS.
  • Redirigiendo el tráfico a una red de protección: algunos WAF están conectados a una red de servidores que pueden absorber el tráfico malintencionado y proteger el servidor del ataque.
  • Acelerando el rendimiento: algunos WAF también pueden mejorar el rendimiento de la web al optimizar el tráfico entrante y reducir la carga del servidor.

- Utilizar sistemas de filtrado de paquetes como Fail2ban para bloquear automáticamente las conexiones que cumplan con ciertos criterios, como intentos de acceso fallidos o comportamientos sospechosos.

- usar un sistema de detección y prevención de ataques (IDS/IPS): un software o hardware que monitoriza el tráfico de red y detecta patrones que indican la presencia de un ataque en curso. Una vez detectado el ataque, el sistema puede tomar medidas para prevenirlo o mitigar sus efectos.
    
- utilizar un servicio de red privada virtual (VPN): esto cifra el tráfico entre tu servidor y el usuario final, lo que hace que sea más difícil para los atacantes llevar a cabo un ataque DDoS.

- otra forma de mitigar un ataque DDoS es utilizar un sistema de caché de contenido, como una red de entrega de contenido (CDN). Esto alivia la carga del servidor principal al distribuir el tráfico a través de una red de servidores en diferentes ubicaciones.

Y estas son las principales recomendaciones... espero que sirvan de breve introducción y orientación y que durante 2023 no tengáis que utilizarlos.

Comentarios

  1. Como hagan un ataque de syn flood a un puerto que tengas que tener abierto o metes -t RAW o pasan

    ResponderEliminar
  2. creo que el bloqueo de las ip funcionaría mejor con ipset

    ResponderEliminar

Publicar un comentario