検索
連載

【リモートワーク自由自在】Windowsリモートデスクトップ接続のポート番号を変更してよりセキュアにするTech TIPS

リモートデスクトップサービスは便利な機能だが、ユーザー名とパスワードが分かると簡単に接続できてしまう。もしインターネットに公開するなら、最低限のセキュリティ対策としてデフォルトのポート番号を変更するのがよい。

Share
Tweet
LINE
Hatena
「Tech TIPS」のインデックス

連載目次

対象:Windows 10


リモートデスクトップの待ち受けポート番号を変更する
リモートデスクトップの待ち受けポート番号を変更する
待ち受けポート番号を変更することで、セキュリティを高めることができる。ただし、ポート番号の変更にはレジストリの編集が必要になる。

 Windows 10のリモートデスクトップ接続は、リモートからコンピュータへ接続してデスクトップ環境を利用するためのサービスで、リモートワークなどでよく利用されている。

 ローカルのネットワークだけでなく、VPN回線などを通して、離れたネットワーク環境にあるPCにリモートでサインインして、利用しているユーザーも多いのではないだろうか。だが、イントラネット上で利用する場合と違って、インターネットを介して利用する場合はセキュリティに注意しなければならない。

 特に、Windows 10を直接インターネット上に公開し、リモートからいつでもリモートデスクトップ接続できるようにしているようなユーザーは注意が必要だ。というのも、リモートデスクトップ接続では、ユーザー名とパスワードさえ一致すれば、簡単にサインインできてしまうからだ。

 このような事態を防ぐには、少なくともリモートデスクトップ接続やターミナルサービスが稼働していることを(外部からは簡単に)悟られないようにするのがよい。具体的には、デフォルトのサービスポート番号(TCP/UDPの3389番)を変更すればよい。

 もちろん、ポートスキャン(利用されているポート番号を順番に総当りでスキャンする侵入、攻撃方法)が行われればリモートデスクトップサービスが稼働していることが分かってしまう。それでも、一般的には、ポート番号を変えるだけで安全性が高くなる。

 特定のコンピュータを(執拗に)狙う場合ならともかく、通常の侵入行為では、ある固定的な(既知の)ポート番号でのみスキャンして、サービスが稼働しているかどうかを調べているからだ(全ポートに対するポートスキャンを行うと非常に時間がかかるし、トラフィックが増えて発見されやすくなるからだ)。

 ただし、元のポート番号から類推しやすいものではあまり意味がないので(例えば3389番を13389番や23389番にするなど)、なるべく異なるポート番号にするのが望ましい。さらに言うならば、なるべく大きなポート番号にしておくと、小さい値から順番にスキャンされる攻撃に強くなる(ポート番号の範囲は1〜65535)。

 ここでは、Windows 10のリモートデスクトップ接続に使われるデフォルトのポート番号を変更する方法について解説する。

リモートデスクトップ接続で使われているポート番号を変更する

 リモートデスクトップ接続では、RDP(Remote Desktop Protocol)というプロトコルを使っている。具体的にはTCP/UDPの3389番を使っており、サーバ側は、このポートでクライアントからの接続をリッスン(待ち受け)している。これ以外のポートや、2次接続(サービス接続後に、さらに別のポートでTCPやUDP接続を利用すること)は利用していないので、ファイアウォールなどで対応しやすいプロトコルである。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリエディターの操作は慎重に行うとともに、あくまでご自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本編集部では責任を負いかねます。ご了承ください。


 このポート番号を変更するには、レジストリエディターを起動し、以下のレジストリの値を変更する。

項目 内容
キー HKEY_LOCAL_MACHINE 中の
\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
名前 PortNumber
種類 DWORD(32ビット)値
データ 3389(10進数)を任意の値に変更
リモートデスクトップの待ち受けポート番号を変更するレジストリ

ポート番号を変更する(1)
ポート番号を変更する(1)
レジストリエディターを起動し、上表のレジストリキーを開く。右ペインで[PortNumber]を探し、ダブルクリックする。
ポート番号を変更する(2)
ポート番号を変更する(2)
[PortNumber]をダブルクリックして、編集できるようにする。「値のデータ」に新シポート番号を入力する。このとき、表記で[10進数]を選択しておくと値が分かりやすい。

 デフォルトでは10進数で3389(16進数表示だと「d3d」)となっているので、これを適当なポート番号、例えば「47935」(この番号は任意。一般的には1024以下は利用できない。10000〜65000ぐらいの間で適当に選ぶ)などに変更する。

 レジストリの変更後、Windows 10を再起動すると、利用するポート番号が変更されているはずだ。コマンドプロンプトを開き、次のようにコマンドを実行して確認しておこう。

netstat -ano | find ":<設定したポート番号>"
tasklist /svc /fi "PID eq <表示されたプロセスID>"

利用するポート番号を確認するコマンド

