Una de las primeras cosas que suelo hacer en caso de notar un alto uso de CPU en algunos de mis servidores Linux es verificar la lista de procesos con top o htop, y si noto muchos procesos de Apache o Nginx, reviso rápidamente mis registros de acceso para determinar qué ha causado o está causando el aumento de CPU en mi servidor o para averiguar si hay algo malicioso en marcha.
A veces, leer los registros puede ser bastante intimidante, ya que el registro puede ser enorme y revisarlo manualmente podría llevar mucho tiempo. Además, el formato de registro en bruto puede ser confuso para personas con menos experiencia.
Al igual que en el capítulo anterior, ¡este capítulo va a ser un desafío!
Necesitas escribir un breve script bash que resuma todo el registro de acceso sin necesidad de instalar ningún software adicional.
Requisitos del script
Este script BASH necesita analizar y resumir tus registros de acceso y proporcionarte información muy útil como:
- Las 20 páginas principales con más solicitudes POST
- Las 20 páginas principales con más solicitudes GET
- Las 20 principales direcciones IP y su geolocalización
Ejemplo de script
Ya he preparado un script de demostración que puedes usar como referencia. Pero te animo a que intentes escribir el script tú mismo primero y solo entonces mires mi script.
Para descargar el script, puedes clonar el repositorio con el siguiente comando:git clone https://github.com/bobbyiliev/quick_access_logs_summary.git
O ejecuta el siguiente comando que descargará el script en tu directorio actual:wget https://raw.githubusercontent.com/bobbyiliev/quick_access_logs_summary/master/spike_check
El script no realiza ningún cambio en tu sistema; solo lee el contenido de tu registro de acceso y lo resume para ti. Sin embargo, una vez que hayas descargado el archivo, asegúrate de revisar el contenido tú mismo.
Ejecutando el script
Todo lo que tienes que hacer una vez que se haya descargado el script es hacerlo ejecutable y ejecutarlo.
Para ello, ejecuta el siguiente comando para hacer que el script sea ejecutable:chmod +x spike_check
Luego ejecuta el script:./spike_check /path/to/your/access_log
Asegúrate de cambiar la ruta al archivo con la ruta real a tu registro de acceso. Por ejemplo, si estás usando Apache en un servidor Ubuntu, el comando exacto se vería así:./spike_check /var/log/apache2/access.log
Si estás usando Nginx, el comando exacto sería casi el mismo, pero con la ruta al registro de acceso de Nginx:./spike_check /var/log/nginx/access.log
Entendiendo la salida
Una vez que ejecutes el script, podría tardar un poco dependiendo del tamaño del registro.
La salida que verías debería lucir así:
Esencialmente, lo que podemos decir en este caso es que hemos recibido 16 solicitudes POST a nuestro archivo xmlrpc.php, que a menudo es utilizado por atacantes para intentar explotar sitios web de WordPress utilizando diversas combinaciones de nombres de usuario y contraseñas.
En este caso específico, no fue un gran ataque de fuerza bruta, pero nos da una indicación temprana y podemos tomar medidas para prevenir un ataque mayor en el futuro.
También podemos ver que hubo un par de direcciones IP rusas accediendo a nuestro sitio, así que, en caso de que no esperes tráfico desde Rusia, quizás quieras bloquear esas direcciones IP también.
Conclusión
Este es un ejemplo de un script BASH simple que te permite resumir rápidamente tus registros de acceso y determinar si hay algo malicioso en marcha.
Por supuesto, también podrías revisar manualmente los registros, pero ¡es un buen desafío intentar automatizar esto con Bash!
Nota: Este contenido fue publicado inicialmente en DevDojo.
No hay comentarios.:
Publicar un comentario