¿Cómo lidiar con este ataque de denegación de servicio en un servidor Apache?

15

Hoy fui blanco de diferentes ataques. El último creó este tráfico en el puerto 80. Apache está inactivo y la carga en el servidor sigue siendo alta.

El firewall está habilitado. ¿Alguna sugerencia?

15:27:10.203993 IP 188.125.110.42.38818 > 190.10.34.115.http: Flags [S], seq 3395115767, win 29200, options [mss 1460,sackOK,TS val 22777069 ecr 0,nop,wscale 7], length 0
15:27:10.204050 IP 103.21.182.66.62502 > 190.10.34.115.http: Flags [S], seq 3158122291, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
15:27:10.204079 IP 50.143.120.99.54622 > 190.10.34.115.http: Flags [S], seq 3624243404, win 29200, options [mss 1460,sackOK,TS val 273756706 ecr 0,nop,wscale 7], length 0
15:27:10.204128 IP 62.216.187.156.42248 > 190.10.34.115.http: Flags [S], seq 846253572, win 29200, options [mss 1460,sackOK,TS val 523062741 ecr 0,nop,wscale 7], length 0
15:27:10.204305 IP 23.105.195.199.38172 > 190.10.34.115.http: Flags [S], seq 2631287484, win 14600, options [mss 1460,sackOK,TS val 2125155826 ecr 0,nop,wscale 7], length 0
15:27:10.204774 IP 76.111.172.248.39602 > 190.10.34.115.http: Flags [S], seq 2199780458, win 29200, options [mss 1460,sackOK,TS val 249941894 ecr 0,nop,wscale 7], length 0
15:27:10.204797 IP 104.154.65.106.44962 > 190.10.34.115.http: Flags [S], seq 2397138535, win 28400, options [mss 1420,sackOK,TS val 1992688634 ecr 0,nop,wscale 7], length 0

Edite: Esta fue nuestra solución al problema.

    
pregunta antony 29.01.2017 - 15:42
fuente

4 respuestas

20

Este es un ataque de inundación SYN clásico, las medidas preventivas incluyen

  • hash de paquetes de sincronización, implementación de cookies de sincronización
  • comprobando si el cliente envía correctamente RST después de que un paquete no válido le fue enviado de vuelta
  • el software de mitigación de ddos a menudo ofrece la caducidad de paquetes específicos de sincronización basados en el filtrado avanzado
  • no almacena todo el paquete de sincronización como referencia, solo la IP y el número de secuencia (también requiere que se instale un firewall / software adicional de su parte)
respondido por el Rápli András 29.01.2017 - 16:22
fuente
10

Limit NEW traffic

sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT

Limit established traffic

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 50/second --limit-burst 50 -j ACCEPT

Habilite syncookies en su núcleo (recomendado por @ Rápli András )

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Instale y configure ddos-deflate

  

Características notables:

     
  • Es posible incluir en la lista blanca las direcciones IP, a través de /etc/ddos/ignore.ip.list .
  •   
  • Es posible agregar nombres de host a la lista blanca, a través de    /etc/ddos/ignore.host.list .
  •   
  • Archivo de configuración simple: /etc/ddos/ddos.conf
  •   
  • Las direcciones IP se desbloquean automáticamente después de un tiempo preconfigurado   límite (predeterminado: 600 segundos)
  •   
  • El script puede ejecutarse como un trabajo cron en la frecuencia elegida a través de   archivo de configuración (predeterminado: 1 minuto)
  •   
  • El script puede ejecutarse como un demonio a la frecuencia elegida a través de   archivo de configuración (predeterminado: 5 segundos)
  •   
  • Puede recibir alertas por correo electrónico cuando se bloquean las direcciones IP.
  •   
  • Controlar el bloqueo por estado de conexión (ver man netstat).
  •   
  • Detección automática del firewall.
  •   
  • Soporte para APF, CSF e iptables.
  •   
  • Registra eventos en /var/log/ddos.log
  •   
  • Utiliza tcpkill para reducir la cantidad de procesos abiertos por los atacantes.
  •   
    
respondido por el GAD3R 29.01.2017 - 19:48
fuente
5

SOLUCIONADO

En este caso, fue un ataque de synflood con sitios comprometidos de Wordpress que generó toneladas de tráfico (pingback) a nuestro sitio en Gbytes / hora.

Aquí está la descripción completa del ataque. En la referencia / encabezado puede leer "Wordpress" como agente de usuario: enlace

El bloqueo de estas IP con una regla de firewall (ver lista en el enlace) resolvió el problema. Comparto la lista, sin ninguna responsabilidad de maldición.

LISTA DE 5000 IPs involucradas para bloquearlas con firewall.

    
respondido por el antony 30.01.2017 - 00:00
fuente
2

La salida que está mostrando sugiere que está recibiendo una avalancha de paquetes SYN y no responde a ninguno de ellos. La extrapolación de los números mostrados equivale a aproximadamente 7.5kpps. Incluso suponiendo un tamaño máximo de paquete de 60 bytes de encabezado de IPv4 y 60 bytes de encabezado de TCP que aún totaliza menos de 8 Mbit / s.

Entonces, si su conexión de red es de 10Mbit / s o más rápida, debería poder recibir ese tráfico suponiendo que tiene suficiente capacidad de procesamiento para manejar la cantidad de paquetes por segundo.

A partir de la información limitada en su pregunta, es imposible saber qué está causando la carga actual. Es posible que las reglas de su firewall estén estructuradas de manera que cada paquete consuma una cantidad significativa de tiempo de CPU en el firewall. Si ese es el caso, necesita reestructurar las reglas de su firewall para que sea más eficiente.

Parece que ha configurado un servidor de seguridad para eliminar todos los paquetes de forma silenciosa. Eso puede empeorar el problema porque los clientes legítimos retransmitirán sus paquetes SYN hasta que responda (o el tiempo de espera del cliente).

En lugar de soltar los paquetes en silencio, le recomiendo que responda a tantos de ellos como lo permita su ancho de banda ascendente. Las respuestas deberían ser paquetes SYN-ACK o paquetes RST.

Si está experimentando una inundación SYN en la que no puede ver la diferencia entre paquetes de ataque y paquetes legítimos, y si necesita seguir atendiendo solicitudes de clientes legítimos, le recomiendo que active las cookies SYN como se sugiere en answer por Rápli.

En tales circunstancias, las cookies SYN pueden ser la diferencia entre que su servidor responda lentamente bajo la carga o no responda en absoluto.

No bloquee las direcciones IP basadas solo en los paquetes SYN. Si solo ve un paquete SYN, la IP de origen puede estar falsificada. Y el bloqueo basado en eso no le servirá de nada y lo abrirá a un tipo diferente de ataque DoS.

Si un cliente completa un protocolo de enlace y luego envía tráfico incorrecto, puede considerar el bloqueo de la dirección IP. Sin embargo, hacerlo con IPv4 puede provocar daños colaterales, por lo que debe hacerse solo como una última medida. Si bloquea el tráfico de esa manera, asegúrese de responder con los paquetes RST y asegúrese de que las reglas de su firewall estén estructuradas de manera que se puedan evaluar con un consumo mínimo de CPU.

    
respondido por el kasperd 30.01.2017 - 07:23
fuente

Lea otras preguntas en las etiquetas