new wings

プログラミングを始めたので、感想を書いてくと思います

VPN とリモートデスクトップ


追記

Norton が動いてファイアウォール関係の設定が変わったのか、VPN 経由でのリモートデスクトップができなくなった。 Windows セキュリティの「ファイアウォールとネットワーク保護」で「ファイアウォールを規定値に復元する」を実行してから再び許可されたアプリの設定を行ったところ、接続できるようになった。ただ、以前はコンピュータ名で接続できていたが IP アドレスでしか接続できなくなった。=> NetBIOS?

【Windows 10対応】Windowsでホスト名からIPアドレスを見つける方法:Tech TIPS - @IT

pingもはじかれるようになっていたので許可した。 受信の規則 > ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)規則を有効化
参考:Windows10のping応答の設定


備忘録、Synology の NAS は便利

よくわかっていないので以下では NASVPN サーバーを同一視しています。VPN サーバー自体は外部にあるかも?

自宅の LAN 内だけでリモートデスクトップをするなら VPNNAS は不要のはず。

やったこと

構成

  • NASVPN サーバー ( Synology の DiskStation, VPS サーバーに対応している機種 )
  • ルーター ( おそらくなんでもいいはず )
  • PC ( リモートで操作される側, Windows 10 pro 以上必須, home は不可 )
  • iPhone ( リモートで操作する側, 今回は動作検証で iPhone を使用しただけで端末は何でもいい。iPad が欲しくなった )

f:id:namaharumaki:20190218221520p:plain
図 1. ネットワークの構成

できたこと

VPN を利用すると iPhone は何かしらのインターネット網 ( 4G 回線や出先の WiFi 利用時、公衆 WiFi 等 ) を通して自宅の LAN 内のデバイスにアクセスできるようになる。( 正確な表現ではないと思うが、同じ LAN 内にあるかのように振舞える )

f:id:namaharumaki:20190218221806j:plain
図 2. VPN に接続した iPhone

PC が同じ LAN 内にだけリモートデスクトップの接続を許可をしている状態でも iPhone は同じ LAN 内にあるように振舞えるので iPhoneリモートデスクトップが可能になる。

f:id:namaharumaki:20190218221857p:plain
図 3. 出先から自宅の LAN 内にアクセスできる

リモートデスクトップをしているときの iPhone のスクショ。通信量が多いようなので 4G 回線でやるのは非推奨。

f:id:namaharumaki:20190218221928p:plain
図 4. iPhonePowershell ( 特に意味はない )

以下、設定方法

設定方法

設定が必要なもの

  1. NAS
  2. PC
  3. iPhone

NAS の設定

主に三種類の設定をする。

たくさん記事があるのでそちら参照。
オススメ:Synology DS218j で VPN を構築する - Qiita
VPN にはいくつか種類があるが、ここでは「L2TP/IPsec」を使う。

DDNSの設定

f:id:namaharumaki:20190218222008p:plain
図 5. DDNS の設定

ルーターの設定

f:id:namaharumaki:20190218222042p:plain
図 6. ルーターの設定

少しつまずくかもしれない。あまり理解していないので解説できない。1701 はデフォルトではカスタムで設定したような気がする。失念。これを晒していいのかすらよくわからない。

VPN サーバーの設定

設定項目の意味については VPN Server の設定 | Synology Inc.L2TP/IPSec を参照。ほぼデフォルトで良い。リンク先で下記注意書きがある。

指定した VPN のダイナミック IP アドレスと、VPN クライアント用に割り当てたバーチャル IP アドレスが、LAN 内で現在使用されている IP アドレスと競合しないように注意してください。

これは、図 1. でいうところの 192.168.100.xxx と下図のダイナミック IP アドレスが重複しないようにするという意味。下図のダイナミック IP アドレスはデフォルトで 10.2.0.0 となっていて、10.2.0.xxx と被らないようにする必要がある。

補足:このダイナミック IP アドレスは仮想的なネットワーク内の IP アドレスの役割を持つらしい。知らなくても問題ない。( たぶんこれ、VPN オンラインマニュアル - 3.7 仮想 NAT および仮想 DHCP サーバー )

f:id:namaharumaki:20190218222107p:plain
図 7. VPN サーバーの設定

PC の設定

重要: Windows のサインインに PIN を利用しているとリモートデスクトップができません。パスワードでサインインするように変更してください。 Windows Hello については環境がないのでわかりません。

リモートデスクトップを有効にする

たくさん記事があるのでそちら参照。
オススメ:Windows 10でリモートデスクトップ接続を許可する方法:Tech TIPS - @IT
本人だけで利用する限り「ユーザーの追加」、「グループポリシーの設定」は特別する必要はない。

ファイアウォール経由の通信を許可する

コントロールパネル > Windows Defender ファイアウォール > Windows Defender ファイアウォールを介したアプリまたは機能を許可

または

Windows セキュリティ > ファイアウォールとネットワーク保護 > ファイアウォールによるアプリケーションの許可

から許可されたアプリの設定画面に移行して、リモートデスクトップの項目にチェックを入れる。プライベートだけで良い? また、環境によると思われるが「リモートデスクトップ(WebSocket)」と「ルーティングによるリモートアクセス」はチェック不要。

リモートデスクトップで操作できるデバイスを制限する ( しなくても可 )

管理ツールから「セキュリティが強化された Windows Defender ファイアーウォール」を開き、受信の規則「リモートデスクトップ - ユーザーモード(TCP 受信)」のプロパティを変更する。
プロパティを開いてスコープのリモート IP アドレスの「これらの IP アドレス」にチェックを入れて LAN 内の IP アドレスを入力する。

「これらの IP アドレス」には図 1. の 192.168.100.1 や 192.168.100.2 のように 192.168.100.xxx と入力する。このように入力すると、リモート操作される側の PC とリモート操作する側のデバイスが同じ LAN 内にあるときに VPN とは関係なしにリモートデスクトップをすることができる。
一方、VPN 経由のみでリモートデスクトップを許可するなら NAS の IP アドレス 192.168.100.2 だけ入力すれば良い。NASVPN サーバーとして仮想的なネットワークの IP アドレス ( 図 7. のダイナミック IP アドレス ) も持っているがそちらではない。

f:id:namaharumaki:20190218222146p:plain
図 8.

f:id:namaharumaki:20190218222241p:plain
図 9.

f:id:namaharumaki:20190218222336p:plain
図 10.

f:id:namaharumaki:20190218222432p:plain
図 11.

iPhone の設定

VPN の構成を追加する

設定 > 一般 > VPN 構成を追加 ... を選択する。

f:id:namaharumaki:20190218222448j:plain
図 12. iPhoneVPN の構成を設定する

  • 「タイプ」を L2TP にする
  • 「説明」はなんでもいい
  • 「サーバ」は図 5. の「ホスト名」を入力する
  • 「アカウント」は図 13. NAS のホーム画面を開くときのユーザー名
  • 「パスワード」は図 13. NAS のホーム画面を開くときのパスワード
  • 「シークレット」は図 7. VPN サーバーの設定の「あらかじめ共有したキー」
  • その他はデフォルト

f:id:namaharumaki:20190218222542p:plain
図 13. NAS のホーム画面

Microsoft リモート デスクトップをインストールする。

f:id:namaharumaki:20190218222601j:plain
図 14. RD Client に PC を新規追加

  • 「PC 名」は PC の名前を入力する ( Windows の設定 > システム > バージョン情報 > デバイスの設定 > デバイス名 ), 図 1. でいうところの 192.168.100.3 でもいいが自動割り当てにしているなら PC 名のほうがいい
  • 「ユーザーアカウント」には Windows にサインインするときの Microsoft アカウントを使う ( Microsoft アカウントがない場合は不明 )

ここまで設定したら iPhoneVPN に接続して RD Client で今追加した PC を選択すれば良い。
そもそも、iPhone が PC と同一 LAN 内なら VPN に接続する必要すらない。

参考

ネットワークがどういう経路でつながっているか調べたい

traceroute(tracert) ~ネットワークの経路を調査する:ネットワークコマンドの使い方 - @IT

VPN 関係

WindowsVPN に接続する方法

WindowsL2TP/IPsecVPN の接続をする場合にはレジストリをいじるのは必須のようで、それは NAT 関係の設定を有効化するためのよう。

メモ

  • 図 1. 内に書かれた LAN 内の IP アドレスはルーターが各デバイスに自動で割り振ったもの。
  • バッファロールーターはデフォルトで 192.168.11.1 の IP アドレスが設定されていて、他のデバイスに 192.168.11.xxx の IP アドレスを割り当てる。
  • 図 1. 内では 192.168.100.xxx となっているように、値はべつになんでもいい。
  • IP アドレスを直接指定する場合があるならルーターでの IP アドレス自動割り当てを利用せずに固定の IP アドレスを利用したほうがいい。
  • 10.2.0.xxx と 192.168.100.xxx で通信できるのは レイヤー 3 スイッチのおかげ?