From: Kirill Zabarniuk <reel_pub@ukr.net.>
Date: Mon, 26 Feb 2008 14:31:37 +0000 (UTC)
Subject: Модуль full_audit в samba
Ниже описывается настройка samba модуля full_audit, который позволяет
увидеть кто и к какому файлу обращался, кто создал, удалил или
переименовал конкретный файл или каталог.
В результате настройки необходимые данные будут записываться в лог-файл
/var/log/samba/log.audit.
(Настройка производилась в дистрибутиве Debian Etch, версия Samba 3.0.24).
1. В секцию [global] добавляется строка
syslog = 0
Данный параметр устанавливает приоритет сообщений, которые будут
направлены в syslog. Чем выше значение, тем большее количество сообщений
будет выводиться. Указав значение 0 можно отключить запись сообщений в
syslog.
2. Количество сообщений, записываемых в лог-файлы, для всех VFS модулей
может быть задано следующим параметром в секции [global]:
log level = 0 vfs:2
3. Если планируется сохранять лог-файлы длительное время, может быть
полезным указание параметра
max log size = 0
Размер лог-файла задается в килобайтах. При достижении указанного
значения файл будет переименован, путем добавления к имени файла
расширения .old. Значение 0 отключает проверку размера (в этом случае
необходимо самостоятельно позаботиться о размере лог-файла, к примеру,
настроив соответсвующим образом logrotate).
4. Для активации модуля аудита, в секции, которая описывает расшаренный
ресурс, добавляется строка
vfs objects = full_audit
В результате данные о доступе к файлам будут записываться в syslog, либо
в лог-файл по умолчанию (log.smbd). Здесь же, через пробел, могут быть
заданы другие VFS модули.
5. Можно указать дополнительные параметры модулю full_audit.
Префикс, сообщений в лог-файле:
full_audit:prefix = %u|%I
(каждая строка будет начинаться с user|ip_adress)
Какие ошибки должны отображаться в лог-файле:
full_audit:failure = none
(не протоколируем ошибки)
Действия пользователей, которые записываются в лог-файл (для наглядности
текст разбит на строки, в конфигурации нужно переписать в одну строку, убрав ""):
full_audit:success = connect disconnect opendir mkdir
rmdir closedir open close read pread write pwrite sendfile
rename unlink chmod fchmod chown fchown chdir ftruncate lock
symlink readlink link mknod realpath
Параметры, позволяющие управлять записью в журналы демоном syslogd:
Данные два параметра описывают селектор, он обозначает программу
("средство" в терминологии системы syslog), которая посылает
регистрационное сообщения и уровень серьезности этого сообщения.
Прим. Несмотря на опцию syslog = 0, samba направляет сообщения в syslog.
Возможно в других версиях samba такое поведение будет изменено.
Последние два параметра модуля full_audit позволят в дальнейшем
исключить попадание нежелательных сообщений в журанал syslog.
После перечитывания конфигурации сервисами, строки лог-файла будут
выглядеть примерно следующим образом:
...
Feb 23 18:13:31 kirill smbd_audit: nobody|192.168.4.2|connect|ok|incoming
Feb 23 18:13:32 kirill smbd_audit: nobody|192.168.4.2|chdir|ok|chdir|/home/samba/incoming
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|.
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|closedir|ok|
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|./
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|New Folder
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|closedir|ok|
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|rmdir|ok|New Folder
Feb 24 11:45:10 kirill smbd_audit: root|192.168.4.2|disconnect|ok|incoming
Feb 24 11:45:10 kirill smbd_audit: root|192.168.4.2|chdir|ok|chdir|/
...
7. Дополнительные настройки
Далее может понадобиться дополнительная настройка демонов syslogd и logrotate.
(Прим. В данном примере используются sysklogd 1.4.1 и logrotate 3.7.1)
7.1 В стандартном файле конфигурации syslog.conf демона syslogd имеется строка
*.*;auth,authpriv.none -/var/log/syslog
для того чтобы сообщения модуля full_audit не попадали в syslog, нужно
изменить эту строку следующим образом:
*.*;local5,auth,authpriv.none -/var/log/syslog
Чтобы сообщения записывались в заданный файл, нужно добавить в
syslog.conf такую строку:
local5.notice -/var/log/samba/log.audit
7.2 Для того чтобы лог-файл не разрастался, в каталоге /etc/logrotate.d
можно изменить соответсвующую секцию конфигурационного файла samba,
чтобы она выглядела примерно так: