В настоящее время многие компании рассматривают возможность миграции на инфраструктуру Linux и рассматривают возможность использования службы каталогов с открытым исходным кодом FreeIPA или более функциональных решений на ее основе, таких как ALD Pro, вместо Microsoft AD DS. Но какими бы амбициозными ни были планы миграции, одновременный перенос всех служб и заданий на Linux может оказаться непростой задачей даже для очень сильных команд. Поэтому ИТ-директора очень внимательно изучают возможности развертывания гибридной среды, и одним из ключевых инструментов такого развертывания является механизм доверия.

В этой статье мы объясним наиболее фундаментальные аспекты того, как работают доверительные отношения FreeIPA — AD DS, объясним, зачем вам нужен модуль глобального каталога в ALD Pro, и поделимся некоторыми передовыми практиками, которые помогут вам, если ваша инфраструктура все еще использует ванильный FreeIPA. система.

Отношения доверия позволяют пользователям в одном домене прозрачно аутентифицироваться с использованием протокола Kerberos при доступе к ресурсам в другом домене. Например, вы можете разрешить пользователям домена AD DS входить в операционную систему компьютеров под управлением Astra Linux из домена ALD Pro или, наоборот, разрешить пользователям ALD Pro входить с компьютеров Astra Linux в общие файловые ресурсы, расположенные в домене AD. Домен DS, см. ниже рис.1.

Рис. 1 Диаграмма доверия ALD Pro — AD DS

Механизм доверия реализован в протоколе аутентификации Kerberos V5, и его основой является концепция доверия. Например, когда вы входите на компьютер домена, он не имеет прямого доступа к вашим учетным данным, поэтому он не может пройти аутентификацию и должен доверять билету службы, выданному контроллером домена. Основой доверия является то, что билет зашифрован паролем учетной записи компьютера, который известен только контроллерам домена и самому компьютеру. На стороне контроллера пароль хранится в каталоге LDAP (атрибут krbPrincipalKey учетной записи хоста), а на стороне компьютера в обычном файле на диске (см. klist -k /etc/krb5.keytab).

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

Служба каталогов ALD Pro основана на продукте с открытым исходным кодом FreeIPA, в котором в версии 3.0 реализована поддержка доверия AD DS. Доверительные отношения могут устанавливаться как между лесами, где FreeIPA выступает как лес с доменом (Forest Trust), так и между конкретными доменами (External Trust), что в некоторых случаях может быть предпочтительнее, например, для уменьшения количества рекурсивных обращений . запрашивает междоменные билеты.

ЧИТАТЬ   Почти половина россиян оценивают состояние соцобеспечения удовлетворительно

Доверительные отношения с AD DS устанавливаются на стороне FreeIPA с помощью команды ipa trust-add:

# ipa -d -v trust-add --type=ad win.company.local --admin administrator --password --two-way=true

win.company.local — это полное доменное имя домена AD DS, администратор — это имя учетной записи администратора домена, а значение двунаправленного ключа указывает, что доверительные отношения должны быть двунаправленными. При установлении отношений рекомендуется указать ключ —password и передать скрипту пароль администратора домена AD DS, так как в этом случае все настройки будут выполняться автоматически. Но если указанные учетные данные вам недоступны, вы можете попросить администратора домена AD DS создать доверие на их стороне и предоставить вам пароль доверия. В этом случае при установлении отношений вам нужно будет использовать ключ —trust-secret.

Для того, чтобы пользователь AD DS мог пройти не только аутентификацию, но и авторизацию, т.е. получить права доступа на основании своего членства в группах, внутри kerberos-тикетов передаются идентификаторы их групп, упакованные в так называемый Privilege Attribute Certificate (PAC). ). Плагин ipa-kdb отвечает за обработку PAC на стороне FreeIPA, но поскольку в среде Linux используются не SID, а POSIX ID, то при обработке сертификата необходимо сопоставить ID одним из двух доступных способов.

Если компонент Identity Management for UNIX (IDMU) установлен в AD DS, атрибуты uidnumber/gidnumber будут установлены на объектах и ​​вы сможете их использовать, для чего необходимо указать параметр ipa-ad-trust-posix во время проверки. установление доверительных отношений. Если указанный параметр не задан, то по умолчанию идентификаторы будут рассчитываться арифметически: на стороне FreeIPA каждому доверенному домену AD DS будет присвоен выделенный диапазон идентификаторов POSIX. Этот диапазон составляет 200 000 номеров, поэтому для больших доменов AD DS его необходимо будет расширить вручную.

Вы можете проверить существующие доверительные отношения и их диапазоны с помощью команд ipa trust-find и ipa idrange-find. Информацию о группах, к которым принадлежит пользователь доверенного домена, и имеющихся у него идентификаторах можно получить с помощью команды id:

# id [email protected]
uid=1633600500([email protected]) gid=1633600500([email protected])группы=1633600500([email protected]),1633600520(group policy creator [email protected]),1633600519(enterprise [email protected]),1633600512(domain [email protected]),1633600518(schema [email protected]),1633600513(domain [email protected])

Для облегчения управления правами доступа в FreeIPA можно использовать так называемые внешние группы (external groups), в список участников которых могут входить субъекты из доверенного домена. Однако у этих групп нет идентификаторов POSIX, поэтому вам потребуется включить их в обычные группы POSIX, чтобы предоставить доступ к файловым ресурсам. Например, в следующем примере показано, как администраторы домена AD DS могут быть включены в группу администраторов домена ALD Pro:

