Windows XP を新しいリモートデスクトップサーバーにスムーズに接続するのは、まさに悪夢です。古い XP RDP クライアントは、新しい Windows OS が強制するセキュリティ機能、特に NLA (ネットワークレベル認証) を必要とするセキュリティ機能に対応していませんでした。「セキュリティエラーのため、クライアントはリモートコンピューターに接続できませんでした」や「リモートコンピューターにはネットワークレベル認証が必要ですが、お使いのコンピューターはこれをサポートしていません」といったエラーメッセージが表示されたことがあるなら、このガイドが役に立ちます。多くの場合、目標は、セキュリティをあまり損なうことなく、古い XP ボックスを Windows Server 2016/2012R2、あるいは Windows 10 と通信させることです。おそらく、CredSSP や認証エラーに関するエラーが表示されるでしょう。これらはすべて、プロトコルの脆弱性や機能の不一致が原因です。
基本的に、この問題を解決するには主に2つの方法があります。サーバー側でNLAを無効にするか(セキュリティ上は理想的ではありませんが、場合によっては必要になります)、XPでNLAサポートを有効にするかです。ここからは少し面倒ですが、これらの手順で対処できるはずです。ただし、Microsoftはこれらの新しいプロトコルすべてに対応するパッチをXPに提供していないため、レジストリ設定の調整や主要機能の無効化など、多くの作業が必要になります。主な目的は、XPクライアントとサーバーが同じセキュリティ言語で通信できるようにすることです。
Windows XP から新しい Windows OS への RDP 接続の問題を修正する方法
Windows Server 2016/2012 R2 または Windows 10 で NLA を無効にする
これはおそらく最も手っ取り早い総当たり攻撃の方法ですが、代償も伴います。NLAを無効にすると、実質的にセキュリティ保護の一部が低下しますが、クライアントが技術的に対応できない場合は、これが唯一の手段となることもあります。NLAを無効にすると、サーバーはセッションを確立する前にクライアントの認証を要求しなくなります。これにより、古いクライアントは接続しやすくなりますが、防御力は低下します。
- サーバー マネージャーを開きます。サーバー上で、[リモート デスクトップ サービス] > [コレクション]に移動します。
- 作業中のコレクションを見つけて、[タスク] > [プロパティの編集]をクリックします。
- [セキュリティ]タブで、[ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからの接続のみを許可する] を見つけて、チェックを外します。
Windows 10 ワークステーションの場合:
- システム>リモート設定に移動します。
- 「ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからの接続のみを許可する」のチェックを外します。
注:これを行うと接続の安全性が低下します。そのため、NLAを永久にオフにしたままにするのは避けた方が良いでしょう。マシンによっては、変更を適用するためにリモートデスクトップサービスの再起動や再起動が必要になる場合があります。この操作は、潜在的なセキュリティリスクを高める可能性があることにご注意ください。
Windows XP SP3 で NLA サポートを有効にする (NLA を本当に維持したい場合)
これは少し難しいです。XPにはService Pack 3がインストールされている必要があります。NLAとCredSSPのサポートはSP3で追加されたためです。Service Pack 3がインストールされていない場合、「認証エラーが発生しました。0x80090327」のようなエラーが表示されます。
まず、SP3 がインストールされていることを確認します。
- 「マイコンピュータ」を右クリック> 「プロパティ」を開きます。情報セクションに「Service Pack 3」があるか確認してください。見つからない場合は、Microsoftのサイトからダウンロードしてインストールしてください。
SP3 をインストールしたら、レジストリ編集によって CredSSP サポートを手動で有効にする必要があります。少し奇妙ですが、その仕組みは次のとおりです。
- レジストリ エディター (regedit) を開きます。
- に移動します
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders。 - 値を見つけます
SecurityProviders。それをダブルクリックし、, credssp.dll既存のテキストの末尾にコンマで区切って追加します。 - に進みます
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa。 - 検索し
Security Packagesてtspkgリストに追加します。
これらの変更を行った後、PCを再起動してください。これでXPがNLAとCredSSPをサポートするようになり、接続の互換性が少し向上するはずです。ただし、保存した認証情報がうまく機能することは稀なので、毎回パスワードを再入力する必要があります。確かに面倒ですが、互換性向上のためのトレードオフです。
CredSSP暗号化Oracle修復エラーの修正
この問題は、サーバーまたはクライアントにCVE-2018-0886に対応する最新のセキュリティパッチが適用されている場合に発生します。基本的に、Microsoftはパッチを適用していない古いクライアント(Windows XPを含む)を「破壊」するパッチを意図的に追加しました。もちろん、Windows XPはもうアップデートされていません。そのため、アップデート後に「要求された機能はサポートされていません」などのエラーが表示される場合は、おそらくこれが原因です。
最新のアップデートで、Microsoftはこの強制を一時的に無効にするポリシー設定を導入しました。これを修正するには、サーバー側のレジストリを調整する必要があります。
- グループ ポリシー エディター またはレジストリ エディターを開きます。
- [コンピューターの構成] > [管理用テンプレート] > [システム] > [資格情報の委任]に移動します。
- ポリシー「Encryption Oracle Remediation」を見つけて、「Mitigated」に設定します。
これによりセキュリティは低下しますが、古いクライアントが接続できるようになります。レジストリを直接編集することで、これを実行できます。
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "AllowEncryptionOracle" /t REG_DWORD /d 2 /f
緩和されたサポートのために、値を に置き換えてください2。ただし、これによりシステムの脆弱性が若干高まることに注意してください。絶対に必要な場合のみ、リスクを理解した上で実行してください。
Windows XP(組み込み版、Windows Embedded POSReady 2009)をご利用の場合は、[Microsoft サポートページ](https://support.microsoft.com/en-us/help/4056564/security-update-for-vulnerabilities-in-windows-server-2008) で、CredSSP の脆弱性に対する特別なアップデートをお試しください。XP がこれらの特定のセキュリティ上の欠陥に対してパッチを当てられることは稀ですが、完全な修正を期待しすぎないでください。
結論として、XPをRDPで新しいWindowsサーバーに接続することは可能ですが、多少のハッキングが必要で、リスクが伴います。この記事がお役に立てば幸いです。そして、これで少なくとも数台の古いマシンが新しい世界と通信できるようになることを願っています。
まとめ
- サーバー上で NLA を無効にすると、古いクライアントに接続しやすくなりますが、セキュリティが低下します。
- XP で NLA サポートを有効にするには、レジストリの編集と SP3 が必要です。
- CredSSP の脆弱性に注意し、必要に応じてポリシーを調整してください。セキュリティはトレードオフです。
- レジストリ パスの編集、NLA の有効化/無効化、セキュリティへの影響の理解などが重要です。
まとめ
こういった問題に対処するのは少し面倒です。Microsoftは、まさに必要な時に古いプロトコルを破壊するのが好きなようです。しかし、レジストリを少し調整したり、NLAを無効にしたり、XPでサポートを有効にしたりすることで、接続を回避できます。ただし、セキュリティを低下させるのは良くないことを覚えておいてください。選択肢をよく検討してください。
これで誰かの時間節約になれば幸いです。幸運を祈ります。そして忘れないでください。古いXPの船は沈みつつありますが、今のところ浮かび続ける方法があります。