Windows Update(2020年3月の更新)でLDAP 署名(LDPS)と LDAP チャネル バインディングが有効になる(その2:検証)

投稿者: | 2020年2月3日

2020年3月のWindows Updateで、Active Directoryのユーザ認証などに使う「LDAP 署名」と 「LDAP チャネル バインディング」が規定(デフォルト)で有効となるようです。何も準備しないと”Active Directoryにログオンできない” といったことが起こり得ます。
概要と暫定的対応は、その1 に記述しました。ここでは、LDAP署名を有効化した際の検証に関して記載します。

現在の設定の確認

現状のActive Directoryで「LDAP 署名」や「LDAP チャネルバインディング」を使用しているか確認します。
Active Directoryの環境では「LDAP 署名」や「LDAP チャネルバインディング」の設定はグループポリシで行います。

LDAP 署名の確認

①適用されているグループポリシの確認
ドメインコントローラサーバで、コマンドプロンプトを管理者で開き以下のコマンドを入力します。

gpresult /SCOPE Computer /z | more

出力結果から [コンピュータの設定] – [適用されたグループポリシオブジェクト] を確認します。
例では、以下のグループポリシが適用されています。
・Default Domain controller Policy
・Default Domain Policy

②グループポリシの設定の確認
ドメインコントローラサーバに適用されているグループポリシがわかったら、それぞれのグループポリシの設定を確認します。
対象のグループポリシオブジェクトを選択し、[設定]タブ で設定しているパラメータを確認します。

■場所:
[コンピュータの構成] – [ポリシー] – [Windowsの設定] – [セキュリティの設定] – [ローカルポリシー] – [セキュリティオプション] の中の「ドメインコントローラ:LDAPサーバ署名必須」

「ドメインコントローラ:LDAPサーバ署名必須」が ”なし” であれば、LDAP署名は無効となっており使用されていません。

LDAP チャネルバインディングの確認

LDAP チャネルバインディング設定は、LDAPS 利用時のみ利用される機能のため、LDAP署名 を利用していない場合は利用されません。
「LDAP署名」が ”有効” であった場合は、「LDAPチャネルバインディング」が構成されているかを確認します。

①ドメインコントローラサーバで、レジストリエディタを開き以下のレジストリハイブを確認します。

■ハイブ:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDS\Parameters

■キー:
DWORD: LdapEnforceChannelBinding

■値:
0: 機能が無効。チャネル バインディングは行われません
1: 機能が有効。サポートされている場合にチャネル バインディング有効
2: 機能が有効。常にチャネル バインディング有効

LDAP署名を有効

現状で「LDAP署名」および 「LDAP チャネルバインディング」の機能を有効にしていない場合 (現在の設定では、既定で有効化されていません)は、機能を有効にするように設定をします。

なお、実運用環境で変更を行う前にテスト環境で機能を有効化し、運用環境に与える影響を確認することを強く推奨します。

LDAP署名を有効

Active DirectoryのグループポリシでLDAPに関する設定を行います。
なお、この設定は ”設定後にすぐ反映” されます(サーバの再起動は必要ない)

①グループポリシの作成
[グループポリシの監理]ツールを起動し、適当な名前(図では「LDAP-署名」)のポリシを作成します。
そのポリシをドメインコントローラサーバに適用できるように「Default Domain Controller Policy」にリンクします

②グループポリシを編集して、ドメインコントローラの設定をします。
■場所:
[コンピュータの構成] – [ポリシー] – [Windowsの設定] – [セキュリティの設定] – [ローカルポリシー] – [セキュリティオプション] の中の「ドメインコントローラ:LDAPサーバ署名必須」

■設定:「このポリシーの設定を定義する」のチェックボックスをオンにし、下の項目は「署名を必要とする」を選択

③グループポリシを編集して、クライアントの設定をします。
サーバーに [署名属性の要求] を設定した場合は、クライアントの設定も必要です。クライアントを設定しないと、サーバーとの接続が失われます。
■場所:
[コンピュータの構成] – [ポリシー] – [Windowsの設定] – [セキュリティの設定] – [ローカルポリシー] – [セキュリティオプション] の中の「ネットワークセキュリティ:必須の署名をしているLDAPクライアント」

■設定:
「このポリシーの設定を定義する」のチェックボックスをオンにし、下の項目は「署名を必要とする」を選択

LDAPSのTCPポート番号(636)の確認

LDAP署名で使うポート番号は636番になります。
既定では、ドメインコントローラサーバはLDAPSのTCP636ポートはリッスンしていますが、念のため確認をします。
コマンドプロンプトを開いて、以下のコマンドを入力します。

netstat -p tcp -q -nao

出力結果から「ローカルアドレスが 0.0.0.0:636」がリッスンされていることを確認します。

LDAP署名(LDAPS)の確認方法

Active Directoryドメインに参加しているPCからは、LDAP署名の有効・無効の違いは判りません。
確認方法としては、以下の方法などがあります。

①ドメインに参加していないWindows10からの接続
ドメインに参加していないWindows10から、ドメインのファイルサーバへの接続を試します。
LDAP署名が無効であればアクセスできますが、LDAP署名が有効であればアクセスはできません。

②Linuxマシンからの接続
dapsearch でアクセス先を ldap: → ldaps: で確認できます。

③ドメインコントローラサーバでの確認
コマンドプロンプトで、「ldp」と入力しGUIを開きます。
[接続] でポートをいかに設定します。
・LDAP : 389
・LDAPS: 636

証明書に関して

証明書の確認

Active Directoryドメインに参加しているPCは、Active Directoryのルートかエンタープライズ CA を信頼するのでログオンできなくなるということはありません。
ドメインに参加していないPCやサーバ(アプリケーション)の場合は、Active Directoryドメインサービス (AD DS) は、証明書(SSL証明書)の設定をしないと LDAPS が使えません。
サーバ証明書に関しては以下を参照ください。

LDAP over SSL に関する接続の問題のトラブルシューティングを行う方法
<https://support.microsoft.com/ja-jp/help/938703/how-to-troubleshoot-ldap-over-ssl-connection-problems>

証明書の作成

SSL証明書を配置してLDAPSを有効化させるには以下の方法があります。

①Active DirectoryにエンタープライズCAを構築する
ドメインコントローラサーバに「Active Directory 証明書サービス」の機能を設定

②ドメインコントローラサーバにSSL証明書をインポートする
個々のドメインコントローラサーバに証明書をインポート

一番お手軽なのは、①エンタープライズCAを構築するです。
これで、Active Directoryサーバ証明書を自動で発行し、かつ、ドメイン参加端末はその証明書の発行元を「信頼済みルート証明機関」とします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です