Blog

Qué es eso de Logging? Log ?

Cuando estamos administrando un sistema, da igual el tipo que sea, necesitamos saber la actividad del mismo.

  • logging son los procedimientos para grabar y guardar los eventos del sistema, aplicación o red.
  • log es un registro de evento  que ocurren dentro del sistema,  generalmente se guarda en un fichero de texto, al que se le van añadiento líneas a medida que se realizan acciones sobre el sistema.

Los logs son importantes, ya que obtenemos mucha información, al estar almacenados casi todos los eventos que ocurre en nuestro sistema o red.

En GNU/ Linux, la estructura de archivos logs, se encuentra /var/log. Este directorio contiene multitud de archivos que corresponden  a distintos servicios que se ejecutan en nuestra máquina y, posteriormente, imprimen su actividad en el fichero de log correspondiente o, incluso, en ficheros de logs compartidos. Pero también tenemos que tener en cuenta que algunas aplicaciones crean estos archivos fuera de /var/log.

Veamos algunos archivos :

/var/log/messages Este es el archivo principal de registros y almacena la mayoría de los mensajes de interés.

/var/log/auth.log Muestra mensajes sobre autenticación de usuarios y permisos.

/var/log/daemon.log Muestra mensajes sobre demonios (permisos) o servicios corriendo en el sistema.

/log/dmesg Muestra mensajes del núcleo Linux.

/var/log/dpkg.log Muestra un registro de los paquetes binarios instalados (en sistemas basados en Debian).

/var/log/kern.log Muestra mensajes del Kernel

/var/log/boot.log Muestra mensajes referentes al arranque del sistema (en otros sistemas, puede llamarse boot).

/var/log/debug Muestra mensajes de depuración.

/var/log/lpr.log Muestra mensajes sobre la impresora

Archivos varios que muestran mensajes sobre error, información, alertas y registro (respectivamente) para los diferentes servicios que se están ejecutando. A continuación, os muestro algunos ejemplos. Debemos tener en cuenta que, dependiendo del sistema operativo, estos archivos pueden cambiar su ubicación.

/var/log/mail.err

/var/log/mail.info

/var/log/mail.warn

/var/log/mail.log

En el caso de ArchLinux y con el servidor Exim, estos archivos se encuentran en /var/log/exim/

/var/log/mysql.* Archivos varios de registro para el servicio mysql (requiere tener un servicio mysql).

/var/log/user.log Muestra información acerca de los procesos usados por el usuario

/var/log/Xorg.0.log Muestra registros de Xorg (servidor)

