У меня проблемы с интеграцией SSSD и Active Directory. Моя AD настроена с настройкой из 9 контроллеров домена, некоторые из которых защищены брандмауэром и недоступны по различным причинам безопасности. Следовательно, обнаружение служб не будет работать с SSSD. Это должно быть нормально, поскольку я должен иметь возможность явно определять URI по мере необходимости.
У меня есть соответствующие разделы моего sssd.conf, которые определяют эти URI, выглядят следующим образом:
[domain/ad.utah.edu]
ldap_uri = ldap://myserver.domain
ldap_backup_uri = ldap://backup-server.domain
krb5_server = myserver.domain
Однако при попытке протестировать эту конфигурацию с группой getent mygroup@domain.com я вижу эти сообщения в начале действия, связанного с этим поиском, в журналах домена sssd (debuglevel = 9):
(Tue Nov 7 17:20:26 2017) [sssd[be[mydomain]]] [sdap_id_op_connect_step] (0x4000): beginning to connect
(Tue Nov 7 17:20:26 2017) [sssd[be[mydomain]]] [fo_resolve_service_send] (0x0100): Trying to resolve service 'AD_GC'
...
(Tue Nov 7 17:20:26 2017) [sssd[be[mydomain]]] [ad_get_dc_servers_send] (0x0400): Looking up domain controllers in domain mydomain
(Tue Nov 7 17:20:26 2017) [sssd[be[mydomain]]] [resolv_discover_srv_next_domain] (0x0400): SRV resolution of service 'ldap'. Will use DNS discovery domain 'mydomain'
В конце концов он находит недоступный DC и не выполняет разрешение службы:
(Tue Nov 7 17:20:26 2017) [sssd[be[mydomain]]] [sdap_connect_host_resolv_done] (0x0400): Connecting to ldap://inaccessible-host.mydomain:389
....
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [fo_resolve_service_timeout] (0x0080): Service resolving timeout reached
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [sss_ldap_init_state_destructor] (0x0400): closing socket [26]
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [sdap_handle_release] (0x2000): Trace: sh[0xc861f0], connected[0], ops[(nil)], ldap[(nil)], destructor_lock[0], release_memory[0]
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [be_resolve_server_done] (0x1000): Server resolution failed: 14
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [sdap_id_op_connect_done] (0x0400): Failed to connect to server, but ignore mark offline is enabled.
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [sdap_id_op_connect_done] (0x4000): notify error to op #1: 5 [Input/output error]
(Tue Nov 7 17:20:56 2017) [sssd[be[mydomain]]] [acctinfo_callback] (0x0100): Request processed. Returned 3,5,Group lookup failed
Я просмотрел страницы руководства в поисках возможности либо отключить обнаружение службы (похоже, это должно быть выполнено путем указания URI, которые я определил в моей конфигурации), либо какой-либо опции для управления поведением этой службы AD_GC (которую я Предполагается, что служба глобального каталога AD из этой статьи: https://community.hortonworks.com/articles/92314/sssd-1.html).
Однако я не понимаю, как контролировать это поведение и отключать его или указывать на соответствующий сервер.
Я использую SSSD версии 1.13.4 на ubuntu 16.04.3, если это вообще помогает.
После пары предложений по поводу того, почему существуют записи SRV DNS для недоступных серверов, я понял, что все контроллеры домена имеют информацию о «сайтах», описывающую, для каких сайтов они предназначены. Оказывается, что SSSD может быть направлен на использование определенных сайтов при обнаружении служб с помощью этой опции конфигурации:
dns_discovery_domain = SiteName._sites.example.com
Указание этой информации не полностью поддерживалось (обнаружение keberos не соответствовало спецификации сайта) до версии 1.12, похоже (https://pagure.io/SSSD/sssd/issue/2486).
Насколько я могу судить, SSSD не должен выполнять обнаружение служб, если я явно определил LDAP и URI Kerberos, но, по крайней мере, у меня есть решение моей исходной проблемы.
Я не знаю о SSSD, но знаю взаимосвязь между AD и DNS. Эта линия SRV resolution of service 'ldap'
в сочетании с тем фактом, что вы намеренно изолировали контроллеры домена, заставляет меня думать, что он выдает ошибку, когда пытается запросить изолированный контроллер домена из списка записей LDAP SRV в домене. Если это так, запретить этим контроллерам домена регистрировать свои записи SRV в DNS.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Value name: DnsAvoidRegisterRecords
Data type: REG_MULTI_SZ
Data value: Ldap