Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Запись аудита samba в отдельный файл /var/log/samba/audit.log  (Прочитано 10502 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nockdown

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • kubuntu 20.04.3 64bit
    • Просмотр профиля
Не получается настроить запись аудита samba в отдельный файл, а не в /var/log/syslog .

sudo nano /etc/samba/smb.conf
Цитировать
[global]
        workgroup = TEST
        security = USER
[test]
        path = /share/test
        read only = No
        create mask = 0770
        directory mask = 0770
        vfs objects = full_audit
        full_audit:prefix=%U|%m
        full_audit:success = rmdir mkdir write rename unlink
        full_audit:failure = connect
        full_audit:facility = local5
        full_audit:priority = notice

sudo nano /etc/rsyslog.d/50-default.confкомментирую строчку
Цитировать
*.*;auth,authpriv.none        -/var/log/syslog
добавляю строчки
Цитировать
*.*;local5,auth,authpriv.none   -/var/log/syslog
local5.notice                   /var/log/samba/audit.log
sudo service smbd restart && sudo service rsyslog restart
Результат:
1)файл /var/log/samba/audit.log создаётся
2)файл /var/log/samba/audit.log  - пустой, никакие логи аудита туда не пишутся

Если закомментировать строчку в /etc/rsyslog.d/50-default.conf
Цитировать
*.*;local5,auth,authpriv.none   -/var/log/syslog
, то логи аудита успешно пишутся в /var/log/syslog


ubuntu server 12.10
samba 3.6.6


Попробовал другое руководство и тоже не работает. Что за напасть?


Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Может ещё с правами быть проблема. syslog пишет от имени syslog:adm.

К слову о настройках. У меня вот так.

/etc/rsyslog.d/40-smbd.conf:
# smbd audit
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba_audit/samba_audit.log
& ~

/etc/logrotate.d/samba_audit:
/var/log/samba_audit/samba_audit.log {
weekly
missingok
rotate 9
compress
notifempty
create 640 syslog adm
}

Выношу в отдельную папку, а то в /var/log/samba и так куча логов.
mkdir /var/log/samba_audit/
touch /var/log/samba_audit/samba_audit.log
chown syslog:adm /var/log/samba_audit/samba_audit.log

И тогда вот это можно убрать:
        full_audit:facility = local5
P.S.
Настройки full_audit можно сделать в [global], чтобы не прописывать каждой шаре.

Оффлайн nockdown

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • kubuntu 20.04.3 64bit
    • Просмотр профиля
rayanAyar, спасибо большое, сделал как у Вас. Работает!

Оффлайн cesar-atk

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Большое спасибо. Тоже очень помогло. Пару дней искал вот эти волшебные строчки
/etc/logrotate.d/samba_audit:
# smbd audit
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba_audit/samba_audit.log
& ~

Оффлайн andreik99

  • Активист
  • *
  • Сообщений: 423
    • Просмотр профиля
все сделал как описано у вас. Но не пишется ничего.
в cmb.conf у меня:
(Нажмите, чтобы показать/скрыть)
все остальное согласно рекомендациям rayanAyar

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
в cmb.conf у меня:
vfs object = full_audit

Должно быть "vfs objects"

Извращенец

  • Гость
А можно для полных идиотов нормальную (полную) инструкцию по настройке?
У меня:
цитата из smb.conf

[global]
server string = Net Server
bind interfaces only = Yes
map to guest = Bad User
security = user
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log level = 0 vfs:2
log file = /var/log/samba/log.%m
max log size = 1000
name resolve order = lmhosts host wins bcast
# name resolve order = wins bcast
load printers = no
os level = 0
domain master = No
local master = no
preferred master = no
dns proxy = No
domain logons = no
wins support = Yes
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
writable = no
write list = @staff
# full_audit:success = connect disconnect opendir mkdir rmdir closedir ope

[CLIENTS]
comment = users exchange folder
path = /home/clients
read only = No
locking = No
valid users = mihail
public = yes
vfs objects = full_audit
full_audit:prefix = %u|%I
full_audit:failure = none
full_audit:success = mkdir rmdir open read pread write pwrite sendfile rename unlink lock
# full_audit:facility = local5
full_audit:priority = debug


Содержимое файла /cat/rsyslog.d/40-smbd.conf
# smbd audit
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba/audit/audit.log
& ~

Права на файл /var/log/samba/audit/audit.log:
-rw-r----- 1 syslog adm 0 2014-01-14 15:32 /var/log/samba/audit/audit.log
Содержимое /etc/rsyslog.d/50-default.conf
#  Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;local5,auth,authpriv.none -/var/log/syslog
local5,notice /var/log/samba/audit/audit.log
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err

#
# Logging for INN news system.
#
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice

#
# Some "catch-all" log files.
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg *

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
#
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
Размер файла - 0.
Новые действия туда не добавляются.
В чём и где я напортачил????
« Последнее редактирование: 14 Января 2014, 17:22:55 от Извращенец »

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
вот это:
цитата из smb.conf
Цитировать
...
   full_audit:priority = debug
