Присоединение к домену в роли участника
Рядовыми участниками домена Эллес могут быть серверы и рабочие станции под управлением ОС Windows и дистрибутивов Linux, поддерживающих работу с инструментами аутентификации и авторизации в домене (SSSD, Winbind).
Примеры в данном разделе основаны на следующих допущениях:
-
В сети доступен полностью настроенный контроллер домена Эллес, который также выступает в роли DNS-сервера, со следующими параметрами:
-
статический IP-адрес —
10.0.9.100; -
домен —
samdom.example.com; -
полное доменное имя (FQDN) —
dc01.samdom.example.com.
-
-
В домен добавляются рабочие станции и рядовые серверы под управлением ОС Astra Linux 1.7.x, РЕД ОС 7.3.x, Ubuntu 22.04 LTS и ОС Windows 10/11 или ОС Windows Server.
-
Для использования аутентификации на базе Kerberos между всеми участниками домена обеспечивается синхронизация времени в соответствии с инструкциями разработчика используемого дистрибутива ОС.
-
На вводимых в домен машинах настроен доступ к репозиториям с пакетами используемого дистрибутива операционной системы.
-
Для выполнения операций присоединения используется учетная запись с локальными административными правами на вводимой машине и административными правами на добавление компьютера в домен (
Administrator). -
В домене создана учетная запись рядового пользователя
user01в группеDomain Users.
Предварительные замечания
При вводе в домен Эллес машин в роли рядовых участников следует учитывать некоторые особенности используемых инструментов.
Коллизия имен локальных и доменных пользователей
Во избежание возможных коллизий, обусловленных совпадением имен локальных пользователей и доменных пользователей, при использовании инструментария SSSD для аутентификации и авторизации на рядовых участниках домена под управлением ОС Astra Linux рекомендуется выполнить одно из следующих действий по дополнительной настройке:
-
разрешите вход доменных пользователей только с использованием UPN;
Для этого:
-
Добавьте следующую настройку в конфигурационный файл /etc/sssd/sssd.conf:
use_fully_qualified_names = True
-
Для применения изменения перезапустите службу
sssd:sudo systemctl restart sssd.service
-
-
измените последовательность анализа источников данных, используемых диспетчером службы имен (Name Service Switch) на машине — участнике домена.
Для этого приведите соответствующие строки в конфигурационном файле диспетчера (/etc/nsswitch.conf) к следующему виду:
... passwd: sss files group: sss files ...
Учет атрибута userWorkstations
Атрибут userWorkstations доменной учетной записи пользователя содержит список NetBIOS- или DNS-имен компьютеров:
-
на которых пользователю разрешен локальный вход в операционную систему;
-
с которых пользователю разрешен удаленный доступ к другим компьютерам в домене.
Значение атрибута может редактироваться:
-
на дистрибутивах Linux:
-
в блоке Учетная запись формы пользователя в веб-интерфейсе приложения «Менеджер службы каталогов» (DSM) при выборе в окне Доступные компьютеры опции Выбранные компьютеры (см. описание в подразделе «Учетная запись»);
-
с помощью подкоманды
samba-tool user edit(см. описание в подразделе «Изменение атрибутов пользователя»);
-
-
на ОС Windows или Windows Server:
-
на вкладке Учетная запись окна Свойства учетной записи пользователя в оснастке «Пользователи и компьютеры в Active Directory» (Active Directory Users and Computers, ADUC) при выборе опции только на указанные компьютеры в окне Рабочие станции для входа в систему;
-
с помощью параметра
/workstationsкомандыnet user(см. описание в документации Microsoft); -
с помощью параметра
-LogonWokstationsкомандлета PowerShellSet-ADUser(см. описание в документации Microsoft).
-
Обработка значения атрибута зависит от операционной системы и способа ввода в домен машины:
-
на клиентских машинах под управлением ОС Windows или Windows Server значение атрибута учитывается во всех случаях;
-
на клиентских машинах на Linux, введенных в домен с помощью Winbind, значение атрибута учитывается в том случае, если в нем заданы NetBIOS-имена компьютеров;
-
на клиентских машинах на Linux, введенных в домен с помощью SSSD, значение атрибута игнорируется полностью.
Клиент на ОС Astra Linux
Ввод клиентских машин на ОС Astra Linux выполняется с помощью пакетов:
-
realmd и sssd;
-
winbind.
Компания-разработчик ОС Astra Linux не рекомендует использовать инструментарий Winbind.
Предварительная подготовка
Выполните следующие шаги по предварительной подготовке:
-
Обновите пакеты операционной системы:
sudo apt update -y
-
Выберите для машины имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.
Например:
sudo hostnamectl set-hostname client01
-
В файле /etc/hosts сопоставьте полное доменное имя (FQDN) и короткое имя хоста с IP-адресом клиентской машины (в примере ниже используется статический IP-адрес).
Например:
127.0.0.1 localhost 10.0.9.121 client01.samdom.example.com client01
При использовании статического IP-адреса требуется настроить его аренду для данного хоста на DHCP-сервере.
Если для управления настройками DNS клиентских машин используется DHCP-сервер, требуется сконфигурировать его для использования соответствующего DNS-сервера. -
Задайте IP-адрес DNS-сервера домена (в данном примере DNS-сервер развертывается вместе с контроллером домена) и поисковый домен в настройках используемого сетевого интерфейса любым доступным способом.
После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:
search samdom.example.com nameserver 10.0.9.100
-
Проверьте корректность разрешения имен службой DNS.
Например:
host dc01.samdom.example.com dc01.samdom.example.com has address 10.0.9.100
Присоединение с использованием SSSD
Для ввода рабочей станции или рядового сервера на ОС Astra Linux 1.7.x в домен Эллес:
-
Установите пакеты, требуемые для присоединения к домену с помощью SSSD и дальнейшей эксплуатации машины в домене.
Например:
sudo apt install sssd sssd-tools libnss-sss libpam-sss realmd packagekit oddjob oddjob-mkhomedir krb5-user adcli
-
Приведите файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = SAMDOM.EXAMPLE.COM canonicalize = true default_ccache_name = KEYRING:persistent:%{uid} [realms] SAMDOM.EXAMPLE.COM = { kdc = dc01.samdom.example.com admin_server = dc01.samdom.example.com default_domain = SAMDOM.EXAMPLE.COM } [domain_realm] samdom.example.com = SAMDOM.EXAMPLE.COM .samdom.example.com = SAMDOM.EXAMPLE.COM -
Приведите конфигурационный файл Samba /etc/samba/smb.conf к следующему виду:
[global] workgroup = SAMDOM client signing = yes client use spnego = yes kerberos method = secrets and keytab pam password change = Yes log file = /var/log/samba/%m.log security = ADS server string = Astra linux idmap config * : backend = tdb [printers] comment = All Printers path = /var/spool/samba browseable = No printable = Yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers -
Выполните ввод машины в домен с помощью realmd:
sudo realm join samdom.example.com -U Administrator@samdom.example.com --verbose --client-software=sssd --membership-software=samba
В примере используются параметры:
-
-U(обязательный) — имя пользователя с административными правами в домене, в который выполняется ввод; -
--verbose(необязательный) — вывод подробной информации о ходе выполнения операции; -
--client-software(необязательный) — программное обеспечение (samba/winbind) для обеспечения работы в домене на стороне клиентской машины (по умолчанию определяется автоматически); -
--membership-software(необязательный) — программное обеспечение (samba/adcli) для использования при присоединении (по умолчанию определяется автоматически).
-
-
Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующую строку в файлы /etc/pam.d/common-session и /etc/pam.d/common-session-noninteractive:
session required pam_mkhomedir.so umask=0077 skel=/etc/skel
Примеры содержимого файлов после добавления строки:
-
файл /etc/pam.d/common-session:
# # /etc/pam.d/common-session - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of sessions of *any* kind (both interactive and # non-interactive). # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit .so # and here are more per-package modules (the "Additional" block) session required pam_mkhomedir.so umask=0077 skel=/etc/skel session required pam_kiosk2.so session required pam_unix.so session optional pam_sss.so session optional pam_systemd.so # end of pam-auth-update config
-
файл /etc/pam.d/common-session-noninteractive:
# # /etc/pam.d/common-session-noninteractive - session-related modules # common to all non-interactive services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of all non-interactive sessions. # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit.so # and here are more per-package modules (the "Additional" block) session required pam_mkhomedir.so umask=0077 skel=/etc/skel session required pam_kiosk2.so session required pam_unix.so # end of pam-auth-update config
-
-
Приведите конфигурационный файл SSSD /etc/sssd/sssd.conf к следующему виду:
[sssd] domains = samdom.example.com config_file_version = 2 services = ifp [ifp] allowed_uids = 0, 33, 114, 107 [pam] pam_pwd_expiration_warning = 7 [domain/is11.ru] ad_gpo_map_interactive = +fly-dm ad_update_samba_machine_account_password = True krb5_renew_interval = 600s krb5_renewable_lifetime = 7d krb5_ccname_template = KEYRING:persistent:%U ad_gpo_access_control = disabled ad_domain = samdom.example.com krb5_realm = SAMDOM.EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = False fallback_homedir = /home/%u@%d access_provider = ad
-
Перезагрузите машину:
sudo systemctl reboot
-
После перезагрузки для проверки корректности присоединения:
-
запросите информацию о текущем подключении к домену:
sudo net ads testjoin Join is OK
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... CLIENT01$ ...
-
выполните вход на машину под учетной записью доменного пользователя
user01:su - user01
-
убедитесь, что для пользователя создан домашний каталог:
pwd /home/user01@samdom.example.com
-
проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(user01) gid=<...>(domain users) groups=<...>(domain users)
-
Присоединение с использованием Winbind
| Компания-разработчик ОС Astra Linux не рекомендует использовать инструментарий Winbind. |
Для ввода рабочей станции или рядового сервера на ОС Astra Linux 1.7.x в домен Эллес:
-
Установите пакеты, требуемые для присоединения к домену с помощью Winbind:
Например:
sudo apt-get install samba-common-bin samba-libs krb5-user winbind libnss-winbind libpam-winbind
-
Приведите файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = SAMDOM.EXAMPLE.COM kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true fcc-mit-ticketflags = true dns_lookup_realm = false dns_lookup_kdc = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } canonicalize = true [realms] SAMDOM.EXAMPLE.COM = { admin_server = DС1.SAMDOM.EXAMPLE.COM default_domain = SAMDOM.EXAMPLE.COM } [domain_realm] .samdom.example.com = SAMDOM.EXAMPLE.COM samdom.example.com = SAMDOM.EXAMPLE.COM [login] krb4_convert = false krb4_get_tickets = false -
Приведите конфигурационный файл Samba /etc/samba/smb.conf к следующему виду:
[global] server string = Astra linux usershare allow guests = Yes map to guest = Bad User obey pam restrictions = Yes pam password change = Yes passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . passwd program = /usr/bin/passwd %u server role = standalone server unix password sync = Yes workgroup = SAMDOM realm = SAMDOM.EXAMPLE.COM security = ADS encrypt passwords = true dns proxy = no socket options = TCP_NODELAY domain master = no local master = no preferred master = no os level = 0 domain logons = no kerberos method = secrets and keytab load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes idmap config * : range = 100000-199999 idmap config * : backend = tdb idmap config SAMDOM.EXAMPLE.COM : range = 200000-299999 idmap config SAMDOM.EXAMPLE.COM : backend = rid winbind nss info = rfc2307 winbind enum groups = no winbind enum users = no winbind use default domain = yes winbind scan trusted domains = no template homedir = /home/%D/%U template shell = /bin/bash winbind refresh tickets = yes winbind offline logon = yes winbind cache time = 1440 password server = DC1 unix charset = UTF8 dos charset = CP866 [printers] comment = All Printers path = /var/spool/samba browseable = No printable = Yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers -
Выполните ввод машины в домен:
sudo net ads join -U Administrator -D SAMDOM.EXAMPLE.COM
В примере используются параметры:
-
-U(обязательный) — имя пользователя с административными правами в домене, в который выполняется ввод; -
-D(необязательный) — имя домена, в который выполняется ввод (по умолчанию определяется автоматически).
-
-
В файле настроек диспетчера службы имен /etc/nsswitch.conf укажите
winbindв качестве поставщика данных для поиска доменных пользователей и групп в локальном пространстве имен хоста контроллера домена:# /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: files gshadow: files hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
-
Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующую строку в файл /etc/pam.d/common-session:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Пример содержимого файла /etc/pam.d/common-session после добавления строки:
# # /etc/pam.d/common-session - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of sessions of *any* kind (both interactive and # non-interactive). # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit.so # and here are more per-package modules (the "Additional" block) session required pam_mkhomedir.so umask=0077 skel=/etc/skel session required pam_kiosk2.so session optional pam_winbind.so session required pam_unix.so session optional pam_systemd.so # end of pam-auth-update config
-
При необходимости настройте возможность повышения привилегий с помощью
sudoдля участников доменной группыDomain Admins, добавив следующую строку в файл /etc/sudoers:%Domain\ Admins ALL=(ALL) ALL
Пример содержимого файла /etc/sudoers после добавления строки:
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" Defaults use_pty # This preserves proxy settings from user environments of root # equivalent users (group sudo) #Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy" # This allows running arbitrary commands, but so does ALL, and it means # different sudoers have their choice of editor respected. #Defaults:%sudo env_keep += "EDITOR" # Completely harmless preservation of a user preference. #Defaults:%sudo env_keep += "GREP_COLOR" # While you shouldn't normally run git as root, you need to with etckeeper #Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*" # Per-user preferences; root won't have sensible values for them. #Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME" # "sudo scp" or "sudo rsync" should be able to use your SSH agent. #Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK" # Ditto for GPG agent #Defaults:%sudo env_keep += "GPG_AGENT_INFO" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "@include" directives: @includedir /etc/sudoers.d %Domain\ Admins ALL=(ALL) ALL
-
Перезагрузите машину:
sudo systemctl reboot
-
Для проверки корректности присоединения:
-
запросите информацию о текущем подключении к домену:
sudo net ads testjoin Join is OK
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... CLIENT01$ ...
-
выполните вход на машину под учетной записью доменного пользователя
user01:su - user01
-
убедитесь, что для пользователя создан домашний каталог:
pwd /home/SAMDOM/user01
Формат пути задается параметром template homedirв файле /etc/samba/smb.conf (по умолчанию —/home/%D/%U). -
проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(user01) gid=<...>(domain users) groups=<...>(domain users)
-
Клиент на РЕД ОС
Ввод клиентских машин на РЕД ОС выполняется с помощью штатного инструмента join-to-domain.
В зависимости от варианта установки инструмент в составе РЕД ОС может быть доступен как в виде утилиты с графическим интерфейсом, так и в виде скрипта для запуска в терминале в интерактивном режиме или с входными параметрами.
По умолчанию утилита использует для ввода в домен инструментарий SSSD. Ввод с использованием Winbind также возможен.
|
См. описание процедуры ввода и доступных параметров утилиты Также см. описание процедуры ввода с помощью |
Предварительная подготовка
Выполните следующие шаги по предварительной подготовке:
-
Обновите пакеты операционной системы:
sudo dnf update -y
-
Задайте IP-адрес DNS-сервера домена (в данном примере DNS-сервер развертывается вместе с контроллером домена) и поисковый домен в настройках используемого сетевого интерфейса любым доступным способом.
Например, с помощью утилиты
nmcli:-
Определите имя используемого сетевого интерфейса:
nmcli connection show NAME UUID TYPE DEVICE enp0s1 973b457f-ad2e-32c0-8849-5d27ce648bac ethernet enp0s1 ...
-
Задайте требуемые настройки для сетевого интерфейса:
nmcli connection modify enp0s1 ipv4.dns 10.0.9.100 ipv4.dns-search samdom.example.com
-
Перезапустите сетевую службу:
nmcli networking off && nmcli networking on
-
Убедитесь, что настройки заданы корректно:
nmcli enp0s1: подключено к enp0s1 ... DNS configuration: servers: 10.0.9.100 domains: samdom.example.com interface: enp0s1
-
-
Проверьте корректность разрешения имен службой DNS.
Например:
host dc01.samdom.example.com dc01.samdom.example.com has address 10.0.9.100
Присоединение
Для ввода клиентской машины на РЕД ОС в домен Эллес:
-
Убедитесь, что на машине установлена утилита
join-to-domain(она может отсутствовать при установке РЕД ОС в конфигурации «Сервер минимальный»):dnf list installed join-to-domain join-to-domain.noarch ...
Если утилита отсутствует, установите ее:
sudo dnf install join-to-domain -y
-
Выполните присоединение к домену:
sudo join-to-domain.sh -d samdom.example.com -n client01 -u Administrator -y
Описание параметров присоединения:
-
-d— имя домена;Если присоединение выполняется к определенному контроллеру домена, укажите его имя ( dc01в данном примере) с помощью параметра--dc. -
-n— имя компьютера; -
-u— имя учетной записи с административными правами на добавление компьютера в домен.
Если требуется сразу добавить компьютер в определенное подразделение, укажите его имя (в формате
OU=OrgUnit) с помощью параметра--ou.Для использования инструментария Winbind передайте ключ
-w.В случае успешного присоединения в конце вывода команды отобразится строка:
Выполнено. Компьютер успешно введен в домен! Перезагрузите ПК.
-
-
Перезагрузите машину.
-
Для проверки корректности присоединения:
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... CLIENT01$ ...
-
выполните вход на машину под учетной записью доменного пользователя
user01:su - user01
-
убедитесь, что для пользователя создан домашний каталог:
pwd /home/user01@samdom.example.com
-
проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(user01) gid=<...>(domain users) группы=<...>(domain users)
-
Клиент на ОС Ubuntu Server 22.04 LTS
Ввод клиентских машин на ОС Ubuntu Server выполняется с помощью пакетов:
-
realmd и sssd;
-
winbind.
Состав остальных дополнительных пакетов определяется особенностями эксплуатации.
|
См. инструкции по вводу в домен Active Directory в официальной документации Ubuntu Server: |
Предварительная подготовка
Выполните следующие шаги по предварительной подготовке:
-
Обновите пакеты операционной системы:
sudo apt update -y
-
Выберите для машины имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.
Например:
sudo hostnamectl set-hostname server01
-
В файле /etc/hosts сопоставьте полное доменное имя (FQDN) и короткое имя хоста с IP-адресом клиентской машины (в примере ниже используется статический IP-адрес).
Например:
127.0.0.1 localhost 10.0.9.121 server01.samdom.example.com server01
При использовании статического IP-адреса требуется настроить его аренду для данного хоста на DHCP-сервере.
Если для управления настройками DNS клиентских машин используется DHCP-сервер, требуется сконфигурировать его для использования соответствующего DNS-сервера. -
Задайте IP-адрес DNS-сервера домена (в данном примере DNS-сервер развертывается вместе с контроллером домена) и поисковый домен в настройках используемого сетевого интерфейса любым доступным способом.
После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:
search samdom.example.com nameserver 10.0.9.100
-
Проверьте корректность разрешения имен службой DNS.
Например:
host dc01.samdom.example.com dc01.samdom.example.com has address 10.0.9.100
Присоединение с использованием SSSD
Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Эллес:
-
Установите пакеты, требуемые для присоединения к домену с помощью 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 = SAMDOM.EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true udp_preference_limit = 1Значение
1в параметреudp_preference_limitуказывает на необходимость использования протокола TCP для всех запросов аутентификации. Это позволяет повысить эффективность сетевого взаимодействия.Если параметр не установлен, клиент сначала отправляет запрос аутентификации по протоколу UDP, что в случае превышения ограничения на размер успешного ответа в 1400 байт может приводить к ошибке, и только после этого выполняет повторный запрос по TCP.
-
Выполните присоединение к домену:
-
используйте следующую команду для получения информации о домене и области безопасности:
realm -v discover samdom.example.com * Resolving: _ldap._tcp.samdom.example.com * Performing LDAP DSE lookup on: 10.0.9.100 * Successfully discovered: samdom.example.com samdom.example.com type: kerberos realm-name: SAMDOM.EXAMPLE.COM domain-name: samdom.example.com 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@samdom.example.com
-
выполните ввод в домен:
sudo realm join samdom.example.com -U 'Administrator@samdom.example.com' --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 samdom.example.com type: kerberos realm-name: SAMDOM.EXAMPLE.COM domain-name: samdom.example.com 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, выполните следующие команды:
-
для поиска в домене, например, пользователя
user01:getent passwd SAMDOM\\user01 user01:*:<...>:<...>:user01:/home/user01@samdom.example.com:/bin/bash
-
для поиска доменной группы
Domain Users:getent group "SAMDOM\\Domain Users" domain users:*:<...>:Administrator,user01
-
-
Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.
Например:
samba-tool computer list ... SERVER01$ ...
-
Выполните вход на машину под учетной записью доменного пользователя
user01:su - user01
-
Убедитесь, что для пользователя создан домашний каталог:
pwd /home/user01@samdom.example.com
-
Проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(user01) gid=<...>(domain users) groups=<...>(domain users)
-
Для проверки возможности подключения к машине по SSH с аутентификацией по паролю, выполните вход на любой контроллер в домене и установите новое подключение к присоединенной машине:
sudo ssh -l user01@samdom.example.com server01.samdom.example.com
Присоединение с использованием Winbind
Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Эллес:
-
Установите пакеты, требуемые для присоединения к домену с помощью 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 = SAMDOM.EXAMPLE.COM 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 = samdom.example.com 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 = SAMDOM -
при необходимости заполните разделы
[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
-
Выполните присоединение к домену:
sudo net ads join -U Administrator
В случае успешного присоединения в конце вывода команды отобразится строка:
Joined 'server01' to dns domain 'samdom.example.com'
-
Перезапустите службу
winbind:sudo systemctl restart winbind.service
-
Для проверки возможности поиска доменных пользователей и групп с помощью библиотеки libnss-winbind, выполните следующие команды:
-
для поиска в домене, например, пользователя
user01:getent passwd SAMDOM\\user01 user01:*:<...>:<...>:user01:/home/user01@samdom.example.com:/bin/bash
-
для поиска доменной группы
Domain Users:getent group "SAMDOM\\Domain Users" domain users:*:<...>:Administrator,user01
-
-
Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.
Например:
samba-tool computer list ... SERVER01$ ...
-
Выполните вход на машину под учетной записью доменного пользователя
user01.Например:
su - user01
-
Убедитесь, что для пользователя создан домашний каталог:
pwd /home/user01
Формат пути задается параметром template homedirв файле /etc/samba/smb.conf (в примере конфигурации выше —/home/%U). -
Проверьте, что членство в доменных группах разрешается корректно:
id uid=<...>(user01) gid=<...>(domain users) groups=<...>(domain users)
Клиент на ОС Windows
В качестве рядовых участников в домен Эллес могут вводиться машины под управлением ОС Windows 10/11 редакций Pro, Education, Pro for Workstations, Enterprise и ОС Windows Server всех редакций.
Присоединение возможно как с помощью инструментов с графическим интерфейсом, так и с помощью командлетов PowerShell.
Предварительная подготовка
Выполните следующие шаги по предварительной подготовке:
-
Обеспечьте доступ машины к DNS-серверу в домене для корректного разрешения имен. При использовании статического IP-адреса для машины, укажите IP-адрес DNS-сервера в настройках сетевого адаптера. Убедитесь, что имена разрешаются корректно, например, с помощью
pingилиnslookup. -
Убедитесь, что дата и время на машине не отличаются от даты и времени на контроллере домена.
-
При необходимости измените имя компьютера.
Присоединение
Для ввода рабочей станции на ОС Windows или рядового сервера на ОС Windows Server в домен Эллес:
-
Нажмите клавиши Win+R.
-
Наберите в поле ввода команду
sysdm.cplи нажмите OK. -
В окне System Properties на вкладке Computer Name нажмите Change….
-
В окне Computer Name/Domain Changes при необходимости отредактируйте имя компьютера в поле Computer name, в блоке Member of выберите Domain и укажите имя домена в поле ввода.
Рис. 1. Окно ввода имени компьютера и домена -
В диалоговом окне Windows Security введите имя и пароль пользователя с административными права на добавление компьютера в домен и нажмите OK.
В случае успешного завершения операции отобразится диалоговое окно с сообщением о добавлении компьютера в домен. Нажмите OK.
-
Перезагрузите машину.
-
Для проверки корректности присоединения:
-
убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;
Например:
samba-tool computer list ... CLIENT01$ ...
-
выполните вход на машину под учетной записью доменного пользователя
user01.
-