Итак, более-менее рабочая инструкция по настройке аудита (детализированного лога самбы о доступе пользователей к файлам на сервере).
1. Определяем, куда будет писаться файл. Пусть это будет /var/log/samba/audit/audit.log (можно изменить по своему вкусу).
2. Определяем, какие действия пользователей должны отслеживаться (нужно ли нам знать, кто файл открывал, или только то, кто удалял?)
3. В /etc/samba/smb.conf прописываем либо в глобальную секцию [globa] (тогда аудит будет все шары проверять), либо в конкретную секцию (например, [home]) следующие команды:
vfs objects = full_audit
#Префикс - описание пользователя. %u - имя %I - IPадрес, [home] - раздел, в котором юзер что-то открывал.
full_audit:prefix = [home] %u|%I
#запись об ошибках. В нашем случае - ошибки не записываем.
full_audit:failure = none
#запись о действиях: создать папку, удалить папку, открыть файл, ...., записать файл, перезаписать файл,
#...., переименовать файл, разблокировать доступ к файлу, заблокировать доступ к файлу.
full_audit:success = mkdir rmdir open read pread write pwrite sendfile rename unlink lock
#механизм записи в лог
full_audit:facility = local5
#уровень записи. Может быть debug или notice
full_audit:priority = debug
Оставляем только те параметры, которые нужны.
4. В секцию [global] добавляем строчки:
syslog = 1
log level = 0 vfs:2
- собственно, указание на разрешение аудита.
5. Теперь настроим системное логирование. Для этого в настройки демона в файле /etc/rsyslog.d/50-default.conf пишем:
local5.debug -/var/log/samba_audit.log
Причём, уровень логгирования (debug или notice должен соответствовать указанному в конфиге самбы). При этом в некоторых руководствах вместо local5 предлагают local7, не знаю, чем они отличаются, но тоже должны совпадать. Знак "-" перед каталогом позволяет ускорить запись в него но при этом часть данных может теряться.
Если нет желания дублировать запись аудита в syslog изменим в этом же конфиге строчку
*.*;auth,authpriv.none -/var/log/syslog
На
*.*;auth,authpriv.none,!-smbd_audit -/var/log/syslog
Другой рекомендуемый вариант - заменить эту строчку на:
*.*;local5,auth,authpriv.none -/var/log/syslog
local5.debug -/var/log/samba/audit/audit.log
6. Ещё один вариант подключения логирования - добавить в этот же файл строчку:
# smbd audit
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba/audit/audit.log
& ~
Опять же, надо убедиться, что debug или notice соответствуют настройкам самбы.
7 (и последнее) - перестартовать демоны самбы и лога:
service smbd restart
service rsyslog restart
Вроде бы всё. Должно работать.
Я не знаю, что за параметры pread, pwrite и sendfile, подскажите, кто знает.