Главная страница » Raspberry » Домашний NAS на Raspberry Pi

Домашний NAS на Raspberry Pi: установка и настройка Samba

Содержание

  1. Вступление
  2. Что понадобится для сборки NAS
  3. Подготавливаем Raspberry Pi
  4. Настраиваем общую папку Samba
  5. Создаем папку с авторизацией
  6. Открываем доступ только определенному пользователю
  7. Разбираем основные параметры Samba
  8. Частые проблемы и способы их решения
  9. Заключение

Вступление

Домашнее сетевое хранилище (NAS) — удобный способ хранить фотографии, фильмы, документы и резервные копии в одном месте, имея к ним доступ с любого устройства в домашней сети. Компьютеры, ноутбуки, телевизоры, смартфоны и планшеты смогут работать с файлами так, словно они находятся на локальном диске.

Самое простое решение — купить готовый NAS от Synology, QNAP или Asustor. Однако стоимость таких устройств сложно назвать бюджетной, особенно если учитывать, что жесткие диски приобретаются отдельно. Если же вам нужен надежный файловый сервер без десятков дополнительных функций, его вполне можно собрать самостоятельно.

В качестве основы я использовал Raspberry Pi 3 B+, которая уже несколько лет работает у меня в режиме 24/7. За это время менялись накопители, обновлялась операционная система и сама Samba, но принцип работы остался прежним — маленький одноплатный компьютер полностью заменил старый системный блок, который раньше использовался как домашний сервер.

В этой статье покажу, как установить и настроить Samba на Raspberry Pi OS, создать общую сетевую папку, ограничить доступ к отдельным каталогам и предоставить права только определенным пользователям. Несмотря на то что инструкция написана на примере Raspberry Pi, она практически полностью подойдет для любого Linux-дистрибутива на базе Debian.

Инструкция рассчитана на начинающих пользователей. Все команды выполняются последовательно, поэтому даже если вы впервые работаете с Linux, особых сложностей возникнуть не должно.

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

Что понадобится для сборки NAS

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

  • Raspberry Pi 3 B+;
  • карта памяти Samsung EVO+ 32 ГБ — позже система была перенесена на жесткий диск;
  • блок питания 5 В, 2,5 А;
  • USB-кабель с поддержкой тока до 3 А;
  • внешний USB-бокс для 3,5-дюймового HDD;
  • жесткий диск WD Blue объемом 1 ТБ.

Если вы только собираете домашний NAS, рекомендую сразу устанавливать Raspberry Pi OS на SSD или другой USB-накопитель. Современные версии Raspberry Pi поддерживают загрузку с USB, а SSD значительно надежнее карты памяти при круглосуточной работе.

Для постоянного хранения данных лучше использовать файловую систему ext4. Если диск периодически подключается к компьютеру под управлением Windows, можно оставить NTFS, хотя производительность и работа с правами доступа в Linux будут немного хуже.

Подготавливаем Raspberry Pi

В качестве операционной системы рекомендую использовать Raspberry Pi OS Lite. В ней нет графической оболочки и лишнего программного обеспечения, поэтому система потребляет меньше ресурсов и хорошо подходит для серверных задач.

Записать образ проще всего с помощью официальной программы Raspberry Pi Imager. Во время записи можно сразу включить SSH, задать имя пользователя, пароль и имя устройства. После первого запуска Raspberry Pi будет готова к работе по сети.

После подключения по SSH обновим систему:

sudo apt update
sudo apt full-upgrade -y
sudo reboot

Также рекомендую закрепить за Raspberry Pi постоянный IP-адрес. Проще всего сделать это через резервирование DHCP на роутере: адрес не изменится после перезагрузки, а сетевые папки всегда будут доступны по одному и тому же IP.

Настраиваем и создаем общую папку Samba

После подготовки системы можно переходить к установке Samba. Именно она позволит компьютерам под управлением Windows, Linux, macOS, а также телевизорам и медиаплеерам видеть Raspberry Pi как обычный файловый сервер.

Устанавливаем необходимые пакеты:

sudo apt install samba samba-common-bin -y

После установки убедимся, что служба успешно запустилась:

sudo systemctl status smbd

Если все прошло успешно, в выводе будет указан статус active (running).

Создаем каталог

В качестве общей сетевой папки будем использовать каталог /srv/samba/shared. Каталог /srv предназначен для данных, которые обслуживаются системными сервисами.

sudo mkdir -p /srv/samba/shared
sudo chown $USER:$USER /srv/samba/shared
sudo chmod 0775 /srv/samba/shared

Права 0775 позволяют владельцу и группе изменять содержимое папки, а остальным пользователям — просматривать его.

Редактируем конфигурацию Samba

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

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

Откроем файл конфигурации:

sudo nano /etc/samba/smb.conf

Прокрутите файл в самый конец и добавьте новый раздел:

[Shared]
comment = Public shared folder
path = /srv/samba/shared
browseable = yes
read only = no
guest ok = yes
create mask = 0664
directory mask = 0775

Здесь не используются права 0777, которые дают полный доступ всем пользователям. Для домашнего NAS достаточно более аккуратных прав 0664 для файлов и 0775 для каталогов.

Чтобы гостевой доступ работал предсказуемо, убедитесь, что в секции [global] файла smb.conf присутствуют строки:

security = user
map to guest = bad user
server min protocol = SMB2

Проверяем конфигурацию

