Opening Windows to a Wider World. (слоган на www.samba.org)

Samba — реализация сетевых протоколов Server Message Block (SMB) и Common Internet File System (CIFS). Основное предназначение — расшаривание файлов и принтеров между Linux и Windows системами.

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

  • smbd — демон, являющийся SMB-сервером файловых служб и служб печати;
  • nmbd — демон, предоставляющий службы имен NetBIOS;
  • smblient — утилита предоставляет доступ из командной строки к ресурсам SMB. Она также позволяет получить списки общих ресурсов на удаленных серверах и просматривать сетевое окружение;
  • smb.conf — конфигурационный файл, содержащий настройки для всех инструментов Samba;

Список портов, используемых Samba

Порт Протокол Служба Демон Описание
137 UDP netbios-ns nmbd служба имен NetBIOS
138 UDP netbios-dgm nmbd служба датаграмм NetBIOS
139 TCP netbios-ssn smbd NetBIOS over TCP (служба сеансов)
445 TCP microsoft-ds smbd NetBIOS over TCP (служба сеансов)

Вводная статья про основные принципы расшаривания файлов и принтеров.

Установка и настройка сервера

Скопируем файл с настройками smb.conf

По умолчанию создаются ресурсы для домашних каталогов пользователей (раздел homes в smb.conf) и принтеров (раздел printers).

Доступ к ресурсу может быть по паролю или анонимный. Для первого способа есть пара моментов:

  1. пользователь должен существовать в системе (создан с помощью команды adduser username и установлен пароль passwd username );
  2. пользователь должен быть добавлен как пользователь Samba (с помощью команды sudo smbpasswd -a username );

Необходимо что-бы компьютеры принадлежали к одной рабочей группе, в Windows по умолчанию это WORKGROUP, вот её и будем использовать.

Ниже приведен пример простого файла smb.conf с настройками для анонимного доступа к директории /srv/samba/public.

Имена параметров не чувствительны к регистру. Для некоторых распространенных параметров существуют синонимы, а для некоторых – антонимы. Например, writable и writeable – это синонимы, а read only – антоним для них, т.е. опция read only = yes эквивалентна опции writable = no.

Проверим корректность настроек с помощью команды testparm

Опция -v указывает testparm выводить также значения по умолчанию.

Проверим подключению к Samba на порт 139 с помощью telnet

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

  • share — этот режим безопасности эмулирует метод аутентификации, используемый операционными системами Windows 9x/Windows Me. В этом режиме имена пользователей игнорируются, а пароли назначаются общим ресурсам. В этом режиме Samba пытается использовать предоставленный клиентом пароль, которым могут пользоваться разные пользователи.
  • user* — этот режим безопасности установлен по умолчанию и использует для аутентификации имя пользователя и пароль, как это обычно делается в Linux. В большинстве случаев в современных операционных системах пароли хранятся в зашифрованной базе данных, которую использует только Samba.
  • server — этот режим безопасности используется тогда, когда необходимо, чтобы Samba выполняла аутентификацию, обращаясь к другому серверу. Для клиентов этот режим выглядит так же, как аутентификация на уровне пользователя (режим user), но фактически для выполнения аутентификации Samba обращается к серверу, указанному в параметре password server.
  • domain — используя этот режим безопасности, вы можете полностью присоединиться к домену Windows; для клиентов это выглядит так же, как аутентификация на уровне пользователя. В отличие от аутентификации на уровне сервера, доменная аутентификация использует более защищенный обмен паролями на уровне домена. Для полного присоединения к домену требуется выполнить дополнительные команды в системе Samba и, возможно, на контроллере домена.
  • ads — этот режим безопасности похож на метод аутентификации в домене, но требует наличия контроллера домена Active Directory Domain Services.

Полный список параметров Samba есть в manpages.

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

Создадим группу и добавим в нее пользователя

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

Добавим в /etc/samba/smb.conf новый ресурс

Пример настройки ресурса в котором есть симлинк на папку пользователя (/srv/samba/media/video » /home/proft/video)

Просмотр общих ресурсов компьютера

Еще один способ подключения для анонимного пользователя с командной строкой

