Samba audit или кто удалил мой файл?

В сети есть сервак с поднятой на нём samb’ой и собстенно есть папка public, где все хранят свои файлы. Права на шару 777, то есть всем всё можно. Поскольку место под шару ограничено, то бывает такое, что места не хватает, и какой-то редиска удаляет файлы другого такого же редиски, что бы залить очередную Санту-Барбару. Потом начинаются жалобы, кто удалил и подобное.

И так, что имеем: samba 3.0.34. Данное тестировалось на samb’e версии 3.0.23, 3.0.32. Так что если ваша самба не такой версии — большая вероятность, что на ней тоже это будет работать.

Что бы всё это реализовать в конфиг samb’ы вносим такое

vfs object = full_audit
log level = 1 vfs:1
syslog = 7
full_audit:prefix = %u|%I
full_audit:success = connect, open, mkdir, rmdir, unlink, write, rename
full_audit:failure = connect, open, mkdir, rmdir, unlink, write, rename

prefix — может принимать любые значения или комбинацию из набора %u, %I, %U, %m, %s, %S, %a, %h, %H

success/failure — какие именно события писать. Полный список можно найти здесь

Куда его вносить, так это зависит от того, что хотим аудировать. Если внести такое в  , то будут мониторится все шары. Если нужно мониторить только избранные, то вносим это только туда, что хотим мониторить. Например,

vfs object = full_audit
log level = 1 vfs:1
syslog = 7
full_audit:prefix = %u|%I
full_audit:success = connect, open, mkdir, rmdir, unlink, write, rename
full_audit:failure = connect, open, mkdir, rmdir, unlink, write, rename

comment = Public
path = /data/samba/share/public
writeable = yes
public = yes
browseable = yes
guest ok = yes

Теперь перечитываем конфиги самбы или делаем рестарт и смотрим /var/log/messages (юзер nobody с IP=10.0.3.111 зашёл, создал, переименовал папку)

Feb 19 14:24:15 fileserver smbd_audit: nobody|10.0.3.111|mkdir|ok|Новая папка (2)
Feb 19 14:24:18 fileserver smbd_audit: nobody|10.0.3.111|rename|ok|./Новая папка (2)|./new
Feb 19 14:24:21 fileserver smbd_audit: nobody|10.0.3.111|rmdir|ok|new

Для того, что бы это дело не сыпалось в messages, а в другой файл, например, audit.log включаем логгирование события smbd_audit в файл и выключаем его во всё остальное. Как это сделать читаем здесь.

Теперь можно не боятся, а смело бить по рукам 🙂

ПС. Кстати, если у вас уже используется какой-то vfs object, то перечисляем все объекты через пробел, например,

vfs object = full_audit recycle

Samba audit или кто удалил мой файл?: 2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *