Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【Network】自宅PCにリモート接続できる環境を構築したい! ポートアドレス変換編

外出先でも、家の高性能なPC環境で作業したい! 家のファイルとかにアクセスしたい! 

なんて欲望を叶えるためにGMOの固定IPを契約して、自宅PCにリモート接続できる環境を整えました。

(まあ、固定IPじゃなくてもDynamics DNSという手もあるにはあるんですけど)

アプローチとしては、VPNで繋ぐ方法がメジャーかと思うんですが

この時まだ家のBaffalo RouterがIPsecに対応していなかったので、取り急ぎポートアドレス変換でRDPポートを外出しする方法を試してみた時の記録です。

ただ、セキュリティ的にあれだなぁと思ったので、すぐにIPsecに対応したBaffalo Routerを買ってやめてしまったんですが、ネットワーク周りのいいお勉強になったので、記録しておきます。

システム構成

システム構成は以下の感じです。

さすがにRDPポートをそのまま晒すのは気が引けたので、50000番台に変更しています。

その変更したポートをRouterのポートマッピングの設定で、ローカルIPアドレスの特定ポートにリダイレクトさせてあげるような感じです。

f:id:sugimomoto:20170903165708p:plain

環境

Windows 10 Pro(今更ながらProじゃないと、リモートデスクトップできないんですよね……orz)

ルーター BUFFALO WXR-1900D(もともとはもうちょっと弱いやつ)

フレッツ光マンション

・固定IP GMO固定IPプラン 月額1100円

RDPの許可設定

まずはRDPの許可設定をシステムのプロパティから。

f:id:sugimomoto:20170903165723p:plain

RDPのポート番号変更

続いて、RDPのポート番号を変更しておきます。

一応外部に晒すことになるので、default値ではなく、適当な50001とかにしておきます。

その後、レジストリに登録されている、RDPポート番号を変更します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

の「PortNumber」です。

f:id:sugimomoto:20170903165730p:plain

初期状態が16進数になっているので気をつけましょう。10進数にして入力しておきます。

f:id:sugimomoto:20170903165737p:plain

ファイアウォールから受信ポートの開放

次にRDPに関連付け直したポート番号のファイアウォール受信規則を開放してあげます。

Windows ファイアウォールから「詳細設定」

f:id:sugimomoto:20170903165744p:plain

「受信の規則」から「新しい規則」を選択

f:id:sugimomoto:20170903165756p:plain

「ポート」を選択して

f:id:sugimomoto:20170903165804p:plain

TCP」の「特定のローカルポート」でさっきRDPに付け替えたPort Numberを入力します。

f:id:sugimomoto:20170903165812p:plain

「接続を許可する」を選択

f:id:sugimomoto:20170903165820p:plain

規則はプライベートでOKみたいです。

f:id:sugimomoto:20170903165828p:plain

適当に名前をつけて、完了。

f:id:sugimomoto:20170903165834p:plain

ルーターへの設定

ここの設定方法はルーターによってまちまちですが、ポート変換というところがあれば、なんとかなると思います。

以下のような感じで、グローバルIPのポートとローカルIPのポートを紐付けます。

f:id:sugimomoto:20170903165840p:plain

試してみる

せっかくなので(?)iPhoneMicrosoft リモート デスクトップアプリで試してみました。

右上の「+」をクリックして

f:id:sugimomoto:20170903165847p:plain

「PCまたはサーバーの追加」をクリック

f:id:sugimomoto:20170903165854p:plain

ここでPC名に、固定IPアドレスと、先程指定した外向けのポートを設定します。

123.456.789.000:50000という感じですね。

f:id:sugimomoto:20170903165907p:plain

設定は以上で完了。あとは接続する時にユーザー情報を入力すればー

以下のように接続できました!! いえい!

f:id:sugimomoto:20170903165929p:plain

所感

そういえば、このときは内部用のPort Number と外部向けのPort Numberを別にしているんですが、

今思えば、別にする必要もなかったかなぁと。

むしろRDPのPort Numberをそのままにして、ポートアドレス変換のほうだけ、50000番とかでよかったんでは? と思ったり。

そうすれば、レジストリの変更から、ファイアウォールの開放まえ、必要なくない? とかゴニョゴニョ。

まあ、今はVPNで繋がるからいいんですけどね!

参考

以下の記事を大変参考にさせていただきました!

http://mikan.lunarscape.net/2016/01/post-2125.html