Логирование действий на файловом сервере в Samba 4.5
Для логирования/аудита действий пользователей на файловом сервере предусмотрен модуль VFS (Virtual File System) — full_audit, рассмотрим его применение.
В файле конфигурации samba /etc/samba/smb.conf
в секцию [global]
добавим следующие параметры:
# ПАРАМЕНТЫ ЛОГИРОВАНИЯ
log level = 0 vfs:1
# ПОДКЛЮЧЕНИЕ МОДУЛЕЙ VFS (Virtual File System)
vfs objects = full_audit
# АУДИТ СЕТЕВЫХ ПАПОК
full_audit:prefix = %S|%u|%I
full_audit:success = mkdir rmdir pwrite rename unlink
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice
Пояснения по параметрам:
full_audit:prefix
— запись сообщений в системный журнал с префиксом:-
%S
— название шары. %u
— имя пользователя.%I
— ip-адрес пользователя.
-
full_audit:success/full_audit:failure
— фиксирование удачных/неудачных событий (создание, удаление каталога, запись файла, переименование, удаление).Полный список возможных команд
.full_audit:facility/full_audit:priority
— параметры системного журнала (syslog), с помощью которых мы идентифицируем наши сообщения от samba.
vfs object
перечисляем все объекты через пробел.После изменения конфигурации, перезапускаем samba, командой:
/etc/init.d/smbd restart
Настройка вывода логирования
По-умолчанию логирование записывается в файлы rsyslog
и messages
и выглядит это следующим образом:
Jan 17 16:14:45 datastore1 smbd_audit: DISK_Z|user1|10.10.16.31|pwrite|ok|test.doc
Jan 17 16:14:04 datastore1 smbd_audit: DISK_Z|user1|10.10.10.21|unlink|ok|test.doc
Jan 17 16:14:04 datastore1 smbd_audit: DISK_Z|user1|10.10.10.21|mkdir|ok|Новая папка
Jan 17 16:14:04 datastore1 smbd_audit: DISK_Z|user1|10.10.10.21|rename|ok|./Новая папка|./Новая папка 2
Jan 17 16:14:04 datastore1 smbd_audit: DISK_Z|user1|10.10.10.21|rmdir|ok|Новая папка 2
Для удобства настроим логирование в отдельный файл и настроим для этого файла ротацию.
Запретим логирование событий local5 в файлы rsyslog
и messages
и последней строкой укажем файл в который необходимо выполнять логирование. Файл /etc/rsyslog.conf
приводим к виду:
*.*;local5,auth,authpriv.none -/var/log/syslog
*.=info;*.=notice;*.=warn;\
local5,auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
local5.notice -/var/log/samba/audit_shares.log
Для применения изменений перезапускаем rsyslog
.
/etc/init.d/rsyslog restart
Последний штрих, это настройка ротации для лог-файла. В файл /etc/logrotate.d/samba
добавляем строки:
/var/log/samba/audit_shares.log {
daily
rotate 60
missingok
compress
notifempty
olddir /var/log/samba/audit_old
}
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
По ссылке https://www.samba.org/samba/docs/current/man-html/vfs_full_audit.8.html уже указаны новые названия для некоторых операций. Например вместо mkdir нужно mkdirat. Иначе будут логироваться все операции.