ActiveDirectory/Login/DC: различия между версиями
Liannnix (обсуждение | вклад) |
Olga kmv (обсуждение | вклад) Нет описания правки |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Настройка аутентификации доменных пользователей на контроллере домена ([[ActiveDirectory/DC|Samba в режиме AD DC]]) | Настройка аутентификации доменных пользователей на контроллере домена ([[ActiveDirectory/DC|Samba в режиме AD DC]]). | ||
{{Note| | {{Note|Настройка аутентификации доменных пользователей на контроллере домена с использованием SSSD не поддерживается.}} | ||
{{Attention|На текущий момент (samba 4. | {{Attention|На текущий момент (samba 4.19.9-alt5, gpupdate 0.12.2-alt1) данный метод не позволяет применять пользовательские групповые политики на контроллере домена, при этом машинные политики применяются успешно.}} | ||
{{Attention| | {{Attention|Для директории /var/lib/samba/sysvol SID'ы домена сопоставляются с UID/GID по особому алгоритму, и изменить этот процесс с помощью настроек невозможно.}} | ||
{{Attention|Winbind не поддерживает аутентификацию с использованием UPN (User Principal Name, например user@domain.alt). Для входа и других операций следует использовать формат DOMAIN\user.}} | |||
<div id="prep"></div> | <div id="prep"></div> | ||
Строка 12: | Строка 12: | ||
* Всё, что поддерживает обычная клиентская машина (в качестве клиента SSSD или WinBind) | * Всё, что поддерживает обычная клиентская машина (в качестве клиента SSSD или WinBind) | ||
В качестве клиента на контроллере домена | В качестве клиента на контроллере домена необходимо использовать Winbind. | ||
== Параметры конфигурации домена == | == Параметры конфигурации домена == | ||
Строка 33: | Строка 32: | ||
|} | |} | ||
== Установка пакетов == | |||
Необходимо установить следующие пакеты: | Необходимо установить следующие пакеты: | ||
* {{pkg|task-auth-ad-winbind}} | * {{pkg|task-auth-ad-winbind}} | ||
Строка 41: | Строка 38: | ||
<source lang="bash"># apt-get install task-auth-ad-winbind gpupdate</source> | <source lang="bash"># apt-get install task-auth-ad-winbind gpupdate</source> | ||
== Изменение файлов конфигурации == | |||
=== krb5.conf === | |||
Необходимо убедиться, что в файле {{path|/etc/krb5.conf}} заданы следующие параметры: | Необходимо убедиться, что в файле {{path|/etc/krb5.conf}} заданы следующие параметры: | ||
* dns_lookup_realm = false | * dns_lookup_realm = false | ||
Строка 62: | Строка 59: | ||
[domain_realm]</source> | [domain_realm]</source> | ||
=== smb.conf === | |||
Необходимо убедиться, что в файле {{path|/etc/samba/smb.conf}} заданы следующие параметры: | Необходимо убедиться, что в файле {{path|/etc/samba/smb.conf}} заданы следующие параметры: | ||
* kerberos method = | * kerberos method = system keytab | ||
Остальное содержимое файла должно соответствовать аналогичному файлу на обычных клиентах домена. Приведённый ниже пример конфигурации актуален при использовании Samba с DNS-бэкендом SAMBA_INTERNAL, ваша конфигурация может отличаться. | |||
Остальное содержимое файла должно соответствовать аналогичному файлу на обычных клиентах домена. | |||
Пример {{path|/etc/samba/smb.conf}}: | Пример {{path|/etc/samba/smb.conf}}: | ||
<source lang="ini">[global] | <source lang="ini">[global] | ||
dns forwarder = 8.8.8.8 | |||
netbios name = DC0 | |||
realm = DOMAIN.ALT | realm = DOMAIN.ALT | ||
workgroup = DOMAIN | workgroup = DOMAIN | ||
kerberos method = system keytab | |||
kerberos method = | |||
server role = active directory domain controller | server role = active directory domain controller | ||
template shell = /bin/bash | template shell = /bin/bash | ||
template homedir = /home/%U | template homedir = /home/%D/%U | ||
wins support = no | wins support = no | ||
Строка 96: | Строка 90: | ||
read only = No</source> | read only = No</source> | ||
=== nsswitch.conf === | |||
Необходимо убедиться, что в файле {{path|/etc/nsswitch.conf}} заданы следующие параметры: | Необходимо убедиться, что в файле {{path|/etc/nsswitch.conf}} заданы следующие параметры: | ||
* passwd: files winbind systemd | * passwd: files winbind systemd | ||
Строка 104: | Строка 98: | ||
<source lang="ini">passwd: files winbind systemd | <source lang="ini">passwd: files winbind systemd | ||
shadow: tcb files winbind | shadow: tcb files winbind | ||
group: files [SUCCESS=merge] winbind role | group: files [SUCCESS=merge] winbind systemd role | ||
gshadow: files | gshadow: files | ||
Строка 119: | Строка 113: | ||
aliases: files</source> | aliases: files</source> | ||
== Настройка аутентификации == | |||
Необходимо переключить PAM-стэк на использование winbind модуля для аутентификации: | Необходимо переключить PAM-стэк на использование winbind модуля для аутентификации: | ||
<source lang="bash"># control system-auth winbind</source> | <source lang="bash"># control system-auth winbind</source> | ||
== Генерация keytab файла == | == Генерация keytab файла == | ||
Необходимо сгенерировать системный keytab файл для машинного аккаунта контроллера домена. Для этого следует выполнить следующую команду: | Необходимо сгенерировать системный keytab файл для машинного аккаунта контроллера домена. Для этого следует выполнить следующую команду: | ||
<source lang="bash"># net ads keytab create</source> | <source lang="bash"># net ads keytab create</source> | ||
Сообщение об ошибке Kerberos является ожидаемым в данной конфигурации и не указывает на неисправность:<source lang="text">kerberos_kinit_password DOMAIN@DOMAIN.ALT failed: Client not found in Kerberos database</source> | |||
Посмотреть результат: | |||
<source lang="bash"># klist -ket</source> | |||
== Сервисы == | == Сервисы == | ||
Необходимо отключить сервис nscd: | Необходимо отключить сервис nscd: | ||
<source lang="bash"># systemctl disable --now nscd</source> | <source lang="bash"># systemctl disable --now nscd</source> | ||
== Роли == | == Роли == | ||
Необходимо указать, какие локальные роли каким группам домена соответствуют. | Необходимо указать, какие локальные роли каким группам домена соответствуют. | ||
Строка 274: | Строка 137: | ||
== Групповые политики == | == Групповые политики == | ||
Для включения поддержки групповых политик необходимо выполнить: | Для включения поддержки групповых политик необходимо выполнить: | ||
<source lang="bash"># gpupdate-setup enable | <source lang="bash"># gpupdate-setup enable </source> | ||
Для применения групповых политик необходимо выполнить: | |||
<source lang="bash"># gpupdate</source> | |||
== SSH == | == SSH == | ||
Следует убедиться, что удалённый доступ по ssh разрешён только Администраторам домена: | Следует убедиться, что удалённый доступ по ssh разрешён только Администраторам домена: | ||
Строка 287: | Строка 150: | ||
<source lang="bash"># systemctl restart sshd</source> | <source lang="bash"># systemctl restart sshd</source> | ||
{{Note|Данные настройки можно применить с помощью механизма групповых политик '''control'''}} | {{Note|Данные настройки можно применить с помощью механизма групповых политик '''control'''}} | ||
==Проверка результатов присоединения== | |||
Для проверки возможности поиска доменных пользователей отобразить сведения о пользователе AD (ivanov — пользователь в домене):<source lang="bash"># getent passwd ivanov | |||
ivanov:*:1187401105:1187400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash</source> |
Версия от 15:45, 10 апреля 2025
Настройка аутентификации доменных пользователей на контроллере домена (Samba в режиме AD DC).
Описание
Контроллер домена в рамках доменной инфраструктуры является, в том числе, ещё одной машиной и имеет соответствующий машинный аккаунт. После применения настроек, описанных ниже, машина с контроллером домена сможет выполнять, в том числе, и функции обычного члена домена, такие как:
- Аутентификация доменными пользователями (в том числе по ssh)
- Применение групповых политик
- Всё, что поддерживает обычная клиентская машина (в качестве клиента SSSD или WinBind)
В качестве клиента на контроллере домена необходимо использовать Winbind.
Параметры конфигурации домена
В данной статье в качестве примера используются следующие параметры конфигурации доменной инфраструктуры:
Параметр | Значение |
---|---|
Имя домена | DOMAIN.ALT |
Рабочая группа | DOMAIN |
Имя компьютера в Netbios | DC0 |
Имя пользователя-администратора | Administrator |
Пароль администратора | Pa$$word |
Установка пакетов
Необходимо установить следующие пакеты:
- task-auth-ad-winbind
- gpupdate
# apt-get install task-auth-ad-winbind gpupdate
Изменение файлов конфигурации
krb5.conf
Необходимо убедиться, что в файле /etc/krb5.conf заданы следующие параметры:
- dns_lookup_realm = false
- default_realm = DOMAIN.ALT
Пример /etc/krb5.conf:
[logging]
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = DOMAIN.ALT
[realms]
[domain_realm]
smb.conf
Необходимо убедиться, что в файле /etc/samba/smb.conf заданы следующие параметры:
- kerberos method = system keytab
Остальное содержимое файла должно соответствовать аналогичному файлу на обычных клиентах домена. Приведённый ниже пример конфигурации актуален при использовании Samba с DNS-бэкендом SAMBA_INTERNAL, ваша конфигурация может отличаться.
Пример /etc/samba/smb.conf:
[global]
dns forwarder = 8.8.8.8
netbios name = DC0
realm = DOMAIN.ALT
workgroup = DOMAIN
kerberos method = system keytab
server role = active directory domain controller
template shell = /bin/bash
template homedir = /home/%D/%U
wins support = no
winbind use default domain = yes
winbind enum users = no
winbind enum groups = no
winbind refresh tickets = yes
winbind offline logon = yes
[netlogon]
path = /var/lib/samba/sysvol/domain/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
nsswitch.conf
Необходимо убедиться, что в файле /etc/nsswitch.conf заданы следующие параметры:
- passwd: files winbind systemd
- shadow: tcb files winbind
- group: files [SUCCESS=merge] winbind role systemd
Пример /etc/nsswitch.conf:
passwd: files winbind systemd
shadow: tcb files winbind
group: files [SUCCESS=merge] winbind systemd role
gshadow: files
hosts: files myhostname dns
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
automount: files
aliases: files
Настройка аутентификации
Необходимо переключить PAM-стэк на использование winbind модуля для аутентификации:
# control system-auth winbind
Генерация keytab файла
Необходимо сгенерировать системный keytab файл для машинного аккаунта контроллера домена. Для этого следует выполнить следующую команду:
# net ads keytab create
Сообщение об ошибке Kerberos является ожидаемым в данной конфигурации и не указывает на неисправность:
kerberos_kinit_password DOMAIN@DOMAIN.ALT failed: Client not found in Kerberos database
Посмотреть результат:
# klist -ket
Сервисы
Необходимо отключить сервис nscd:
# systemctl disable --now nscd
Роли
Необходимо указать, какие локальные роли каким группам домена соответствуют.
Обычные пользователи домена (Domain Users) соответствуют локальной роли users:
# roleadd 'domain users' users
Администраторы домена (Domain Admins) соответствуют локальной роли localadmins:
# roleadd 'domain admins' localadmins
Групповые политики
Для включения поддержки групповых политик необходимо выполнить:
# gpupdate-setup enable
Для применения групповых политик необходимо выполнить:
# gpupdate
SSH
Следует убедиться, что удалённый доступ по ssh разрешён только Администраторам домена:
# control sshd-allow-groups enabled
# control sshd-allow-groups-list remote
При необходимости можно разрешить аутентификацию по Kerberos билетам:
# control sshd-gssapi-auth enabled
В заключении, необходимо перезапустить сервис sshd:
# systemctl restart sshd
Проверка результатов присоединения
Для проверки возможности поиска доменных пользователей отобразить сведения о пользователе AD (ivanov — пользователь в домене):
# getent passwd ivanov
ivanov:*:1187401105:1187400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash