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

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

Ключ

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

 

Оглавление


Информация
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

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

      • На сервере 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

      ...

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

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


      2. Добавить в конец файла /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=";


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

        Последовательность действия для проверки:
         - получить принципал 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.