Windowsのリモートデスクトップ接続では、リモート接続を受け付ける側のマシンは、デフォルトでTCPの3389番ポートで接続を待ち受けています。
ですが、万が一悪意のある第三者にリモートデスクトップ接続を試行された場合、デフォルトのポート番号のままだと、認証画面が表示され、そのマシンでリモートデスクトップ接続が有効になっていることが簡単に分かり、不正アクセスの危険性があります。
そこで、第三者にアクセスされる可能性があるWindowsマシンでリモートデスクトップ接続を有効化する場合は、待ち受けポート番号をデフォルトの3389番から変更することで、リモートデスクトップ接続が有効になっていることを分かりにくくして、セキュリティを強化することができます。
ここでは、Windows 10でリモートデスクトップ接続の待ち受けポート番号を変更して、セキュリティを強化する方法を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 1909 |
待ち受けポート番号を変更する
ここからの設定は、リモートデスクトップ接続を待ち受けるマシンで行います。
リモートデスクトップ接続の待ち受けポート番号を変更するには、レジストリで設定します。
レジスト設定は、レジストリエディターからGUI操作で設定することもできますが、ここではPowerShellの「Set-ItemProperty」コマンドレットを利用して設定します。
設定は、管理者権限でPowerShellを起動し、以下のコマンドを実行するだけです。
PS> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Type Dword -Value "XXXXX"
コマンドの「XXXXX」部分には、待ち受けに利用する任意のポート番号を指定します。
ポート番号は、他のサービスやアプリケーションで利用しているポート番号と競合しないように49152~65535の間から選ぶのが良いでしょう。
レジストリ設定を反映するには、マシンを再起動します。
以上で、設定完了です。
ファイアウォール設定の変更
次に、上で設定したポート番号でリモートデスクトップ接続できるようファイアウォールの設定を変更します。
Windows 10に標準搭載されているファイアウォール機能「セキュリティが強化されたWindows Defenderファイアウォール」を利用している場合は、新しい受信の規則を追加(TCP用とUDP用の2つ)します。
受信の規則の追加は、管理者権限でPowerShellを起動して、以下のコマンドを順に実行します。
PS> New-NetFirewallRule -DisplayName "@RDP_TCP" -Profile Any -Direction Inbound -Protocol TCP -LocalPort XXXXX -Action Allow
PS> New-NetFirewallRule -DisplayName "@RDP_UDP" -Profile Any -Direction Inbound -Protocol UDP -LocalPort XXXXX -Action Allow
コマンドの「XXXXX」の部分には、上記のレジストリ設定で指定したポート番号を入力します。
新しいポート番号でリモートデスクトップ接続できることを確認したら、デフォルトのファイアウォールの規則は無効化しておきます。
PS> Disable-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (TCP 受信)"
PS> Disable-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (UDP 受信)"
サードパーティーのセキュリティ対策ソフトを利用している場合も、新しいポート番号でリモートデスクトップ接続を許可するよう設定します。
接続確認
待ち受けポート番号を変更したら、実際に新しいポート番号でリモートデスクトップ接続できるか確認します。
待ち受けポート番号をデフォルトから変更した場合は、リモートデスクトップ接続の画面で接続先マシン名を入力する欄に、接続先マシン名とポート番号を合わせて「接続先マシン名:ポート番号」と入力します。
たとえば、接続先マシン名が「remotepc」でポート番号が「45678」なら「remotepc:45678」と入力します。
トラブルシュート
ポート番号の変更後、うまくリモートデスクトップ接続できない場合は、以下の方法で状況を確認します。
リモートデスクトップ接続を待ち受けるマシンでコマンドプロンプトを開き、以下のコマンドを実行します。
> netstat -ano | find ":<設定したポート番号>"
ここで何も表示されない場合は、正しくポート番号が変更されていない可能性があるので、設定内容を再確認してみましょう。
netstatコマンドを実行すると、設定したポート番号で待ち受けているプロセスIDを確認できるので、そのプロセスIDを基に、以下のコマンドを実行します。
> tasklist /svc /fi "PID eq <表示されたプロセスID>"
表示されたサービスの名称が「TermService」であれば、正しく設定されています。
ここで違うサービス名が表示されている場合は、指定したポート番号が別のサービスやアプリケーションによって利用されている可能性があるので、別のポート番号で設定し直してみましょう。
あとがき
ここで紹介した方法でポート番号を変更した場合でも、インターネット上にリモートデスクトップ接続を有効化したWindowsマシンを直接公開するのは、とても危険です。
遠隔地のWindowsマシンにリモートデスクトップ接続したい場合は、すくなくともVPNなどを組み合わせて利用するようにしましょう。