Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux

Как установить и настроить Samba на Ubuntu: полное пошаговое руководство

Samba — это мощный набор программного обеспечения с открытым исходным кодом, который обеспечивает беспрепятственный обмен файлами и принтерами между компьютерами под управлением Windows и Unix-подобных операционных систем, таких как Ubuntu. Установив и правильно настроив Samba, вы можете преодолеть разрыв между средами Linux и Windows, позволяя пользователям обеих платформ обмениваться файлами, каталогами и даже принтерами в локальной или глобальной сети.

Независимо от того, управляете ли вы домашней лабораторией, сетью малого бизнеса или производственной серверной средой, это подробное руководство проведет вас через каждый этап установки, настройки и защиты Samba на Ubuntu — включая расширенные параметры, которые пропускает большинство руководств.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Сервер или машина, работающая на Ubuntu 20.04, 22.04 или 24.04
  • Доступ Sudo или root к системе
  • Базовое понимание командной строки Linux
  • Сетевое соединение между машинами, которые вы хотите подключить

Если вы запускаете Samba на удаленном сервере, надежная и производительная среда хостинга необходима. VPS Hosting от AlexHost предоставляет вам полный доступ root, выделенные ресурсы и гибкость для настройки вашего сервера точно так, как вам нужно.

Шаг 1: Обновление системных пакетов

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

sudo apt update && sudo apt upgrade -y

Дождитесь завершения процесса перед продолжением.

Шаг 2: Установка Samba

Установите пакет Samba с помощью менеджера пакетов APT:

sudo apt install samba -y

После завершения установки проверьте её успешность, проверив версию Samba:

smbd --version

Вы должны увидеть вывод, похожий на:

Version 4.15.13-Ubuntu

Вы также можете проверить, что служба Samba запущена:

sudo systemctl status smbd

В выводе должна отображаться служба как active (running).

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

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

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

Это лучшая практика, которую многие руководства упускают, но которую всегда соблюдают опытные системные администраторы.

Шаг 4: Создание и настройка общей папки

4.1 Создание папки

Решите, какую папку вы хотите открыть в сети. В этом руководстве мы создадим специальную папку с именем shared в домашнем каталоге:

mkdir ~/shared

4.2 Установка прав доступа к папке

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

chmod 777 ~/shared

> Примечание безопасности: Параметр chmod 777 предоставляет полные разрешения на чтение, запись и выполнение всем пользователям. Хотя это удобно для тестирования, это не рекомендуется для производственных сред. В производственной установке используйте более ограничивающие разрешения, такие как chmod 770, и управляйте доступом через членство в группе.

Шаг 5: Настройка Samba — редактирование smb.conf

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

sudo nano /etc/samba/smb.conf

Прокрутите до конца файла и добавьте следующий блок конфигурации:

[SharedFolder]
   path = /home/username/shared
   available = yes
   valid users = username
   read only = no
   browsable = yes
   public = yes
   writable = yes

Замените username на ваше фактическое имя пользователя системы Ubuntu.

Понимание каждой директивы

ДирективаОписание
pathАбсолютный путь к общему каталогу
availableДоступна ли общая папка для пользователей
valid usersОграничивает доступ указанным пользователям
read onlyУстановите на no для разрешения доступа на запись
browsableОтображается ли общая папка при просмотре сети
publicРазрешает доступ без аутентификации (используйте с осторожностью)
writableПозволяет пользователям записывать файлы в общую папку

После внесения изменений сохраните файл, нажав CTRL + O, затем Enter и выйдите с помощью CTRL + X.

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

Перед перезагрузкой Samba проверьте файл конфигурации на синтаксические ошибки:

testparm

Эта команда анализирует файл smb.conf и сообщает о любых проблемах. Исправьте все ошибки перед продолжением.

Шаг 6: Создание учетной записи пользователя Samba

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

sudo smbpasswd -a username

Вам будет предложено ввести и подтвердить пароль. Этот пароль потребуется при подключении к общей папке с удаленной машины Windows или Linux.

> Совет: Используйте надежный, уникальный пароль для каждого пользователя Samba. Избегайте повторного использования системных паролей.

Чтобы включить учетную запись пользователя в Samba (если она была ранее отключена):

sudo smbpasswd -e username

Шаг 7: Настройка брандмауэра

Если на вашем сервере Ubuntu включен UFW (Uncomplicated Firewall), вам необходимо разрешить трафик Samba через брандмауэр:

sudo ufw allow samba

Проверьте, что правило было добавлено:

sudo ufw status

