Настройка файлового сервера Samba в локальной сети

В инструкции описан процесс настройки общего файлового сервера Samba для всех пользователей локальной сети с операционными системами Linux и Windows.

Что это такое?

Файловый сервер Samba работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например текстовым файлам или сетевым принтерам.

Создание и настройка сети

В инструкции рассмотрена настройка файлового сервера Samba на серверах с операционными системами Linux и Windows. На сервере Samba будет находиться 2 каталога - публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в локальной сети могут находиться сервера с разными ОС.

Схема Samba

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

После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Частные сети, в результате чего они получат локальные IP-адреса.

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

  1. Настройка сетевого адаптера в Ubuntu и Debian
  2. Настройка сетевого адаптера в CentOS
  3. Настройка сетевого адаптера в Windows

Настройка файлового сервера

Определитесь, на сервере с какой операционной системой будет находиться общий каталог.

Настройка файлового сервера на Linux

Прежде всего следует обновить локальную базу пакетов:

sudo apt-get update

Далее установите пакеты из главного репозитория:

sudo apt-get install -y samba samba-client

Создайте резервную копию файла конфигурации Samba:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ:

sudo mkdir -p /samba/public

Перейдите к этому каталогу и измените режим доступа и владельца:

cd /samba
sudo chmod -R 0755 public

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

sudo mkdir /samba/private

Создайте группу пользователей, которые будут иметь доступ к приватным данным:

sudo groupadd smbgrp

Создайте нужных пользователей с помощью команды useradd:

sudo useradd user1

Добавьте созданных пользователей в группу:

sudo usermod -aG smbgrp user1

Измените группу, которой принадлежит приватная директория:

chgrp smbgrp /samba/private

Задайте пароль, с помощью которого пользователь будет подключаться к каталогу:

sudo smbpasswd -a user1

Откройте файл конфигурации на редактирование с помощью текстового редактора, например vi:

sudo vi /etc/samba/smb.conf

Замените содержимое файла на следующие строки:

[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no

[public]
path = /samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes

[private]
path = /samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes

Примечание:

  • global - раздел с общими настройками для Samba сервера
  • workgroup - рабочая группа Windows, WORKGROUP - значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
  • security - режим безопасности, значение user означает аутентификацию по логину и паролю
  • map to guest - задает способ обработки запросов, bad user - запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
  • wins support - включить или выключить поддержку WINS
  • dns proxy - возможность запросов к DNS
  • public - название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
  • path - полный путь до общего каталога
  • browsable - отображение каталога в сетевом окружении
  • writable - использование каталога на запись, инверсия read only
  • guest ok - авторизация без пароля
  • force user - пользователь по умолчанию
  • valid users - список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей

Проверить настройки в smb.conf можно с помощью команды:

testparm -s

Далее нужно настроить firewall, открыв порты, которые использует Samba:

iptables -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 138 -j ACCEPT

Чтобы изменения вступили в силу перезапустите сервис:

sudo service smbd restart

Настройка общего публичного каталога на Windows

Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Network and Internet -> Network and Sharing Center -> Advanced sharing settings. В разделе All Networks выберете опцию Turn off password protected sharing и сохраните изменения.

Turn off password

Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Sharing и нажмите Advanced Sharing.

Win Properties

В открывшемся окне отметьте галочкой Share this folder, для того чтобы она стала общедоступной. В поле Share name введите имя, которое будет видно всем пользователям. Далее нажмите Permissions для настройки прав доступа.

Advanced Sharing

Выберете нужные права доступа для Everyone, которым может быть любой пользователь локальной сети. Нажмите Apply, чтобы изменения вступили в силу.

отметить галочками Allow

Теперь в свойствах каталога нажмите Share.

Share

В поле поиска введите имя Everyone и нажмите Add. Для полного доступа выберете права Read/Write и нажмите Share.

Выберите Everyone

Завершите действия кнопкой Done.

Done

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

Настройка общего приватного каталога на Windows

Для настройки общего каталога, который будет доступен только определенным пользователям, необходимо, чтобы данные пользователи существовали на сервере с общей папкой и на Windows машине с которой будет происходить подключение (наличие пользователя на Linux сервере не требуется), причем логин и пароль пользователей должны полностью совпадать. О том как создать нового пользователя читайте в нашей инструкции.

Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Network and Internet -> Network and Sharing Center -> Advanced sharing settings. В разделе All Networks выберете опцию Turn off password protected sharing и сохраните изменения.

Turn off password

Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Sharing и нажмите Advanced Sharing.

Private Properties

В открывшемся окне отметьте галочкой Share this folder, для того чтобы она стала общедоступной. В поле Share name введите имя, которое будет видно всем пользователям. Далее нажмите Permissions для настройки прав доступа.

Advanced Sharing

Так как каталог будет доступен только определенным пользователям, необходимо удалить группу Everyone с помощью кнопки Remove.

Remove

Далее с помощью кнопки Add добавьте пользователей для управления каталогом.

Add

Введите имя и нажмите Check Names, выберете полное имя пользователя и нажмите OK.

Enter the object names

Установите нужные права и нажмите Apply.

Отметьте галочками Allow

Теперь в свойствах каталога нажмите Share.

Share

В поле поиска введите имя пользователя и нажмите Add. Для полного доступа выберете права Read/Write и нажмите Share.

Choose people to share

В итоге каталог стает с общим доступом для определенных пользователей.

File Sharing

Подключение к общему каталогу с помощью Linux

Чтобы подключиться к общему каталогу, необходимо установить клиент для подключения:

sudo apt-get install smbclient

Для подключения используйте следующий формат команды:

smbclient -U <Пользователь> \\\\<IP-адрес>\\<Общий каталог>

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

sudo apt-get install cifs-utils

Для монтирования используйте следующий формат команды:

mount -t cifs -o username=<Пользователь>,password= //<IP-адрес>/<Общий каталог> <Точка монтирования>

Например:

mount -t cifs -o username=Everyone,password= //10.0.1.2/Win /root/shares/public

Если общий каталог находится на Windows Server?

Если общий каталог находится на сервере с операционной системой Windows, то для публичного каталога используйте имя пользователя Everyone, а в качестве пароля просто нажмите Enter. Например:

smbclient -U Everyone \\\\10.0.1.2\\Win
Enter Everyone's password:
OS=[Windows Server 2016 Standard 14393] Server=[Windows Server 2016 Standard 6.3]
smb: \>

Для приватного каталога используйте имя пользователя и пароль, которому разрешен доступ.

Если общий каталог находится на Linux?

Если общий каталог находится на сервере с операционной системой Linux, то для публичного каталога используйте имя пользователя nobody, а в качестве пароля просто нажмите Enter. Например:

smbclient -U nobody \\\\10.0.1.2\\public
Enter nobody's password:
OS=[Windows Server 2016 Standard 14393] Server=[Windows Server 2016 Standard 6.3]
smb: \>

Для приватного каталога используйте имя пользователя и пароль, которому разрешен доступ.

Подключение к общему каталогу с помощью Windows

Для подключения используйте Проводник Windows, в адресную строку введите строку в следующем формате:

\\<Локальный IP-адрес>\<Название общего каталога>

Папка

Если общий каталог находится на Windows Server?

Если вы подключаетесь к приватному каталогу, то он откроется автоматически, а если подключаетесь к публичному, то перед вами вами появится окно для ввода данных для входа. Введите логин Everyone и пустой пароль, нажмите OK. В результате вы будете подключены к общему каталогу.

Enter network credentials

Если общий каталог находится на Linux?

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

 


Средняя оценка: 4,8, всего оценок: 5