/var/log/apache2/* Archivos de registro varios que muestra información sobre el servicio web Apache (requiere tener apache instalado). En algunos sistemas se encuentra en /var/log/httpd/

/var/log/lighttpd/* Archivos de registro varios que muestran información sobre el servicio web Lighttpd (requiere tener instalado Lighttpd)

Visualizar el archivo

Podemos utilizar:

tail -f /var/log/nom_fichero

Pero, realmente, si queremos tener la información de forma más legible, utilizaremos:

lastlog.- este comando se usa para mostrar la última hora de conexión de las cuentas del sistema, esta información se lee del archivo /var/log/lastlog.  Se puede mostrar la información de accesos por días o por nombre de usuario.

  • lastlog -t n -> nos mostrará los accesos hace menos n días
  • lastlog -u nombre_usuario –> nos mostrará la información de acceso para el usuario que le indiquemos.

last.- este comado se usa para mostrar la lista de los últimos usuarios conectados. Está información  se lee del archivo /var/log/wtmp.

  • last -n     Especifica cuántas líneas mostrar.
  • last -R     No muestra el campo del hostname.
  • last -x     Muestra las entradas de apagado del sistema y los cambios en los los niveles de ejecución.
  • last -a     Muestra el hostname en la última columna. Útil en combinación con el siguiente bandera.

LogWatch  Analiza los archivos logs durante un periodo de tiempo especificado por el usuario y genera informes legibles.  Es una herramienta muy sencilla. Podemos modificar su configuración para adaptarla a nuestro sistema.  Los valores por defecto se encuentran en /usr/share/logwatch/default.conf/logwatch.conf. Para modificarlos, copiamos el archivo a /etc/logwatch/conf/logwatch.conf y, en éste, adaptamos la configuración.

Los puntos importantes que tenemos que modificar de la configuración son:

  • Dónde queremos recibir un correo.
  • Con que periodicidad realiza el analisis, yo aconsejo a diario y, normalmente, está así por defecto.
  • Los servicios monitorizados.
  • Nivel de detalle.
  • Direciones from y to de los emails.

Podemos ver qué servicios y qué ficheros de log es capaz de procesar nuestro logwatch mirando en /usr/share/logwatch/default.conf/logfiles (ficheros de logs que podemos tratar) y /usr/share/logwatch/default.conf/services (configuración de logwatch para ese servicio).

En algunas ocasiones, es posible que hayamos especificado un archivo de log diferente al que viene por defecto, que, en nuestra distribución, será el que esté configurado en logwatch. Podemos cambiar la configuración, para que podamos recibir el informe. Por ejemplo:

Podemos copiar el fichero de configuración del servicio a /etc/ y cambiar la directiva (en /etc/logwatch/conf/services/nombre):

LogFile = nombre

Igual que hemos hecho para el servicio, podemos hacer para el fichero de configuración del log, teneniendo en cuenta que lo deberemos copiar en /etc/logwatch/conf/logfiles/ y realizar en ese las modificaciones oportunas.

Y especificar el nombre de un fichero de log del que también tengamos un fichero de configuración en el directorio conf/.

logrotate Dado que los logs de un sistema pueden llegar a ser muy grandres, necesitamos una herramienta que permita realizar copias de seguridad y “trocear” estos archivos en otros más pequeños. A esto es a lo que llamamos rotar. La herrmienta logrotate nos permite, de manera automática, la rotación, compresión, eliminación y envío por correo de los archivos de logs.

El archivo de configuración por defecto se encuentra en /etc/logrotate.conf. Por otra parte, nos permite la configuración específica para cada archivo de log en /etc/logrotate.d/

Limpiando huellas

Los logs del sistema registran los eventos que ocurren en el mismo, con lo que, en caso de sufrir un ataque, el atacante intentará eliminar las huellas dejadas en el sistema, de manera que pase desapercibido. Es por esto que deberíamos hacer copias de seguridad de los logs en otras máquinas, a fin de que podamos evitar la eliminación completa de las huellas dejadas.

Mensajes del Kernel y del sistema

Existen dos demonios que se encargan de manejar los mensajes del kernel y del sistema,  se suelen instalar del paquete llamado sysklogd.

syslogd:  Se encarga del registro del sistema y gestiona los mensajes del servidor y otros programas. Básicamente guarda el nombre del programa, el tipo de servicio, la prioridad y el mensaje del propio programa.

klogd:  Se encarga de gestionar el registro de mensajes del kernel.

Alternativas más modernas a estos clásicos daemons, pueden ser las siguientes:

– syslog-ng: Realiza las funciones de syslogd y klogd, con opciones avanzadas de filtrado. Es la “Nueva Generación” de syslogd. Era el utilizado por defecto en ArchLinux, por ejemplo.

– metalog: Similar al anterior, un reemplazo “moderno” de syslogd y klogd.

– rsyslog: Es un reemplazo de syslog-ng, con características muy interesantes. Utilizado por Red Hat por defecto y otras muchas distribuciones.

En el próximo post  profundizaré  rsyslog y os hablaré del registro de log de systemd, que reemplaza a syslog-ng.

¡Espero que os haya gustado! 😉

Un saludo!!

Mª José Montes – mjose@highsec.es – @MMontesDiaz

Leave a Reply

*

    No Twitter Messages