連載
» 2015年07月10日 00時00分 UPDATE

Windows TIPS:ターミナル・サービス/リモート・デスクトップ接続のポート番号を変更する

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

[デジタルアドバンテージ,著]
Windows TIPS
Windows Server Insider


「Windows TIPS」のインデックス

連載目次

対象OS:Windows 2000 Server/Windows 2000 Advanced Server/Windows XP Professional/Windows Server 2003


解説

 Windows 2000 Server/Windows Server 2003のターミナル・サービスや、Windows XPのリモート・デスクトップ接続は、リモートからコンピュータへ接続してデスクトップ環境を利用するためのサービスである。ふだんコンソール画面でコンピュータを利用しているのと同じように、GUI環境のまま接続することができるので、一般的なクライアント用途だけでなく、管理者にとっても便利なサービスである。ローカルのネットワークだけでなく、WAN回線やVPN回線などを通して、離れたネットワーク環境にあるシステムへもリモート・ログオンして、システムを利用しているユーザーも多いだろう。

 だが、イントラネット上で利用する場合と違って、インターネットを介して利用する場合はセキュリティに注意しなければならない。特に個人用途などで、Windows XP Professionalマシンを直接インターネット上に公開し、リモートからいつでも自宅の環境へリモート・デスクトップ接続できるようにしているユーザーは要注意である。ブロードバンド接続環境の普及により、出先のモバイル環境から常に自宅へログオンできるように備えているユーザーも増えているようである。しかしリモート・デスクトップ接続では、結局のところ、ユーザー名とパスワードさえ一致すれば、簡単にログオンすることができる。これは非常に危険な状態であるといえる。

 このような事態を防ぐには、少なくとも、リモート・デスクトップ接続やターミナル・サービスが稼働していることを(外部からは簡単に)悟られないようにするのがよいだろう。具体的には、デフォルトのサービス・ポート番号(TCPの3389番)を変更すればよい。もちろん、ポート・スキャン(利用されているポート番号を順番に総当りでスキャンする侵入・攻撃方法)が行われればリモート・デスクトップ・サービスが稼働していることが分かってしまうが、一般的には、これでも十分安全性が高くなる。特定のコンピュータを(執拗に)狙う場合ならともかく、通常の侵入行為では、ある固定的な(既知の)ポート番号でのみスキャンして、サービスが稼働しているかどうかを調べているからだ(全ポートに対するポート・スキャンを行うと非常に時間がかかるし、トラフィックが増えて発見されやすくなるからだ)。ただし、元のポート番号から類推しやすいものではあまり意味がないので(例えば3389番を13389番や23389番にするなど)、なるべく異なるポート番号にするのが望ましいだろう。さらにいうならば、なるべく大きなポート番号にしておくと、小さい値から順番にスキャンされる攻撃に強くなる(ポート番号の範囲は1〜65535)。

 ここでは、リモート・デスクトップ接続やターミナル・サービスのデフォルトのポート番号を変更する方法について解説する。

操作方法

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

[注意]

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


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

項目 内容
キー HKEY_LOCAL_MACHINE 中の
\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
名前 PortNumber
種類 DWORD
データ 3389(10進数)

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

 レジストリの変更後、システムを再起動すると、利用するポート番号が変更されているはずなので、コマンド・プロンプトを開き、「netstat -an」を実行してそれを確認しておく。「TCP 0.0.0.0:47935 0.0.0.0:0 LISTENING」という行が含まれていれば、ポート番号は変更されている。もし「TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING」となっているようならば、変更されていないので、もう一度レジストリを確認する。

●ファイアウォールの変更

 以上でサーバ側の変更は完了であるが、インターネットからアクセスするためには、ファイアウォールなどの設定も変更する必要がある。例えば、Windows XPに内蔵のファイアウォール機能(ICF:Internet Connection Firewall)を使っているのなら、新しいポートでの呼び出しを受け付けるように変更しなければならない。デフォルトでは「リモートデスクトップ」というプロトコルが用意されているので、そのチェック・ボックスをオンにするだけであったが、今回は新規にプロトコル定義を追加して、そのポートへの呼び出しを有効にしておく。具体的には、ファイアウォールの設定(ICFを設定したネットワーク接続のアイコンを右クリックして[プロパティ]画面を開き、[詳細設定]の[インターネット接続ファイアウォール]−[設定]にある[サービス]タブで、[追加]をクリックする)において、以下のように指定する。

Windows XPにおけるファイアウォールの設定 Windows XPにおけるファイアウォールの設定
Windows XP Professionalに内蔵されているファイアウォール機能を利用する場合は、新しいポート番号でサービスを受け付けるように設定する。
  (1)サービスの名称。任意のものでよい。
  (2)ローカルのPCの名称もしくは「127.0.0.1(ローカル・ループバック・アドレス)」を入力する。
  (3)新しいポート番号。レジストリで指定したものと同じ番号を指定する。
  (4)プロトコルはTCPを選択する。

●呼び出し側の変更

 サーバ側のポート番号を変更したら、それに合わせて、クライアント側の呼び出し方法も変更しなければならない。具体的には、[リモート デスクトップ接続]のサーバ名を入力する欄において、単なる[サーバ名]ではなく、[サーバ名:ポート番号]と入力する(半角のコロン記号と、ポート番号を付加する)。例えばサーバの名前がmypc.example.jpならば、[mypc.example.jp:47935]とする(IPアドレスなら[1.2.3.4:47935]などとする)。

異なるポート番号を持つサーバへの接続 異なるポート番号を持つサーバへの接続
サーバ名の最後に「:ポート番号」を付けると、デフォルト以外のポート番号を持つサーバへの接続ができる。
  (1)サーバ名の最後にポート番号を明示的に指定する。

「Windows TIPS」のインデックス

Windows TIPS

Copyright© 1999-2015 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

人気のSIMロックフリー端末「Nexus 6」をプレゼント
Loading

ホワイトペーパー(TechTargetジャパン)

注目のテーマ

転職/派遣情報を探す

【転職サーチ】SIer/Web企業/新規事業 スマホ開発で、あなたのキャリアを生かす

「派遣・フリーで働くメリット」とは? 活躍する派遣エンジニアの本音

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。