Samba реализует протокол Server Message Block в Unix-подобных системах и позволяет клиентам Linux, Windows, macOS и других систем совместно использовать файлы и принтеры. Современные установки применяют актуальные диалекты SMB; старый термин CIFS всё ещё встречается в клиентских инструментах Linux, но не является поводом включать устаревший SMB1.
Совместное использование сети · Урок 5
Samba
Узнайте, как настраивать, проверять, использовать и защищать простой файловый ресурс Samba.
Планирование общего ресурса
Перед установкой или изменением Samba определите разрешённых клиентов, идентификаторы, потребности в чтении и записи, сетевую зону, владельца данных, политику резервного копирования и требуемый диалект SMB. Используйте отдельный каталог, чтобы случайно не открыть домашнее или системное дерево.
Доступ регулируют и политика Samba, и нижележащие права файловой системы. Разрешение записи в smb.conf не может предоставить учётной записи отсутствующий у неё доступ к файловой системе.
Что должно разрешать пользователю запись через общий ресурс Samba?
Определение простого общего ресурса
Основная конфигурация обычно находится в /etc/samba/smb.conf. Пример с ограниченным доступом:
[team]
path = /srv/samba/team
browseable = yes
read only = no
valid users = @teamshare
Создайте каталог и примените проверенные владельца и права для группы Unix:
$ sudo install -d -o root -g teamshare -m 2770 /srv/samba/team
Бит set-group-ID помогает новым записям наследовать группу каталога, однако для совместного доступа также могут понадобиться ACL или тщательно подобранная маска создания. Проверяйте фактический результат для файлов и каталогов, а не полагайтесь лишь на наследование.
Что выражает valid users = @teamshare?
Настройка идентификации
В автономной конфигурации Samba учётной записи обычно нужны соответствующий идентификатор Unix и включённые учётные данные Samba:
$ sudo smbpasswd -a alice
Установки с доменной службой каталогов используют другую схему идентификации. Не помещайте пароли в историю оболочки или конфигурацию, доступную посторонним пользователям, и не считайте, что пароль Samba автоматически совпадает с паролем учётной записи Unix.
Что обычно делает smbpasswd -a alice на автономном сервере?
Проверка и применение конфигурации
До перезагрузки служб проверьте разобранную конфигурацию:
$ testparm -s
Изучите неожиданные значения по умолчанию и ошибки, затем перезагрузите службу Samba своего дистрибутива через диспетчер служб. Имена различаются; часто встречаются smbd.service и smb.service. Если поддерживается reload, он нарушает работу меньше, чем restart, однако всё равно проверьте состояние, прослушиваемые сокеты, область межсетевого экрана и журналы.
Выполните тест с клиента, явно указав пользователя:
$ smbclient //server.example.net/team -U alice
Зачем запускать testparm -s перед применением изменения Samba?
Подключение из Linux
Клиенты Linux обычно используют драйвер файловой системы cifs и вспомогательные средства mount. Не указывайте пароли в командной строке: аргументы могут попасть в историю или стать видны при просмотре процессов. Используйте доступный только root файл учётных данных или одобренный механизм хранения:
$ sudo mount -t cifs //server.example.net/team /mnt/team \
-o credentials=/root/.smb-team,vers=3.1.1
Защитите файл учётных данных, проверьте поддерживаемый обеими сторонами диалект и осознанно задайте требования к UID, GID, правам и шифрованию. После подключения проверьте ресурс через findmnt, выполните разрешённые тесты чтения и записи, а затем отключите его, предварительно скоординировав активных пользователей.
Почему не следует указывать password=... прямо в команде подключения?
Урок завершён
Вы завершили Samba
Теперь вы можете настроить общий ресурс Samba с учётом безопасности протокола и файловой системы.
Сначала определяйте клиентов, идентификаторы, область сети и политику данных.
Ограничивайте общий ресурс и согласовывайте нижележащие права.
Управляйте учётными данными Samba в соответствии с моделью идентификации.
Проверяйте конфигурацию через
testparmи выполняйте сквозной клиентский тест.Защищайте клиентские учётные данные и проверяйте подключённый доступ.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт