- Логирование операций с файлами в Samba
- Введение
- Включаем логирование операций в samba
- Вывод лога доступа к файлам samba в отдельный файл
- Заключение
- Отследить кто удаляет файл.
- проблему решил
- Re: проблему решил
- Похожие темы
- Как отследить, кто удаляет файл в CentOS / RHEL, используя Auditd
- Шаги настройки правил аудита для CentOS / RHEL 4,5,6
- Шаги для CentOS / RHEL 7
Логирование операций с файлами в Samba
Ранее я неоднократно рассказывал, как настроить файловый сервер samba для совместной работы с файлами. При совместной работе часто бывает нужно знать, кто и когда что-то сделал с тем или иным файлом, а конкретно, кто удалил файл. По-умолчанию, такой лог не ведется, нужно настраивать отдельно. Займемся настройкой логирования операций с файлами в данной статье.
Введение
У меня есть две статьи по настройке файлового сервера samba:
В обоих случаях будет не лишним настроить логирование всех обращений к файлам на сервере. Делается это штатными возможностями самой самбы. Она будет отправлять логи в syslog, а в нем мы уже настроим их хранение и ротацию с помощью logrotate. На нагруженных серверах логи будут очень объемными. Нужно обязательно позаботиться об их хранении и удалении.
Я буду настраивать логи в samba на сервере CentOS 7. В других случаях отличий почти не будет. Сами настройки самбы везде одинаковые. Syslog и Logrotate тоже примерно одинаковые во всех дистрибутивах Linux.
Включаем логирование операций в samba
Для логирования действий пользователей на файловом сервере будем использовать модуль самбы full_audit. Если вы хотите выполнять логирование операций с файлами в один лог файл по всем доступным шарам, то добавляйте настройки аудита в глобальную секцию. Если же захотите разделить по шарам, то отдельно в каждую шару с небольшими изменениями. Я рассмотрю оба варианта. Для начала, настроим аудит по всем шарам в один общий файл. Добавляем в /etc/samba/smb.conf в секцию [global] следующие строки:
log level = 1 vfs:1 full_audit:prefix = %u|%I|%S full_audit:success = connect, open, mkdir, rmdir, unlink, write, rename full_audit:failure = connect, open, mkdir, rmdir, unlink, write, rename full_audit:facility = local5 full_audit:priority = notice vfs objects = full_audit
full_audit:prefix | В каком формате будет выводиться информация о подключении: %u — имя пользователя, %I — его ip адрес, %S — название шары. |
full_audit:success | Какие удачные события будут логироваться. В приведенном примере по смыслу и так понятно, о чем речь. Полный список событий такой: 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. |
full_audit:failure | То же самое, что выше, только для ошибок. |
full_audit:facility | Категория событий syslog, в которую будут попадать записи. |
full_audit:priority | Приоритет записей для syslog. Для самбы будет достаточно приоритета notice, чем ее записи по сути и являются. |
Если вы хотите настроить вывод лога доступа с разных шар в отдельные файлы, то указанные выше параметры поместите не в глобальную, а отдельно в каждую секцию с шарой, изменив категории событий, сделав их в каждой шаре уникальными, например local5 и local6. Так же нужно будет в каждую шару отдельно добавить еще один параметр:
После изменения конфигурации, не забудьте перезапустить самбу. Если больше ничего не делать, то логи посещений самбы польются в стандартный поток вывода для системных логов. В Centos в /var/log/messages. Это очень неудобно, поэтому далее настроим вывод логов в отдельный файл.
Вывод лога доступа к файлам samba в отдельный файл
Нам нужно отредактировать файл конфигурации rsyslog для направления вывода лога самбы в отдельный файл. В CentOS 7 открываем файл /etc/rsyslog.conf и добавляем в самый конец такую строку:
local5.notice -/var/log/samba/audit.log
Этим параметром мы направили вывод логов аудита посещений в отдельный файл audit.log. Если все оставить как есть, то информация о посещениях будет писаться как в отдельный файл, так и в общий системный. Чтобы в общий не писалось, редактируем еще одну строку, добавляя туда выделенный фрагмент:
*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
Сохраняем файл и перезапускаем rsyslog.
# systemctl restart rsyslog
Осталось малось — настроить ротацию логов. Сделать это надо обязательно, так как файл аудита будет расти очень быстро. Здесь ничего особенного, используем logrotate. Скорее всего у вас уже есть фал конфигурации logrotate для самбы. Он создается в момент установки. Отредактируем его, добавив новые параметры.
# mcedit /etc/logrotate.d/samba
Я храню логи за последние 90 дней, ротацию делаю раз в день и складываю старые логи в отдельную папку. Если у вас в конфигурации есть параметр с маской, который захватывает сразу все файлы в директории /var/log/samba, например вот так:
То либо вынесите лог-файл с аудитом в отдельную директорию, либо измените маску.
Заключение
Я уже давно заметил один неприятный баг в самбе 4-й версии. Привожу пример того, как выглядит лог посещений файловой шары самбы с русскими названиями в именах на 3 и 4-й версии. В данном случае сначала версия 3.6.3, потом 4.6.2
В первом случае отображаются полные корректные пути. Во втором случае на события типа open идут только обрывки названий директорий, по которым не понятен полный путь. Делаю важный акцент — только на события open. Если идут события создания, удаления, изменения, то пути уже корректны, даже если они русские. В принципе, события на доступ лично для меня обычно не важны. Интерес представляет только создание, изменение и особенно удаление файлов. С этим все в порядке. Аудит показывает корректный лог удаления файлов. Но все равно не приятно смотреть на неинформативный лог.
Возможно, дело не в 3-1 и 4-й версии. Я не проверял различные изменения в рамках одной и той же ветки. Просто посмотрел на имеющиеся у меня сервера. Там где 3-я версия все в порядке, там где 4-я везде такой бардак в логах.
Отследить кто удаляет файл.
Есть сервер. На нем что-то подчищает файлы в одной папке. Найти не могу что или кто это. По крону ничего такого не запускается, кроме служебных задач ispmanager. Есть ли возможность отследить, кто файлы удаляет?
sudo auditctl -w /path/to/somefile -p wra ausearch -f /path/to/somefile -i
что то не работает такая конструкция. Нацеливаю ее на файл, сам его удаляю, а она ничего не показывает.
удаление файла — событие каталога, нацеливай на каталог
проблему решил
Вообщем проблему решил. Все вышеперечисленное не помогло, но авторам все равно спасибо.
Сделал так. Поставил на файл readonly и потом шерстил поиском по всем логам. Там то и нашел кто ругается, что не смог файл удалить.
Re: проблему решил
Похожие темы
- Форум Отследить изминения файловой системы (2017)
- Форум Не удаляются полностью программы (2011)
- Форум Удаляется папка при перезагрузке (2016)
- Форум Ubuntu и зависимости (2005)
- Форум Не удаляются файлы (2015)
- Форум Gnome Files (Nautilus) не желает удалять непустые директории, расшаренные в самбе (2018)
- Форум Evolution не удаляет содержимое корзины (2005)
- Форум vsftpd права доступа (только запись, удалять нельзя) (2010)
- Форум Evolution + IMAP + Gmail = как нормально удалять письма? (2010)
- Форум Удаление папки в боковой панели. (2011)
Как отследить, кто удаляет файл в CentOS / RHEL, используя Auditd
Мануал
Red Hat Enterprise Linux предоставляет функцию правил аудита для регистрации действий файлов, выполненных пользователями или процессами.
Это может быть достигнуто путем настройки правил аудита.
Эта статья посвящена мониторингу удалений файлов пользователями или процессами в системе Linux.
Выполните шаги, описанные ниже, чтобы настроить правила audd для мониторинга удаления файлов в системе CentOS / RHEL.
Шаги настройки правил аудита для CentOS / RHEL 4,5,6
1. Чтобы настроить правила аудита, добавьте следующую строку в файл /etc/audit.rules (для RHEL 5,6 используйте файл /etc/audit/audit.rules).
# tail -2 /etc/audit.rules auditctl -a exit,always -F arch=b32 -S unlink auditctl -a exit,always -F arch=b64 -S unlink
# tail -2 /etc/audit/audit.rules -a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete -a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete
2. При желании вы можете указать полный путь к каталогу для просмотра, например, если вы хотите отслеживать удаление файлов только в определенной файловой системе, вы можете указать точку монтирования, добавив следующее поле в правило аудита:
-F dir=[directory or mount point]
3. После написания правил перезапустите службу auditd и включите ее, чтобы сохранить правила после перезагрузки.
# /etc/init.d/auditd restart # chkconfig auditd on
Auditd будет регистрировать операции удаления в файле /var/log/audit/audit.log, однако мы можем использовать команду ausearch с ключом, указанным в правиле аудита (-k), для просмотра событий:
Шаги для CentOS / RHEL 7
1. Чтобы настроить правила аудита, добавьте следующую строку в файл /etc/audit/rules.d/audit.rules.
# tail -2 /etc/audit/rules.d/audit.rules -a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete -a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete
2. При желании вы можете указать полный путь к каталогу для просмотра, например, если вы хотите отслеживать удаление файлов только в определенной файловой системе, вы можете указать точку монтирования, добавив следующее поле в правило аудита:
-F dir=[directory or mount point]
3. После написания правил перезапустите службу auditd и включите ее, чтобы сохранить правила после перезагрузки.
# service auditd restart ### use of command service instead of systemctl is intentional here. # systemctl enable auditd
Auditd будет регистрировать операции удаления файла в файле /var/log/audit/audit.log, однако мы можем использовать команду ausearch с ключом, указанным в правиле аудита (-k), для просмотра событий:
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 305)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]
Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]