Назад | Перейти на главную страницу

FreeIPA Не удалось установить доверие с Active Directory

Я пытаюсь установить доверительные отношения между FreeIPA и Active Directory.

Подробности об инфраструктуре:

При попытке выполнить следующую команду:

ipa trust-add --type=ad ad.example.net --admin admin --password --server=DC1.ad.example.net

В журналах появляется следующая ошибка.

[Thu May 09 14:32:36.771267 2019] [:error] [pid 26493] ipa: ERROR: When setting forest trust information, got collision info back:
[Thu May 09 14:32:36.771308 2019] [:error] [pid 26493]     lsa_ForestTrustCollisionInfo: struct lsa_ForestTrustCollisionInfo
[Thu May 09 14:32:36.771315 2019] [:error] [pid 26493]         count                    : 0x00000001 (1)
[Thu May 09 14:32:36.771321 2019] [:error] [pid 26493]         entries                  : *
[Thu May 09 14:32:36.771326 2019] [:error] [pid 26493]             entries: ARRAY(1)
[Thu May 09 14:32:36.771332 2019] [:error] [pid 26493]                 entries                  : *
[Thu May 09 14:32:36.771337 2019] [:error] [pid 26493]                     entries: struct lsa_ForestTrustCollisionRecord
[Thu May 09 14:32:36.771343 2019] [:error] [pid 26493]                         index                    : 0x00000000 (0)
[Thu May 09 14:32:36.771349 2019] [:error] [pid 26493]                         type                     : LSA_FOREST_TRUST_COLLISION_TDO (0)
[Thu May 09 14:32:36.771354 2019] [:error] [pid 26493]                         flags                    : 0x00000004 (4)
[Thu May 09 14:32:36.771360 2019] [:error] [pid 26493]                                0: LSA_TLN_DISABLED_NEW
[Thu May 09 14:32:36.771366 2019] [:error] [pid 26493]                                0: LSA_TLN_DISABLED_ADMIN
[Thu May 09 14:32:36.771382 2019] [:error] [pid 26493]                                1: LSA_TLN_DISABLED_CONFLICT
[Thu May 09 14:32:36.771388 2019] [:error] [pid 26493]                                0: LSA_SID_DISABLED_ADMIN
[Thu May 09 14:32:36.771394 2019] [:error] [pid 26493]                                0: LSA_SID_DISABLED_CONFLICT
[Thu May 09 14:32:36.771399 2019] [:error] [pid 26493]                                1: LSA_NB_DISABLED_ADMIN
[Thu May 09 14:32:36.771405 2019] [:error] [pid 26493]                                0: LSA_NB_DISABLED_CONFLICT
[Thu May 09 14:32:36.771410 2019] [:error] [pid 26493]                         name: struct lsa_String
[Thu May 09 14:32:36.771416 2019] [:error] [pid 26493]                             length                   : 0x0018 (24)
[Thu May 09 14:32:36.771422 2019] [:error] [pid 26493]                             size                     : 0x001a (26)
[Thu May 09 14:32:36.771427 2019] [:error] [pid 26493]                             string                   : *
[Thu May 09 14:32:36.771433 2019] [:error] [pid 26493]                                 string                   : 'ad.example.net'
[Thu May 09 14:32:36.771439 2019] [:error] [pid 26493]
[Thu May 09 14:32:36.771535 2019] [:error] [pid 26493] ipa: ERROR: Attempt to solve forest trust topology conflicts
[Thu May 09 14:32:36.778084 2019] [:error] [pid 26493] ipa: ERROR: non-public: NTSTATUSError: (3221225695, 'The specified domain did not exist.')
[Thu May 09 14:32:36.778103 2019] [:error] [pid 26493] Traceback (most recent call last):
[Thu May 09 14:32:36.778109 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/rpcserver.py", line 369, in wsgi_execute
[Thu May 09 14:32:36.778115 2019] [:error] [pid 26493]     result = command(*args, **options)
[Thu May 09 14:32:36.778121 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 450, in __call__
[Thu May 09 14:32:36.778126 2019] [:error] [pid 26493]     return self.__do_call(*args, **options)
[Thu May 09 14:32:36.778132 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 478, in __do_call
[Thu May 09 14:32:36.778138 2019] [:error] [pid 26493]     ret = self.run(*args, **options)
[Thu May 09 14:32:36.778143 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 800, in run
[Thu May 09 14:32:36.778164 2019] [:error] [pid 26493]     return self.execute(*args, **options)
[Thu May 09 14:32:36.778175 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/plugins/trust.py", line 737, in execute
[Thu May 09 14:32:36.778181 2019] [:error] [pid 26493]     result = self.execute_ad(full_join, *keys, **options)
[Thu May 09 14:32:36.778187 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/plugins/trust.py", line 992, in execute_ad
[Thu May 09 14:32:36.778193 2019] [:error] [pid 26493]     trust_type
[Thu May 09 14:32:36.778198 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/dcerpc.py", line 1670, in join_ad_full_credentials
[Thu May 09 14:32:36.778204 2019] [:error] [pid 26493]     trust_type, trust_external)
[Thu May 09 14:32:36.778210 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/dcerpc.py", line 1353, in establish_trust
[Thu May 09 14:32:36.778216 2019] [:error] [pid 26493]     self.update_ftinfo(another_domain)
[Thu May 09 14:32:36.778221 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/dcerpc.py", line 1229, in update_ftinfo
[Thu May 09 14:32:36.778227 2019] [:error] [pid 26493]     self.clear_ftinfo_conflict(another_domain, cinfo)
[Thu May 09 14:32:36.778232 2019] [:error] [pid 26493]   File "/usr/lib/python2.7/site-packages/ipaserver/dcerpc.py", line 1125, in clear_ftinfo_conflict
[Thu May 09 14:32:36.778238 2019] [:error] [pid 26493]     lsa.LSA_FOREST_TRUST_DOMAIN_INFO)
[Thu May 09 14:32:36.778244 2019] [:error] [pid 26493] NTSTATUSError: (3221225695, 'The specified domain did not exist.')
[Thu May 09 14:32:36.778604 2019] [:error] [pid 26493] ipa: INFO: [jsonserver_session] admin@example.com: trust_add/1(u'ad.example.net', trust_type=u'ad', realm_admin=u'admin', realm_passwd=u'********', realm_server=u'DC1.ad.example.net', version=u'2.230'): InternalError

Теперь из того, что я могу сказать, он говорит, что я дал ему недопустимое доменное имя ... но если я запустил:

systeminfo | findstr /B /C:"Domain"

На одной из машин, зарегистрированных в домене, он возвращает:

Domain:                    ad.example.net

Итак, я знаю, что использую правильное доменное имя.

Может ли кто-нибудь объяснить, почему это не удается?

В основном это говорит о том, что имя домена IPA уже используется где-то в топологии леса AD, и контроллеры домена Active Directory отказываются направлять это имя в IPA. Код в автоматическом разрешении конфликтов топологии в IPA не учитывает ситуацию, когда такой конфликт возникает из-за того, что имя IPA используется в качестве UPN в AD.

У вас есть example.com как UPN в AD? Если так, то это доверие невозможно заставить работать. Вам необходимо изменить домен IPA (= область), прежде чем контроллеры домена AD примут его. Или удалите одноименное UPN со стороны AD.