Samba использует следующие порты:

  • TCP 445 — SMB over TCP (основной)
  • TCP 139 — NetBIOS session service
  • UDP 137 & 138 — NetBIOS name and datagram services

Шаг 8: Перезагрузка и включение служб Samba

Примените изменения конфигурации, перезагрузив службы Samba:

sudo systemctl restart smbd
sudo systemctl restart nmbd

Включите обе службы для автоматического запуска при загрузке системы:

sudo systemctl enable smbd
sudo systemctl enable nmbd

Служба nmbd обрабатывает разрешение имен NetBIOS, что важно для того, чтобы клиенты Windows могли обнаруживать ваш сервер Samba по имени в локальной сети.

Шаг 9: Доступ к общей папке из системы Windows

С любого компьютера Windows в той же сети вы можете подключиться к своему Ubuntu Samba share:

  1. Откройте File Explorer
  2. В адресной строке введите сетевой путь к вашей машине Ubuntu:
   ubuntu_ip_addressSharedFolder

Замените ubuntu_ip_address на фактический IP адрес вашего Ubuntu сервера (например, 192.168.1.100SharedFolder)

  1. При появлении запроса введите имя пользователя Samba и пароль, которые вы настроили на шаге 6
  2. Общая папка теперь появится в File Explorer, и вы сможете читать, писать, копировать и удалять файлы так же, как с любой локальной папкой

Подключить Share как сетевой диск (опционально)

Для постоянного доступа вы можете подключить Samba share как сетевой диск в Windows:

  1. Щелкните правой кнопкой мыши This PC в File Explorer
  2. Выберите Map network drive
  3. Выберите букву диска и введите сетевой путь
  4. Установите флажок Reconnect at sign-in для автоматического подключения

Шаг 10: Доступ к общей папке Samba с другой системы Linux

На другой машине Linux вы можете подключиться к общей папке Samba, используя инструмент командной строки smbclient.

Сначала установите smbclient, если он еще не установлен:

sudo apt install smbclient -y

Затем подключитесь к общей папке:

smbclient //ubuntu_ip_address/SharedFolder -U username

Введите пароль Samba при появлении запроса. Вы попадете в интерактивную оболочку, похожую на FTP, где вы можете использовать команды такие как ls, get, put и cd для навигации и передачи файлов.

Монтирование общей папки Samba на Linux

Для более удобного использования вы можете смонтировать общую папку Samba как локальную файловую систему, используя cifs-utils:

sudo apt install cifs-utils -y
sudo mkdir /mnt/samba_share
sudo mount -t cifs //ubuntu_ip_address/SharedFolder /mnt/samba_share -o username=username,password=yourpassword

Чтобы сделать монтирование постоянным после перезагрузки, добавьте запись в /etc/fstab:

//ubuntu_ip_address/SharedFolder /mnt/samba_share cifs username=username,password=yourpassword,_netdev 0 0

> Совет по безопасности: Вместо сохранения учетных данных в /etc/fstab, используйте файл учетных данных с ограниченными разрешениями.

Шаг 11: Расширенные параметры конфигурации Samba

smb.conf Samba поддерживает широкий спектр директив, которые дают вам детальный контроль над вашей средой общего доступа к файлам. Вот наиболее полезные расширенные параметры:

Доступ только для чтения

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

read only = yes

Гостевой доступ (анонимные общие папки)

Чтобы позволить пользователям подключаться без пароля:

guest ok = yes
public = yes

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

Ограничение доступа по IP-адресу

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

hosts allow = 192.168.1.0/24
hosts deny = ALL

Это ограничивает доступ только машинам в подсети 192.168.1.x.

Несколько общих папок

Вы можете определить столько общих папок, сколько необходимо, добавив дополнительные блоки в smb.conf:

[Documents]
   path = /home/username/documents
   valid users = username
   read only = no
   writable = yes

[Backups]
   path = /srv/backups
   valid users = admin
   read only = yes
   browsable = no

Установка максимального количества подключений

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

max connections = 10

Принудительное использование определенного пользователя или группы

Чтобы убедиться, что все файлы создаются с определенным владельцем пользователя или группы:

force user = samba_user
force group = samba_group

Шаг 12: Защита вашей установки Samba

Безопасность имеет первостепенное значение, особенно если ваш сервер Samba доступен за пределами локальной сети. Следуйте этим рекомендациям по усилению защиты:

1. Отключите гостевой доступ

Если это не требуется явно, всегда отключайте анонимный доступ:

map to guest = Never

2. Используйте надежные пароли

