Содержание

Skip to end of metadata
Go to start of metadata

Исходные настройки

Предполагается, что к началу настройки доверительных отношений выполнены следующие условия:

  • Имеется домен 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:
      • С операционной системой ОС ОН Орёл;
      • С условным названием ipaserver;
      • С фиксированным IP-адресом (далее <IP-адрес_сервера_FreeIPA>);
      • Администратор сервера FreeIPA имеет имя admin и его пароль известен;
  • Серверы winserver и ipaserver находятся в одной сети, и на всех серверах успешно выполняются команды

    ping <IP-адрес_сервера_FreeIPA>

    и

    ping <IP-адрес_контроллера_AD>

При использовании для серверов AD и FreeIPA виртуальных машин выделить каждой виртуальной машине не менее, чем 2 процессора и 2ГБ оперативной памяти.


Предполагается, что к началу настройки доверительных отношений службы FreeIPA уже установлены и запущены. Если нет, то настройка и запуск выполняются командами:

sudo apt-get install astra-freeipa-server
sudo astra-freeipa-server -d ipadomain.ipa -o

Перед началом настройки не забудьте убедиться, что часы на компьютерах синхронизированы, и при необходимости, выполните синхронизацию

FreeIPA: Включение доверительных отношений 

Полномочия администратора

Получаем полномочия администратора домена, и, заодно, проверяем работопособность служб FreeIPA.
Следующие команды на сервере FreeIPA должны выполняться без ошибок:

kinit admin
id admin
getent passwd admin

На маломощной (виртуальной) машине после её перезагрузки может понадобиться до минуты для полного запуска служб FreeIPA и нормального выполнения вышеуказанных команд.

Включение службы доверительных отношений

После установки службы доверительных отношений чтение конфигурации samba на сервере будет доступно только суперользователю. Обращения к Samba от имени простых пользователей, выполняемые на сервере, работать не будут.

Включаем службу доверительных отношений во FreeIPA командой

sudo ipa-adtrust-install

На все вопросы ответить «да» («y»), несмотря на то, что по умолчанию там «нет».
Ввести пароль администратора домена IPA.
Проверить правильность автоматического определения доменного имени, и нажать Enter.
Еще раз ответить «y».

Настройка и проверка перенаправления DNS

Добавление зоны перенаправления осуществляется командой:

ipa dnsforwardzone-add windomain.ad --forwarder= <IP-адрес_контроллера_AD> --forward-policy=only

Проверки успешного выполнения команды:

Проверка #1, сервер должен быть доступен:

ping -c 3 winserver.windomain.ad

Проверка #2, служба должна быть доступна:

dig SRV _ldap._tcp.ipadomain.ipa

Проверка #3, служба должна быть доступна:

dig SRV _ldap._tcp.windomain.ad

Проверка #4, работоспособность службы samba

Использование ключа -k налагает обязательное условие:
команда должна выполняться из сессии (от имени) пользователя, на которого был полчен билет Kerberos. При этом, как указано выше, обращения к samba от имени непривилегированных пользователей не работают.
Например, если из сессии локального пользователя localadmin получить билет kinit admin@ipadomain.ipa, а потом попробовать выполнить команду smbclient с опцией -k, результатом будет ошибка доступа, так как localadmin не имеет билета Kerberos.
Если команда выполняется от имени пользователя admin@ipadomain.ipa (доменного администратора) - опять будет ошибка, так как пользовватель admin не является суперпользователем.

При этом на других (клиентских) компьютерах привилегии суперпользователя для выполнения обращений к samba не требуются.

Последовательность действия для проверки:

  1. Получить принципал admin (администратора домена) для суперпользователя;
  2. Войти в сессию пользователя admin, что позволит использовать принципал admin;
  3. Выполнить команду с правами суперпользователя, чтобы получить доступ к конфигурации samba.

Последовательность команд для сессии локального администратора:

sudo login admin
sudo kinit
sudo smbclient -k -L ipaserver.ipadomain.ipa
exit

Последовательность команд для сессии доменного администратора (admin):

sudo kinit
sudo smbclient -k -L ipaserver.ipadomain.ipa

Установление доверительных отношений между доменами

Устанавливаем одностороннее доверительное отношение, т.е. одностороннее доверие к Active Directory, при котором:

  • Область FreeIPA доверяет лесу доменов Active Directory, используя механизм доверительных отношений между деревьями доменов AD;
  • Дерево доменов AD не доверяет области FreeIPA;
  • Пользователи дерева доменов AD получают доступ к ресурсам области FreeIPA.

ipa trust-add --type=ad windomain.ad --admin Administrator --password

Получение списка доверенных доменов:

ipa trust-fetch-domains windomain.ad


Проверка, домен должен быть найден:

ipa trustdomain-find windomain.ad

Добавление групп пользователей

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!):

c:\> wmic useraccount get name,sid

на сервере IPA:

ipa group-show ad_admins_external --raw

Добавление разделяемого каталога

Добавление разделяемого каталога /share_dir, доступного для пользователей AD под именем «share_name»:

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'

Проверить, что ресурс добавлен, можно командой:

smbclient -k -L ipaserver.ipadomain.ipa

После добавления можно проверить, что ресурс доступен с сервера AD winserver.

Авторизация пользователей AD

После установления доверительных отношений между доменами пользователи AD получают возможность авторизоваться и входить на рабочие станции в домене под управлением FreeIPA, пользуясь своими идентификаторами, присвоенными в домене AD. 

При этом, идентификатор пользователя должен быть указан в виде <идентификатор_пользователя_AD>@<имя_домена>, где имя домена должно быть указано строчными буквами, например, winuser@windomain.ad.

С учетом того, что пользователи Windows привыкли к тому, что Windows во многих случаях не различает строчные и заглавные буквы, можно выполнить дополнительные настройки рабочей станции,
позволяющие указывать имя домена AD также и заглавными буквами. Для этого на рабочей станции, на которой будет осуществляться авторизация, нужно добавить два параметра в файл /etc/krb5.conf. В секцию [realms]:

[realms]
IPADOMAIN.IPA = {
.....

auth_to_local = RULE:[1:$1@$0](^.*@WINDOMAIN.AD$)s/@WINDOMAIN.AD/@windomain.ad/
auth_to_local = DEFAULT

.....
}


Далее, можно будет входить на эту рабочую станцию с указанием идентификатора пользователя в виде <идентификатор_пользователя_AD>@<ИМЯ_ДОМЕНА_AD>,
где <ИМЯ_ДОМЕНА_AD> может быть написано либо строчными, либо заглавными буквами, например, winuser@WINDOMAIN.AD.




  • No labels