Introducción:
La seguridad de un servidor web es una preocupación crítica para cualquier propietario de un sitio web. Uno de los primeros pasos para proteger tu servidor es monitorear el archivo «access.log», que registra todas las solicitudes de acceso a tu sitio web. A través del análisis de este archivo, puedes identificar posibles ataques y tomar medidas preventivas. En este artículo, te mostraremos cómo analizar el «access.log» para detectar señales de un ataque.
Paso 1: Accede al archivo «access.log»
cat /var/log/apache2/access.log
Salida ejemplo:
192.168.1.100 - - [18/Sep/2023:15:25:36 +0000] "GET /page1.html HTTP/1.1" 200 1200
192.168.1.101 - - [18/Sep/2023:15:26:12 +0000] "GET /page2.html HTTP/1.1" 404 404
192.168.1.102 - - [18/Sep/2023:15:27:01 +0000] "POST /login.php HTTP/1.1" 403 403
...
Paso 2: Identifica patrones anómalos
- Muchas solicitudes en un corto período de tiempo:
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
Salida ejemplo:
100 192.168.1.100
50 192.168.1.101
30 192.168.1.102
...
- Solicitudes a URLs sospechosas:
awk '$9 ~ /(404|403)/ {print $7}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
Salida ejemplo:
50 /page2.html
30 /admin.php
20 /wp-login.php
...
- Solicitudes con cadenas de consulta extrañas:
awk -F\" '$2 ~ /(SELECT|UNION|INSERT|UPDATE|DELETE)/ {print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
Salida ejemplo:
10 192.168.1.100
5 192.168.1.101
3 192.168.1.102
...
Paso 3: Identifica direcciones IP sospechosas
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
Salida ejemplo:
100 192.168.1.100
50 192.168.1.101
30 192.168.1.102
...
Paso 4: Toma medidas
Una vez que hayas identificado direcciones IP sospechosas, puedes tomar medidas para proteger tu servidor, como bloquear esas direcciones IP mediante un firewall o ajustando la configuración de seguridad de tu servidor web. La salida específica de este paso variará según las acciones que tomes para mitigar las amenazas detectadas.