Если на сервере настроен более высокий уровень безопасности, то может потребоваться передать имя пользователя или домена с помощью параметров -W и -U соответственно.

Еще лучше пароли хранить в отдельном файле

Выставим права доступа 0600

Новая строка для монтирования

И пример для /etc/fstab

Открыть ресурс в файловом менеджере Nautilus/Nemo/etc можно по такому пути smb://192.268.24.101.

Если Nemo пишет Nemo cannot handle "smb" locations. значит не хватает пакета gvfs-smb.

Доступ к серверу с Windows и Android клиента

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

Открыть ресурсы на удаленной машине можно набрав в строке Explorer (Проводник) или в Run (Start — Run) UNC-адрес: 192.168.24.101.

Под Android подключится к серверу можно с помощью ES File Explorer, на вкладке Network добавляем сервер, просто по IP (без указания схемы, smb). После чего можно открывать расшаренные ресурсы. Для статистики: HDRIP-фильм идет без подтормаживания.

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

В этой статье мы покажем, как настроить Samba для базового совместного использования файлов между системами Ubuntu и машинами Windows. Мы рассмотрим два возможных сценария: анонимный (небезопасный), а также безопасный обмен файлами. Обратите внимание, что начиная с версии 4.0 Samba может использоваться как контроллер домена Active Directory (AD).

Установка и настройка Samba в Ubuntu

Сервер Samba доступен для установки из репозиториев Ubuntu, используйте инструмент apt package manager, как показан ниже.

Как только сервер samba установлен, настало время настроить его для незащищенного анонимного и безопасного общего доступа к файлам.

Для этого нам нужно отредактировать основной файл конфигурации Samba/etc/samba/smb.conf.

Сначала создайте резервную копию исходного файла конфигурации samba следующим образом.

Теперь мы перейдем к непосредственной настройке samba для анонимных и безопасных служб обмена файлами, как описано ниже.

Важно: Прежде чем двигаться дальше, убедитесь, что компьютер с ОС Windows находится в той же рабочей группе, которая будет настроена на сервере Ubuntu.

Проверьте настройки рабочей группы Windows

Войдите в свою машину Windows, щелкните правой кнопкой мыши на «Мой компьютер»«Свойства»«Дополнительные системные настройки»«Имя компьютера», чтобы проверить рабочую группу.

Кроме того, откройте командную строку и выполнив приведенную ниже команду найдите «домен рабочей станции».

Как только вы узнаете свою рабочую группу Windows, перейдем к дальнейшей настройке сервера samba для совместного использования файлов.

Анонимный доступ к файлам Samba

Сначала создайте общий каталог samba, в котором будут храниться файлы.

Затем установите соответствующие разрешения для каталога.

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

Затем отредактируйте или измените настройки директивы, как описано ниже.

Теперь проверьте текущие настройки samba, выполнив приведенную ниже команду.

Затем перезапустите службы Samba, чтобы применить указанные выше изменения.

Тестирование анонимного обмена файлами Samba

Перейдите на компьютер Windows и откройте «Сеть» из окна проводника Windows. Нажмите на узел Ubuntu или попробуйте получить доступ к серверу samba с использованием его IP-адреса.

Примечание. Используйте команду ifconfig для получения вашего IP-адреса сервера Ubuntu.

Затем откройте анонимный каталог и попробуйте добавить туда файлы, чтобы поделиться ими с другими пользователями.

Безопасный обмен файлами Samba

Чтобы защитить samba паролем, вам необходимо создать группу «smbgrp» и установить пароль для каждого пользователя. В этом примере мы используем aaronkilik как имя пользователя, как пароль мы используем «sedicomm».

Примечание. Режим безопасности samba: security = user требует, чтобы пользователи вводили своё имя пользователя и пароль для подключения к общим ресурсам.

Учетные записи пользователя Samba отделены от системных учетных записей, однако вы можете установить пакет libpam-winbind, который используется для синхронизации пользователей системы и паролей с пользовательской базой samba.

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

Затем установите соответствующие разрешения для каталога.

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

Затем отредактируйте или измените настройки директивы, как описано ниже.

Как и раньше, запустите эту команду, чтобы просмотреть текущие настройки samba.

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

