web-dev-qa-db-ja.com

LDAPSが389にリダイレクトされている

ファイアウォールで389をブロックするサーバーへのLDAPSバインドを実行しようとしているため、すべてのトラフィックは636を超えて移動する必要があります。

テストラボでは、このファイアウォールがないテストldap(同じサーバー上にある)に接続しているため、両方のポートが公開されています。テストサーバーでldp.exeを実行すると、以下のトレースが生成されます。これは、636を介して正常にバインドされていることを示しているようです。ただし、wiresharkでトラフィックを監視すると、すべてのトラフィックが389に送信され、636に接続することもありません。

他のツールは、636ではSSLのみ、または389ではSSLなしでバインドされますが、正しく動作していることを示唆しているようですが、Wiresharkは389を示しています。

ローカルループバックトラフィックをキャプチャするために使用しているテストサーバーのみ RawCap

何か案は?

0x0 = ldap_unbind(ld);
ld = ldap_sslinit("WIN-GF49504Q77T.test.com", 636, 1);
Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 0 = ldap_connect(hLdap, NULL);
Error 0 = ldap_get_option(hLdap,LDAP_OPT_SSL,(void*)&lv);
Host supports SSL, SSL cipher strength = 128 bits
Established connection to WIN-GF49504Q77T.test.com.
Retrieving base DSA information...
Getting 1 entries:
Dn: (RootDSE)
3
Andy March

まず、次のように証明書を確認します。

LDAP over SSL接続の問題をトラブルシューティングする方法
http://support.Microsoft.com/kb/9387

手順1:サーバー認証証明書を確認する

使用するサーバー認証証明書が次の要件を満たしていることを確認してください。

  • ドメインコントローラーのActiveDirectory完全修飾ドメイン名は、次のいずれかの場所に表示されます。

    • 件名フィールドの一般名(CN)
    • DNSエントリのサブジェクト代替名(SAN)拡張子

      • 拡張キー使用拡張機能には、サーバー認証オブジェクト識別子(1.3.6.1.5.5.7.3.1)が含まれています。
      • 関連する秘密鍵は、ドメインコントローラーで使用できます。キーが使用可能であることを確認するには、certutil-verifykeysコマンドを使用します。
      • 証明書チェーンはクライアントコンピューターで有効です。証明書が有効かどうかを判断するには、次の手順に従います。
        1. ドメインコントローラーで、証明書スナップインを使用して、SSL証明書をServerssl.cerという名前のファイルにエクスポートします。
        2. Serverssl.cerファイルをクライアントコンピューターにコピーします。
        3. クライアントコンピューターで、コマンドプロンプトウィンドウを開きます。
        4. コマンドプロンプトで、次のコマンドを入力して、コマンド出力をOutput.txtという名前のファイルに送信します。

      certutil -v -urlfetch -verifyserverssl.cer> output.txt
      Output.txtファイルを開き、エラーを検索します。

手順2:クライアント認証証明書を確認する

場合によっては、LDAPSは、クライアントコンピューターで使用可能な場合、クライアント認証証明書を使用します。そのような証明書が利用可能な場合は、証明書が次の要件を満たしていることを確認してください。

  • 拡張キー使用法拡張機能には、クライアント認証オブジェクト識別子(1.3.6.1.5.5.7.3.2)が含まれています。
  • 関連する秘密鍵は、クライアントコンピューターで使用できます。キーが使用可能であることを確認するには、certutil-verifykeysコマンドを使用します。
  • 証明書チェーンはドメインコントローラーで有効です。証明書が有効かどうかを判断するには、次の手順に従います。

    1. クライアントコンピューターで、証明書スナップインを使用して、SSL証明書をClientssl.cerという名前のファイルにエクスポートします。
    2. Clientssl.cerファイルをサーバーにコピーします。
    3. サーバーで、コマンドプロンプトウィンドウを開きます。
    4. コマンドプロンプトで、次のコマンドを入力して、コマンド出力をOutputclient.txtという名前のファイルに送信します。

      certutil -v -urlfetch -verifyserverssl.cer> outputclient.txt
      Outputclient.txtファイルを開き、エラーを検索します。

手順3:複数のSSL証明書を確認する

複数のSSL証明書が手順1で説明されている要件を満たしているかどうかを確認します。Schannel(Microsoft SSLプロバイダー)は、Schannelがローカルコンピューターストアで見つけた最初の有効な証明書を選択します。ローカルコンピュータストアで複数の有効な証明書が利用できる場合、Schannelは正しい証明書を選択しない可能性があります。 LDAPSを介してアクセスしようとしているドメインコントローラーにCAがインストールされている場合、認証局(CA)証明書との競合が発生する可能性があります。

手順4:サーバーでLDAPS接続を確認する
ドメインコントローラーのLdp.exeツールを使用して、ポート636を使用してサーバーに接続しようとします。ポート636を使用してサーバーに接続できない場合は、Ldp.exeが生成するエラーを確認してください。また、イベントビューアのログを表示して、エラーを見つけます。 Ldp.exeを使用してポート636に接続する方法の詳細については、次の記事番号をクリックして、マイクロソフトサポート技術情報の記事を参照してください。

321051サードパーティの認証局でLDAP over SSLを有効にする方法
http://support.Microsoft.com/kb/321051

手順5:Schannelログを有効にする
サーバーとクライアントコンピューターでSchannelイベントログを有効にします。 Schannelイベントログを有効にする方法の詳細については、次の記事番号をクリックして、マイクロソフトサポート技術情報の記事を表示してください。

260729 IISでSchannelイベントログを有効にする方法
http://support.Microsoft.com/kb/260729

1
Greg Askew