リモートデスクトップのポート番号の変更を確認する手順
リモートデスクトップのポート番号の変更を確認する手順
最初のnetstatコマンドで、設定したポート番号でリッスンしているプロセスのIDを確認する。次のtasklistコマンドで、そのプロセスIDに該当するサービスの略称が「TermService」(リモートデスクトップのサービス)であれば、正しく設定されていると判断できる。

 上記の手順で表示されたサービス略称が「TermService」であれば、ポート番号は変更されている。最初のnetstatコマンドで何も表示されなかったり、違うサービス名が表示されたりした場合、変更されていないので、もう一度レジストリを確認するか、別のポート番号を試してみる(指定したポートが、すでに別のサービスやアプリケーションによって占有されている可能性がある)。

ファイアウォールの設定を変更する

 以上でサーバ側の変更は完了であるが、インターネットからアクセスするためには、ファイアウォールなどの設定も変更する必要がある。例えば、Windows 10に内蔵のファイアウォール機能(セキュリティが強化されたWindows Defenderファイアウォール)を使っているのなら、新しいポートでの呼び出しを受け付けるように変更しなければならない。

 デフォルトでは、Windows 10上でリモートデスクトップを有効にすると、Windows Defenderファイアウォールがデフォルトで用意している「リモートデスクトップ」に関連する3つの規則が有効になるので、ファイアウォールを操作する必要はない。

Defenderファイアウォールのリモートデスクトップに関する規則(1)
Defenderファイアウォールのリモートデスクトップに関する規則(1)
リモートデスクトップを有効にすると、画面の3つの規則が自動的に有効になる。ポート番号を変更すると、「TCP受信」と「UDP受信」の2つを変更しなければならない。
Defenderファイアウォールのリモートデスクトップに関する規則(2)
Defenderファイアウォールのリモートデスクトップに関する規則(2)
「TCP受信」の規則をダブルクリックして、プロパティダイアログを開く。ポート番号3389が設定されており、このままでは新しく設定したポート番号では待ち受けできない。また、このプロパティダイアログでは、ポート番号の編集が行えないので、新規に規則を作成する必要がある。

新しいポート番号に対応した規則を作成する

 しかし、今回はポート番号を変更しているので、新しい規則を定義して、そのポートへの呼び出しを有効にしておく必要がある。

 具体的には、[スタート]メニューの[Windows管理ツール]の下にある[セキュリティが強化されたWindows Defenderファイアウォール](以下、Defenderファイアウォール)を選択し、[Defenderファイアウォール]画面を開く。画面の左ペインで[受信の規則]を選択してから、右ペインで[新しい規則]をクリックする。

 [新規の受信の規則]ウィザードが起動するので、ウィザードに従ってTCPの受信ポートとしてレジストリで設定したポート番号で呼び出しを受け付けるようにする。同様にUDPに対しても、同様の手順でポート番号を設定する。TCPとUDPのポートが設定できたら、デフォルトで有効になっている「リモートデスクトップ - ユーザーモード(TCP受信)」と「リモートデスクトップ - ユーザーモード(UDP受信)」の2つの規則を無効化しておこう。

新しいポート番号に対応した規則を作成する(1)
新しいポート番号に対応した規則を作成する(1)
Defenderファイアウォールを開き、左ペインで[受信の規則]を選択する。右ペインの[新しい規則]をクリックすると、[新規の受信の規則]ウィザードが起動する。最初の画面では、[ポート]を選択する。
新しいポート番号に対応した規則を作成する(2)
新しいポート番号に対応した規則を作成する(2)
[TCP]を選択して、レジストリで設定したポート番号を入力する。TCPの規則を作成したら、再びこのウィザードを起動し、今度は[UDP]を選択して同じ設定を行う。
新しいポート番号に対応した規則を作成する(3)
新しいポート番号に対応した規則を作成する(3)
[接続を許可する]を選択する。
新しいポート番号に対応した規則を作成する(4)
新しいポート番号に対応した規則を作成する(4)
ひとまず全ての項目にチェックを入れる。接続テストに成功してから、不要なネットワークのチェックボックスをオフにするとよいだろう。例えばセキュリティのため、ドメインネットワークに接続しているときだけしかリモートデスクトップ接続を許さない、といった場合には「ドメイン」のみにチェックを入れる。
新しいポート番号に対応した規則を作成する(5)
新しいポート番号に対応した規則を作成する(5)
後から設定した内容が分かるように名前と説明を入力する。
新しいポート番号に対応した規則を作成する(5)
新しいポート番号に対応した規則を作成する(5)
デフォルトのポート番号に対する受信規則を無効化しておく。

呼び出し側の変更も変更する

 サーバ側(接続先となるWindows 10)のポート番号を変更したら、それに合わせて、クライアント側の呼び出し方法も変更しなければならない。

 具体的には、[リモート デスクトップ接続]のサーバ名を入力する欄を変更し、単なる[サーバ名]ではなく、[サーバ名:ポート番号]と入力する(半角のコロン記号と、ポート番号を付加する)。例えばサーバの名前がmypc.example.jpならば、[mypc.example.jp:47935]とする(IPアドレスなら[203.0.113.2:47935]などとする)。

異なるポート番号のPCへの接続
異なるポート番号のPCへの接続
コンピュータ名の最後に「:ポート番号」を付けると、デフォルト以外のポート番号を持つPCへの接続が行える。

■更新履歴

【2020/04/27】Windows 10を対象に記事を更新しました。

【2003/09/27】初版公開。


Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る