Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

 

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux



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

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

  • Имеется домен Active Directory (AD), с настроенным и работающим контроллером домена:
    • С условным именем домена windomain.ad (имена доменов FreeIPA и Windows 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>


    Предупреждение
    Для корректного взаимодействия контроллеров доменов FreeIPA и Windows AD они должны находиться в одной широковещательной зоне сети (broadcast zone). Нарушение этого требования может вести к задержкам в работе клиентов доменов.


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


Предполагается, что к началу настройки доверительных отношений службы FreeIPA уже установлены и запущены, настройка FreeIPA выполнялась по инструкции Контроллер ЕПП FreeIPA в Astra Linux с помощью инструментов fly-admin-freeipa-server или astra-freeipa-server. Если настройка FreeIPA выполнялась иным способом, то необходимо убедиться, что установлен пакет freeipa-server-trust-ad (установить его).

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

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

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

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

Command
kinit admin
id admin
getent passwd admin


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

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

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


Информация
Если команда ipa-adtrust-install недоступна, то необходимо установить пакет freeipa-server-trust-ad.

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

Command

sudo ipa-adtrust-install

После запуска команды:

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

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

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

Command
ipa dnsforwardzone-add windomain.ad --forwarder=<IP-адрес_сервера_AD> --forward-policy=only

При выполнении команды проверяется корректность работы добавляемого сервера перенаправления. При этом если на сервере FreeIPA включена проверка подписей DNS (включена по умолчанию в Astra Linux Special Edition x.7), а зона DNS в Windows AD не подписана, будет выдано предупреждение и перенаправление имен работать не будет. В этом случае:

  1. На сервере Windows AD подписать зону DNS, для чего открыть консоль AD DNS, выбрать необходимую зону нажатием правой кнопки мыши и выбрать DNSSEC - Подписать зону - Использовать рекомендуемые параметры.
  2. На сервере FreeIPA получить от сервера Windows AD параметры ключей:

    Command
    dig dnskey  windomainwindomain.ad. @<IP-адрес_Windows_AD> +noall +answer

    Пример ответа:

    Блок кода
    ; <<>> DiG 9.11.3-1ubuntu1.11-Debian <<>> dnskey srv.rbt. @10.7.21.21 +noall +answer
    ;; global options: +cmd  
    windomain.ad.               3600    IN      DNSKEY  256 3 8 AwEAAcaRV/UHxAmt2ESvWxGHgoIgtEasYABj5i4kJfcs+Tiuy+jbTgKf kZx8LDyTBAIEC9ZX8en1R1ZNzUS1T1xZKGJ2IHqJU2BobiIQ0qFVSDLL 0+GbOCLP7npDB0OPhqgOcaF8j3m2+TtP2ssqaGbPrT5Ya+nkRwr0G6ik e3m6uTRD  
    windomain.ad.               3600    IN      DNSKEY  256 3 8 AwEAAZIBjJ7fkvuDTvuPBNA9K8glJhp1Kf8SJ2Ppchq2bpE7W/6hVxqP zdnrpjaaPYSxuIMQFqIRz2QtkJ1VHkLdnzOm6Tpa4Wsr+dX5XUUTkV72 k4Hl+QVKPCGpthqIb8j60kYa7PXRKMDv4Jw+U96YsQbA621/M10/8UZB bD3iJ0x9  
    windomain.ad.               3600    IN      DNSKEY  257 3 8 AwEAAa+KDuNaIQ5ChuMYDIS4Y6GQtXiQJ1qtU7+CDwn2zgVPyoqi1DLc l8IIWyGRDsGU2NUXnem704dwghGpUQ9XbzJCKzueC/dQSUS5mdZjhvrm +/knsCizku7/0x5B9U3Kj911pAe5CPUY7r1dKQtYYINiAmnJprIuUbBs jogC4IYTA6mMmEW2cvOmuNfpAB4IxnFZLmXA4lE0DR3JCVLsnxQ20Gq1 TErWSd7st458RKPp4mEt1mU2JYWltJYA82lp0WLqXOO1B/ievLWESnvH oyGclg0lzm4LHc9Opd3zNRQYea4IFN2WHXIkOThqlA291Gw4gw85eBhs xdNpd2dDHts=  
    windomain.ad.               3600    IN      DNSKEY  257 3 8 AwEAAb6hMq89Tf4Cf5ND6R/R8FYcbHd5uyxUo2pOlvLkw8VWL1/Ix8Xp abymJ6a8lMKU39CKfp/lxMxWbPicOpT72vnoDhfbck9O17EwI40PmMI3 51acR5EtdQwtwz44aNmO7QlXSdYJLYrvEq76M3jn2O1wFgb+oSQZFA2U 9b9/ssc8uBzLuCMC7DbHFU7V4hb36LlheqnNecYti1Og5MckEfU01MCg SwoNBd1pkyi+S5hszIaSI5Q28DVBA/lDdF7zRIFlvs7DdAwPdrODhx/o QjN40cQZj+DAVeR/vZnGUK+lBQ+gXTjOqfECJKyVOuljzL+IwBb74xzO 9c1Nl0/Uz+E=


  3. Добавить в конец файла /etc/bind/bind.keys перед закрытием секции managed-keys два последних полученных ключа и привести их в корректный формат по аналогии с уже имеющимися там ключами: в полученных ключах заменить пробел на перенос на новую строку. Сам ключ должен быть заключен в двойные кавычки и завершен точкой с запятой. Пример:    

    Блок кода
    windomain.ad. initial-key 257 3 8 "AwEAAa+KDuNaIQ5ChuMYDIS4Y6GQtXiQJ1qtU7+CDwn2zgVPyoqi1DLc
            l8IIWyGRDsGU2NUXnem704dwghGpUQ9XbzJCKzueC/dQSUS5mdZjhvrm
            +/knsCizku7/0x5B9U3Kj911pAe5CPUY7r1dKQtYYINiAmnJprIuUbBs
            jogC4IYTA6mMmEW2cvOmuNfpAB4IxnFZLmXA4lE0DR3JCVLsnxQ20Gq1
            TErWSd7st458RKPp4mEt1mU2JYWltJYA82lp0WLqXOO1B/ievLWESnvH
            oyGclg0lzm4LHc9Opd3zNRQYea4IFN2WHXIkOThqlA291Gw4gw85eBhs
            xdNpd2dDHts=";
    windomwin.ad. initial-key 257 3 8 "AwEAAb6hMq89Tf4Cf5ND6R/R8FYcbHd5uyxUo2pOlvLkw8VWL1/Ix8Xp
            abymJ6a8lMKU39CKfp/lxMxWbPicOpT72vnoDhfbck9O17EwI40PmMI3
            51acR5EtdQwtwz44aNmO7QlXSdYJLYrvEq76M3jn2O1wFgb+oSQZFA2U
            9b9/ssc8uBzLuCMC7DbHFU7V4hb36LlheqnNecYti1Og5MckEfU01MCg
            SwoNBd1pkyi+S5hszIaSI5Q28DVBA/lDdF7zRIFlvs7DdAwPdrODhx/o
            QjN40cQZj+DAVeR/vZnGUK+lBQ+gXTjOqfECJKyVOuljzL+IwBb74xzO
            9c1Nl0/Uz+E=";


  4. После внесение изменений перезапустить службу bind9-pkcs11:

    Command
    sudo systemctl restart bind9-pkcs11


Проверки успешного выполнения настройки перенаправления. Выполняются на сервере FreeIPA:

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

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

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

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

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

Command

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

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

Command

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

Далее аналогично (из login-сессии локального администратора или из сессии администратора домена с использованием sudo) должна выполняться команда установления доверительных отношений.

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

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

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

Команда установления доверительных отношений должна выполняться на сервере (сервере-реплике) FreeIPA либо из сессии локального администратора, либо из сессии доменного администратора с использованием sudo (см. выше пример проверки доступа к samba):

Command
ipa trust-add --type=ad <имя_домена_Windows_AD> --admin <имя_администратора_домена_Windows_AD>

в ходе выполнения команды потребуется ввести пароль администратора домена Windows AD.

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

Command
ipa trust-fetch-domains <имя_домена_Windows_AD>

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

Command
ipa trustdomain-find <имя_домена_Windows_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]
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.