Перед перезапуском Samba проверим файл настроек:

testparm

Если ошибок нет, применяем настройки:

sudo systemctl restart smbd

Проверяем доступ к сетевой папке

На компьютере с Windows откройте Проводник и введите в адресной строке IP-адрес Raspberry Pi:

\\192.168.1.100

Замените адрес на IP вашего устройства. Если все настроено правильно, вы увидите общую папку Shared. Попробуйте создать в ней тестовый файл и убедитесь, что чтение и запись работают без ошибок.

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

\\raspberrypi

Совет. Если вы планируете пользоваться папкой постоянно, подключите ее в Windows как сетевой диск. Тогда она будет отображаться в разделе «Этот компьютер» после каждой загрузки системы.

Создаем папку с доступом по логину и паролю

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

Создаем каталог

sudo mkdir -p /srv/samba/private
sudo chown $USER:$USER /srv/samba/private
sudo chmod 0770 /srv/samba/private

Права 0770 разрешают полный доступ только владельцу и участникам его группы.

Добавляем пользователя Samba

Даже если пользователь уже существует в Linux, его необходимо отдельно добавить в базу Samba:

sudo smbpasswd -a $USER

Введите пароль два раза. Именно его нужно будет использовать при подключении к защищенной сетевой папке.

Добавляем новую шару

Узнайте имя текущего пользователя:

whoami

Затем откройте /etc/samba/smb.conf и добавьте следующий блок, заменив имя_пользователя на результат команды whoami:

[Private]
comment = Private folder
path = /srv/samba/private
browseable = yes
read only = no
guest ok = no
valid users = имя_пользователя
create mask = 0660
directory mask = 0770

Проверьте конфигурацию и перезапустите Samba:

testparm
sudo systemctl restart smbd

Теперь при открытии папки Private Windows запросит имя пользователя и пароль.

Если пароль изменился. Windows сохраняет учетные данные SMB. При ошибке авторизации откройте Панель управления → Диспетчер учетных данных → Учетные данные Windows, удалите запись для NAS и подключитесь заново.


Открываем доступ только определенному пользователю

Если Raspberry Pi используется несколькими людьми, каждому пользователю можно предоставить собственную папку.

Создадим нового пользователя Linux:

sudo adduser user1

Добавим его в базу пользователей Samba:

sudo smbpasswd -a user1

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

sudo mkdir -p /srv/samba/user1
sudo chown user1:user1 /srv/samba/user1
sudo chmod 0770 /srv/samba/user1

Добавьте в файл /etc/samba/smb.conf следующий раздел:

[User1]
comment = Personal folder
path = /srv/samba/user1
browseable = yes
read only = no
guest ok = no
valid users = user1
create mask = 0660
directory mask = 0770

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

testparm
sudo systemctl restart smbd

Теперь папка User1 будет доступна только пользователю user1. Таким же способом можно создать отдельные каталоги для других пользователей.

Разбираем основные параметры Samba

Конфигурационный файл Samba состоит из общей секции [global] и отдельных секций сетевых ресурсов: [Shared], [Private], [User1] и других.

Основные параметры секции [global]

  • workgroup — имя рабочей группы Windows. В домашних сетях обычно используется WORKGROUP.
  • security = user — включает авторизацию по имени пользователя и паролю.
  • map to guest = bad user — неизвестные пользователи подключаются как гости, если для ресурса разрешен гостевой доступ.
  • server min protocol = SMB2 — запрещает использование устаревшего и небезопасного SMB1.
  • server string — описание сервера, которое отображается в некоторых сетевых клиентах.
  • log file — путь к журналам Samba.

Основные параметры сетевых ресурсов

  • path — путь к каталогу на диске.
  • browseable — отображать ли ресурс в сетевом окружении.
  • read only — разрешить или запретить запись.
  • guest ok — разрешить гостевой доступ без авторизации.
  • valid users — список пользователей, которым разрешен доступ.
  • create mask — права для новых файлов.
  • directory mask — права для новых каталогов.
  • comment — описание сетевого ресурса.

После любого изменения файла smb.conf проверяйте его командой:

testparm

Частые проблемы и способы их решения

Windows не видит Raspberry Pi в сети

Попробуйте открыть сервер по IP-адресу:

\\192.168.1.100

Если подключение по IP работает, а по имени — нет, проблема связана с разрешением имен или сетевым обнаружением Windows.

Нет доступа к папке

Проверьте владельца и права доступа:

ls -la /srv/samba

Также убедитесь, что нужный пользователь добавлен в Samba:

sudo pdbedit -L

Samba перестала запускаться после изменения конфигурации

Проверьте файл smb.conf:

testparm

Затем посмотрите состояние службы и последние сообщения журнала:

sudo systemctl status smbd
sudo journalctl -u smbd -n 50 --no-pager

Windows постоянно запрашивает пароль

Удалите сохраненные учетные данные через Панель управления → Диспетчер учетных данных, затем подключитесь повторно.

Как посмотреть подключенных пользователей

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

sudo smbstatus

Заключение

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

Моя Raspberry Pi уже несколько лет работает в режиме 24/7. За это время система пережила обновления, перенос операционной системы с карты памяти на жесткий диск и замену накопителей, при этом Samba продолжала стабильно выполнять свою задачу.

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

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

Главная страница » Raspberry » Домашний NAS на Raspberry Pi
Метки: