Для упрощения настройки рекомендуется воспользоваться инструментами Astra: см. статью Инструменты Astra Linux для работы с доменами Samba AD и Windows AD
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Astra Linux Common Edition 2.12
Выполнение Назначения требует наличия привилегий суперпользователя (в Astra Linux Special Edition - суперпользователя с высоким уровнем целостности) для создания конфигурационных файлов и установки прав доступа. После выполнения Назначения служба smbd перестанет работать, а службы winbind,nmbd, krb5-kdc перейдут под управление доменной службы samba-ad-dc. Однако, после установки всех необходимых пакетов все эти службы будут автоматически запущены, и перед выполнением Назначения их нужно будет остановить и заблокировать их автоматический запуск. Приведённые далее сценарии Назначения содержат соответствующие команды.
Введение
Данная статья основывается на материалах из wiki.samba.org
Samba, начиная с версии 4.0, может работать как контроллер домена (domain controller, DC) Active Directory (AD).
При применении Samba в качестве контроллера домена AD в условиях реальной эксплуатации рекомендуется использовать два или более контроллера для обеспечения отказоустойчивости.
Далее рассказывается как настроить Samba как первый DC в домене, чтобы построить новый лес AD. Также статью можно использовать для миграции из домена Samba NT4 в домен Samba AD.
Если требуется подключить Samba к уже существующему доменному лесу AD, как дополнительный DC
- Для быстрого подключения с помощью графического инструмента fly-admin-ad-server см. Инструменты Astra Linux для работы с доменами Samba AD и Windows AD.
- Подробные инструкции см. Присоединение Samba DC к существующему домену Active Directory.
Samba при использовании в роли AD DC поддерживает:
- Интегрированный сервер LDAP как база данных AD. Подробности см. Поддерживают ли Samba AD DC работу с OpenLDAP или другими службами LDAP.
- Авторизацию через службу Kerberos Key Distribution Center (KDC). Поддерживаются варианты MIT KDC и Heimdal KDC. Samba в составе Astra Linux использует MIT KDC, также поставляемый в составе этих ОС.
- Работу с встроенным сервером DNS.
- Работу с внешним сервером DNS (в примерах ниже рассматривается работа с сервером DNS BIND9).
Установка и настройка контроллера и клиента домена
Подготовка к установке
- Выбрать имя контроллера домена для создаваемого контроллера домена. Не рекомендуется использовать в качестве имен хостов такие идентификаторы, как PDC или BDC, унаследованные от NT4 . Эти сущности отсутствуют в AD, и такие названия вызывают путаницу. Далее в примерах используется имя dc2.
Выбрать имя домена для доменного леса AD. Это имя также будет использовано как имя области (realm) Kerberos AD.
Далее в примерах используется имя домена samdom.example.com.Имя домена в дальнейшем не может быть изменено. Samba не поддерживает переименование зон DNS AD и областей Kerberos.Назначить контроллеру домена полное доменное имя (FQDN), состоящее из имени контроллера и имени домена:
sudo hostnamectl set-hostname dc2.samdom.example.comДополнительную информацию по именованию доменов см. в стате Часто задаваемые вопросы по именованию доменов AD.- Назначить контроллеру домена постоянный (статический) IP-адрес и настроить разрешение полного доменного имени контроллера. Подробности см. в статье Настройка разрешения имен и статических IP-адресов. В том числе:
Отключить инструменты (например, resolvconf), которые автоматически обновляют файл настроек DNS /etc/resolv.conf.
Контроллер домена и члены домена обязаны использовать сервер DNS, способный разрешать зоны DNS AD. Если в сети нет других серверов DNS, то файл /etc/resolv.conf должен указывать IP-адрес самого контроллера домена:
search samdom.example.com
nameserver 10.0.2.254- Имя хоста не должно разрешаться в IP-адрес 127.0.0.1 или в любой другой IP-адрес, кроме используемого на внешнем сетевом интерфейсе DC. Для проверки правильности настроек можно использовать команду:host `hostname`
Если Samba уже была установлена (настроена)
Если Samba уже была установлена (настроена):
- Проверить, что остановлены процессы samba, smbd, nmbd, winbindd, krb5-kdc:ps ax | grep -E "samba|smbd|nmbd|winbindd|rkb5-kdc"Если вывод команды показывает наличие любого из процессов samba, smbd, nmbd, или winbindd, то остановить эти процессы и запретите их автоматический запуск:
Обратите внимание:
- пакет (apt install winbind) называется winbind с одним 'd';
- процесс (ps fax | grep winbindd) называется winbindd с двумя 'dd';
- служба (sytemsctl status winbind) называется winbind с одним 'd';
sudo systemctl stop smbd nmbd winbind krb5-kdc
sudo systemctl mask smbd nmbd winbind krb5-kdc - Удалить все существующие файлы конфигурации Samba smb.conf file. Чтобы получить список путей к этим файлам выполнить команду:sudo smbd -b | grep "CONFIGFILE"
CONFIGFILE: /usr/local/samba/etc/samba/smb.conf - Удалить все файлы баз данных Samba (*.tdb и *.ldb). Чтобы получить список путей к этим файлам выполить команду:sudo smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
LOCKDIR: /usr/local/samba/var/lock/
STATEDIR: /usr/local/samba/var/locks/
CACHEDIR: /usr/local/samba/var/cache/
PRIVATE_DIR: /usr/local/samba/private/ - Если существует файл настроек Kerberos /etc/krb5.conf file, также удалить его: sudo rm /etc/krb5.conf
Установка Samba
Пакет samba входит в дистрибутивы Astra Linux, и может быть установлен с помощью Графический менеджер пакетов synaptic, или из командной строки командой
Отдельно установленный пакет samba может быть использован как файловый сервер или сервер печати. Для использования samba в качестве домена AD нужно установить пакет samba и дополнительные пакеты:
Назначение Samba на роль AD DC
Подготовительные команды
Перед Назначением остановить ненужные службы, запретить их запуск, и удалить установленный по умолчанию конфигурационный файл Samba:
sudo systemctl mask winbind smbd nmbd krb5-kdc
sudo rm /etc/samba/smb.conf
Назначение
Назначение выполняется с помощью команды samba-tool domain provision. Эта команда поддерживает возможность выполнения настроек в интерактивном или автоматическом режимах. Справку по использованию команды можно получить с помощью опции --help:
- числовые идентификаторы пользователей (UID);
- пути у домашним каталогам пользователей;
- идентификаторы групп пользователей.
Включение расширений NIS при установке не влечет за собой никаких отрицательных побочных эффектов, а их включение в существующем домене требует ручного расширения схемы AD.
Подробности см. в:
Описание возможных параметров Назначения
При Назначении могут применяться следующие параметры:
Интерактивный режим | Автоматический режим | Комментарий |
---|---|---|
--use-rfc2307 | --use-rfc2307 | Включает расширения NIS |
Realm | --realm | Область Kerberos. Также, используется как домен DNS AD. Например: samdom.example.com. |
Domain | --domain | Имя домена для NetBIOS. Рекомендуется использовать первую часть имени домена DNS AD. Например, для домена samdom.example.com это будет имя samdom. |
Server Role | --server-role | Устанавливает роль контроллера DC. |
DNS backend | --dns-backend | Выбирает службу DNS. Первый DC в домене AD обязательно должен быть настроен на использование какой-либо службы DNS. Варианты служб NONE и BIND9_FLATFILE более не поддерживается. |
DNS forwarder IP address | недоступно | Эта настройка доступна только при выборе службы DNS SAMBA_INTERNAL DNS. Подробности см. Настройка перенаправления DNS. |
Administrator password | --adminpass | Устанавливает пароль администратора домена. Если заданный пароль не будет соответствовать требованиям по сложности пароля, Назначение не будет выполнено. Подробности см. Microsoft TechNet: Сложность паролей должна соответствовать требованиям. |
--option="interfaces=lo eth0" | Если сервер имеет несколько сетевых интерфейсов, то эти параметры можно использовать для привязки Samba к нужным интерфейсам. | |
-option="bind interfaces only=yes" |
- использование NONE как службы DNS больше не поддерживается;
- при использовании в качестве службы DNS службы BiIND вариант BIND9_FLATFILE больше не поддерживается;
- после назначения первого DC в домене AD не настраивайте больше таким способом никакие другие DC в этом домене, используйте процедуру присоединение (Join) для настройки остальных DC.
Назначение Samba в интерактивном режиме
Для выполнения Назначения в интерактивном режиме выполнить команду:
Интерактивный режим настройки поддерживает различные параметры команды samba-tool domain provision, что позволяет задавать настройки, не содержащиеся в интерактивном диалоге.
Назначение Samba в автоматическом режиме
Для примера назначения Samba в автоматическом режиме используем следующие параметры:
- Роль сервера: dc
- Расширения NIS: включены
- Служба DNS: внутренний DNS BIND9_DLZ
- Область Kerberos и зона DNS AD: samdom.example.com
- Имя домена для NetBIOS: SAMDOM
- Пароль администратора: Passw0rd
- Используется сеть 10.0.2.0/24
- Адрес хоста Samba 10.0.2.254
Для указанных параметров команда назначения будет выглядеть так:
sudo samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=BIND9_DLZ --realm=SAMDOM.EXAMPLE.COM --domain=SAMDOM --adminpass=Passw0rd
Завершающие команды
После успешного выполнения команды Назначения перед запуском доменной службы samba:
- Разрешить автоматический запуск службы контроллера домена:sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc - Настроить службу DNSecho 'include "/var/lib/samba/bind-dns/named.conf";' | sudo tee -a /etc/bind/named.conf
sudo chown -R root:bind /var/lib/samba/bind-dns
sudo systemctl restart bind9 - Скопировать автоматически созданную конфигурацию службы Kerberos в файл /etc/krb5.confsudo cp -b /var/lib/samba/private/krb5.conf /etc/krb5.conf
- Запустить доменную службу Samba:sudo systemctl start samba-ad-dc
Проверка результатов Назначения
Подробно команды для проверки результатов настройки контроллера домена описаны в статье Присоединение Samba к существующему домену AD. Разница только в том, что домена AD сейчас нет, сервер только один, соответственно, опрашивать нужно только один сервер, и в ответах будет только один сервер.
Создание реверсивных зон
С помощью команды samba-tool dns zonecreate можно добавить необязательную зону реверсивного поиска:
Password for [administrator@SAMDOM.EXAMPLE.COM]:
Zone 2.0.10.in-addr.arpa created successfully
Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.
Настройка участников домена
Настройка синхронизации времени
Для нормальной работы службы Kerberos требуется синхронизация времени всех участников домена. Подробности см. в статье Службы синхронизации времени в Astra Linux.
Настройка DNS
Участники домена AD используют DNS для поиска доменных служб, например, таких, как LDAP и Kerberos. Для этого необходим сервер DNS, способный разрешать зоны DNS AD.
Если в системе используется сервер DHCP, то в его настройках можно указать имя домена, которое будет передаваться всем хостам при запросе адреса Подробнее см. DHCP: служба isc-dhcp-server и DHCP: служба kea.
Помимо использования DHCP, настройку можно выполнить непосредственно на хостах - участниках домена в файле /etc/resolv.conf. Для этого указать в файле:
- имя домена DNS AD как имя домена для поиска (search),
- IP-адрес вашего DC как значение параметра nameserver.
Например:
search samdom.example.com
nameserver 10.0.2.254
Настройка разрешения имен для клиентских машин
Для того, чтобы служба DNS могла выполнять разрешение имен клиентских машин должно быть настроено предоставление информации об IP-адресах этих машин. Это может быть сделано следующими способами:
- Если в домене используются клиентские машины, получающие динамические IP-адреса от сервера DHCP, то сервер DNS может быть настроен на автоматическое получение информации о выданных адресах. Примерный порядок настройки см. в статье Динамическое обновление DNS клиентских машин FreeIPA.
- Если в домене используются клиентские машины, которым присваиваются статические адреса, то:
- Можно использовать для присвоения этих статических адресов сервер DHCP с динамическим обновлением адресов.
- Можно вручную задавать соответствие имени и адреса для каждого такого клиента. См. Администрирование DNS.
Kerberos
При работе в домене AD Kerberos используется для аутентификации пользователей, хостов, и доменных служб. Процедуры установки и настройки клиентов Kerberos см. в статье Kerberos.
Во время процедуры назначения Samba автоматически создает конфигурационный файл /var/lib/samba/private/krb5.conf для клиентов Kerberos, настроенный на создаваемый контроллер домена. Это файл должен быть скопирован в рабочую конфигурацию Kerberos на всех хостах, входящих в домен.
В автоматически создаваемом файле конфигурации Kerberos для поиска доменного контроллера Kerberos (KDC) используются сервисные записи (SRV). Для того, чтобы такая конфигурация работала корректно, в домене должна быть правильно настроена и работать служба DNS, в том числе должны быть созданы файлы с описанием зон, в которых размещены соответствующие сервисные записи (см. статью DNS-сервер BIND9).
Тестирование файлового сервера
Во время назначения автоматически создаются разделяемые ресурсы netlogon и sysvol, и они обязательно должны существовать в DC. Чтобы увидеть все разделяемые файловые ресурсы, предоставляемые DC:
Для проверки работы аутентификации можно подключиться к ресурсу netlogon с использованием учётной записи администратора домена:
Enter Administrator's password:
Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]
. D 0 Tue Nov 1 08:40:00 2016
.. D 0 Tue Nov 1 08:40:00 2016
49386 blocks of size 524288. 42093 blocks available
Инструменты командной строки
Для управления Samba AD DC в состав пакета Samba входит инструмент командной строки samba-tool. Основные команды инструмента:
Команда | Описание |
---|---|
dbcheck | Проверка локальной базы данных AD на наличие ошибок |
delegation | Управление делегированием |
dns | Управление параметрами доменной службы DNS |
domain | Управление параметрами домена |
drs | Управление службой репликации каталогов (Directory Replication Services, DRS) |
dsacl | Управление списками контроля доступа DS |
fsmo | Управление ролями (Flexible Single Master Operations, FSMO) |
gpo | Управление групповыми политиками |
group | Управление группами |
ldapcmp | Сравнение двух баз данных ldap |
ntacl | Управление списками контроля доступа ACL |
processes | Вывод списвка процессов (для упрощения отладки без использования setproctitle). |
rodc | Управление контроллером домена (Read-Only Domain Controller, RODC) |
sites | Управление сайтами |
spn | Управление службой принципалов (Service Principal Name, SPN) |
testparm | Проверка конфигурационного файла на корректность синтаксиса |
time | Получение показаний текущего времени сервера |
user | Управление пользователями |
visualize | Графическое представление состояния сети Samba |
Подробная информация об инструменте доступна в справочнике man:
Инструмент wbinfo
При установке пакета samba автоматически устанавливается служба winbindd. Для работы с этой службой используется инструмент командной строки wbinfo, позволяющий получать информацию о пользователях и группах AD. Примеры команд:
Команда | Описание |
---|---|
wbinfo -u | Вывести список пользователей |
wbinfo -g | Вывести список групп |
wbinfo -i имя_пользователя | Вывести подробную информацию о пользователе |
wbinfo -? wbinfo --help | Вывести справку по командам |
Настройка хостов - участников домена для входа доменных пользователей
По умолчанию, пользователи домена AD не могут выполнять вход в Linux-системы. Для обеспечения входа в Linux-системы с учетными записями Active Directory необходимо внести следующие изменения в настройки Samba AD DC в настройки пользовательских компьютеров.
Настройка Samba AD DC
В конфигурационном файле Samba /etc/samba/smb.conf необходимо добавить настройки службы winbind и разрешение авторизоваться через эту службу (добавленные строки выделены жирным шрифтом):
[global]
netbios name = DHCP
realm = SAMDOM.EXAMPLE.COM
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
workgroup = SAMDOM
idmap_ldb:use rfc2307 = yes
template shell = /bin/bash
winbind use default domain = true
winbind offline logon = false
winbind nss info = rfc2307
winbind enum users = yes
winbind enum groups = yes
После внесения изменений проверить правильность конфигурации командой
Настройка пользовательских компьютеров
На пользовательском компьютере использовать команду:
По окончании нажать клавишу "Tab", перейти на "ОК", и записать изменения.
В файле /etc/nsswitch.conf добавить слово winbind параметры password и group:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Чтобы пользователи AD после аутентификации могли менять свой пароль из командной строки в файле /etc/pam.d/common-password из строки:
password [success=1 default=ignore] pam_winbind.so use_authtok try_first_passfile
убрать слово use_authtok statement:
Предупреждение: Использование контроллера домена как файлового сервера
Несмотря на то, что Samba в режиме AD DC может предоставлять услуги разделения файлов так же, как и в любом другом режиме применения, разработчики Samba не рекомендуют использовать DC как файловый север по следующим причинам:
- Для всех организаций, за исключением самых маленьких, наличие более, чем одного DC, является реально хорошим способом резервирования, повышающим безопасность обновлений;
- Отсутствие сложных данных и влияния на другие сервисы позволяет обновлять DC совместно с ОС хоста каждые год или два;
- Обновления могут выполняться путем установки новых версий, или внесения изменений, которые лучше проверены в Samba, что позволяет получить новые возможности, избежав множества рисков, связанных с повреждением данных;
- Необходимость модернизации DC и файлового сервера наступает в разные моменты. Потребность в новых возможностях DC и файлового сервера возникает в разные моменты времени. В то время, как AD DC стремительно развивается, приобретая новые возможности, файловый сервер, после более 20 лет, гораздо более консервативен;
- mandatory smb signing is enforced on the DC.
Если вы изучаете возможность использовать Samba DC как файловый сервер, рассмотрите вместо этого возможность использовать на DC виртуальную машину VM, содержащую отдельного участника домена.
Если вы вынуждены использовать Samba DC как файловый сервер, помните, что виртуальная файловая система (virtual file system, VFS) позволяет настраивать разделяемые ресурсы только со списками управления доступом access (control lists, ACL) Windows.
Разделяемые ресурсы с ACL POSIX на Samba DC не поддерживаются, и не работают.
Для предоставления сетевых разделяемых ресурсов с полными возможностями Samba, используйте отдельного участника домена Samba.
Подробности см.:
Если у вас маленький домен (маленький офис, домашняя сеть), нет желания следовать рекомендациям разработчиков Samba, и DC используется как файловый сервер, настройте Winbindd до начала настройки разделяемых ресурсов.
Подробности см.: Configuring Winbindd on a Samba AD DC.
Поиск и устранение проблем
Подробности см.: Поиск и устранение проблем в Samba AD DC
Материалы для дальнейшего изучения
См. Пользовательская документация