Лучшие практики Samba для контрольных списков доступа (ACL) для Windows-клиентов

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

Я хочу создать файловые хранилища для наших клиентов Windows. В настоящее время мы работаем со старым сервером samba, который не был правильно настроен предыдущим ИТ-специалистом (например, пользователи теряют доступ к подпапкам, иногда невозможно предоставить только права на чтение…). Поэтому я хочу убедиться, что делаю все правильно.

Каковы лучшие практики в отношении ACL, чтобы гарантировать следующее:

  • Ни один файл и папка не должны принадлежать создателю
  • Пользователи не могут изменять разрешения (например, никаких полных разрешений на файлы/папки, которые они создали)
  • Разрешения должны наследоваться из общей папки (кроме случаев, когда наследование отключено вручную)
  • Возможно, невозможно: файлы/папки, перемещенные из одного хранилища в другое, должны наследовать разрешения из целевого хранилища

Связанный вопрос: какие пользователи и группы должны владеть общей папкой? Если я не ошибаюсь, это должен быть аккаунт samba-admin (а не аккаунт posix root), как я прочитал на вики Samba.

Есть ли что-то еще, что я должен учитывать? Ниже моя текущая конфигурация /etc/samba/shares.conf.d/sambashare.conf

[Share]
path = /shares/share
msdfs root = no
writeable = yes
browseable = yes
public = no
dos filemode = no
hide unreadable = no
create mode = 0664
directory mode = 0775  
force create mode = 0664
force directory mode = 0775
locking = 1
strict locking = Auto
oplocks = 1
level2 oplocks = 1
fake oplocks = 0
csc policy = manual
nt acl support = 1
inherit acls = 1
vfs objects = acl_xattr
inherit owner = yes
inherit permissions = yes
map acl inherit = yes

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

Введение в вопрос о наилучших практиках настройки ACL (Access Control Lists) для Samba серверов крайне важно для обеспечения безопасности и управляемости файловых ресурсов, особенно в среде, где сервер Samba взаимодействует с клиентами на базе Windows. Неправильная конфигурация может привести к утрате доступа пользователями, несанкционированной модификации прав доступа, а также к другим проблемам, связанным с безопасностью и управлением.

Теория

Samba представляет собой реализацию протокола SMB/CIFS, который позволяет Linux/Unix системам общаться с Windows-системами, предоставляя возможности для создания общих папок и управления доступом к ним. ACL — это механизм, который определяет, какие права имеют пользователи на файлы и директории, и выполняет их более гибко и детализировано по сравнению с обычными файловыми разрешениями.

Некоторые ключевые аспекты в отношении ACL, которые помогут в достижении желаемых результатов:

  1. Наследование прав доступа: Позволяет обеспечивать, чтобы вновь создаваемые файлы и каталогии в пределах общего ресурса автоматически получали те же права доступа, что и родительская директория, если наследование явно не отключено.

  2. Предотвращение изменения прав доступа пользователями: Необходимо ограничивать пользователей так, чтобы они не могли самостоятельно изменять права доступа, которые могли бы предоставить увеличенные привилегии другим пользователям.

  3. Управление собственностью и правами: Все создаваемые файлы и директории не должны быть собственностью создателя. Это предотвращает проблемы с доступом и облегчает управление разрешениями.

Пример

Рассмотрим следующие изменения конфигурации и управления ACL на основе предоставленного вами файла конфигурации sambashare.conf:

  1. Установка владельца и группы: Обычно рекомендуется установить владельцем и группой shared-folder пользователя, ответственного за администрирование, например, учетную запись samba-admin. Это соответствует рекомендациям из ссылки на Samba Wiki.

  2. Настройки конфигурации:

    • inherit acls = yes и inherit permissions = yes уже находятся в конфигурации, что обеспечивает наследование прав доступа от родительской директории.
    • force create mode и force directory mode должны быть настроены так, чтобы запрещать пользователям выставлять полные права на создаваемые ими объекты.
  3. Использование vfs objects: Использование vfs objects = acl_xattr позволит обрабатывать ACL’ы совместимым для Windows способом, сохраняя дополнительную информацию правильно.

Применение

Применяя эти принципы к вашей конфигурации, можно настоять на следующих изменениях и процедурах:

  1. Назначение владельцем общей директории администратора Samba: Это действие предотвратит утрату контроля над файловым ресурсом. Используйте команды, чтобы изменить владельца и группу, например:

    chown samba-admin:samba-group /shares/share
  2. Обеспечение ограничений на изменение ACL пользователями: Убедитесь, что задаваемые настройки create mode, directory mode, force create mode, и force directory mode ограничивают полномочия пользователей. Например, вы можете использовать более строгие маски:

    create mode = 0660
    directory mode = 0770
    force create mode = 0660
    force directory mode = 0770
  3. Обновление и тестирование политики наследования:

    • Если вы сталкиваетесь с проблемами из-за неправильного наследования, возможно, потребуется вручную проверить и обновить права доступа через команды setfacl и getfacl.
    • Использовать Windows-интерфейс для проверки и настройки ACL через "Права доступа на основе объектов" (Object-based permissions).
  4. Автоматическая коррекция прав при перемещении файлов: К сожалению, Samba не обеспечивает автоматического изменения прав при перемещении файлов из одной директории в другую, так как операция "перемещения" в рамках одного файлового системы не затрагивает права доступа. Рекомендуется использовать скрипты на уровне системы для переопределения прав доступа перемещенных файлов.

Заключение и дополнения

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

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

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