== 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 } }}}