...

должно равняться вот этому:

Содержимое файла /cat/rsyslog.d/40-smbd.conf
Цитировать
...
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba/audit/audit.log
...

Извращенец

  • Гость
должно равняться вот этому:
Если бы!
Я тоже так подумал.
В данную секунду
ename unlink lock
# full_audit:facility = local5
full_audit:priority = notice
И ничего не изменилось!!!!

Извращенец

  • Гость
Так шо, задача, для которой уйма РАЗНЫХ инструкций - не решается?
То есть, нет ни одной РАБОЧЕЙ инструкции для Ubuntu 10.04 севрер?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
У меня на 10.04 в /etc/rsyslog.d/50-default.conf
local5.debug  -/var/log/samba_audit.log

В /etc/samba/smb.conf  в описании каждой шары (везде свой префикс, например для [home])

vfs objects = full_audit
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
full_audit:priority = debug

Права

-rw-r----- 1 syslog adm 0 2014-01-17 07:57 /var/log/samba_audit.log

Файла /cat/rsyslog.d/40-smbd.conf нет вообще. Все работает...

Извращенец

  • Гость
local5,notice /var/log/samba/audit/audit.loglocal5.debug  -/var/log/samba_audit.logЕсть подозрение, что ошибка была именно в этом. Там должна быть точка а не запятая.
Но я же не сам всё это писал, я же откуда-то копировал!!!!
Теперь - заработало. Ща соберусь и таки сваяю полную инструкцию.
Единственное, что я не понял - когда ставишь "минус" перед путём - это что? разрешение или запрещение на запись в лог? Я и так и эдак ставил - ничего не изменяется.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Минус - это для ускорения логгирования для программ, которые много пишут в лог (отключение синхронизации после каждой записи). При этом есть риск "пропажи" при сбоях:
Цитировать
You may prepend a minus (‘‘-’’) to the path to omit syncing the file
         after each message log. This can cause data loss at system crashes,
         but increases performance for programs which use logging extensively.

Извращенец

  • Гость
Итак, более-менее рабочая инструкция по настройке аудита (детализированного лога самбы о доступе пользователей к файлам на сервере).
1. Определяем, куда будет писаться файл. Пусть это будет /var/log/samba/audit/audit.log (можно изменить по своему вкусу).
2. Определяем, какие действия пользователей должны отслеживаться (нужно ли нам знать, кто файл открывал, или только то, кто удалял?)
3. В /etc/samba/smb.conf прописываем либо в глобальную секцию [globa] (тогда аудит будет все шары проверять), либо в конкретную секцию (например, [home]) следующие команды:
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
#уровень записи. Может быть debug или notice
full_audit:priority = debug
Оставляем только те параметры, которые нужны.
4. В секцию [global] добавляем строчки:
    syslog = 1
log level = 0 vfs:2
- собственно, указание на разрешение аудита.
5. Теперь настроим системное логирование. Для этого в настройки демона в файле /etc/rsyslog.d/50-default.conf пишем:
local5.debug  -/var/log/samba_audit.logПричём, уровень логгирования (debug или notice должен соответствовать указанному в конфиге самбы). При этом в некоторых руководствах вместо local5 предлагают local7, не знаю, чем они отличаются, но тоже должны совпадать. Знак "-" перед каталогом позволяет ускорить запись в него но при этом часть данных может теряться.
Если нет желания дублировать запись аудита в syslog изменим в этом же конфиге строчку
*.*;auth,authpriv.none             -/var/log/syslogНа
*.*;auth,authpriv.none,!-smbd_audit             -/var/log/syslog
Другой рекомендуемый вариант - заменить эту строчку на:
*.*;local5,auth,authpriv.none -/var/log/syslog
local5.debug -/var/log/samba/audit/audit.log
6. Ещё один вариант подключения логирования - добавить в этот же файл строчку:
# smbd audit
if $programname == 'smbd' and $syslogseverity-text == 'notice' then /var/log/samba/audit/audit.log
& ~
Опять же, надо убедиться, что debug или notice соответствуют настройкам самбы.

7 (и последнее) - перестартовать демоны самбы и лога:
service smbd restart
service rsyslog restart
Вроде бы всё. Должно работать.
Я не знаю, что за параметры pread, pwrite и sendfile, подскажите, кто знает.

Оффлайн vktRus

  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
Другой рекомендуемый вариант - заменить эту строчку на:
*.*;local5,auth,authpriv.none -/var/log/syslog
local5.debug -/var/log/samba/audit/audit.log

Неправильно. Нужно так:
*.*;local5.none,auth,authpriv.none -/var/log/syslog
local5.debug -/var/log/samba/audit/audit.log
« Последнее редактирование: 16 Декабря 2014, 19:06:49 от vktRus »

 

Страница сгенерирована за 0.032 секунд. Запросов: 25.