Saltar al contenido

Cómo diagnosticar un ataque DoS/DDoS y encontrar sitios web atacados en un servidor Plesk

  1. Conectar al servidor vía SSH.
  2. Determine las direcciones IP de origen y los números de las conexiones:

    ss -tan state established | grep «:80\|:443» | awk ‘{print $4}’| cut -d’:’ -f1 | sort -n | uniq -c | sort -nr

  3. Encuentre los dominios que actualmente están bajo ataque:

    for log in /var/www/vhosts/system/*/logs/*access*log; do echo -n «$log «; tail -n10000 «$log» | grep -c 203.0.113.2; done | sort -n -k2

  4. Verifique el número de conexiones en estado SYN_RECV (posible inundación sincronizada):

    ss -tan state syn-recv | wc -l

  5. Si hay varias direcciones IP en Plesk, determine la dirección IP de destino bajo ataque:

    netstat -lpan | grep SYN_RECV | awk ‘{print $4}’ | cut -d: -f1 | sort | uniq -c | sort -nk 1

Es posible que no haya muchas conexiones establecidas al servidor web, sin embargo, puede haber muchas solicitudes que nginx atendió con éxito y se transfirieron a Apache y, en este punto, Apache está bajo ataque. Para rastrear estas solicitudes, haga lo siguiente:

  1. Navegar a /var/www/vhosts/system:

    cd /var/www/vhosts/system

  2. Genere un archivo solicitudes para obtener la cantidad de solicitudes que se realizaron en la última hora usando el siguiente comando.

    Note: As an example, 24/Jan/2022:20 will be used. Here «:20» is 8 p.m.

    for i in *;do echo -n «$i «; grep ‘24/Jan/2022:20‘ $i/logs/access_ssl_log | awk ‘{print $1}’ | wc -l;done > ~/requests

  3. Revisa el archivo generado:

    cat ~/requests | sort -k 2 -r -n | head
    example.com 24549
    example.net 18545

    test.com 3

Fuente: https://support.plesk.com/hc/en-us/articles/360000345633-How-to-diagnose-a-DoS-DDoS-attack-and-find-websites-under-attack-on-a-Plesk-server