MikroTik выкатил обновление для RouterOS, в котором появился клиент SMB и некоторые улучшения для сервера SMB. Обсуждаем изменения. Также приводится пример запуска сервера и клиента SMB через CLI.
Новое в SMB
Если вы имеете дело с MikroTik, вы знаете, что RouterOS может предоставлять общий доступ к ресурсам по протоколу SMB. В качестве таких ресурсов может выступать встроенное в устройство MikroTik флеш-хранилище или USB-флешка, карта памяти. Некоторые новые модели позволяют расшаривать SSD, используемое в слоте m.2.
В недавнем обновлении пакета ROSE появился клиент SMB.
Сервер SMB, по-прежнему, доступен без установки каких-либо пакетов, но в нём появились улучшения.
Теперь RoterOS поддерживает новейшую версию SMB — SMB3.1.1. Поддержка устаревшей версии SMB1 прекращена. Самая старая версия SMB, которую можно использовать в RouterOS — это SMB2.1, хотя, она не поддерживает шифрование из конца в конец.
Чтобы быть уверенным в том, что используются только версии SMB с поддержкой шифрования, введён новый атрибут, который задействует шифрование принудительно. Если он включён, к устройству будет позволено подключаться только по протоколу SMB3.0 или SMB3.1.1.
В новой версии сервера SMB можно лучше контролировать, кто может получить доступ к ресурсам. Во-первых, убран атрибут allow-guest, разрешавший гостевой доступ. Вместо этого теперь на сервере есть заранее сконфигурированный гостевой пользователь, по умолчанию, с именем guest. Он находится в разделе /ip/smb/users. Этого гостя можно полностью отключить во всей системе. Кроме того, в настройке ресурса SMB появилось два новых атрибута: valid users и invalid users, с помощью которых вы можете в явной форме настроить, кто может и кто не может получить доступ к этому ресурсу. По умолчанию, эти поля оставлены пустыми, что означает, что все пользователи будут считаться допустимыми.
Если вы хотите, чтобы валидными были все пользователи кроме каких-то определённых, просто добавьте последних в invalid users. И наоборот, если вы хотите разрешить доступ только для определённых пользователей, а остальным доступ запретить, добавьте разрешённых пользователей в valid users, а поле invalid users оставьте пустым.
Создание ресурса SMB на устройстве MikroTik с RouterOS
Теперь приведём пример конфигурации общего ресурса с помощью командной строки. Допустим, в свитче MikroTik установлено хранилище SSD, которые мы хотим расшарить в локальной сети.
Сначала создадим пользователя:
/ip/smb/users> add read-only=no name=rbuser password=rbpasswd
Эта команда может содержать следующие переменные:
Переменная | Тип | Возможные значения | Значение, по умолчанию | Описание |
---|---|---|---|---|
|
строка | пустая | Свободное описание | |
|
булева | yes | no | no | Определяет, будет ли пользователь выключен при создании, или нет |
|
строка | пустая | Имя пользователя | |
|
строка | пустая | Пароль пользователя | |
|
булева | yes | no | yes | Определяет, будет ли пользователь иметь права только на чтение, или на запись тоже |
Далее создаём ресурс:
/ip/smb/shares> add name=crsbackup directory=rbbackup require-encryption=yes valid-users=rbuser
Эта команда может содержать следующие переменные:
Переменная | Тип | Возможные значения | Значение, по умолчанию | Описание |
---|---|---|---|---|
|
строка | пустая | Свободное описание | |
|
булева | yes | no | no | Определяет, будет ли ресурс выключен при создании, или нет |
|
строка | пустая | Имя ресурса SMB в сети | |
|
строка | пустая | Локальная папка на сервере SMB, которая станет сетевым ресурсом. Если такая папка отсутствовала на устройстве, она будет создана. Если строка пустая, в качестве имени папки будет использовано значение переменной name, относительно корневой директории | |
|
булева | yes | no | no | Принудительно разрешает подключение только по тем версиям протокола SMB, в которых используется шифрование |
|
список строк | пустая | Белый список пользователей. Разрешено подключаться только тем пользователям, которые указаны в этом списке | |
|
список строк | пустая | Чёрный список пользователей. Разрешено подключаться всем пользователям кроме тех, которые указаны в этом списке. Если пусты и чёрный, и белый списки, разрешено подключаться всем пользователям |
Специально запускать SMB-сервер не обязательно, т. к. по умолчанию, переменная enabled команды запуска имеет значение auto, что означает, что сервер запустится автоматически, как только будет создан хотя бы один не выключенный SMB-ресурс.
Создание клиентского подключения к ресурсу SMB на устройстве MikroTik с RouterOS
После того как запущен SMB-сервер, мы можем добавить клиента SMB на устройстве MikroTik. Возьмём роутер MikroTik, в котором нет портов для добавления сменного хранилища. Можно добавить доступ к шаре с помощью одной команды в CLI:
/disk> add type=smb slot=backup smb-address=10.155.145.11 smb-share=crsbackup smb-user=rbuser smb-password=rbpasswd
Эта команда может содержать следующие переменные:
Переменная | Тип | Возможные значения | Значение, по умолчанию | Описание |
---|---|---|---|---|
|
строка | пустая | Протокол, по которому будет доступен подключаемый ресурс. Для SMB впишите smb | |
|
строка | пустая | Название сетевого ресурса, как оно будет отображаться в списке файловых ресурсов у клиента SMB | |
|
IP-адрес | пустая | IP-адрес сервера SMB | |
|
строка | пустая | Имя сетевого ресурса SMB, как оно указано на сервере в переменной name | |
|
строка | пустая | Имя пользователя, как оно указано на сервере в переменной name для созданного пользователя | |
|
строка | пустая | Пароль пользователя, как он указано на сервере в переменной password |
После этого хранилище SSD на устройстве-сервере станет доступно для чтения и записи роутером, как локальное хранилище. Оно будет показано в списке файловых ресурсов роутера.
Напомним, что пакет ROSE требуется только для установки клиента SMB. Сервер SMB имеется в базовом пакете всех устройств на базе RouterOS. Единственное исключение составляют устройства на архитектуре SMIPS, в которых SMB-сервер недоступен.