Присоединение к домену в роли участника
Участниками домена Inno Samba могут быть серверы и рабочие станции под управлением ОС Windows и дистрибутивов Linux.
Участникам доступны следующие возможности:
-
использование имен доменных пользователей и групп в локальных списках управления доступом (ACL) к файлам и каталогам;
-
настройка общих ресурсов для работы в качестве файлового сервера;
-
настройка службы печати для работы в качестве сервера печати;
-
настройка механизма PAM для обеспечения входа доменных пользователей в систему локально и аутентификации доменных пользователей в работающих локально службах (например,
ssh).
Примеры в данном разделе основаны на следующих допущениях:
-
В сети доступен полностью настроенный контроллер домена Inno Samba, который также выступает в роли DNS-сервера, со следующими параметрами:
-
статический IP-адрес —
10.0.9.100; -
домен —
domain.name; -
полное доменное имя (FQDN) —
dc-name.domain.name.
-
-
В домен добавляются рабочие станции под управлением ОС Astra Linux 1.7.x и рядовые серверы под управлением Ubuntu 22.04 LTS. В примерах ниже для
-
Для использования аутентификации на базе Kerberos между всеми участниками домена обеспечивается синхронизация времени.
-
Для выполнения операций присоединения используется учетная запись и пароль администратора домена (
administrator). -
В домене создана учетная запись рядового пользователя
domain-userв группеDomain Users.
Основные инструменты ввода рядовых участников в домен Inno Samba:
-
SSSD (System Security Services Daemon) — группа служб, которые являются частью ядра ОС Linux и работают вместе для обеспечения аутентификации, поиска удостоверений и возможностей управления доступом для системы Linux; может взаимодействовать с Active Directory, FreeIPA, Samba DC или любыми другими стандартными реализациями сервера LDAP и/или Kerberos;
-
Winbind — компонент Inno Samba, отвечающий за разрешения имен компьютеров и пользователей через доменные службы Active Directory; обеспечивает авторизацию в домене различных служб, реализуя интерфейс между модулями Privileged Access Management (PAM) и контроллером домена; присутствует в виде службы
winbinddкак на клиенте, так и на сервере Inno Samba.
| Данный раздел содержит примеры инструментов для ввода клиентов в домен Inno Samba с минимальным набором настроек. Фактический состав устанавливаемых пакетов и настроек зависит от условий реальной эксплуатации и определяется администратором домена. В общем случае рекомендуется следовать инструкциям по вводу клиентов в домен Samba, приводимым в официальной документации на используемый дистрибутив Linux. |
Подготовка клиента
Во всех вариантах присоединения выполните следующие шаги по подготовке к присоединению:
-
Обновите пакеты операционной системы с помощью стандартной команды.
Например:
sudo apt update -y
-
Выберите для машины имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.
Например:
sudo hostnamectl set-hostname computer-name
-
В файле /etc/hosts сопоставьте полное доменное имя (FQDN) и короткое имя хоста с IP-адресом клиентской машины (в примере ниже используется статический IP-адрес — 10.0.9.121).
Например:
127.0.0.1 localhost 10.0.9.121 computer-name.domain.name computer-name
При использовании статического IP-адреса требуется настроить его аренду для данного хоста на DHCP-сервере.
Если для управления настройками DNS клиентских машин используется DHCP-сервер, требуется сконфигурировать его для использования соответствующего DNS-сервера.
-
Задайте IP-адрес контроллера домена в качестве DNS-сервера.
После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:
search domain.name nameserver 10.0.9.100
-
Проверьте корректность разрешения DNS-имен:
Например:
ping dc-name.domain.name -c 10
Или (если на машине установлен пакет dnsutils):
nslookup dc-name.domain.name
Клиент на ОС Astra Linux
Операционная система Astra Linux предоставляет следующие инструменты для ввода рабочих станций и серверов в домен Inno Samba:
-
пакет astra-winbind и графическая утилита fly-admin-ad-client;
-
пакет astra-ad-sssd-client и графическая утилита fly-admin-ad-sssd-client.
| См. подробное описание процедуры ввода и доступных параметров в официальной документации Astra Linux. |
Присоединение с использованием Winbind
Для ввода рабочей станции на ОС Astra Linux 1.7.x в домен Inno Samba:
-
Установите пакет astra-winbind, требуемый для присоединения к домену с помощью Winbind:
sudo apt install astra-winbind
-
Выполните присоединение к домену:
sudo astra-winbind -dc dc-name.domain.name -u administrator -px
Описание параметров присоединения:
-
-dc— имя контроллера домена;Если, как в примере, передается полное доменное имя (FQDN), указывать домен с помощью ключа -dне требуется. -
-u— имя учетной записи справами администратора домена; -
-px— указание на получение пароля указанной учетной записи из stdin.
В случае успешного присоединения в конце вывода команды отобразится строка:
Joined 'COMPUTER-NAME' to dns domain 'domain.name'
-
-
Для проверки корректности присоединения:
-
запросите информацию о текущем подключении к домену:
astra-winbind -i checking the NETLOGON for domain[DOMAIN-NAME] dc connection to "dc-name.domain.name" succeeded
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... COMPUTER-NAME$ ...
-
выполните вход на машину под учетной записью доменного пользователя
domain-user:su - domain-user
-
убедитесь, что для пользователя создан домашний каталог:
pwd /home/DOMAIN-NAME/domain-user
Формат пути задается параметром template homedirв файле /etc/samba/smb.conf (по умолчанию —/home/%D/%U). -
проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)
-
Присоединение с использованием SSSD
Для ввода рабочей станции на ОС Astra Linux 1.7.x в домен Inno Samba:
-
Установите пакет astra-ad-sssd-client, требуемый для присоединения к домену с помощью SSSD:
sudo apt install astra-ad-sssd-client
-
Выполните присоединение к домену:
sudo astra-ad-sssd-client -dc dc-name.domain.name -u administrator -px
Описание параметров присоединения:
-
-dc— имя контроллера домена;Если, как в примере, передается полное доменное имя (FQDN), указывать домен с помощью ключа -dне требуется. -
-u— имя учетной записи справами администратора домена; -
-px— указание на получение пароля указанной учетной записи из stdin.
В случае успешного присоединения в конце вывода команды отобразится строка:
Компьютер подключен к домену domain-name
-
-
Перезагрузите машину.
-
После перезагрузки для проверки корректности присоединения:
-
запросите информацию о текущем подключении к домену:
sudo astra-ad-sssd-client -i Обнаружен настроенный клиент в домене domain-name
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... COMPUTER-NAME$ ...
-
выполните вход на машину под учетной записью доменного пользователя
domain-user:su - domain-user
-
убедитесь, что для пользователя создан домашний каталог:
pwd /home/domain-user@domain-name
-
проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)
-
Клиент на ОС Ubuntu Server 22.04 LTS
Ввод клиентов на ОС Ubuntu Server выполняется с помощью пакетов:
-
realmd и sssd;
-
winbind.
Состав остальных дополнительных пакетов определяется особенностями эксплуатации.
Присоединение с использованием SSSD
Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Inno Samba:
-
Установите пакеты, требуемые для присоединения к домену с помощью SSSD и дальнейшей эксплуатации сервера в домене.
Например:
sudo apt install sssd sssd-tools libnss-sss libpam-sss realmd adcli packagekit oddjob oddjob-mkhomedir krb5-user
-
Если в процессе установки пакета krb5-user требуемые настройки аутентификации Kerberos не были указаны в интерактивном режиме, приведите файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = DOMAIN.NAME dns_lookup_realm = false dns_lookup_kdc = true udp_preference_limit = 1Значение
1в параметреudp_preference_limitуказывает на необходимость использования протокола TCP для всех запросов аутентификации. Это позволяет повысить эффективность сетевого взаимодействия.Если параметр не установлен, клиент сначала отправляет запрос аутентификации по протоколу UDP, что в случае превышения ограничения на размер успешного ответа в 1400 байт может приводить к ошибке, и только после этого выполняет повторный запрос по TCP.
-
Выполните присоединение к домену:
-
используйте следующую команду для получения информации о домене и области безопасности:
realm -v discover domain.name * Resolving: _ldap._tcp.domain.name * Performing LDAP DSE lookup on: 10.0.9.100 * Successfully discovered: domain.name domain.name type: kerberos realm-name: DOMAIN.NAME domain-name: domain.name configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin
-
получите билет Kerberos для доменного пользователя с правами администратора (в данном случае —
administrator):kinit administrator@DOMAIN.NAME
-
выполните ввод в домен:
sudo realm join domain.name -U 'administrator@DOMAIN.NAME' --install=/ --no-password
Описание параметров присоединения:
-
имя домена, к которому выполняется присоединение;
-
-U— имя пользователя с правами администратора домена; -
--install=/— рабочий каталог; -
--no-password— использовать для аутентификации билет Kerberos вместо ввода пароля.
См. описание всех доступных параметров в документации realmd. В случае успешного выполнения команды в конце вывода будет содержаться следующее сообщение:
Successfully enrolled machine in realm
-
-
-
Настройте локальный вход с доменной учетной записью:
-
в файле /etc/sssd/sssd.conf закомментируйте следующую строку:
# use_fully_qualified_names = True
-
для применения изменений перезапустите службу
sssd:sudo systemctl restart sssd.service
-
-
Для настройки возможности аутентификации доменных учетных записей по паролю при подключении через SSH:
-
в файле /etc/ssh/sshd_config задайте в параметре
PasswordAuthenticationзначениеyes:PasswordAuthentication yes
-
для применения изменения перезапустите службу
ssh:sudo systemctl restart ssh.service
-
-
Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующие строки в файл /etc/pam.d/common-session:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 account optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Также данную настройку можно выполнить в интерактивно режиме с помощью инструмента
pam-auth-update:sudo pam-auth-update
Или используйте команду:
sudo pam-auth-update --enable mkhomedir
-
Выдайте пользователям из группы
Domain Usersразрешение на вход на сервер:sudo realm permit -g 'Domain Users'
-
Для проверки корректности присоединения повторно запросите информацию о домене и области безопасности Kerberos:
realm list domain.name type: kerberos realm-name: DOMAIN.NAME domain-name: domain.name configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U login-policy: allow-permitted-logins permitted-logins: permitted-groups: Domain Users
-
Для проверки возможности поиска доменных пользователей и групп с помощью библиотеки libnss-sss, выполните следующие команды:
-
для поиска в домене, например, пользователя
domain-user:getent passwd DOMAIN-NAME\\domain-user domain-user:*:<...>:<...>:domain-user:/home/domain-user@domain.name:/bin/bash
-
для поиска доменной группы
Domain Users:getent group "DOMAIN-NAME\\Domain Users" domain users:*:<...>:administrator,domain-user
-
-
Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.
Например:
samba-tool computer list ... COMPUTER-NAME$ ...
-
Выполните вход на машину под учетной записью доменного пользователя
domain-user:su - domain-user
-
Убедитесь, что для пользователя создан домашний каталог:
pwd /home/domain-user@domain-name
-
Проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)
-
Для проверки возможности подключения к машине по SSH с аутентификацией по паролю, выполните вход на любой контроллер в домене и установите новое подключение к присоединенной машине:
sudo ssh -l domain-user@domain.name computer-name.domain.name
Присоединение с использованием Winbind
Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Inno Samba:
-
Установите пакеты, требуемые для присоединения к домену с помощью Winbind:
Например:
sudo apt install samba winbind krb5-user libpam-krb5 libpam-winbind libnss-winbind
Для присоединения требуются отдельные компоненты Samba. В качестве упрощения в примере устанавливается базовый пакет, доступный в репозиториях используемого дистрибутива Linux. -
Если в процессе установки пакета krb5-user требуемые настройки аутентификации Kerberos не были указаны в интерактивном режиме, приведите файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = DOMAIN.NAME dns_lookup_realm = false dns_lookup_kdc = true udp_preference_limit = 1Значение
1в параметреudp_preference_limitуказывает на необходимость использования протокола TCP для всех запросов аутентификации. Это позволяет повысить эффективность сетевого взаимодействия.Если параметр не установлен, клиент сначала отправляет запрос аутентификации по протоколу UDP, что в случае превышения ограничения на размер успешного ответа в 1400 байт может приводить к ошибке, и только после этого выполняет повторный запрос по TCP.
-
Выполните настройку Samba, отредактировав конфигурационный файл smb.conf:
-
определите расположение файла:
sudo smbd -b | grep "CONFIGFILE" CONFIGFILE: /etc/samba/smb.conf
-
приведите файл smb.conf, например, к виду (состав настроек определяется конкретными условиями эксплуатации):
[global] dedicated keytab file = /etc/krb5.keytab dns forwarder = 10.0.9.100 domain master = No idmap config * : range = 100000-199999 idmap config * : backend = tdb idmap config DOMAIN : range = 200000-299999 idmap config DOMAIN : backend = rid kerberos method = secrets and keytab load printers = No local master = No map acl inherit = Yes os level = 0 preferred master = No printcap name = /dev/null realm = DOMAIN.NAME security = ADS store dos attributes = Yes template homedir = /home/%U template shell = /bin/bash vfs objects = acl_xattr winbind enum groups = Yes winbind enum users = Yes winbind nss info = rfc2307 winbind refresh tickets = Yes winbind use default domain = Yes workgroup = DOMAIN -
при необходимости заполните разделы
[homes],[printers]и т. д.; -
проверьте корректность подготовленной конфигурации:
samba-tool testparm
-
-
Для обеспечения доступа к доменным пользователям и группам через диспетчер службы имен (NSS) в файле /etc/nsswitch.conf в строках со значениями параметров
passwdиgroupдобавьте рядом сfilesзначениеwinbind:passwd: files winbind group: files winbind
-
Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующие строки в файл /etc/pam.d/common-session:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 account optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Также данную настройку можно выполнить в интерактивно режиме с помощью инструмента
pam-auth-update:sudo pam-auth-update
Или используйте команду:
sudo pam-auth-update --enable mkhomedir
-
Выполните присоединение к домену:
net ads join -U administrator
В случае успешного присоединения в конце вывода команды отобразится строка:
Joined 'computer-name' to dns domain 'domain.name'
-
Перезапустите службу
winbind:sudo systemctl restart winbind.service
-
Для проверки возможности поиска доменных пользователей и групп с помощью библиотеки libnss-winbind, выполните следующие команды:
-
для поиска в домене, например, пользователя
domain-user:getent passwd DOMAIN-NAME\\domain-user domain-user:*:<...>:<...>:domain-user:/home/domain-user@domain.name:/bin/bash
-
для поиска доменной группы
Domain Users:getent group "DOMAIN-NAME\\Domain Users" domain users:*:<...>:administrator,domain-user
-
-
Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.
Например:
samba-tool computer list ... COMPUTER-NAME$ ...
-
Выполните вход на машину под учетной записью доменного пользователя
domain-user.Например:
su - domain-user
-
Убедитесь, что для пользователя создан домашний каталог:
pwd /home/domain-user
Формат пути задается параметром template homedirв файле /etc/samba/smb.conf (в примере конфигурации выше —/home/%U). -
Проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)