Подробный гайд Samba NAS share
Настройка Samba (SMB/CIFS) — это стандарт для организации сетевых хранилищ (NAS), так как этот протокол обеспечивает нативную совместимость с Windows, macOS и Linux.
Ниже представлен подробный, пошаговый гайд по настройке Samba-сервера на базе Linux (на примере Ubuntu/Debian, но принципы одинаковы для всех дистрибутивов).
Подготовка (Prerequisites)
1. Статический IP-адрес:
Убедитесь, что ваш сервер имеет статический IP-адрес в локальной сети (например, 192.168.1.100).
2. Диск для данных:
В идеале, папка для шары должна находиться на отдельном от системы диске (или в RAID-массиве), который уже отформатирован и смонтирован (например, в /mnt/data). В этом гайде мы будем использовать путь /srv/nas/share для примера.
Шаг 1: Установка Samba
Обновите списки пакетов и установите Samba:
sudo apt update
sudo apt install samba samba-common-bin -y
Шаг 2: Создание папки и настройка прав доступа
Это критически важный шаг. Samba не может предоставить доступ к файлу, если у пользователя в самой Linux-системе нет на него прав.
1. Создаем директорию:
sudo mkdir -p /srv/nas/share
2. Создаем системного пользователя специально для Samba (без возможности входа в систему):
sudo useradd -M -s /sbin/nologin smbuser
3. Назначаем владельца и правильные права на папку:
sudo chown -R smbuser:smbuser /srv/nas/share
# 2770 означает: rwx для владельца, rwx для группы, --- для остальных.
# Бит 2 (setgid) гарантирует, что новые файлы будут наследовать группу smbuser.
sudo chmod 2770 /srv/nas/share
Шаг 3: Добавление пользователя в базу Samba
Samba использует свою собственную базу паролей, отдельную от системной Linux.
Добавляем нашего пользователя и задаем ему пароль (именно этот пароль вы будете вводить при подключении с Windows/Mac):
sudo smbpasswd -a smbuser
# Введите и подтвердите пароль для Samba
sudo smbpasswd -e smbuser
# Активируем пользователя
Шаг 4: Настройка конфигурационного файла Samba
1. Всегда делайте резервную копию конфига перед изменениями:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. Откройте файл для редактирования:
sudo nano /etc/samba/smb.conf
3. Приведите файл к следующему виду (удалите старое содержимое или закомментируйте его символом ;):
[global]
workgroup = WORKGROUP # Имя рабочей группы (для Windows обычно WORKGROUP)
server string = Denis NAS # Описание сервера
server role = standalone server
# Безопасность и протоколы
security = user
map to guest = never # Запрещаем гостевой вход
server min protocol = SMB2 # ВАЖНО: Отключаем уязвимый SMB1 (нужен для Win7 и новее)
server max protocol = SMB3
# Логирование
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
# Производительность (опционально, но рекомендуется для NAS)
aio read size = 16384
aio write size = 16384
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
[PublicShare]
comment = NAS Main Share
path = /srv/nas/share
browseable = yes # Папка видна в сетевом окружении
read only = no # Разрешена запись
valid users = smbuser # Кто имеет доступ (можно указать несколько через пробел или @group)
create mask = 0660 # Права на создаваемые файлы
directory mask = 2770 # Права на создаваемые папки
force user = smbuser # Принудительно применяем пользователя (избавляет от проблем с правами)
force group = smbuser
Сохраните файл (в Nano: Ctrl+O, Enter, Ctrl+X).
Шаг 5: Проверка конфигурации и запуск службы
1. Проверьте синтаксис конфигурации на наличие ошибок:
testparm
Если в конце вы видите Loaded services file OK., значит всё хорошо.
2. Перезапустите и добавьте в автозагрузку службы Samba:
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
Примечание:
nmbd отвечает за разрешение имен NetBIOS, чтобы сервер был виден в "Сети" Windows, но в современных сетях он часто не обязателен. smbd — главный демон.
Шаг 6: Настройка файрвола (UFW)
Если у вас включен файрвол, откройте порты для Samba:
sudo ufw allow samba
# Или, если нужна точная настройка:
# sudo ufw allow 139/tcp
# sudo ufw allow 445/tcp
Шаг 7: Подключение с клиентских устройств
Теперь подключаемся к вашему NAS. Замените 192.168.1.100 на IP вашего сервера.
Windows:
- Откройте Проводник.
- В адресной строке введите:
\\192.168.1.100\PublicShare - Введите логин
smbuserи пароль, который вы задали в Шаге 3. - Для постоянного подключения: Правый клик по "Этот компьютер" -> "Подключить сетевой диск" -> укажите путь.
macOS:
- Откройте Finder.
- В верхнем меню: Переход -> Подключение к серверу (или
Cmd+K). - Введите:
smb://192.168.1.100/PublicShare - Введите логин и пароль.
Linux (Ubuntu/другие с GUI):
- Откройте файловый менеджер.
- В боковой панели найдите "Сеть" или введите в адресную строку:
smb://192.168.1.100/PublicShare
Шаг 8: Устранение неполадок (Troubleshooting)
1. "Нет доступа" или "Отказано в правах" при записи:
- Это всегда проблема прав Linux, а не Samba. Samba не может дать больше прав, чем есть у пользователя в Linux.
- Проверьте владельца папки:
ls -ld /srv/nas/share. Владелец должен бытьsmbuser. - Проверьте, смонтирован ли диск с опцией
rw(чтение/запись), а неro. Посмотреть можно командойmount | grep /srv/nas.
2. Сервер не виден в "Сети" Windows:
- Windows 10/11 часто отключает обнаружение SMB1 и NetBIOS. Подключайтесь напрямую по IP (
\\IP_ADDRESS), это надежнее. - Убедитесь, что служба
nmbdзапущена, и в сети нет блокировки UDP портов 137-138.
3. Низкая скорость передачи данных:
- Проверьте, не ограничивает ли скорость ваш роутер/свитч (должен быть Gigabit, а лучше 2.5G/10G).
- Убедитесь, что используется SMB2 или SMB3 (в Windows 10/11 это по умолчанию).
- Проверьте, не забит ли диск (команда
df -h). Если диск переполнен, скорость падает до нуля.
4. Просмотр активных подключений:
- Команда
sudo smbstatusпокажет, кто сейчас подключен к вашему NAS, какие файлы открыты и с какой скоростью идет обмен.
Дополнительные советы по безопасности
Ограничение по IP:
Если к NAS должны иметь доступ только ваши устройства, добавьте в секцию [global] строку: hosts allow = 192.168.1. 127. (это разрешит доступ только из подсети .1 и локалхосту).
Регулярные бэкапы:
Samba — это просто протокол доступа. Не забывайте делать резервные копии данных с самого NAS на внешний диск или в облако (например, с помощью rsync или restic).
Если у вас возникнут вопросы на каком-либо из этапов или потребуется настройка специфических параметров (например, доступ для принтеров, тайм-капсула для Mac или интеграция с Active Directory), смело обращайтесь!
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.