El módulo Stackable VFS (Virtual File System) inició con Samba3 y se ha hecho muy popular. Samba
pasa cada petición de acceso al sistema de archivos UNIX através the los módulos VFS cargados. Y.... ¿en que no puede ayudar esto? Pues podemos hacer muchas cosas como por ejemplo controlar las quotas de disco o auditar quien crea, modifica o borra un archivo o carpeta (entre muchas más cosas).
Módulos incluídos:
Más info en:
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/VFS.html
Pues bien, ahora vamos a mirar de auditar nuestro Samba mediante VFS. Para ello nos bastará con añadir unas lineas en nuestro smb.conf:
/etc/samba/smb.conf
# Audit settings
full_audit:prefix = %u|%I|%S
full_audit:failure = connect
full_audit:success = connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath
full_audit:facility = local5
full_audit:priority = notice
%u - Usuario
%I - IP del usuario
%S - Nombre del recurso compartido
Tenemos más variables que podemos poner como prefijo de full_audit:prefix que corresponden con las variables de sustitución de :
http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
Sobre que acciones podemos auditar tenemos un listado extenso que podemos consultar en esta web:
http://www.samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html
¿Con esto ya abre acabado?. No, ahora tenemos a nuestro Samba preparado para poder auditar, pero le tenemos que decir que queremos que audite. Eso lo haremos en el recurso que deseemos auditar poniendo la directriz vfs object:
[Mi Recurso Samba]
vfs object = full_audit
y ya podremos ver en el /var/log/syslog entradas como esta:
Apr 10 13:00:54 miserver smbd[21816]: ediaz|85.81.69.244|Support|opendir|ok|Prueba/test
Si no queremos que todo el log acabe en syslog y lo que preferimos es tenerlo todo en un archivo separado, podemos hacerlo fácilmente editando los archivos de rsyslog:
sudo vim /etc/rsyslog.d/50-default.conf
Modifica la linia donde aparezca:
*.*;auth,authpriv.none -/var/log/syslog
por esta otra:
*.*;local5,auth,authpriv.none -/var/log/syslog
Insertamos esta linea a continuación de la anterior (ojo!! tiene que estar en /var/log porque sino no funcionará)
local5.* /var/log/samba-audit.log
Y ahora reiniciamos tanto el rsyslog como el samba:
sudo service smbd restart
service rsyslog restart
Con esto ya podremos auditar los accesos al Samba
sudo tail -f /var/log/samba-audit.log
Si aun queremos dejarlo un poco más depurado, lo que deberíamos hacer es un logrotate. Es decir, rotar los logs para que el samba-audit.log no crezca indefinidamente hasta que nos deje sin espacio. Para ello os aconsejo mirar un artículo anterior en donde se explica como hacerlo:
No hay comentarios:
Publicar un comentario