Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
皆さん、こんにちは。Windows サポートの神田です。
こちらの記事では、リモート デスクトップ接続で使用される認証プロトコルである NLA (ネットワーク レベル認証) について、Windows Server 2012 R2 以前と Windows Server 2016 の間で無効化の手順が異なる点について取り上げます。
- その前に : NLA (ネットワーク レベル認証) とは
NLA とは、Windows Vista、Windows Server 2008 以降で実装された認証処理で、サーバーがユーザーとのセッションを確立する前に、認証に使用するユーザーの資格情報を提示するよう、接続元に強制させる動作です。
リモートデスクトップで接続先を指定して [接続]をクリックした際に、ログオン画面が表示される前に、ユーザーの資格情報を先に求められる動作が、NLA が有効になっている動作となります。
※ 余談ですが、NLA が有効な場合の既定の認証動作が、2018 年 5 月の更新プログラムで変更され、お問い合わせがサポートにも多数寄せられました。未確認のお客様がいらっしゃいましたら、ご一読をいただければと思います。
2018 年 5 月の更新プログラム適用によるリモート デスクトップ接続への影響
https://blogs.technet.microsoft.com/askcorejp/2018/05/02/2018-05-rollup-credssp-rdp/
CVE-2018-0886 の CredSSP の更新プログラム
https://support.microsoft.com/ja-jp/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018
- Windows Server 2012 R2 以前の NLA の無効化について
弊社としては、セキュリティ上の理由から NLA は有効のままでご利用いただく事を推奨しています。しかしながら、ご利用環境や、運用の計画により NLA を無効化しなければならない状況が発生することがあります。
例えば、RemoteApp を使用している以下のような利用環境の場合では、NLA を無効化することが対策の一つとなります。
Windows Server 2012 R2 および Windows 8.1 以降のネットワーク レベル認証の動作について
https://blogs.technet.microsoft.com/askcorejp/2015/11/10/windows-server-2012-r2-windows-8-1-1/
上記の例では、NLA 認証が接続先で強制される設定でも、NLA での認証が完全に無効化されないため、パスワードの期限が終了した場合に RemoteApp からはパスワードが変更できない状態になります。対策はブログに複数の方法が記載されていますが、方法の一つとして NLA そのものをポリシーから無効化する方法を案内しています。
以下の ポリシー項目のうち、”a. と c.” もしくは ”b. と c.” を設定します。
[コンピューターの構成] - [管理用テンプレート] - [Windows コンポーネント] - [リモート デスクトップ サービス]
- [リモート デスクトップ セッション ホスト] - [セキュリティ]
a. クライアント接続の暗号化レベルを設定する
状態:“有効”
暗号化レベル:“低レベル”
b. リモート (RDP) 接続に特定のセキュリティ レイヤーの使用を必要とする
状態:“有効”
セキュリティ レイヤー:“RDP”
c. リモート接続にネットワーク レベル認証を使用したユーザー認証を必要とする
状態:“無効”
組み合わせが 2 通りある理由は、リモートデスクトップ プロトコルのセキュリティ レイヤーの既定値によるものです。Windows Server 2012 R2 以前では、セキュリティ レイヤーの既定値が "ネゴシエート" であるため、”a. と c.” でも NLA は無効にできますし、”b. と c.” でも無効化できます。
- Windows Server 2016 の NLA の無効化について
Windows Server 2016 でも、NLA を無効化しなければならない状況があります。その場合は、Windows Server 2012 R2 の場合と同様にポリシーから無効しますが、上記の ”a. と c.” では、NLA は無効化されません。Windows Server 2016 では ”b. と c.” の組み合わせを設定することで、 NLA を無効化できます。
[コンピューターの構成] - [管理用テンプレート] - [Windows コンポーネント] - [リモート デスクトップ サービス]
- [リモート デスクトップ セッション ホスト] - [セキュリティ]
b. リモート (RDP) 接続に特定のセキュリティ レイヤーの使用を必要とする
状態:“有効”
セキュリティ レイヤー:“RDP”
c. リモート接続にネットワーク レベル認証を使用したユーザー認証を必要とする
状態:“無効”
Windows Server 2016 では、b. の [セキュリティ レイヤー:“RDP”] を明示的に指定する必要があります。
- Windows Server 2016 のセキュリティ レイヤーの既定値について
上記の設定値の違いは、Windows Server 2016 ではセキュリティ レイヤーの既定値が “ネゴシエート“ から “SSL” に変更されたことに起因しています。
Windows Server 2012 R2 以前では、セキュリティ レイヤーの既定値が “ネゴシエート“ であるため、上記ポリシー a. [暗号化レベル:“低レベル”] を指定すれば、NLA が無効化できました。しかしながら Windows Server 2016 では、セキュリティ レイヤーの既定値が “SSL“ であるため、 [暗号化レベル:“低レベル”] に設定しても SSL での通信を試みるため、NLA の認証が行われます。そのため Windows Server 2012 R2 では無効化できたポリシー ”a. と c.” の組み合わせでは、ポリシーは無効化されません。
なお、Windows Server 2016 と今まで記載しておりましたが、クライアント OS である Windows 10 にも Professional Edition 以上にはリモート デスクトップ機能があり、セキュリティ レイヤーの既定値は “SSL” になっており、Windows Server 2016 と同じ動作となります。
セキュリティ レイヤーの設定を保存するレジストリは以下となっておりますので、ご利用いただいている環境のリモート デスクトップ プロトコルのセキュリティ レイヤーの設定を確認する場合は、こちらを参照してください。
レジストリ サブキー
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
値の名前 : SecurityLayer
値の種類 : REG_DWORD
値のデータ : 2 (1: ネゴシエート、2: SSL となります)
– 参考文献 –
※1 リモート デスクトップ サービス接続のネットワーク レベル認証を構成する
https://technet.microsoft.com/ja-jp/library/cc732713.aspx
※2 Windows Server 2008 R2: ネットワーク レベル認証を使用すべき理由
https://technet.microsoft.com/ja-jp/magazine/hh750380.aspx
※3 リモート デスクトップ セッションでは、期限切れになったユーザーアカウントのパスワードを変更できません。
https://support.microsoft.com/ja-jp/kb/2858371