Samba debian 10 настройка

Обновлено: 04.07.2024

  • Active Directory;
  • OpenLDAP;
  • Samba Domain;
  • И прочие другие коммерческие.

Все записи LDAP представляются атрибутами в следующем виде:

Samba как DC

Но за всё надо платить, ибо самый популярный для таких целей Windows Server с Active Direcory на борту не бесплатный, а потому в последнее время с развитием пакета программ Samba 4 есть возможность использования Samba в качестве контроллера домена с применением групповых политик. О Samba 4 и последующей настройке и будет дальнейшее содержание данной статьи.

По своей сути Samba 4 есть Open-Source реализация Active Directory и, согласно документации, является стабильным вариантом применения в качестве домен-контроллера в production-среде.

Перед установкой

Наименование домена

Кратко поясню, почему выбран именно такой формат именования.

AD Schema

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

Информация с оф. сайта Samba по поддержке AD схем:

Одним из нюансов является то, что в стабильных репозиториях Debian 10 доступна Samba версии только 4.9. Но хотелось бы использовать последние доступные возможности схемы домена, поэтому я на свой страх и риск подключил тестовые репозитории и произвёл дальнейшую установку Samba 4.11.3 из них:

Samba Internal DNS имеет следующие недостатки:

Не смотря на вышеперечисленное, на практике это не доставляет проблем.

Подразумевается, что в сети, где разворачивается Samba AD, уже используется один или более DNS-серверов (например, тот же BIND, который не связан с Samba или внешние гугл\яндекс сервера). На этот DNS-сервер будут перенаправляться запросы клиентов Samba, т.е. он будет выбран в качестве forwarder.

Настройка hosts

Удаление существующих файлов

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

Запущенные экземпляры Samba и сервисов

Перед началом установки надо проверить, что не запущена samba и её сервисы после установки пакетов:

Если под фильтр попадает что-то из запущенного, нужно остановить:

Скрыть юниты, чтобы они не могли быть запущены:

Установка

Для своих серверов я всегда использую Centos, но здесь пришлось сделать исключение и выбрать Debian, т.к. Samba, доступная из основных пакетов в Centos, не может выступать в роли AD.

Вариантов установки на Centos было несколько: собрать из пакетов (что на продуктивном сервере совсем некошерно) или установить из сторонних репозиториев (например, tissamba), но решил попробовать Debian, т.к. не хотелось искать обходные пути.

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

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

Зависимости, необходимые для Samba AD в Debian:

В оф. документации указаны пакеты python-gpgme python3-gpgme для зависимостей, но в Debian 10 его больше нет, так что его я не устанавливал.

Настройка домена

Для установки Samba в Debian 10 нужны следующие пакеты:

Напоминаю, что мне нужна была версия 4.11, поэтому после установки нужно убедиться, что будет использоваться пакет нужной версии:

Теперь непосредственно настройка домена:

Теперь надо сконфигурировать /etc/resolv.conf, чтобы в качестве резолвера использовался DNS из Samba (по идее, можно было бы сделать до создания домена):

На всякий случай уточню, что файл resolve.conf может затираться NetworkManager`ом или установленной утилитой resolvconf после рестарта, стоит это иметь ввиду.

Kerberos

И проверить его содержимое (на всякий случай):

После успешного создания домена (не должно быть никаких ошибок при выполнении), нужно вернуть настройки юнита самбы, т.к. делался mask. Сейчас же при старте возникает такая ошибка:

Симлинк, ведущий в /dev/null, нужно удалить и выполнить перезагрузку сервисов systemd:

И запустить самбу, которая подтянет уже всё остальное, что ей нужно:

Правка конфигурационного файла Samba

После установки конфиг выглядит примерно так:

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

LDAPS: TLS и CA

Вышеописанные инструкции по настройке в том или ином виде можно найти в интернете и особых сложностей не возникает. Но мало где описывают настройку TLS\SSL для Samba. При LDAP-авторизации трафик ходит незащищённым, а потому может возникнуть требование по настройке протокола LDAPS.

Samba при начальной установке автоматически генерирует ключ и сертификат для работы AD и корневой сертификат. Корневой сертификат имеет срок годности 2 года и длину ключа 4096 бит + непонятно где находится приватный ключ корневого сертификата. Для более прозрачного администрирования ниже будет описан процесс создания собственного центра сертификации (CA-сертификата и приватного ключа), с помощью которого будет выписан сертификат для работы Samba AD и прочих клиентов при необходимости.

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

  • На сервере должен быть установлен пакет для работы с openssl
  • Все сертификаты будут генерироваться по пути /var/lib/samba/private/tls/

Настройка CA и сертификатов

Сгенерировать ключ для CA с алгоритмом RSA, длина ключа — 4096 бит:

Сгенерировать корневой сертификат на основе ключа сроком на 10 лет. Дополнительно указывается CN (Common Name), которое должно быть наименованием домена, точнее его FQDN в верхнем регистре. Например, так:

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

Далее запрос на подпись (CSR):

ВАЖНО! Наименование OU для сертификатов CA и Samba должны быть разными. В командах выше subj содержит разные значения. CN в идеале тоже должно быть разным, но в данном случае не критично.

И подписать CSR корневым ключом и сертификатом:

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

Конфигурация Samba

В конфигурационном файле /etc/samba/smb.conf внести следующие изменения, указав пути до сертификатов и ключа:

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

Проверка настроек

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

Общая проверка выполняется командой testparm

Посредством команд hosts и wbinfo можно провести ряд проверок, результат выполнения которых должен быть без ошибок:

Прочие проверки, которые могут пригодиться для отладки:

Дополнительно со стороны клиентов, которые подключаются к серверу с Samba AD по LDAPS, необходимо импортировать корневой сертификат. Для клиентов с Centos скопировать корневой сертификат ca.pem на клиентскую ОС по пути /etc/pki/ca-trust/source/anchors и выполнить команду импорта сертификата в ОС:

После этого можно подключаться через защищенное соединение. Для проверки работы TLS можно воспользоваться утилитой ldapsearch из пакета ldap-clients с расширенным дебагом:

Администрирование

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

Можно посмотреть общую информацию о домене:

Проверить список дефолтных юзеров через wbinfo или samba-tool:

А также список компьютеров (пока что только один КД):

Задать ему пароль:

Прочие команды можно посмотреть, выполнив:

через samba-tool также настраивается DNS.

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

Бэкап

В официальной документации подробно всё описано, поэтому первоначально стоит ознакомиться с информацией там.

Online делает копию работающей базы DC:

Offline создает резервные копии файлов Samba:

Каждая команда создает файл резервной копии .tar.bz2, который содержит полную резервную копию домена (на основе данного DC). Затем файл резервной копии можно использовать для восстановления домена с помощью команды «samba-tool domain backup restore».

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

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

Настройка Samba secondary domain controller

Стоит понимать, что в терминологии контроллеров домена нет понятия master\slave, т.е. все контроллеры равны, но один из них выступает владельцем ролей FSMO. Для проверки, какой из контроллеров является владельцем, можно выполнить команду samba-tool fsmo show

Важно остановить демон samba и сделать umask перед вводом сервера в домен.

На обоих контроллерах домена должно быть одинаковое время, поэтому необходимо проверить этот момент. Например, через timedatectl timesync-status

Подключение второго домена, как secondary, выполняется следующей командой:

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

При успешном выполнении команды, вывод должен быть примерно следующий:

После успешного подключения к домену в качестве контроллера домена, можно запустить демон самбы, который уже запустит все остальное необходимое (winbindd, smbd):

Проверка работы DNS

При вводе в работу второго КД и использовании Samba версии 4.7 и выше, все необходимые записи в DNS создаются автоматически. Тем не менее, необходимо проверить и убедиться, что они были созданы корректно:

Все объекты в AD имеют уникальный идентификатор objectGUID, который не может быть изменён. Samba также автоматически создаёт его, поэтому необходимо выполнить проверку. Для этого понадобится утилита ldbsearch из пакета ldb-tools. Она обращается к файлу /var/lib/samba/private/sam.ldb:

В DNS также создается служебная CNAME запись с этим идентификатором, которая указывает на имя нового контроллера домена. Для получения этой записи нужно выполнить команду, подставив objectGUID из вывода ldbsearch:

Проверка репликации

Теперь необходимо выполнить команду по проверке репликации каталогов DRS (Directory Replication Service). Она включает в себя следующие объекты:

Т.е. между контроллерами будут реплицированы схема, DNS-записи, группы, пользователи. Первоначально репликация может занимать около 15 минут, поэтому нужно подождать, пока knowledge consistency checker (KKC в Samba) выполнит все необходимые процедуры.

Проверка статуса репликации со второго контроллера домена:

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

==== KCC CONNECTION OBJECTS ====

В случае каких-либо проблем можно попробовать перезапустить сервис Samba на обоих КД.

Ещё одним способом является сравнение количества объектов каталогов в домене на всех КД с помощью ldapcmp:

Репликация SysVol

Заключение

В качестве альтернативы есть ещё решения, как openldap и FreeIPA, но с ними не приходилось сталкиваться.

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

Или же подключить RADIUS для авторизации на VPN-сервере через доменную учётную запись, а также доменную авторизацию ко всем внутренним сервисам для централизованного управления.


Настроив общий ресурс сервера Samba в Debian 10 (Buster) / Ubuntu 18.04, вы можете легко обмениваться папками или файлами между операционными системами Windows и Linux.

В этом контексте машина Windows будет использоваться в качестве клиента для доступа к общему ресурсу Samba в Linux (Debian 10 / Ubuntu 18.04).

Шаг 1: Установите Samba Server в Debian 10 / Ubuntu 18.04

Чтобы установить Samba на Debian 10 Buster / Ubuntu 18.04, используйте команды:

Если вы используете статический IP-адрес, ответьте «no», когда вас попросят использовать настройки WINS от DHCP.


Шаг 2. Настройка общего ресурса Samba в Debian 10 Buster / Ubuntu 18.04

Samba использует файл конфигурации в /etc/samba/smb.conf.

Если вы измените этот файл конфигурации, изменения не вступят в силу, пока вы не перезапустите демон Samba.

Давайте начнем с создания каталога для обмена через Samba.

Каталог должен существовать, прежде чем его можно будет настроить в smb.conf.

Мы создадим один такой в /home.

Доступ всем без аутентификации (не рекомендуется)

Каталог должен быть доступен для чтения и записи для всех пользователей.

Настройте общий ресурс Samba в файле /etc/samba/smb.conf.

Настроить безопасный общий ресурс Samba (рекомендуется)

Установите групповое владение общим каталогом Samba для группы sambashare.

Создайте пользователей самбы.

Замените user1 на пользователя с общим доступом samba для создания.

Установите пароль пользователя и подтвердите его.

Включите учетную запись samba после установки пароля с помощью команды:

Мы создали домашний каталог пользователя в родительском каталоге общего ресурса Samba и установили право собственности на общую группу samba.

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

Настроить безопасный общий ресурс Samba.

Перезапустите демон samba после внесения изменений.

Убедитесь, что служба работает.


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

Шаг 3. Настройка клиентов Samba

Чтобы получить доступ к общему ресурсу Samba в системе Linux, вам необходимо установить и настроить клиент Samba.

Вы можете смонтировать общий ресурс samba в каталог в вашей локальной системе Linux, используя опции типа mount и cifs.

Монтирование samba с fstab

Затем я создал файл учетных данных.

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

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

В этой статье объясняется, как установить и настроить сервер Samba в системе Debian. Мы также узнаем, как получить доступ к этим общим файлам с компьютеров Linux или Windows.

Мы использовали Debian 10 для выполнения команд и процедур, упомянутых в этой статье. Однако команды и процедуры работают почти так же в других дистрибутивах Linux.

Установка Samba в Debian

Запустите Терминал в вашей ОС Debian. Перейдите на вкладку «Действия» в верхнем левом углу рабочего стола. Затем в строке поиска введите ключевое слово terminal . Когда появится результат поиска, щелкните значок терминала, чтобы открыть его.

В Терминале введите следующую команду для установки сервера Samba.


Он может запросить подтверждение, предоставив вам опцию Y / n . Нажмите y , чтобы продолжить процесс установки, и Samba будет установлена ​​в вашей системе.

Во время установки он может спросить, хотите ли вы использовать настройки WINS из DHCP. Если ваш сервер использует статический IP-адрес, выберите НЕТ.

Проверка установки SAMBA

Чтобы проверить установку, проверьте статус службы samba «nmbd». Эта служба запускается автоматически после установки samba.

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


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

Настройка Samba

После завершения установки сервера Samba пора его настроить. Файл конфигурации samba smb.conf находится в каталоге / etc / samba . В этом файле мы указываем папку и принтеры, к которым мы хотим предоставить общий доступ, а также их разрешения и рабочие параметры. Samba просматривает свой файл конфигурации через определенное время и обновляет любые изменения.

Для выполнения настройки выполните следующие шаги:

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

Шаг 2: Теперь нам нужно отредактировать файл конфигурации smb.conf. Перед редактированием файла конфигурации обязательно создайте резервную копию этого файла в том же или другом каталоге. Выполните следующую команду, чтобы создать резервную копию файла smb.conf.

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

Шаг 3: Теперь отредактируйте исходный файл конфигурации с помощью любого текстового редактора, такого как Vim, Nano, или Gedit. Мы используем здесь редактор Nano:

Прокрутите файл smb.conf и добавьте следующие строки:

  • [samba-share] = имя общего ресурса samba
  • comment = краткое описание общего ресурса
  • Path = Путь к общему каталогу.
  • Только для чтения = Сделать общий каталог доступным для чтения
  • Browsable = включать общий ресурс в список общих ресурсов или нет


После этого нажмите Ctrl + O и Ctrl + X одновременно, чтобы сохранить и выйти из файла.

Настройка учетной записи пользователя

Теперь нам потребуется настроить учетную запись пользователя для samba. Пользователь Samba должен быть системным пользователем и, следовательно, должен существовать в файле / etc / password . Если пользователь еще не существует, вам сначала нужно его создать. В противном случае просто выполните команду в Терминале, используя следующий синтаксис, чтобы установить новый пароль для пользователя.

Restart Samba Service

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

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

Использование командной строки

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

Выполните следующую команду в Терминале для установки клиента Samba:

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

  • [IP_address или Host_name] - это IP-адрес или имя хоста сервера Samba
  • [share_name] - это имя общего каталога Samba
  • [samba_user] - имя пользователя, имеющего доступ к общему ресурсу

После ввода команды в терминал, он попросит вас ввести пароль. Введите пароль и нажмите Enter, после чего вы увидите samba CLI. Чтобы просмотреть поддерживаемые команды в CLI, введите help и нажмите Enter.

Использование графического интерфейса

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



Теперь вы сможете получить доступ к общим файлам на сервере Samba.


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

В ОС Windows утилита Run в основном используется для доступа к общим файлам по сети. Чтобы открыть утилиту «Выполнить», используйте клавишу Windows + ярлык R . Когда утилита откроется, введите общий адрес Samba в следующем формате и нажмите OK.


Вам будет предложено ввести пароль пользователя Samba. Введите пароль и нажмите OK .


Теперь вы сможете получить доступ к общим файлам Samba на вашем компьютере с Windows.


В этой статье мы узнали, как установить Samba в системе Debian 10.Мы также узнали, как подключиться к серверу Samba с компьютеров Linux и Windows для доступа к общим каталогам.

Настройка файлового сервера Samba на платформе Debian / Ubuntu

Файловый сервер можно без преувеличения назвать средством первой необходимости, даже в сетях без выделенного сервера вы всегда обнаружите папки с общим доступом, но по мере роста объемов данных появляется потребность в отдельном решении. Вариантов его организации множество, одним из которых является служба Samba на Linux-сервере, это простое, недорогое, но в то же время мощное решение по организации общего доступа к файлам и папкам в Windows сетях. В данной статье мы рассмотрим настройку простого сервера на основе Samba 4 работающего в ОС Debian / Ubuntu.

Несмотря на то, что в данной статье в качестве ОС мы использовали Debain 9, все сказанное будет справедливо для любой ОС на базе Debian или Ubuntu, а с поправкой на работу пакетного менеджера - для любого Linux-дистрибутива. Также мы предполагаем, что читатель имеет базовые навыки работы с Linux-системами на базе Debian.

Подготовка системы

Прежде чем приступать к работе продумайте схему хранения данных и доступа к ним. Существую разные типы данных, которые мы будем характеризовать по интенсивности доступа к ним, скажем "холодные данные" отличаются тем, что обращения к ним происходят крайне редко (а к некоторым вообще никогда), но при этом они могут занимать значительные объемы. Это прежде всего резервные копии, инсталляционные пакеты, образа дисков и т.д. и т.п.

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

Исходя из типа данных следует выбирать диски для хранения, для "горячих данных" это должны быть быстрые диски или SSD, а для "холодных" подойдут экономичные модели с упором на большой объем. Также не забывайте про RAID, для защиты данных от аппаратного выхода дисков из строя.

Продумайте структуру директорий и прав доступа к ним. Разумно будет исходить из следующих соображений: разделяйте диски с данными и системой, чтобы при необходимости можно было заменить их без лишних затруднений или перенести на другой сервер. Храните разные типы данных на разных дисках или разделах, скажем, если на разделе для резервных копий закончится свободное место, то это никак не повлияет на работу баз 1С.

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

samba-debian-001.jpg

Также обратите внимание на имя компьютера, Samba 4 будет использовать его в качестве NetBIOS имени.

После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:

После чего сервер следует перезагрузить.

Установка и базовая настройка Samba 4

Установка Samba предельно проста:

После чего откроем файл /etc/samba/smb.conf и выполним общие настройки. Большинство указанных опций в файле уже есть, многие из них даже не потребуется менять, но их назначение будет полезно знать, поэтому мы прокомментируем наиболее важные из них.

Начнем, опции перечисляются в порядке их следования в файле:

Обозначает рабочую группу Windows, по умолчанию WORKGROUP.

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

Или только подсети:

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

Следующая опция указывает расположение логов:

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

Если вам нужен более подробный лог - установите более высокий уровень, минимальное значение - 1, максимальное - 5.

Также закомментируйте опцию:

В настоящий момент она является не рекомендованной (deprecated).

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

Определяет способ определения гостевого доступа, при указанном значении гостем будет считаться любой пользователь, который отсутствует в базе Samba. Также могут использоваться значения never - не использовать гостевой доступ и bad password - в этом случае гостем будет считаться, в том числе, и существующий пользователь если он неправильно введет пароль. Данное значение использовать не рекомендуется, так как при ошибке в пароле пользователь все равно получит доступ, но с гостевыми правами.

На этом общая настройка сервера закончена. Проверим конфигурацию на ошибки:

И перезапустим сервер

Настройка общего ресурса с гостевым доступом

Начнем с самого простого варианта - создадим общий ресурс, доступ к которому может иметь любой пользователь. Для этого добавим в конец файла /etc/samba/smb.conf следующие строки.

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

  • comment - описание ресурса, необязательный параметр;
  • path - путь к директории;
  • read only - режим только чтения, указываем no;
  • guest ok - разрешен ли гостевой доступ, указываем yes;

Теперь создадим саму директорию:

и установим на нее необходимые права, для гостевого ресурса это 777:

samba-debian-006.jpg

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

Это полностью снимет права на выполнение для всех, но оставит полный доступ к исполняемым файлам. Если же требуется разрешить возможность запуска, то вместо create mode следует использовать опцию force create mode, которая будет устанавливать разрешения без учета прав доступа DOS:

Теперь перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.

samba-debian-002.jpg

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

Настройка общего ресурса с парольным доступом

Гостевой доступ это просто и удобно, но не всегда приемлемо. Существуют ситуации, когда доступ к общему ресурсу должны иметь только определенные пользователи. В нашем примере создадим два таких ресурса: для бухгалтерии и для IT-отдела.

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

Они предельно просты и отличаются запретом гостевого доступа - guest ok = no. Для того, чтобы разделить доступ к ресурсам будем использовать группы пользователей, создадим две новые группы для наших подразделений:

Теперь создадим каталоги:

и изменим группу владельца:

Затем установим права:

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

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

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

Обратите внимание, что мы устанавливаем SGID только для каталогов, для файлов в данной схеме выставлять его не имеет смысла. А вот если вы установили sticky bit, то его нужно указать в обоих случаях:

Не забываем, что данные опции следует добавить в каждую секцию.

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

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

Затем добавим его в базу Samba:

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

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

samba-debian-003.jpg

С настройками по умолчанию Samba предоставляет каждому существующему пользователю доступ только на чтение к его домашнему каталогу. На наш взгляд это довольно удобно и безопасно. Если вас не устраивает такое поведение - удалите из конфигурационного файла секцию [homes].

Теперь о других пользователях. Скажем у нас есть бухгалтер Иванова и админ Петров, каждый из которых должен иметь доступ к своему ресурсу. В то же время иметь доступ к самому Samba-серверу им необязательно, поэтому создадим новых пользователей следующей командой:

Ключ -M заводит пользователя без создания домашнего каталога, а -s /sbin/nologin исключает возможность входа такого пользователя в систему.

Поместим каждого в свою группу:

Затем добавим их в базу Samba, при этом потребуется установить им пароли:

И включим эти учетные записи

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

samba-debian-004.jpg

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

Настройка общего ресурса со смешанным доступом

Теперь рассмотрим более сложную схему, ресурс со смешанным доступом. Например, вы хотите организовать общую папку с инсталляционными пакетами программ, которые может запустить каждый, но не хотите, чтобы кто-либо мог изменять его содержимое, оставив эту привилегию только участникам группы smbadm.

Добавим в конфигурационный файл следующую секцию:

Здесь все понятно, стандартное описание ресурса. Теперь создадим директорию и изменим группового владельца:

Теперь подумаем о правах, владелец и группа adm должны иметь полный доступ - rwx (7) плюс установленный SGID для директорий, а остальные должны иметь право чтения и выполнения, т.е. r-x (5), для файлов следует использовать force create mode, иначе вместо желаемых 0775 вы получите 0764, все тоже самое, только без права выполнения для группы и остальных.

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

Настройка скрытого общего ресурса

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

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

samba-debian-007.jpg

Во всем остальном такие ресурсы ничем не отличаются от обычных и к ним применимо все вышесказанное.

Настройка корзины для общего ресурса

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

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

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

Выше мы везде говорили о правах, корзина не исключение, если у вас включено сохранение структуры папок, то по умолчанию она будет создана с правами 0700, т.е. восстановить файл сможет только тот, кто его удалил. Рекомендуется изменить это поведение и установить права аналогичные указанным в directory mode, для этого добавим еще одну опцию (права указаны для директории buch):

Перезапустим Samba и попробуем что-нибудь удалить.

samba-debian-005.jpg

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

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

Также рекомендуем ознакомиться со статьей Linux - начинающим. Часть 4. Работаем с файловой системой. Теория для более подробного ознакомления с системой прав файловой системы Linux.

Читайте также: