Linux файлы для сервера

Записки IT специалиста

Настройка файлового сервера ksmbd на платформе Debian / Ubuntu

Долгое время для организации файлового сервера, работающего по протоколу SMB, в Linux не было альтернативы Samba, но с недавних пор ситуация изменилась. Начиная с ядра 5.15 в Linux появился новый модуль ядра — ksmbd — реализующий функции SMB-сервера. В отличии от Samba, которая имеет кроме файлового сервера широкий набор дополнительных функций, ksmbd, наоборот, только файловый сервер, простой и нетребовательный к ресурсам. В этой статье мы расскажем, как подключить данный модуль и выполнить первоначальную настройку сервера.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

К явным плюсам ksmbd следует отнести его низкие требования к ресурсам и высокую скорость работы, а также крайнюю простоту работы с ним, файловый сервер теперь можно поднять буквально за пару минут.

В настоящее время ksmbd доступен в репозиториях Ubuntu 22.04 и новее, а также Debian 12, в Debian 11 его можно установить из Backports.

Установка ksmbd в Debian 11

Прежде всего подключим репозиторий Backports:

echo "deb http://deb.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/bullseye-backports.list

И установим необходимые для работы с ksmbd инструменты командой:

apt install ksmbd-tools/bullseye-backports

Все необходимые службы будут добавлены в автозагрузку автоматически.

Читайте также:  Nfs server service in linux

Теперь установим новое ядро, это можно быстро сделать командой:

apt install linux-image-amd64/bullseye-backports

Будет установлено самое последнее ядро, на момент написания статьи это было ядро 6.1.

Если же вам нужно установить определенную верию ядра, то обратитесь к соотвествующему разделу нашей статьи:

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

Установка ksmbd в Debian 12 и Ubuntu 22.04 и новее

В данных системах ksmbd-tools присутствует в основных репозиториях, поэтому просто достаточно команды:

Как и в предыдущем сценарии все необходимые службы также будут добавлены в автозагрузку.

Настройка ksmbd

Все настройки сервера хранятся в /etc/ksmbd, конфигурационный файл по умолчанию отсутствует, зато есть файл с примером конфига. Скопируем его как конфигурационный файл, для Debian 12 выполните:

cp /etc/ksmbd/ksmbd.conf.example /etc/ksmbd/ksmbd.conf

В Debian 11 и Ubuntu директория с настройками отсутствует, поэтому сначала создадим ее, а затем скопируем базовую конфигурацию:

mkdir /etc/ksmbd
cp /usr/share/doc/ksmbd-tools/examples/smb.conf.example /etc/ksmbd/smb.conf

Следует отметить, что в этих системах образец конфигурационного файла достаточно спартанский, всего несколько строк. Но ничего страшного, можно просто добавить нужные опции и работать. Либо позаимствовать более подробный пример конфигурации из Debian 12:

Внутри файл сильно напоминает конфигурационный файл Samba, и это действительно так — синтаксис Samba совместим с ksmbd. У нас также есть глобальные опции и опции, относящиеся к конкретному общему ресурсу, многие определенные глобально опции можно переопределять на уровне ресурсов. Настройки по умолчанию достаточно оптимальны и можно их оставить как есть, но все равно коротко разберем наиболее значимые опции.

Если вы хотите привязать службу к определенному интерфейсу, то включите опцию:

bind interfaces only = yes

После чего укажите интерфейс или список интерфейсов в опции, при указании нескольких значений разделите их пробелом:

Читайте также:  Samsung scx 4521f linux

В современных системах гостевой доступ к SMB ресурсам считается небезопасным и по умолчанию отключен:

Если вы хотите его включить, то измените значение опции на

Более подробно об особенностях работы с анонимным гостевым доступом в современных системах вы можете причитать в нашей статье:

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

server multi channel support = yes

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

В самом конце файла конфигурации есть пример общего ресурса, удалим его и создадим собственный, так как основные параметры заданы выше, то много писать не придется:

[My_share] 
comment = my_share
path = /mnt/smb
writeable = yes

В квадратных скобках указываем имя ресурса, затем путь к физической директории, которую мы открываем в общий доступ и разрешаем запись в данный общий ресурс. Комментарий — необязательная опция, но может быть полезна, если имя ресурса не полностью раскрывает его назначение.

Сохраним файл конфигурации и перезапустим сервер:

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

Если делать правильно, то сначала создаем системного пользователя, не задавая ему домашней папки и запретив интерактивный вход (если вам не нужен реальный пользователь в системе с этим именем):

useradd -s /sbin/nologin smbusr

В нашем случае мы создали пользователя smbusr, которого нужно сделать владельцем общего ресурса:

Затем создадим SMB-пользователя:

ksmbd.adduser --add-user=smbusr

После чего вам нужно будет ввести пароль пользователя и его подтверждение.

Читайте также:  Windows после linux grub

Теперь снова перезапустите сервер:

По мере добавления пользователей права доступа на общие ресурсы следует регулировать стандартными правами Linux, мы не будем углубляться в эту тему, так как подробно рассматривали ее в статье:

Также есть дополнительные инструменты управления доступом к ресурсам, например, мы можем явно задать список пользователей имеющих право доступа к ресурсу:

valid users = ivanov petrov

Либо, наоборот, задать список тех, кому доступ запрещен:

Данный список имеет приоритет над valid users.

В случае ресурса с доступом только на чтения можно дополнительно указать пользователей имеющих право записи:

Также можно выборочно переключить некоторых пользователей в режим только чтения:

В случае совместного применения опций read list имеет приоритет над write list.

Для того, чтобы изменить пароль пользователя используйте:

ksmbd.adduser --update-user=smbusr --password=NewPa$$w0rd
ksmbd.adduser --del-user=smbusr

Напоследок рассмотрим еще один сценарий, который может быть полезен в небольших внедрениях, когда нет ни желания, ни необходимости заводить несколько системных пользователей и настраивать систему прав доступа, но хочется выдать каждому свой пароль. В этом случае просто заводим SMB-пользователей, а в описание общего ресурса добавляем опции:

force user = smbusr 
force group = smbusr

В этом случае все пользователи, которых невозможно отразить на системных пользователей, будут отражены на указанного в опции пользователя. Таким образом можно выполнить отображение многих SMB-пользователей на одного системного.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Источник

Оцените статью
Adblock
detector