# ipa group-add 'ad_admins_external' --external --desc="Группа администраторов AD DS"
# ipa -n group-add-member 'ad_admins_external' --external 'WIN.COMPANY.LOCAL\Domain Admins'
# ipa group-add-member admins --groups="ad_admins_external"
# id [email protected]
… 959800000(admins) … 

Теперь рассмотрим вопрос разрешения в обратном направлении. Для того чтобы пользователи ALD Pro могли проходить не только аутентификацию, но и авторизацию в домене AD DS, объектам в домене FreeIPA назначаются учетные данные безопасности в формате MS Windows, за которые отвечает плагин sidgen. В ALD Pro этот механизм включен по умолчанию, поэтому все пользователи и группы POSIX в каталоге LDAP имеют значение хранимого атрибута ipaNTSecurityIdentifier. Вы можете просмотреть SID любого объекта, например, с помощью команды wbinfo (информация о winbind), где ALD — доменное имя NetBIOS ald.company.local, admin — желаемый логин пользователя:

# wbinfo -n 'ALD\admin'
S-1-5-21-1724891028-2898148248-1736958143-500 SID_USER (1)

В конце SID мы видим, что относительный RID пользователя-админа домена ALD Pro равен 500, что по соглашению MS соответствует ID аккаунта Администратора. Вы можете добавить, что идентификатор группы администраторов равен 512, что является группой администраторов домена, а для обычных пользователей и групп значения относительных идентификаторов начинаются с 1000 и рассчитываются математически на основе их значения идентификаторов POSIX.

ЧИТАТЬ   Обзор Fast X: как взорвать машину в космосе? Два слова: Джейсон Момоа.

Идентификаторы безопасности группы пользователя объединяются в PAC и передаются в междоменном билете, за который отвечает подключаемый модуль ipa-kdb. Более того, эта информация уже обрабатывается контроллерами домена AD DS и включается в сервисные билеты, после чего становится доступной для целевых систем. При желании вы можете проверить сертификат PAC с помощью малоизвестной утилиты net ads kerberos pac из сундука с сокровищами Samba. Будьте уверены, на стороне MS для сервисов доступен полный список SID, за исключением идентификаторов, подпадающих под правила фильтрации из соображений безопасности.

И вот мы подошли к самой интересной части статьи. Так почему же так часто говорят, что утверждения FreeIPA-AD DS не работают в двух направлениях, если билеты, предоставляемые пользователям FreeIPA, содержат требуемый список идентификаторов?

Ответ заключается в том, что при попытке назначить доступ с помощью стандартных оснасток MS Windows вы обнаружите, что поиск объектов в трастовом домене FreeIPA не работает, т.е. вы не можете выбрать пользователя из списка, а значит, не можете предоставить ему авторизацию доступ. Проблема возникает по той простой причине, что поиск осуществляется путем обращения к глобальному каталогу по порту 3268, а у FreeIPA этого сервиса просто нет. Но мы предлагаем вам несколько обходных путей, которые сработают, даже если вы являетесь обычным пользователем FreeIPA.

Во-первых, вы можете назначать разрешения непосредственно на SID объекта. Если речь идет о файлообменнике, то вам поможет команда ICACLS (Integrity Control Access Control List):

PS C:\Users\Administrator> ICACLS "C:\Common" /grant:r "*S-1-5-21-896088827-1417987318-1335504985-500 " /T

После добавления объектов в список доступа в стандартном окне безопасности они будут отображаться даже не по своим SID, а по своим обычным именам, так как в процедуре разрешения имен не используется глобальный каталог, в этом случае обычный вызов RPC сделан поверх транспорта SMB. Но этот метод полностью зависит от целевых системных ресурсов, необходимых для предоставления доступа пользователю. Поэтому предлагаем вам другой, более универсальный способ.

ЧИТАТЬ   Президент Украины заявил, что на войне погибло не менее 500 детей – Nachedeu

Вы можете создать группу безопасности в домене AD DS с областью действия «Локальный домен» и включить в нее пользователей и группы из доверенного домена FreeIPA:

# SID группы или пользователя из ALD Pro
$ALDProSID = 'S-1-5-21-1784717832-1844364183-3442789864-1013'

# Группа из леса Active Directory с областью «Локальный домен» (Domain Local)
$ADDSDomainLocalGroupDN = 'CN=ALD-Group,CN=Users,DC=win,DC=company,DC=local'

# Включение объекта из ALD Pro в состав участников группы AD DS
$group = New-Object $group = New-Object DirectoryServices.DirectoryEntry("LDAP://$($ADDSDomainLocalGroupDN)")
[void]$group.member.Add("<SID=$ALDProSID>")
group.CommitChanges() 

Вышеупомянутые решения могут стать спасением для многих администраторов, но они по-прежнему крайне неудобны в использовании, поэтому команда разработчиков нашего продукта ALD Pro приложила большие усилия, чтобы внедрить глобальный модуль каталога в службу каталогов Astra Linux FeeIPA, который позволяет вам использовать родные инструменты MS Windows привычным для вас способом, см. 2

Рис. 2 Иллюстрация модуля глобального каталога в ALD Pro

Рис. 2 Иллюстрация модуля глобального каталога в ALD Pro

Модуль «Глобальный каталог» уже находится в стадии бета-тестирования и будет доступен в продукте этим летом! В версии с глобальным каталогом появится модуль синхронизации, который закроет еще один большой блок задач гибридного развертывания, о котором мы постараемся рассказать в одной из наших следующих статей.

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

Source

От admin