Seguridad: Analisis de Logs

Es muy probable que si tienes alguna duda y preguntes en un foro o grupo te respondan que vayas a los logs. Se, son groseros, pero hazles caso, incluso la IA lo recomienda XD

Introducción

Es muy probable que te encuentres con un problema extraño que no sabes como resolver. No es tan complicado como parece, pero sin pistas, no tienes idea de donde empezar a picar. Así que vas y preguntas. Es casi seguro que no te quieran responder sin que vayas a revisar los logs. No estan siendo groseros, al menos no esta vez. Pero tienen razón.

Los logs del sistema pueden ser intimidantes pero son muy necesarios para resolver los problemas que se te presenten. No les tengas miedo, porque seguro te ayudan a terminar tu sesión de depuración mas rápido que andar depurando o preguntadole a una IA que seguro tambien te mandara a los logs. Asi que haste una idea, hace falta que sepas como consultarlos.

Hay varios logs dependiendo de lo que quieras revisar. Si es un problema del FrontEnd, seguro que no necesitas saber nada de linux ni sistemas operativos. Basta con un click derecho sobre la pagina rota y buscas la opción de Inspector de elementos. Se abrirá una nueva ventana que contiene muchísima información útil que te puede explicar como funciona la pagina y el resto es solo ver donde salen los errores.

Si en tu consola del navegador te pillas errores de estado como 404, 503, y casi cualquier cosa que no sea 202, seguro que toca irse a dar una vuelta por el BackEnd. Si tienes acceso al servidor, vas a tener que explorar si lo que tienes es un VPS o instalación local o un Panel Web como cpanel o hestia.

Si tienes un VPS o instalación local, no hay pierde. Vas a buscar el directorio /var/logs/ y encuentras, no solo de tu servidor sino de todo el sistema. No te distraigas, busca el servidor web que tengas y abre el que diga access y error. Puedes jugar con tu código bugeado y provocar el error continuamente para que quede claro donde se genera, siempre estará al final del archivo y si tienes ganas de dejar el log abierto en tiempo real, puedes usar el comando tail -f /var/log/nginx/misitio.access.log quedara el código corriendo en el fondo y puedes ver en vivo como se genera el error. (te recomiendo consultar principalmente el error.log)

Viste que no es para tanto? Si tienes un panel de control como hestia o Cpanel, seguro es mas fácil de llegar y tendrás un archivo similar. Todos los logs funcionan de la misma forma y te sirven para entender que ha fallado y como arreglarlo. Así que si, esos creídos a los que les pediste ayuda y te mandaron a ver los logs tenían razón. Baja la guardia esta vez y busca lo que parezca sospechoso. Seguro estarán mas dispuestos a ayudarte si le dices que acompaña al error 503 que te esta atormentando.

Ahora bien, si tienes muchos subdominios en tu VPS, te recomiendo que segmentes los logs. Mantenlos todos separados en archivos de tusitio.access.log y tusitio.error.log para no tener una monstruosa cantidad de lineas de log que te impidan ver que ha fallado. ¿Viste que no daba tanto miedo?

Herramientas para logs

Dicho esto, si ya le perdiste el miedo a los logs, vamos echándole un ojo a un par de herramientas bonitas. Seguro que si has visto otros de mis post, conoces Lnav. Es la aplicación con la que reviso mis logs. Permite organizar, filtrar y buscar en la consola de forma increíble, por lo que es la mejor herramienta que puedes tener para explorar muchos logs.

Por otro lado, estaba explorando una herramienta un poco mas visual llamada GoAcces. Esta permite hacer compilados de tus logs de access.log y te recuerdo que, solo acces.log pero te permite entender mejor el trafico. Mira

A que está genial. Tiene mucha informacion que puedes explorar con solo un click.

Y como puedes darte cuenta, tambien puedes ver los intentos de escaneo de vulnerabilidad. Que son un montón.

Reportes diarios

Entonces, ¿que te parece esto? los logs de goacces se pueden reproducir en cualquier navegador, así que viene bien que sean tan portátiles. Un solo archivo html que tiene toda la información y encima puedes exportar para después. Así que he preparado este script, que con CRON puedes hacer que todos los días te envié los logs a tu correo electrónico. No te preocupes, incluso con logs enormes, nunca superan 1mb de almacenamiento.

#!/bin/bash

# Configuración
LOG_DIR="/var/log/nginx"
OUTPUT_DIR="/tmp/reportes_goaccess"
EMAIL="tucorreo@tudominio.com"
ASUNTO="Reportes de Accesos por VHost"
MENSAJE="Adjunto encontrarás los reportes de accesos por vhost generados por GoAccess."

# Crear carpeta de salida
mkdir -p "$OUTPUT_DIR"

# Procesar cada archivo access.log
for logfile in "$LOG_DIR"/*access.log; do
    # Obtener nombre base del archivo (ej. vhost1_access.log → vhost1)
    base=$(basename "$logfile")
    nombre_vhost="${base%%_*}"

    # Generar reporte HTML
    output_file="$OUTPUT_DIR/${nombre_vhost}_reporte.html"
    goaccess "$logfile" -o "$output_file" --log-format=COMBINED
done

# Enviar correo con todos los reportes adjuntos
# Usando mailx (puedes usar mutt si prefieres)
echo "$MENSAJE"
    for file in "$OUTPUT_DIR"/*.html; do
        echo "Adjuntando: $file"
    done

(
    echo "$MENSAJE"
    for file in "$OUTPUT_DIR"/*.html; do
        echo "Adjuntando: $file"
    done
) | mutt -s "$ASUNTO" "$EMAIL" -a "$OUTPUT_DIR"/*.html 

# Limpieza opcional
# rm -r "$OUTPUT_DIR"

Puedes intentar ejecutarlo directo en el logrotate

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
/var/log/nombre_del_servicio.log {
    # Directivas normales de rotación:
    daily
    rotate 7
    compress
    missingok
    notifempty

    # INICIO del script a ejecutar después de la rotación:
    postrotate
        # Coloca aquí tus comandos. 
        # Puedes ejecutar un script de shell:
        /usr/local/bin/mi_script_personalizado.sh

        # O comandos directos, por ejemplo, para reiniciar o recargar un servicio:
        /bin/kill -HUP $(cat /var/run/servicio.pid)
        # o
        systemctl reload nombre_del_servicio
    endscript
    # FIN del script
}

 

O tan solo en el CRON

1
0 23 * * * /ruta/a/tu/script

Conclusiones

Los logs son una herramienta poderosa que pueden ayudarte a depurar rápidamente un problema extraño, pero con Lnav y goaccess, puedes encontrar mas tranquilidad pues permiten mostrar la información mas ordenada y fácil de asimilar. No dudes en usarlos cuando sea necesario.

Únete a mi red poniendo la URL de tu blog. Aprender más

 
Interlan
Interlan
@interlan.ec@interlan.ec

Este es mi sitio personal y profesional, donde publico mis actividades, experimentos y servicios que he ido desarrollando durante mi crecimiento profesional.

137 publicaciones
0 seguidores

Descubre más desde Interlan

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Fecha de publicación


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.