Como auditar la actividad de los usuarios en Samba

Samba es una pieza de software maravillosa, llena de funcionalidades y opciones interesantes de las cuales podemos sacar provecho.
Una de estas funcionalidades es, precisamente los Stackable VFS Modules, pequeños trozos de software que añaden funcionalidades a Samba, uno de estos módulos VFS es full_audit, un VFS que te permite loguear toda la actividad de tus usuarios en el servidor Samba.

Vamos a ver como instalarlo y como configurarlo.

Lo primero:
Es muy importante contar con una versión de samba igual o superior a la 3, pues los VFS fueron implementados apartir de esta.
Lo segundo:
A nuestro archivo smb.conf agregamos dentro de la directiva [Global] las siguientes lineas:

vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdir rename unlink rmdir pwrite pread connect disconnect
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = NOTICE

Vamos a ver que significa cada linea:
vfs objects = full_audit: Le decimos a samba que queremos cargar el módulo full_audit
full_audit:prefix = %u|%I|%m|%S: Indicamos las variables que se almacenarán en el log.
full_audit:success = mkdir rename unlink rmdir pwrite pread connect disconnect: Le indicamos a samba que tipo de operaciones almacenará en el log, para este caso almacenaremos:

  • Registros de creación de carpetas
  • Registros de renombrado de archivos
  • Registros de archivos borrados
  • Registros de archivos creados
  • Registro de directorios borrados
  • Registro de archivos abiertos
  • Registro de conexiones
  • Registro de desconexiones

full_audit:failure = none: Le indicamos a Samba que no queremos almacenar registros de error en el log
full_audit:facility = LOCAL7: Le indicamos a Samba que queremos enviar los registros al syslog utilizando el facility LOCAL7
full_audit:priority = NOTICE: Le indicamos a Samba el nivel de detalle que queremos usar en los registros

Una vez guardado nuestro smb.conf, procederemos a configurar rsyslog (En ubuntu server 10.04) para que almacene en un lugar predeterminado nuestros registros, para ello editamos el archivo /etc/rsyslog.d/50-default.conf y agregamos la siguiente línea:

local7.* /var/log/samba/audit/log.audit

Con esto le indicamos al syslog que todos los registros originados desde el facility LOCAL7 se almacenarán en /var/log/samba/audit/log.audit.

Reiniciamos rsyslog y samba con el siguiente comando:

service rsyslog restart && service smbd restart

y ya podremos tener un registro de lo que hacen nuestros usuarios en el servidor Samba.

para poder revisar los registros podemos utilizar el siguiente comando:

sudo tail -f /var/log/samba/audt/log.audit | ccze

y nos arrojará algo como esto:

Espero que este truco les haya sido de utilidad.

Anuncios