Требуйте надежные, уникальные пароли для всех пользователей Samba. Избегайте словарных слов и используйте комбинацию прописных букв, строчных букв, цифр и символов.

3. Ограничьте видимость общих ресурсов

Установите browsable = no на конфиденциальные общие ресурсы, чтобы они не отображались при просмотре сети. Пользователи, которые знают точный путь, все еще могут подключиться.

4. Ограничьте разрешения в общих каталогах

Применяйте принцип наименьших привилегий — предоставляйте только те разрешения, которые действительно нужны пользователям. Избегайте chmod 777 в производстве.

5. Привяжите Samba к определенному интерфейсу

Если ваш сервер имеет несколько сетевых интерфейсов, привяжите Samba только к внутреннему интерфейсу:

[global]
   interfaces = eth0 lo
   bind interfaces only = yes

6. Включите логирование

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

[global]
   log file = /var/log/samba/log.%m
   max log size = 1000
   log level = 1

7. Держите Samba в актуальном состоянии

Регулярно обновляйте Samba для устранения известных уязвимостей безопасности:

sudo apt update && sudo apt upgrade samba -y

Выбор правильной среды хостинга для вашего сервера Samba

Производительность и надежность вашего файлового сервера Samba во многом зависят от базовой инфраструктуры. Вот некоторые варианты хостинга, которые следует рассмотреть в зависимости от вашего случая использования:

  • Небольшие команды и личные проекты: Общий веб-хостинг предоставляет доступный вход для легких рабочих нагрузок.
  • Растущие бизнесы и команды разработки: VPS хостинг предлагает выделенные ресурсы, полный доступ root и масштабируемость, необходимую для запуска Samba вместе с другими сервисами.
  • Высокопроизводительные или корпоративные рабочие нагрузки: Выделенные серверы обеспечивают максимальную производительность, емкость хранилища и пропускную способность сети — идеальны для крупномасштабных сред общего доступа к файлам.
  • Приложения на основе AI и обработка данных: Если вы запускаете Samba вместе с рабочими нагрузками машинного обучения или обработки данных, GPU хостинг предоставляет необходимую вычислительную мощность.

Для команд, которым также нужен управляемый интерфейс панели управления, VPS с cPanel упрощает управление сервером, при этом давая вам гибкость для установки и настройки Samba.

Устранение распространенных проблем Samba

Не удается подключиться с Windows

  • Проверьте, что служба Samba запущена: sudo systemctl status smbd
  • Проверьте правила брандмауэра: sudo ufw status
  • Подтвердите, что IP-адрес правильный и доступен: ping ubuntu_ip_address
  • Убедитесь, что имя пользователя и пароль совпадают с установленными с помощью smbpasswd

Доступ запрещен при обращении к общей папке

  • Проверьте разрешения каталога: ls -la ~/shared
  • Проверьте, что директива valid users в smb.conf совпадает с именем пользователя Samba
  • Подтвердите, что пользователь был добавлен с помощью smbpasswd -a username

Общая папка Samba не видна в сети

  • Убедитесь, что nmbd запущен: sudo systemctl status nmbd
  • Установите browsable = yes в конфигурации общей папки
  • Проверьте, что компьютер Windows и сервер Ubuntu находятся в одной подсети

Ошибки конфигурации после редактирования smb.conf

  • Запустите testparm для выявления синтаксических ошибок
  • Восстановите резервную копию при необходимости: sudo cp /etc/samba/smb.conf.bak /etc/samba/smb.conf

Заключение

Установка и настройка Samba на Ubuntu — один из наиболее эффективных способов обеспечить кроссплатформенный обмен файлами между системами Linux и Windows. Следуя этому руководству, вы научились:

  • Устанавливать Samba и проверять установку
  • Создавать и настраивать общие каталоги с соответствующими разрешениями
  • Добавлять пользователей Samba и управлять аутентификацией
  • Настраивать брандмауэр для разрешения трафика Samba
  • Получать доступ к общим ресурсам с клиентов Windows и Linux
  • Применять расширенные параметры конфигурации для контроля доступа и производительности
  • Защищать установку Samba от распространённых угроз безопасности

С правильной инфраструктурой сервера и правильно настроенной установкой Samba вы можете создать надёжную, безопасную и высокопроизводительную среду обмена файлами, которая безупречно обслуживает пользователей Linux и Windows. Независимо от того, запускаете ли вы Samba на локальной машине или в облачной среде VPS Hosting, принципы, изложенные в этом руководстве, помогут вам максимально эффективно использовать ваше развёртывание.