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.

22 comentarios en “Como auditar la actividad de los usuarios en Samba

  1. Me ha resultado muy útil para saber qué ocurre en mi servidor Samba.
    ¿Se rotará bien el fichero log.audit cuando llegue a 5000 o debemos configurar logrotate o similar?

    Responder
  2. Intenté implementar esta solución para mi servidor samba en Ubuntu 12.0.4 y cuando abro samba me sale el siguiente error: “algunas líneas no se pudieron interpretar … en el smb.conf”. Las lineas en cuestión son las que contienen full_audit: … = …

    ¿Por qué puede estar pasando esto?

    Responder
  3. Buenas tardes hice todo el procedimiento y corrio fino el unico detalle es que no me dice cuando modifican o borran un archivo

    Responder
      • ok buscare la forma de subirlo ya que mi servidor no tiene conexion a internet, de momento te comento que al hacer un testparm del samba me indica que todo esta correcto hasta que llega a la parte del apartado [global] donde encuentra el parametro vsf objects es ahì donde arroja el mensaje Unknown parameter encountered “vsf objects” Ignoring unkwon parameter “vsf objects” al parecer no lo reconoce al vsf como parametro valido estoy usando smbd version 3.6.6, desde ya muchisimas gracias por tu ayuda!

    • #======================= Global Settings =======================

      [global]
      vfs objects = full_audit
      full_audit:prefix = %u|%l|%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

      asi es como lo eh configurado en el smb.conf

      Responder
  4. Hala, hermano.

    Como estas? espero que bien. realize el proceso y todo salio bien gracias. lo unico es que hay una variable que no esta funcionando es la que dice “full_audit:prefix = %u|%l|%m|%%S” la parte de %l no esta funcionando por que en el log me la tira igual %l por lo demas todo esta bien.

    Gracias.

    Responder
  5. Muy bueno tu post amigo, yo tengo el problema que si me general los logs tranquilamente, pero cuando trato de acceder a un recurso dfs desde cliente windows, se queda pensando y dice que no tiene acceso al recurso, luego pero quito las líneas del audit y todo regresa a la funcionalidad, ¿Qué puede estar pasando?

    Responder
  6. Hola, muy bueno el post, pero necesto saber si se pueden ver los movimientos ocurridos en dias anteriores, que comando me aconsejas usar, gracias

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s