Samba — это программа, которая используется UNIX/Linux системами для взаимодействия с ОС Windows. С помощью Sambo можно интегрировать серверы и компьютеры в систему AD (Active Directory). Это реализуется для того, чтобы пользователи могли получать доступ к общим файлам и сетевым ресурсам независимо от операционной системы.
📜 Читайте также: Как обновить Ubuntu до 21.04
В инструкции мы произведем установку пакета Samba на версию Ubuntu 20.04. При необходимости можно рассмотреть другие операционные системы на основе ядра и экосистемы Linux. Идентичная установка будет на Debian или Astra Linux. В нашем случае операционная система установлена на облачный сервер. Если воспользоваться облачным сервером Timeweb Cloud, установка ОС осуществляется автоматически.
Если ваш сервер готов к использованию, подключайтесь к нему через SSH и переходите к пошаговой инструкции. Первоначально мы выполним установку Samba с базовой настройкой, а затем покажем, как делать разграничение доступа.
Добавим пользователя
sudo useradd -p new_server_pass new_server_user
После new_server вводим имя пользователя и задаем пароль. Чтобы в одной командной строке ввести сразу пароль и имя пользователя, используем команду -p.
Чтобы перейти к настройке, обновим хранилище командой update.
Подготовка сервера
1. Синхронизируем время для корректного отображения дат. Рекомендуем не пропускать этот шаг, чтобы в дальнейшем не было сложностей с поиском информации.
Произведем синхронизацию при помощи команды:
sudo systemctl enable chrony
Утилита chrony отвечает за правильность времени. При помощи команды start запускаем команду для настройки часового пояса. Затем проверим установку, запустив команду date.
На экране должны появится подробная информация с указанием даты и времени:
Fri Oct 28 11:25:34 UTC 2022
2. Проверим настройку брэндмаура. Для функционирования Samba нужны порты 445, 137-139. Несмотря на то, что они должны быть открыты по умолчанию, проверим их доступность перед началом работы.
Дальше следуйте пошаговой инструкции для установки Samba на сервер.
Установка Samba
Инсталлируем программный пакет из репозитория:
sudo apt install samba -y
Список команд, которые понадобятся в процессе работы:
- enable smbd — настройка автоматического запуска. Где smbd — это системное имя сервиса, которое назначается по умолчанию.
- disable — отмена автоматического запуска. Все команды используются по аналогии с первой.
- start — запуск программного обеспечения.
- status — проверка статуса системы.
- stop — остановка работы программы сервере.
- restart — перезапуск программного пакета.
- reload — обновление конфигурации.
Следующая команда позволит открыть порты 445 и 137-139:
sudo ufw allow Samba
Настраиваем анонимный доступ
При использовании удаленного сервера за пределами облака вы не сможете открыть доступ к нему по IP. Такие правила диктует сетевая безопасность. Однако, открыть доступ можно посредством VPN-туннеля. Как правило, адрес серверов, которые доступны через VPN — 10.8.0.1.
Для настройки анонимного доступа открываем конфигурационный файл. Его месторасположение: /etc/samba/smb.conf.
На всякий случай делаем резервную копию файла, чтобы при необходимости вернуть программе исходный вид, не переустанавливая с нуля. Затем оставляем код без комментариев и запускаем команду testparm.
Таким способом мы проверим корректность работы.
Заходим в настройки общей папки и задаем ряд параметров, как на экране:
[share]
comment = шара
path = /data/public_share
public = yes
writable = yes
read only = no
guest ok = yes
Где три первых параметра могут быть абсолютно любыми, а значения остальных задаются как yes и no, в зависимости от требований. Ниже мы подробно описали назначение всех используемых параметров.
- [share] — название расширенной папки, которое отображается для всех пользователей, которые подключаются к серверу;
- comment — это комментарий, который вы добавляете сами для удобства;
- path — это месторасположение папки для хранения данных, а именно путь к ней;
- public — настройка доступа к содержимому папки. Чтобы сделать информацию общедоступной, то оставляйте yes. Чтобы закрыть доступ к содержимому, используйте no;
- writable — разрешение на запись данных в сетевую папку. Также можно отключить или включить;
- read only — параметр означает, что содержимое папки используется исключительно для чтения. Чтобы пользователь мог создавать новые папки и файлы, введем no;
- guest ok — предоставление доступа к папке гостям. Мы разрешили доступ.
Настраиваем доступ по логину и паролю
Для того, чтобы получать доступ можно было через учетные данные пользователя (логин и пароль), создадим новую директорию с настройкой прав. Для этого необходимо напротив всех параметров, кроме writable, установить no:
[share]
comment = шара
path = /data/public_share
public = no
writable = yes
read only = no
guest ok = no
Затем используем следующие команды в данной последовательности:
- mkdir для создания новой директории;
- useradd someone, где someone — имя пользователя, которое может быть любым;
- passwd something, где something — это пароль для входа в учетную запись;
- sudo smbpasswd -a someone — используем данную команду, чтобы добавить нового пользователя. Затем можно протестировать правильность настройки и попробовать зайти через логин и пароль. Если все верно, то содержимое папки будет доступно.
Настраиваем групповой доступ
В данном модуле покажем, как настроить доступ к папке группе лиц, но при этом не делать ее общедоступной. Для этого добавляем smb.conf и прописываем имена всех пользователей. Выглядит следующим образом:
[share]
comment = шара
path = /data/public_share
public = no
writable = yes
read only = no
guest ok = no
smb.conf valid users = admin, someone1, someone2, someone3, someone4
write list = admin, someone1
Где пользователи, которые перечислены в строке valid users, имеют только доступ к папке, а у пользователей write list есть полномочия на внесение изменений.
Также можно добавить еще один параметр со значением yes:
inherit owner = yes
Эта опция создана для того, чтобы включить наследование владельцев при создании новых папок. Если какие-то из опций вам не нужны, то их можно не указывать.
Производим перезагрузку сервиса, чтобы все заработало с новыми параметрами.
Подключение к Sambo с ОС Windows или Linux
1. Если вы подключаетесь к сервису, используя Linux, следуйте следующей инструкции:
sudo apt install cifs-utils -y — установка утилиты cifs
mount.cifs //10.8.0.1/our_share /share — выполняем монтирование ресурса, а затем происходит подключение с указанием пути и названия.
Необязательно производить монтирование вручную, когда есть файл конфигурации fstab с заданными настройками, при помощи которых все происходит автоматически.
2. Инструкция для подключения к ресурсу из-под ОС Windows:
Нажимаем сочетание клавиш Ctrl+E и указываем путь через \\ к ресурсу в сети. Также можно подключить Sambo как диск, чтобы не взаимодействовать с сервером на постоянной основе, когда это не нужно.
Настраиваем сетевую корзину
Создадим новую директорию, чтобы предотвратить случайное и безвозвратное удаление файлов:
[Recycle]
comment = Корзина для временного хранения файлов
path = /directory/recycle
public = yes
browseable = yes
writable = yes
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp, ~$*
recycle:exclude_dir = /tmp
С первыми шестью параметрами мы уже работали. В самом начале указали наименование папки, оставили комментарий с назначением данной директории, ввели путь и тд. Более подробно остановимся на параметрах, которые связаны непосредственно с корзиной для файлов.
- vfs objects = recycle — обозначение, какая подсистемы используется;
- repository — месторасположение, где хранятся удаленные файлы. Указываем путь к нему;
- keeptree — параметр принимает значение yes и no в зависимости от того, требуется ли сохранение дерева каталогов после удаления;
- touch — после перемещения файлов в корзину можно настроить изменение временных меток файлов при помощи yes и также запретить, указав значение no;
- versions — при удалении файлов, которые имеют одинаковые имена, дополнительно можно указывать номер версии;
- maxsize — настройка максимального размера файла, который можно переместить в корзину. Мы указали 0, чтобы отключить лимит и удалять файлы любых размеров;
- exclude — позволяет указать типы файлов, которые необходимо убрать из корзины;
- exclude_dir — команда аналогичная предыдущей, только позволяет исключать директории.
Заключение
Этого руководства достаточно, чтобы произвести установку Samba на облачный сервер с нуля. Также, используя дополнительные опции, можно регулировать настройку в зависимости от ваших потребностей.
Статья оказалась полезной? Подписывайтесь, ставьте лайки и поделитесь ссылкой с друзьями.💗