9.2. Registros de sucesos

Para un administrador es muy importante saber qué ocurre en su sistema. Afortunadamente, los sistemas Linux en general, guardan detalles del funcionamiento del sistema en diferentes archivos. Su objetivo es anotar cualquier funcionamiento anómalo o cualquier problema que pueda surgir en el sistema.

Todos estos archivos se encuentran en el directorio /var/log.

La mayor parte del comportamiento de rsyslogd se encuentra definido en el archivo /etc/rsyslog.conf, aunque algunas opciones también se establecen en /etc/rsyslog.d/.

Aunque no es el objetivo de este texto, es posible modificar estos archivos para cambiar dicho comportamiento.

En versiones antiguas de Linux, era el demonio syslogd (Syslog Daemon) quien se encargaba de guardar información sobre el funcionamiento del sistema. Sin embargo, en la actualidad suelen utilizarse dos herramientas que ofrecen una mayor cantidad de opciones. Son estas:

  • syslog-ng: Es una implementación open source del demonio syslogd, pero ofreciendo más prestaciones, como la aplicación de filtros, ordenar la información según el origen, enviarla a distintos lugares, según su naturaleza, etc.
  • rsyslogd: Una versión mejorada de syslogd con capacidades de multi-hilo, que se centra en la seguridad y en la fiabilidad. Esta es la opción predeterminada en Ubuntu y por esto es en la que nos vamos a centrar aquí.

Los registros de sucesos que se vigilan de forma predeterminada desde rsyslogd son los siguientes:

Si un servicio está produciendo sucesos, éstos estarán recogidos bajo el directorio /var/log. Por ejemplo, aquí encontraremos un archivo llamado auth.log. También podemos encontrar subdirectorios que pueden contener los archivos de sucesos de algún subsistema particular como, por ejemplo, la el directorio lightdm, que contiene varios archivos de sucesos relativos al gestor de sesiones LightDM.

1

Contenido del archivo auth.log en el servidor.

El formato de los archivos de registro depende de la herramienta que estemos utilizando. Esto significa que, si en otra distribución no se utiliza rsyslogd, su estructura puede variar.

El formato de todos los archivos de sucesos es muy parecido, pero necesitamos conocerlo antes de poder analizar su contenido. En el caso de auth.log se estructura de la siguiente forma:

  • Fecha del suceso
  • Hora del suceso
  • Nombre del equipo donde se ha producido
  • Programa / servicio que lo ha originado
  • Opcionalmente, aparecerá el PID del proceso
  • Mensaje informativo que describe el suceso.

Por ejemplo, una línea del archivo auth.log podría ser como esta:

Jun  3 20:36:25 somebooks-lnxsrv sudo:  usuario : TTY=pts/2 ; PWD=/home/usuario ; USER=root ; COMMAND=/usr/bin/gedit /var/log/auth.log

Aquí vemos que el día 3 de Junio, a las 20:36, en el equipo somebooks-lnxsrv el programa sudo informa de que usuario ejecuta desde la terminal, y con privilegios de root, el comando /usr/bin/gedit /var/log/auth.log. Podríamos ser algo más precisos en la explicación, pero creo que estaríamos siendo menos didácticos.

Los archivos de sucesos acaban siendo demasiado extensos. Sin embargo, podemos utilizar comandos de Linux que nos ayuden a centrarnos en la información que nos interesa.

Por ejemplo, el comando tail -f /var/log/auth.log nos permitirá obtener sólo las 10 últimas líneas del archivo auth.log. y el comando cat /var/log/auth.log | grep "lightdm" nos permite ver sólo las líneas que contienen el texto lightdm.

Uso de Logcheck para consultar sucesos.

Ya hemos visto más arriba cómo podemos consultar e interpretar los sucesos anotados por el sistema. Sin embargo, existe una herramienta que nos facilita la realización de esas consultas. Me refiero a Logcheck.

Logcheck revisa los archivos de sucesos del sistema, cada cierto tiempo, ofreciendo al Administrador sólo aquellas incidencias que resulten importantes. El resultado es más fácil de leer que los archivos originales, consolida el contenido de los diferentes archivos en una sola salida y descarta los sucesos que carezcan de interés

Los sucesos que no son ignorados se catalogan en tres categorías de seguridad, según su trascendencia:

  • Active System Attacks (Ataque al sistema activo)
  • Security Violations (Violación de seguridad)
  • Unusual Activity (Actividad inusual)

Instalar Logcheck

Afortunadamente, Logcheck se encuentra en los repositorios de Ubuntu, por lo que su instalación es tan sencilla como ejecutar el siguiente comando:

