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

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

Ключ

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

 

Оглавление


Информация
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»), несмотря на то, что по умолчанию там «нет».

...

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

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

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

  • На сервере FreeIPA:

...

  • Command
    ipa dnsforwardzone-add

...

  • <имя_домена_Windows_AD> --forwarder=

...

  • <IP-адрес_сервера_AD> --forward-policy=only


  • На сервере Windows AD:

    Command

    dnscmd 127.0.0.1 /ZoneAdd <имя_домена_FreeIPA> /Forwarder <IP-адрес_сервера_FreeIPA>


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

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

    Command
    dig dnskey windomain.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 два последних полученных ключа и привести их в корректный формат по аналогии с уже имеющимися там ключами: в полученных ключах заменить пробел на перенос на новую строку. Сам ключ должен быть заключен в двойные кавычки и завершен точкой с запятой. Пример:    

...

  1. Блок кода
    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=";


  2. После внесение изменений перезапустить службу 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

...


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

    Предупреждение

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

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

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

    Command

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

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

    Command

    sudo kinit
    sudo

...

  • smbclient -k -L ipaserver.ipadomain.ipa


Проверки на сервере Windows AD (команды выполняются в PowerShell):

Command

Resolve-DnsName -Name _ldap._tcp.ipadomain.ru -Type any
Resolve-DnsName -Name _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.ipadomain.ru -Type any

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

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

...

Устанавливаем одностороннее доверительное отношение

...

, т.е. одностороннее доверие к Active Directory, при котором:

  • область FreeIPA доверяет лесу доменов Active Directory,

...

  • используя механизм доверительных отношений между деревьями доменов AD

...

  • ;

...

  • дерево доменов AD не доверяет области FreeIPA

...

  • ;

...

  • пользователи дерева доменов AD получают доступ к ресурсам области FreeIPA.

Команда установления доверительных отношений должна выполняться на сервере (сервере-реплике)

...

FreeIPA из сессии локального или доменного администратора (при включенном МКЦ - администратора с высоким уровнем целостности) с использованием sudo (см. выше пример проверки доступа к samba). Пример команды:

Command
sudo

...

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

...

"
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.