En la entrada de hoy voy a explicar cómo protegernos un poco ante ataques de denegación de servicio de tipo SYN Flood. Digo «un poco» puesto que la mejor defensa siempre es un firewall dedicado que pueda detener estos ataques, pero con esta entrada os voy a enseñar como «preparar» el servidor para hacer frente a estos ataques.

Primero de todo, hay que entender cómo funciona un ataque de denegación SYN Flood.

Las conexiones TCP se establecen mediante un «handshake» de tres partes, los atacantes que realizan estos ataques hacen un spoofing de su IP en la cabecera del paquete SYN que envían a nuestro servidor, de manera que cuando este paquete llega al servidor, y nuestro servidor responde con un SYN-ACK, este nunca llega a su destino, por lo que el servidor se queda con una gran cantidad de conexiones sin establecerse. Estas conexiones se encolan hasta que pasado un tiempo se descartan, lo que provoca que nuestro servidor se «sature» de estas conexiones malignas y por tanto se pierda el servicio del mismo.

 

¿Cómo afrontar estos ataques desde nuestro servidor? Pues configurando la pila TCP del servidor para que pueda reciclar estas conexiones antes y eficientemente.

Para ello, enviamos los siguientes comandos:

echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

Esto hará que nuestro servidor utilice el sistema de cookies SYN con un backlog de 2048 conexiones, y que mantenga las mismas «entre abiertas» durante 45 segundos (el valor 3 equivale a esos 45 segundos).

De esta forma, descartamos antes estas conexiones malignas y las podremos afrontar mejor.

Si queremos hacer los cambios permanentes, basta con editar /etc/sysctl.conf y añadir:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3

¡Un saludo!

 

 


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *