
Ну вот и дошли у меня руки сделать инструкцию по настройке аудита в samba (детализированного лога о доступе пользователей к файлам и папкам на сервере, а так же действиям с ними).
1. Итак, решаем куда мы будем писать наши логи. Пусть это будет /var/log/samba_audit.log (можно любое другое место).
2. Решаем что из действий пользователя мы хотим отслеживать.
3. В /etc/samba/smb.conf прописываем либо в глобальную секцию [global] (тогда аудит будет все шары проверять), либо в конкретную секцию (например, [Shared]) следующие команды:
1 2 3 4 5 6 7 8 9 10 11 12 |
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 #уровень записи. <strong>Может быть debug или notice </strong> full_audit:priority = debug |
Оставляем только те параметры, которые нужны. И запоминаем что мы написали в параметре уровня записи debug или notice, оно нам понадобится дальше.
4. В секцию [global] добавляем строчки:
1 2 |
syslog = 1 log level = 0 vfs:2 |
Это собственно, указание на разрешение аудита.
5. Теперь настроим системное логирование. Для этого в настройки демона в файле /etc/rsyslog.d/50-default.conf в конец допишем:
1 2 3 |
# smbd audit local5.debug -/var/log/samba_audit.log |
Причём, уровень логирования (debug или notice должен соответствовать указанному в конфиге самбы). При этом в некоторых руководствах вместо local5 предлагают local7, не знаю, чем они отличаются, но тоже должны совпадать. Знак «-» перед каталогом позволяет ускорить запись в него но при этом часть данных может теряться.
Если нет желания дублировать запись аудита в syslog изменим в этом же конфиге строчку
1 |
*.*;auth,authpriv.none -/var/log/syslog |
На
1 |
*.*;auth,authpriv.none,!-smbd_audit -/var/log/syslog |
Другой рекомендуемый вариант — заменить эту строчку на:
1 2 |
*.*;local5.none,auth,authpriv.none -/var/log/syslog local5.debug -/var/log/samba/audit/audit.log |
6. Ещё один вариант подключения логирования — добавить в этот же файл строчку:
1 2 3 |
# smbd audit if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba/audit/audit.log & ~ |
Опять же, надо убедиться, что debug или notice соответствуют настройкам самбы.
7. Перезапустить демоны самбы и лога:
1 2 3 |
service smbd restart service rsyslog restart |
Данная инструкция написана на основе советов и инструкций с русскоязычного форума Ubuntu. P.S. Список параметров vfs_full_audit VFS operations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
chdir chflags chmod chmod_acl chown close closedir connect disconnect disk_free fchmod fchmod_acl fchown fget_nt_acl fgetxattr flistxattr fremovexattr fset_nt_acl fsetxattr fstat fsync ftruncate get_nt_acl get_quota get_shadow_copy_data getlock getwd getxattr kernel_flock link linux_setlease listxattr lock lseek lstat mkdir mknod open opendir pread pwrite read readdir readlink realpath removexattr rename rewinddir rmdir seekdir sendfile set_nt_acl set_quota setxattr stat statvfs symlink sys_acl_delete_def_file sys_acl_get_fd sys_acl_get_file sys_acl_set_fd sys_acl_set_file telldir unlink utime write In addition to these operations, vfs_full_audit recognizes the special operation names "all" and "none ", which refer to all the VFS operations and none of the VFS operations respectively. |
Комментарии: