Uso del modulo vfs_full_audit (samba 3.6.5)

Il modulo vfs_full_audit prevede di fare l'auditing (logging via syslog) di un milione di diverse operazioni che vengono fatte dagli utenti via Samba. Sono cosi` tante che fanno paura, e possono generare dei mega di log ad ogni minuto di attivita` del server, quindi e` il caso di limitarsi alle cose che piu` probabilmente ci servono.

I parametri di configurazione possono essere impostati sia nella sezione [global] del file smb.conf che in uno share, e si applicano ovviamente a tutto o solo allo share specificato.

Se voglio loggare le attivita` in tutti gli share, compresi quelli "speciali" come IPC$, che non sono definiti esplicitamente in smb.conf, posso caricare tutto quanto nella sezione [global], cosi`:

# Impostazioni per il logging
vfs object = full_audit
full_audit:prefix = %u|%I|%S
full_audit:failure = connect
# Loggare read e write e` eccessivo, meglio non farlo.
# 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
#Questo e` un logging civile
full_audit:success = connect disconnect opendir mkdir rmdir closedir open close sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod
full_audit:facility = local5
full_audit:priority = notice

Se voglio loggare solo gli accessi ad alcuni share, posso togliere dalla sezione [global] solo la prima riga, quella che carica il vfs_object, e lasciare nella configurazione globale tutte le impostazioni, oppure mettere tutto quanto in ogni sezione di share, se preferisco. Mettere la riga vfs object = full_audit dentro ai singoli share e` sensato, in quanto gia` il log e` molto grande, se loggo veramente tutto quanto, compresi gli accessi a IPC$ che avvengono normalmente in Samba prima del login, il log diventa enorme e difficile da analizzare.

In questo modo il log finisce dentro a /var/log/syslog, se lo voglio mettere da qualche altra parte devo modificare la configurazione di syslog, o rsyslog, o syslog-ng, a seconda del demone che uso.

Una configurazione per rsyslog (il default in Debian Squeeze) consiste nel togliere da /var/log/syslog la facility local5, in modo da evitare che vi vengano scritti i messaggi dell'audit, e di creare un log apposito per la facility local5.notice. Modificare il file /etc/rsyslog.conf come segue:

#Modificare qui. L'originale e` commentata.
#*.*;auth,authpriv.none   -/var/log/syslog
*.*;local5,auth,authpriv.none   -/var/log/syslog

#Aggiungere questa:
local5.notice                   /var/log/samba/audit.log

Per finire, occorre inserire una voce in logrotate per fargli ruotare il log che abbiamo appena creato. Per farlo, possiamo creare un file che si chiama /etc/logrotate.d/samba.audit che contiene una configurazione adatta, tipo:

/var/log/samba/audit.log {
   weekly
   missingok
   rotate 54
   compress
   notifempty
}

Samba/VfsFullAudit (last edited 2012-10-12 08:41:45 by Kurgan)