web-dev-qa-db-ja.com

明示的に定義されたURIにもかかわらず、SSSDはADグローバルカタログのサービス検出に失敗します

SSSDとActiveDirectoryの統合で問題が発生しています。私のADは、9つのドメインコントローラーのセットアップでセットアップされています。そのうちのいくつかはファイアウォールで保護されており、さまざまなセキュリティ上の理由でアクセスできません。したがって、サービス検出はSSSDでは機能しません。必要に応じてURIを明示的に定義できるはずなので、これで問題ありません。

これらのURIを定義するsssd.confの関連セクションは次のようになります。

[domain/ad.utah.edu]
ldap_uri = ldap://myserver.domain
ldap_backup_uri = ldap://backup-server.domain
krb5_server = myserver.domain

ただし、getentグループ[email protected]でこの構成をテストしようとすると、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 )。

ただし、この動作を制御して無効にする方法、または適切なサーバーを指定する方法については、途方に暮れています。

それが役に立ったら、ubuntu16.04.3でSSSDバージョン1.13.4を実行しています。

2
John Tabs

アクセスできないサーバーのSRVDNSレコードがある理由を疑問に思ういくつかの提案の後、すべてのドメインコントローラーに、サービスを提供する予定のサイトを説明する「サイト」情報があることに気付きました。この設定オプションを使用してサービスを検出するときに、SSSDが特定のサイトを使用するように指示できることがわかりました。

dns_discovery_domain = SiteName._sites.example.com

この情報の指定は、バージョン1.12が( https://pagure.io/SSSD/sssd/issue/2486 )のようになるまで、完全にはサポートされていませんでした(keberosディスカバリーはサイト仕様を尊重しませんでした)。

私の知る限り、LDAPとKerberos URIを明示的に定義している場合、SSSDはサービス検出を実行しないはずですが、少なくとも元の問題に対する解決策はあります。

1
John Tabs

SSSDについてはわかりませんが、ADとDNSの関係は知っています。この行SRV resolution of service 'ldap'ドメインコントローラーを意図的に分離したという事実と相まって、ドメイン内のLDAPSRVレコードのリストから分離されたDC)をクエリしようとすると、エラーが発生していると思います。その場合、 これらのDCがDNSにSRVレコードを登録しないようにします

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Value name: DnsAvoidRegisterRecords
Data type: REG_MULTI_SZ 
Data value: Ldap
1
spacenomyous