Тестирование безопасного обмена файлами Samba

Откройте в проводнике машине Windows «Сеть». Нажмите на узел Ubuntu. Вы можете получить ошибку как на скриншоте ниже, если не выполнить следующий шаг.

Попробуйте получить доступ к серверу, используя его IP-адрес (\192.168.43.168). Затем введите учетные данные (имя пользователя и пароль) для пользователя aaronkilik и нажмите «ОК».

Теперь вы видите «Анонимные» и «Защищенные» каталоги. Давайте зайдем в «Защищенные» каталоги.

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

Включаем Samba в брандмауэре UFW в Ubuntu

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

Чтобы проверить их, мы использовали сеть 192.168.43.0. Запустите приведенные ниже команды, указав сетевой адрес.

На этом все! В этой статье мы показали вам, как настроить Samba для анонимного и безопасного обмена файлами между компьютерами Ubuntu и Windows.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

В данной статье пойдет речь об установке и базовой настройке Samba в Ubuntu.

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

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

Установка и запуск Samba в Ubuntu.

Поскольку Samba присутствует в репозитории Ubuntu, сложностей с установкой возникнуть не должно. Выполните:

и затем подтвердите установку пакета со всеми зависимостями нажатием Y (или Д).

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

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

Настройка Samba в Ubuntu. Конфигурационный файл /etc/samba/smb.conf.

Конфигурационный файл /etc/samba/smb.conf, о котором идет речь, содержит все основные настройки. Именно в нем прописывается:

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

Содержимое файла /etc/smb.conf делится на разделы, содержащие отдельные параметры и их значения. Взгляните сами:

Не пугайтесь большого количества текста. Строки, начинающиеся с символов «#» и «;» считаются комментариями и не учитываются интерпретатором при разборе файла. Название раздела заключено в квадратные скобки, далее следуют относящиеся к этому разделу параметры и их значения, разделенные знаком «=». Параметров, которые можно использовать, очень много, а вариантов их значений — еще больше.

Создаем общедоступную папку в Ubuntu с помощью Samba.

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

Если потребуется восстановить исходный файл, удалите smb.conf и дайте это имя файлу smb-default.conf.

Теперь создадим шару, доступную для чтения и записи всем желающим. Вставьте в /etc/samba/smb.conf:

Первая строка — название шары. Вторая — ее описание или любой комментарий создателя, доступный всем. Третья — путь к папке, доступ к которой мы открываем. Не забудьте убедиться, что такая директория существует и имеет подходящие права. Параметр guest ok со значением yes разрешает подключаться без логина и пароля, browseable определяет, будет ли наша шара видна внутри сети, writable разрешает запись, create mask и directory mask выставляют права, force user принудительно определяет каждого подключившегося как пользователя publicshare.

Теперь нам нужно создать указанного пользователя и передать ему /home/public_share :

Ключ —system означает, что мы создаем не простого пользователя, а системного. Пользователи из этой категории имеют минимум прав, добавляются в группу nogroup и обычно используются для запуска системных сервисов.

Вместо guest ok часто применяется параметр public. Это синонимы. Вы можете использовать любой из них с абсолютно одинаковым результатом. У многих других параметров также есть синонимы. Бывают и антонимы, например, read only является антонимом по отношению к writable.

Если у вас включен фаервол, необходимо добавить соответствующее разрешающее правило. Если вы настраивали UFW по одной из предыдущих статей, достаточно будет следующей команды:

Для проверки правильности smb.conf в пакет Samba входит утилита testparm. Просто запустите ее без каких-либо ключей:

Вы увидите результат проверки, а после повторного нажатия Enter — выжимку из конфига.

Обратите внимание: на втором скриншоте параметр writable = yes заменен аналогичным по смыслу read only = no. Отсутствие directory mask = 0755, вероятно, объясняется тем, что 0755 является для этого параметра значением по умолчанию, а потому указывать его нет смысла.

Теперь подключаемся (в Windows, например, для этого достаточно заглянуть в сетевое окружение) — и видим все доступные расшаренные папки.

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

В следующей статье поговорим про уровни доступа. Подписывайтесь на сайт, чтобы ничего не пропустить.