Analizar y Almacenar Registros

Capítulo 3

1. Registros del Sistema Linux

Los registros del sistema son como la caja negra de un avión: registran todo lo que sucede. En Linux, cada tipo de evento se almacena en archivos específicos para facilitar el diagnóstico y monitoreo del sistema.

Registros principales y su propósito:

  • /var/log/messages: El diario general del sistema. Aquí encontrarás eventos del sistema, servicios en ejecución, y mensajes informativos generales que no están categorizados en otros logs.
  • /var/log/secure: Almacena todos los eventos relacionados con seguridad y autenticación, como intentos de inicio de sesión (exitosos y fallidos), uso de sudo, y cambios en permisos de usuarios.
  • /var/log/maillog: Registra toda la actividad del servidor de correo, incluyendo envíos, recepciones, errores de entrega y problemas de configuración.
  • /var/log/cron: Mantiene un registro detallado de todas las tareas programadas, mostrando cuándo se ejecutaron, si fueron exitosas o fallaron.
  • /var/log/boot.log: Captura todos los eventos que ocurren durante el proceso de arranque del sistema, útil para diagnosticar problemas de inicio.
  • /var/log/audit/: Directorio que contiene registros detallados de auditoría del sistema, incluyendo cambios en la configuración y accesos a recursos.

2. Revisión de Archivos Syslog

Syslog es el sistema estándar de registro en Linux, que categoriza los mensajes según su importancia (desde debug hasta emergencia) y su origen (kernel, servicios, aplicaciones). Esto permite filtrar y analizar eventos específicos de manera eficiente.

Ejemplo Práctico:

  • Ver mensajes de sistema en tiempo real

    journalctl -f
  • Filtrar mensajes por un servicio específico

    journalctl _SYSTEMD_UNIT=sshd.service
  • Buscar mensajes de error críticos

    journalctl -p err..alert
  • Verificar eventos de registro con prioridad warning

    journalctl -p warning

3. Revisión de Entradas del Diario

Journalctl es una herramienta poderosa que permite analizar los registros del sistema con múltiples criterios de búsqueda y filtrado. Puede mostrar registros en diferentes formatos, rangos de tiempo y niveles de detalle.

Ejemplo Práctico:

  • Mostrar las últimas 50 líneas del registro

    journalctl -n 50
  • Ver registros desde una fecha específica

    journalctl --since "2024-01-20 10:00:00"
  • Filtrar registros por unidad y tiempo

    journalctl -u httpd.service --since today

4. Resguardo del Diario del Sistema

El almacenamiento persistente de registros es fundamental para mantener los registros del sistema incluso después de reinicios. En Red Hat Enterprise Linux, esto se logra configurando el servicio journald.

Ejemplo Práctico:

  • Verificar el estado actual del directorio de journal

    ls -l /var/log/journal
  • Crear directorio para almacenamiento persistente

    mkdir /var/log/journal
  • Reiniciar el servicio para aplicar cambios

    systemctl restart systemd-journald
  • Verificar que los registros se mantienen

    journalctl --list-boots
  • Verificar espacio utilizado

    journalctl --disk-usage

Cada paso asegura que el sistema mantendrá sus registros de manera persistente aun después de reinicios.

5. Mantenimiento de la Hora Correcta

La precisión y sincronización del tiempo en sistemas Linux es fundamental por varias razones:

Importancia del Tiempo Sincronizado:

  • Logs precisos para auditorías y troubleshooting
  • Validación de certificados digitales y tokens de seguridad
  • Coordinación entre servidores distribuidos
  • Consistencia en transacciones de bases de datos
  • Funcionamiento correcto de tareas programadas

A. Gestión Manual del Tiempo

  • Verificar la configuración actual

    timedatectl status

    Muestra estado actual: zona horaria, hora local, hora UTC y estado de NTP

  • Configurar fecha y hora manualmente

    timedatectl set-time "2024-01-20 15:30:00"

    Establece la fecha y hora específicas en el sistema

  • Seleccionar zona horaria interactivamente

    tzselect

    Mostrará un menú interactivo:

    1. Seleccionar continente
    2. Seleccionar país
    3. Confirmar zona horaria
    4. Ver resultado en formato tz (ejemplo: America/Santiago)

B. Gestión de Zonas Horarias

  • Listar todas las zonas horarias disponibles

    timedatectl list-timezones
  • Establecer zona horaria específica

    timedatectl set-timezone America/Santiago

C. Sincronización NTP (Network Time Protocol)

El protocolo NTP permite sincronizar automáticamente el reloj del sistema con servidores de tiempo precisos.

  • Verificar estado de sincronización NTP

    timedatectl show-timesync

    Muestra información detallada sobre la sincronización NTP

  • Activar sincronización NTP

    timedatectl set-ntp true

    Habilita la sincronización automática con servidores NTP

  • Configurar servidores NTP personalizados

    cat /etc/chrony.conf

    Muestra la configuración actual de servidores NTP

  • Verificar sincronización con servidores

    chronyc sources

    Lista los servidores NTP en uso y su estado

  • Verificar estadísticas de sincronización

    chronyc tracking

    Muestra detalle sobre la precisión y deriva del reloj

Configuración Manual vs NTP

  1. Manual:

    • Útil en sistemas aislados
    • Necesario en auditorías específicas
    • Requiere ajustes periódicos
  2. NTP:

    • Recomendado para servidores en red
    • Mantiene sincronización automática
    • Mayor precisión a largo plazo
    • Maneja cambios de horario de verano