- Conectar al servidor vía SSH.
- 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
- 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
- Verifique el número de conexiones en estado SYN_RECV (posible inundación sincronizada):
# ss -tan state syn-recv | wc -l
- 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:
- Navegar a
/var/www/vhosts/system
:# cd /var/www/vhosts/system
- 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
- Revisa el archivo generado:
# cat ~/requests | sort -k 2 -r -n | head
example.com 24549
example.net 18545
test.com 3