Логирование Samba для получения логов о всех действиях пользователей в общих папках и файлах

Вопрос или проблема

Как я могу получить журналы всех действий пользователей с файлами и папками в Samba? Пожалуйста, сообщите, какие изменения необходимо внести в конфигурационный файл Samba /etc/samba/smb.conf.

Мой /etc/samba/smb.conf содержит

log level = 3
log file = /var/log/samba/log.%p

max log size = 5000
debug timestamp = yes

На данный момент мой /etc/samba/smb.conf имеет приведенную выше конфигурацию. Но это не дает корректный журнал.

Я полагаю, что вам нужны следующие настройки;

http://moiristo.wordpress.com/2009/08/10/samba-logging-user-activity/
http://oreilly.com/openbook/samba/book/ch04_08.html

Вы можете увидеть записи, открытия, удаления и т. д., но будьте осторожны: Samba фиксирует ОЧЕНЬ МНОГО!!! информации, когда вы включаете эти параметры, если сервер действительно загружен, удачи!

Я обнаружил, что инструкции в блоге, на который ссылается другой ответ, были немного устаревшими для Samba 4.15 (на моем сервере Ubuntu 22.04). Вот что я сделал:

В smb.conf

[share]
    vfs objects = full_audit
    full_audit:prefix = %u|%I|%m|%S
    full_audit:success = mkdirat renameat unlinkat pwrite
    full_audit:failure = none
    full_audit:facility = LOCAL7
    full_audit:priority = NOTICE

В /etc/rsyslog.d/50-default.conf я добавил

local7.*                        /var/log/samba/log.audit

и затем дал разрешение rsyslog (который работает от имени пользователя syslog) записывать в /var/log/samba/log.audit

sudo usermod -aG adm syslog # Группа папки /var/log/samba - adm
sudo chmod g+rw /var/log/samba 

Ответ или решение

Для того чтобы получить логи о всех действиях пользователей с файлами и папками в Samba, необходимо внести некоторые изменения в конфигурационный файл Samba, а также настроить систему ведения журналов. Я расскажу, как это сделать шаг за шагом.

Шаг 1: Настройка smb.conf

Вам нужно отредактировать файл конфигурации Samba, который обычно находится по адресу /etc/samba/smb.conf. Откройте этот файл для редактирования с помощью текстового редактора, например:

sudo nano /etc/samba/smb.conf

Добавьте следующие параметры в секцию вашей общей папки (например, [share]):

[share]
    vfs objects = full_audit
    full_audit:prefix = %u|%I|%m|%S
    full_audit:success = mkdirat renameat unlinkat pwrite open close
    full_audit:failure = all
    full_audit:facility = LOCAL7
    full_audit:priority = NOTICE

Объяснение параметров:

  • vfs objects = full_audit — включает модуль аудита для отслеживания действий.
  • full_audit:prefix = %u|%I|%m|%S — формат записи лога, где %u — пользователь, %I — IP-адрес клиента, %m — имя машины, а %S — имя ресурса.
  • full_audit:success — действия, для которых будут записываться успешные события (например, создание директорий, переименование, удаление, запись и т.д.).
  • full_audit:failure = all — записывать все неудачные попытки.
  • full_audit:facility и full_audit:priority — указывают уровень важности для ведения журнала.

Шаг 2: Настройка rsyslog

Теперь нам нужно настроить rsyslog, чтобы записи журнала отправлялись в нужный файл. Откройте файл конфигурации rsyslog:

sudo nano /etc/rsyslog.d/50-default.conf

Добавьте следующую строку в конец файла:

local7.*                        /var/log/samba/log.audit

Шаг 3: Настройка прав доступа

Убедитесь, что rsyslog (который работает от имени пользователя syslog) имеет доступ на запись в каталог /var/log/samba. Для этого выполните следующие команды:

sudo usermod -aG adm syslog  # Добавляем syslog в группу adm
sudo chmod g+rw /var/log/samba  # Права на работу с каталогом

Шаг 4: Перезапуск служб

После внесения всех изменений, перезапустите службы Samba и rsyslog, чтобы новые настройки вступили в силу:

sudo systemctl restart smbd nmbd
sudo systemctl restart rsyslog

Шаг 5: Проверка журналов

Теперь вы можете проверять файл /var/log/samba/log.audit для просмотра всех действий пользователей. Учтите, что ведение журналов с высокими весами может создавать значительный объем данных, особенно на загруженных серверах.

Заключение

После выполнения всех шагов вы сможете получать логи о действиях пользователей в ваших общих папках Samba. Обязательно следите за размером журналов и при необходимости настраивайте ротацию журналов, чтобы избежать переполнения дискового пространства.

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

Капча загружается...