sudo apt-get install logcheck

1

Abrimos una ventana de terminal y ejecutamos el comando.

La forma predeterminada en la que Logcheck envía su información al administrador es a través de correo electrónico. Por este motivo, Logcheck tiene como dependencia al paquete PostFix.

Si no está configurado con antelación, Postfix se configura durante la instalación de Logcheck.

2

La primera pantalla del asistente nos indica que deberemos escoger entre distintas opciones de configuración. Cuando hayamos leído la información, pulsamos la tecla Intro.

Para el funcionamiento de Logcheck no tiene tiene mucha importancia la opción que elijamos. Aquí nos inclinaremos por Sólo correo local.

3

Nos desplazamos con las teclas de cursor y, cuando estemos sobre la opción elegida, volvemos a pulsar la tecla Intro.

Por último, elegiremos el nombre del dominio que se utilizará para cualificar las direcciones de correo que no tengan nombre..

4

De forma predeterminada, el asistente nos ofrece el hostname de la máquina. Si nos parece adecuado, sólo tenemos que pulsar la tecla Intro.

5

Poco después, habrá terminado la instalación.

Ya estamos casi listos para comprobar si el sistema funciona correctamente. Sin embargo, aún tenemos que editar el archivo de configuración de Logcheck para indicarle dos detalles. Se trata del archivo /etc/logcheck/logcheck.conf y estos son los valores a incluir:

  • La dirección de correo electrónico donde deben enviarse los informes, que se encuentra en la variable SENDMAILTO.
  • Que dichos informes deben incluirse como archivos adjuntos. Esto se hace asignando a la variable MAILASATTACH el valor 1.

Debemos recordar usar el editor nano con privilegios de superusuario.

6

Saldremos del editor pulsando las teclas ctrl + x y asegurándonos de guardar los cambios.

Cuando hayamos hecho estos cambios, estamos listos para probar el funcionamiento de Logcheck. Sin embargo, antes debemos saber que durante su instalación, se ha creado un usuario, también llamado logcheck, con el fin de evitar que el comando tenga que ejecutarse como root. De echo, si intentas ejecutarlo con privilegios de root, obtendrás un error.

Para ejecutar el comando logcheck con el usuario logcheck, necesitamos recurrir al argumento -u del comando sudo. Su formato general es este…

sudo -u usuario comando

… Y adaptándolo a nuestras necesidades actuales, nos queda así:

sudo -u logcheck logcheck

7

La ejecución del comando empleará un tiempo que estará en función del número de sucesos que deba procesar.

Finalmente, obtendremos de nuevo el prompt y el e-mail se habrá enviado a la dirección indicada.

8

Cuando consultemos el correo, veremos que el asunto incluye el nombre del servidor, la fecha y la hora en la que se ha realizado la consulta.

El informe se incluye como un archivo adjunto en formato de texto plano.

Ajustar el funcionamiento de Logcheck

Existen varias cuestiones que podemos adecuar a nuestras necesidades en el funcionamiento de Logcheck:

  • Los archivos de sucesos a monitorizar: El archivo /etc/logcheck/logcheck.logfiles contiene el nombre de los archivos de los que Logcheck obtiene los sucesos que analiza. De forma predeterminada proceden de auth.log y syslog, pero podemos añadir aquellos que consideremos oportunos. Por ejemplo, podríamos añadir el archivo /var/log/sulog, que es donde se anotan las ejecuciones de la orden su.

    1

    Saldremos del editor pulsando las teclas ctrl + x y asegurándonos de guardar los cambios.

    … o podríamos incluir ficheros generados por cualquier aplicación, como /var/log/apache2/error.log o /var/log/apache2/localhost/error.log.

  • La frecuencia con la que se ejecuta Logcheck: El archivo /etc/cron.d/logcheck representa una tarea para cron e indica con qué frecuencia se generan los informes.

    2

    Modificando este archivo ajustaremos la frecuencia de los informes según nuestra necesidad.

  • Las reglas de filtrado: Logcheck procesa los sucesos según una serie de reglas redactadas como expresiones regulares que representan patrones que aparecen en los archivos de sucesos cuando se produce un determinado suceso. Por ejemplo, una regla podría ser así:
    login.*: .*LOGIN FAILURE.* FROM .*root

    Con ella buscamos líneas en las que el subsistema login indique cualquier fallo al tratar de iniciar sesión como root.

    Puedes encontrar información detallada sobre el filtrado de sucesos en /usr/share/doc/logcheck-database/README.logcheck-database.gz.

    Se escapa de los objetivos de este documento entrar en detalle sobre la construcción y eliminación de reglas para Logcheck. Baste con decir que se almacenan en archivos de texto dentro de diferentes carpetas según su tipo:

    • Las que identifican un suceso como un intento de intrusión se guardan en el directorio /etc/logcheck/cracking.d.
    • Las que excluyen un suceso como un intento de intrusión se guardan en el directorio /etc/logcheck/cracking.ignore.d.
    • Las que identifican un suceso como una alerta de seguridad se guardan en el directorio /etc/logcheck/violations.d.
    • Las que excluyen un suceso como una alerta de seguridad se guardan en el directorio /etc/logcheck/violations.ignore.d.

    Las demás son consideradas sucesos del sistema.

Consultar sucesos en la interfaz gráfica.

Ubuntu incorpora una herramienta gráfica que nos permite consultar los sucesos del sistema de una forma bastante intuitiva. Para ejecutarla, desplegamos el Dash y comenzamos a escribir parte de su nombre.

Recuerda que puedes desplegar el Dash haciendo clic en el botón superior del Launcher o pulsando la tecla Súper (la que suele tener el icono de Windows).

1

Cuando aparezca la herramienta, hacemos clic sobre ella.

Al poco, veremos una ventana dividida verticalmente en dos áreas diferentes. La de la izquierda muestra los archivos de sucesos que podemos analizar con el visor. A la derecha se muestran los sucesos relativos al archivo que tengamos seleccionado en el lado izquierdo.

Las entradas más modernas se muestran al final de la lista.

2

Haciendo clic sobre un archivo diferente, cambian los sucesos mostrados.

Añadir más archivos de sucesos

Cuando queramos consultar algún archivo de sucesos que no se encuentre en la lista de la izquierda, sólo tendremos que añadirlo.

1

Hacemos clic sobre el menú Archivo y elegimos Abrir

Aparecerá una ventana que nos permite localizar el archivo que estamos buscando.

2

Cuando lo encontremos, hacemos doble clic sobre él.

Al volver a la ventana del Visor de archivos de sucesos comprobaremos que el nuevo archivo ya se encuentra en la lista de la izquierda.

Aunque acabemos añadiendo muchos archivos, será muy fácil localizarlos, porque se muestran ordenados alfabéticamente. Lo único que debes recordar es que Linux diferencia entre mayúsculas y minúsculas, y que las primeras tienen un valor ASCII menor, por lo que irán antes.

3

Al seleccionar el nuevo archivo a la izquierda, se muestran sus sucesos a la derecha.

Filtrar el contenido de los archivos de sucesos

Como habrás comprobado, la cantidad de información que se acumula en los archivos de sucesos es considerable y, en ocasiones, resulta complicado localizar un suceso determinado.

Para ayudarnos, el Visor de archivos de sucesos incorpora una herramienta de filtrado.

1

Podemos abrirla desde el menú Filtros, eligiendo Gestionar filtros.

Aparecerá la ventana Filtros, donde podremos crear nuevos filtros (botón Añadir), modificar sus características (botón Propiedades) o eliminarlos (botón Quitar). Lógicamente, la primera vez sólo tendremos disponible el primero.

2

Hacemos clic sobre el botón Añadir.

Se mostrará una nueva ventana donde debemos definir las características del nuevo filtro:

  • Un nombre, que sea descriptivo, para identificarlo con facilidad cuando hayamos creado muchos filtros.
  • Una expresión regular, que defina qué estamos buscando. En nuestro caso, para simplificar, escribiremos sólo una palabra. Así, el Visor de archivos de sucesos buscará aquellos sucesos que contengan la palabra elegida.
  • Indicar si queremos resaltar u ocultar los sucesos que cumplan la condición. En nuestro caso los resaltaremos.
  • En caso de que estemos resaltando sucesos, podremos elegir también un color de primer plano y un color de fondo. Al pulsar el botón de color, se muestra un panel con diferentes colores donde bastará con elegir uno de ellos.

3

Finalmente, cuando hayamos concluido, haremos clic sobre el botón Aplicar.

De vuelta en la ventana del Visor de archivos de sucesos, ahora encontraremos un nuevo elemento en el menú Filtros con el nombre que le hayamos puesto al filtro en el paso anterior.

4

Al elegirlo, se destacarán, con los colores que hayamos indicado, aquellos sucesos que cumplan la condición del filtro.

5

También disponemos de la opción Sólo mostrar coincidencias.

6

Si la elegimos, se ocultarán inmediatamente todos los sucesos que no cumplan con las condiciones impuestas en el filtro.


Anterior

Contenido

Siguiente