<[Web サーバー立ち上げ体験日記]リモートデスクトップについて考える その 2
デフォルトではすべてに NIC でポート 3389 を使用してリモートデスクトップをリッスンしています。
C:UsersAdministrator>netstat -an
アクティブな接続
? プロトコル? ローカル アドレス????????? 外部アドレス??????? 状態 ? ~ 省略 ~ ? TCP??? 0.0.0.0:3389?????????? 0.0.0.0:0????????????? LISTENING ? TCP??? [::]:3389??????????????? [::]:0?????????????????? LISTENING ? ~ 省略 ~ |
その 2 でも書きましたがデフォルトの 3389 ポートは予約済みポートとなっていますので既知のポート番号です。
このままですと、リモートデスクトップを有効にしていると nslookup で DNS 名を確認して、リモートデスクトップで
接続しようとすると単純につなげてしまいますよね。
ポート番号を 3389 から変更すると接続時にリモートデスクトップでポート番号を明示的に指定する必要があります。
この方がセキュアな感じがしますね。
また複数の NIC をサーバーに接続している場合は特定の NIC でのみリモートデスクトップの接続を許可することができます。
うまくセグメントまで分けられればいいのですが、家庭用のルーターでそこまでできるかの検証がとれませんでした。
ひとまず Web サーバーに 172.0.0.12 という IP を持つ NIC を追加したと想定してみます。
??
172.0.0.10 で Web サーバー、172.0.0.12 でリモートデスクトップを提供する構成にしたいと思います。
ポートは Web サーバーが 80 、リモートデスクトップを 56000 として設定してみます。
[ポート番号の変更方法]
ポート番号を 3389 から変更するにはレジストリを変更します。
Microsoft の KB でも情報が掲載されていますね。
リモート デスクトップのリスニング ポートを変更する方法
# Mac 用のリモートデスクトップは 3389 以外はサポートしていないんですね。
- ファイル名を指定して実行で [regedit.exe] を実行
- [HKEY_LOCAL_MACHINESSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp] の
[PortNumber] を開きます。
- ポート番号を変更します。
# 10 進数で入力したほうがわかりやすいかと。
- この状態ではぱだポート番号は変更されていません。
# 以前のバージョンの Windows だとすぐに変わった気がするのですが。
C:UsersAdministrator>netstat -an
アクティブな接続
? プロトコル? ローカル アドレス????????? 外部アドレス??????? 状態 ? ~ 省略 ~ ? TCP??? 0.0.0.0:3389?????????? 0.0.0.0:0????????????? LISTENING ? TCP??? [::]:3389??????????????? [::]:0?????????????????? LISTENING ? ~ 省略 ~ |
- [サーバーマネージャ] から [Terminal Service] のサービスを再起動します。
?
- ポートが変わっていることが確認できます。
C:UsersAdministrator>netstat -an
アクティブな接続
? プロトコル? ローカル アドレス????????? 外部アドレス??????? 状態 ? ~ 省略 ~ ? TCP??? 0.0.0.0:56000?????????? 0.0.0.0:0????????????? LISTENING ? TCP??? [::]:56000??????????????? [::]:0?????????????????? LISTENING ? ~ 省略 ~
|
- この状態ではファイアウォールのポートの例外が設定されていません。
# リモートデスクトップ設定時に設定される例外はポート 3389 ですので、設定したポートに対しては手動で設定します。
[管理ツール] の [セキュリティが強化された Windows ファイアウォール] を起動します。
- デフォルトで作成されている受信の規則の [リモートデスクトップ (TCP 受信)] の内容を確認してみたいと思います。
?
ポートが [3389] になっていて変更できません。
リモートデスクトップのポートを変更した場合は、新規に受信規則を作成する必要がありますね。
- [操作] から [新規の規則] をクリックします。
- [ポート] を選択し、[次へ] をクリックします。
- [TCP] の [56000] を設定し、 [次へ] をクリックします。
- [接続を許可する] を選択し、[次へ] をクリックします。
- 全プロファイルで接続を許可しようと思いますのですべてを選択した状態 (デフォルトの状態) で [次へ] をクリックします。
- [名前] を入力して、[完了] をクリックします。
- 新しい規則が作成されます。
リモートデスクトップ接続する際にポート番号を指定しないと、3389 で接続しに行きますので接続時にはポート番号を
指定する必要があります。
コンピュータ名に [コンピュータ名 (または IP アドレス):ポート番号] の形式で入力します。

これでポート番号を指定しないと接続ができないように設定ができました。
ポートスキャンをされるとリモートデスクトップのポートがわかってしまいそうな気がしますが単純には接続ができなくなります。
[使用する NIC の変更]
デフォルトでは [0.0.0.0] でリモートデスクトップの応答を待っていますので、複数の NIC を使用している場合は全 NIC で
リモートデスクトップの接続を許可していることになります。
企業で 裏 LAN / 運用 LAN / 管理 LAN と呼ばれる管理用の LAN を構築している場合は特定の NIC だけリモートデスクトップを
許可したいということがありますよね。
ポートの変更同様 Microsoft の KB に情報があります。
影響を受けてある製品のいずれかを実行しているコンピュータのリモート デスクトップ セッションは確立できません
レジストリを変更する手順になっているのですが [ターミナル サービス構成] から変更することができます。
- [管理ツール] → [ターミナルサービス] → [ターミナル サービス構成] を開きます。
- [RDP-Tcp] のプロパティを開きます。
- [ネットワーク アダプタ] タブを選択し、[ネットワーク アダプタ] から使用する NIC を選択します。
# 下の画像は Hyper-V のゲスト OS を使用し、エミュレーション NIC と Loopback Adapter で複数 NIC の環境にしています。
今回は [Microsoft Loopback Adapter] でリモートデスクトップを使用したいと思います。(172.0.0.12 の IP です)
- 設定が終了したら、サーバーを再起動します。
サービスの再起動だけではだめでした。
- [netstat ?an] でポートの状態を確認してみます。
特定の IP アドレスにポートが割り当てられているのが確認できます。
C:UsersAdministrator>netstat -an
アクティブな接続
? プロトコル? ローカル アドレス????????? 外部アドレス??????? 状態 ? ~ 省略 ~ ? TCP??? 172.0.0.12:56000?????????? 0.0.0.0:0????????????? LISTENING ? ~ 省略 ~
|
他の環境で試してみたのですが、ネットワークアダプタを固定すると netstat にポートが上がって来ませんでした…。
[このプロトコルで構成されたすべてのネットワーク アダプタ] にするとポートもきちんと立ち上がるのですが。
ネットワークアダプタを固定すると駄目でした…。
ネットワークアダプタの固定についてはもう少し調査する必要がありそうです。
[ターミナル サービス構成] では他にも同時接続ユーザー数や、1 ユーザーのセッション数制限もすることができますので、
環境に応じていろいろと試してみる必要がありますね。
# 接続に証明書が使えるようですのでここは少し勉強したいです。
運用のためのリモートデスクトップについてはここまでで。
次は Windows のセキュリティ設定について考えてみたいと思います。
>[Web サーバー立ち上げ体験日記]Windows のセキュリティについて考える その 1