Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Исходные настройки
Предполагается, что к началу настройки доверительных отношений выполнены следующие условия:
- Имеется домен Active Directory (AD), с настроенным и работающим контроллером домена:
- С условным названием домена windomain.ad;
- Соответственно, с именем NETBIOS WINDOMAIN;
- Имеется выделенный сервер контроллера домена:
- С условным названием winserver;
- С фиксированным IP-адресом (далее <IP-адрес_контроллера_AD>);
Под управленим Windows Server 2008 R2 или другого сервера Windows, поддерживающего роль контроллера домена;
Примечание В данном примере использовался английский вариант сервера.
Если вы используете русский вариант сервера - не забудьте перевести названия групп AD.Администратор сервера AD имеет имя Administrator, и его пароль известен;
Предупреждение Команда ipa trust-add не поддерживает кириллицу в учетной записи администратора AD Информация Если для администратора домена AD создаётся дополнительная учётная запись, то эта запись не просто должна быть добавлена в группу Domain Admins, а эта группа должна быть выбрана основной, иначе может возникать ошибка доступа CIFS 3221225506.
- Имеется сервер FreeIPA с настроенным доменом FreeIPA:
- С условным названием ipadomain.ipa;
- Соответственно, с именем NETBIOS IPADOMAIN;
- Имеется выделенный сервер FreeIPA:
- С операционной системой Astra Linux;
- С условным названием ipaserver;
- С фиксированным IP-адресом (далее <IP-адрес_сервера_FreeIPA>);
- Администратор сервера FreeIPA имеет имя admin и его пароль известен;
Серверы winserver и ipaserver находятся в одной сети, и на всех серверах успешно выполняются команды
Command ping <IP-адрес_сервера_FreeIPA> и
Command ping <IP-адрес_контроллера_AD>
Предупреждение |
---|
При использовании для серверов AD и FreeIPA виртуальных машин выделить каждой виртуальной машине не менее, чем 2 процессора и 2ГБ оперативной памяти. |
Предполагается, что к началу настройки доверительных отношений службы FreeIPA уже установлены и запущены. Если нет, то настройка и запуск выполняются командами:
Command |
---|
sudo apt install astra-freeipa-server sudo astra-freeipa-server -d ipadomain.ipa -o |
Предупреждение |
---|
Перед началом настройки не забудьте убедиться, что часы на компьютерах синхронизированы, и при необходимости, выполните синхронизацию. |
FreeIPA: Включение доверительных отношений
Полномочия администратора
Получаем полномочия администратора домена, и, заодно, проверяем работоспособность служб FreeIPA.
Следующие команды на сервере FreeIPA должны выполняться без ошибок:
Command |
---|
kinit admin id admin getent passwd admin |
Предупреждение |
---|
На маломощной (виртуальной) машине после её перезагрузки может понадобиться до минуты для полного запуска служб FreeIPA и нормального выполнения вышеуказанных команд. |
Включение службы доверительных отношений
Предупреждение |
---|
После установки службы доверительных отношений чтение конфигурации samba на сервере будет доступно только суперпользователю. Обращения к Samba от имени простых пользователей, выполняемые на сервере, работать не будут. |
Включаем службу доверительных отношений во FreeIPA командой
Command |
---|
sudo ipa-adtrust-install |
На все вопросы ответить «да» («y»), несмотря на то, что по умолчанию там «нет».
Ввести пароль администратора домена IPA.
Проверить правильность автоматического определения доменного имени, и нажать Enter.
Еще раз ответить «y».
Настройка и проверка перенаправления DNS
Добавление зоны перенаправления осуществляется командой:
Command |
---|
ipa dnsforwardzone-add windomain.ad --forwarder=<IP-адрес_контроллера_AD> --forward-policy=only |
Проверки успешного выполнения команды:
Проверка #1, сервер должен быть доступен:
Command |
---|
ping -c 3 winserver.windomain.ad |
Проверка #2, служба должна быть доступна:
Command |
---|
dig SRV _ldap._tcp.ipadomain.ipa |
Проверка #3, служба должна быть доступна:
Command |
---|
dig SRV _ldap._tcp.windomain.ad |
Проверка #4, работоспособность службы samba
Предупреждение |
---|
Использование ключа -k налагает обязательное условие: При этом на других (клиентских) компьютерах привилегии суперпользователя для выполнения обращений к samba не требуются. |
Последовательность действия для проверки:
- Получить принципал admin (администратора домена) для суперпользователя;
- Войти в сессию пользователя admin, что позволит использовать принципал admin;
- Выполнить команду с правами суперпользователя, чтобы получить доступ к конфигурации samba.
Последовательность команд для сессии локального администратора (команды должны выполнятся в единой сессии):
Command |
---|
sudo login admin |
Последовательность команд для сессии доменного администратора (admin):
Command |
---|
sudo kinit |
Далее аналогично (из login-сессии локального администратора или из сессии администратора домена с использованием sudo) должна выполняться команда установления доверительных отношений.
Установление доверительных отношений между доменами
Устанавливаем одностороннее доверительное отношение, т.е. одностороннее доверие к Active Directory, при котором:
- Область FreeIPA доверяет лесу доменов Active Directory, используя механизм доверительных отношений между деревьями доменов AD;
- Дерево доменов AD не доверяет области FreeIPA;
- Пользователи дерева доменов AD получают доступ к ресурсам области FreeIPA.
Команда установления доверительных отношений должна выполняться на сервере (сервере-реплике) FreeIPA либо из сессии локального администратора, либо из сессии доменного администратора с использованием sudo (см. выше пример проверки доступа к samba):
Command |
---|
ipa trust-add --type=ad windomain.ad --admin Administrator --password |
Получение списка доверенных доменов:
Command |
---|
ipa trust-fetch-domains windomain.ad |
Проверка, домен должен быть найден:
Command |
---|
ipa trustdomain-find windomain.ad |
Добавление групп пользователей
Для англоязычного варианта сервера:
Command ipa group-add --desc='ad domain external map' ad_admins_external --external
ipa group-add --desc='ad domain users' ad_admins
ipa group-add-member ad_admins_external --external 'windomain.ad\Domain Admins'
(на запросы «member_user» и «member_group» просто нажать «ввод»)
ipa group-add-member ad_admins --groups ad_admins_externalДля русскоязычного варианта сервера:
Информация ipa group-add --desc='ad domain external map' ad_admins_external --external
ipa group-add --desc='ad domain users' ad_admins
ipa group-add-member ad_admins_external --external 'windomain.ad\Администраторы домена'
(на запросы «member_user» и «member_group» просто нажать «ввод»)
ipa group-add-member ad_admins --groups ad_admins_external
Получение идентификатора безопасности пользователей AD
на сервере AD командой из оболочки CMD (но не из оболочки PowerShell!):
Command |
---|
c:\> wmic useraccount get name,sid |
на сервере IPA:
Command |
---|
ipa group-show ad_admins_external --raw |
Добавление разделяемого каталога
Добавление разделяемого каталога /share_dir, доступного для пользователей AD под именем «share_name»:
Command |
---|
sudo mkdir /share_dir sudo net conf setparm 'share_name' 'comment' 'Trust test share' sudo net conf setparm 'share_name' 'read only' 'no' sudo net conf setparm 'share_name' 'valid users' "ad_admins_sid" sudo net conf setparm 'share_name' 'path' '/share_dir' |
Проверить, что ресурс добавлен, можно командой:
Command |
---|
smbclient -k -L ipaserver.ipadomain.ipa |
После добавления можно проверить, что ресурс доступен с сервера AD winserver.
Авторизация пользователей AD
После установления доверительных отношений между доменами пользователи AD получают возможность авторизоваться и входить на рабочие станции в домене под управлением FreeIPA, пользуясь своими идентификаторами, присвоенными в домене AD.
При этом, идентификатор пользователя должен быть указан в виде <идентификатор_пользователя_AD>@<имя_домена>
, где имя домена должно быть указано строчными буквами, например, winuser@windomain.ad
.
С учетом того, что пользователи Windows привыкли к тому, что Windows во многих случаях не различает строчные и заглавные буквы, можно выполнить дополнительные настройки рабочей станции, позволяющие указывать имя домена AD также и заглавными буквами. Для этого на рабочей станции, на которой будет осуществляться авторизация, добавить в файл /etc/krb5.conf в секцию [realms] два параметра:
Информация |
---|
[realms] auth_to_local = RULE:[1:$1@$0](^.*@WINDOMAIN.AD$)s/@WINDOMAIN.AD/@windomain.ad/ ..... |
Далее, можно будет входить на эту рабочую станцию с указанием идентификатора пользователя в виде <идентификатор_пользователя_AD>@<ИМЯ_ДОМЕНА_AD>
,
где <ИМЯ_ДОМЕНА_AD>
может быть написано либо строчными, либо заглавными буквами, например, winuser@WINDOMAIN.AD
.