みなさん、こんにちは。
医療機関や工場など、セキュリティ上の理由からインターネットに接続できない「閉域LAN」環境は、実は意外と多いですよね。そんな場所にWindowsサーバーを納品して、いざリモートデスクトップ接続で管理しようとしたら、「あれ、接続がめちゃくちゃ遅い」なんて経験はありませんか?
「接続中…」「セキュリティで保護しています…」の画面で、10秒近く待たされる。でも、10秒くらいなら我慢できるし…と、そのままにしてしまいがちですよね。
実は、その遅さにはきちんとした理由があり、サーバー側だけで解決できる方法があるのです。今回は、その原因と対策を、解説していきます。
リモートデスクトップ接続が遅い、2つの原因
閉域LAN環境でリモートデスクトップ接続が遅くなる主な原因は、次の2つです。
- 証明書の失効確認がタイムアウトしている
- リモートデスクトップ接続で用いる通信プロトコルのRDPは、初期設定でTLS(暗号化通信)を使います。その際に、接続先のサーバーが持つ証明書が「失効していないか?」をインターネット経由で確認しようとします。しかし、ネットに繋がらない環境では、当然その確認に失敗。タイムアウトするまで、ひたすら待たされてしまうんです。
- 逆引きDNSの名前解決が失敗している
- サーバーは、接続してきたクライアントのIPアドレスから、コンピューター名を特定しようとします(逆引きDNS)。内部に逆引き設定をしたDNSサーバーがなければ、これも失敗してタイムアウトするまで待機状態になります。
「うーん、でもリモートデスクトップ接続にはIPアドレスを直打ちしてるから関係ないんじゃ?」と思うかもしれませんが、DNSの設定がサーバーに何もないと、このタイムアウトが起きやすくなります。
サーバー側だけでできる、超実践的な解決策
システムを納品する場合、既存ネットワークの設定を変更できる権限がない場合も多いです。できればサーバー設定だけでなんとかしたい。そこで、サーバーの設定だけで、この遅延を解消する方法を3つご紹介します。
1. サーバーのDNS設定を見直す
これが最もシンプルで効果的です。サーバーのNIC設定で、内部DNSサーバーのアドレスを正しく設定しましょう。
IPアドレス直打ちで運用していても、サーバーにDNSサーバーの情報が設定されているだけで、逆引き失敗によるタイムアウトを防ぐことができます。
PowerShellを使えば、こんな風に設定できます。
# NIC名が "Ethernet" の場合
$nic = Get-DnsClient | Where-Object {$_.InterfaceAlias -eq "Ethernet"}
# DNSサーバーのIPアドレスを設定
Set-DnsClientServerAddress -InterfaceIndex $nic.InterfaceIndex -ServerAddresses 10.0.0.53
10.0.0.53は実際のDNSサーバーのアドレスにあわせて変更してください。可能であれば、社内DNSサーバーに逆引きゾーンを作ってあげると、さらにスムーズになります。
2. RDPのセキュリティレイヤーを変更する
証明書の失効確認をスキップするために、RDPが使う暗号化レイヤーを「RDP専用(TLSを使わない)」に変更することでも対策できます。セキュリティレベルは少し下がりますが、完全にクローズされた環境であれば、この方法も有効な選択肢になります。
レジストリを直接変更しますので、慎重に行ってください。
# レジストリキーを追加(SecurityLayerの値を 0 に設定)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f
# 設定を反映させるために、RDPサービスを再起動
Restart-Service TermService -Force
補足:レジストリ値の意味
- 0: RDPセキュリティ(TLSなし)
- 1: ネゴシエート(デフォルト設定)
- 2: TLS固定
3. 内部CAで正しいRDP証明書を配備する(恒久対策)
最も安全で確実なのは、この方法です。社内に証明書発行局(CA)がある場合、そのCAからRDP用の証明書を発行し、サーバーに適用します。
こうすることで、証明書の失効確認がインターネットではなく、社内ネットワーク内で完結します。セキュリティを保ちつつ、接続遅延も解消できる、まさに理想的な解決策です。
実運用でのオススメ手順
どれから試せばいいの?と迷ったら、次の順番で試してみてください。
- まず、サーバーに内部DNSを設定する
- これだけで、ほとんどの遅延は解消されるはずです。
- それでも遅い場合は、SecurityLayer=0で一時的に回避する
- 緊急の対処として、有効な方法です。
- 将来的に可能であれば、内部CA証明書を配備して恒久的に解決する
- 長期的に運用するなら、この方法で安全に高速化しましょう。
まとめ
リモートデスクトップ接続が遅くなる主な原因は、証明書の失効確認と逆引きDNSの失敗です。
まずは、サーバーに内部DNSサーバーの情報を正しく設定してみてください。これだけでも多くの遅延が解消されます。それでも問題が続く場合は、必要に応じてSecurityLayer
の値を調整することで一時的な解決が可能です。しかし、最も安全で恒久的な解決策は、内部CA証明書をRDPに適用することです。
これらの現実的な方法を試すことで、サーバー設定だけでリモートデスクトップ接続のイライラを解消できます。
ぜひみなさんの環境でも試してみてください!
本日も最後までお読みいただきありがとうございました。
それでは、よいWindowsサーバーライフを!