パソコンのリモート操作環境構築

はじめに

自宅サーバーを立ち上げてから本番機は24時間稼働しており,開発・テスト機もほぼ24時間稼働させている。このところの電気代の値上がりに伴い,サーバーの消費電力が気になりだした。せめてテスト機は使用しないときは停止させたい。
外部から必要な時に起動して,作業が終了したら停止させる仕組みを構築した。

アクセス概念図

外部からホスト起動時はVirtual Private Network(VPN)のトンネル内を通ってルーターにアクセスして,カスタムGUIのWOL機能を利用してマジックバケットを起動したいホストに送出する。又は,通常のWEBアクセスにて稼働中ホストの非公開ページに設置のWOL機能を利用して,マジックバケットを起動したいホストに送出する。
LAN内のホストにはVPNを利用してアクセスする。

ツール

1.外部からのアクセスツールはリモートアクセスVPNを利用する。
  ルーターのVPN設定とクライアント(タブレット・スマホ)のVPN設定が必要だ。
  VPNの接続方式にはいくつかあるが,今回はL2TP/IPsecトンネル機能を利用する。

2.サーバー起動のツールはWake On LAN(WOL)によるmagic packetで起動させる。
  (サーバーのLANポートは対応済,BIOSで有効とする)
  稼働中のルーター又はサーバーにWOLの機能を設定する。
(外部からルーター越えで実施する方法もあるがポート開放等セキュリティ面に不安がある)

3.停止は,リーモートデスクトップで行う。
  クライアントにリモートデスクトップのアプリをインストールして,VPN経由でサーバー作業後に通常停止する。

VPN設定

ルーター側VPN設定

ヤマハのホームページにVPNの設定方法が記載されており,難なく設定できた。
今回のVPN機能で追加したconfig内容

#LAN1のインタフェースの設定(LAN)
#
ip lan1 proxyarp on

#PP1のインタフェースの設定(LAN2)
#
 ip pp secure filter in 1090 1091 1092 1093

#L2TP接続の設定
#
pp select anonymous
 pp bind tunnel1-tunnel2
 pp auth request chap-pap
 pp auth username USER1 PASS1
 pp auth username USER2 PASS2
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ip pp remote address pool 192.168.***.***-192.168.***.***
 ip pp mtu 1258
 pp enable anonymous

#L2TP接続のトンネル1設定
#
tunnel select 1
 tunnel encapsulation l2tp
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike keepalive use 1 off
  ipsec ike local address 1 192.168.***.***
  ipsec ike nat-traversal 1 on
  ipsec ike pre-shared-key 1 text SHARED-KEY
  ipsec ike remote address 1 any
 l2tp tunnel disconnect time off
 l2tp keepalive use on 10 3
 l2tp keepalive log on
 l2tp syslog on
 ip tunnel tcp mss limit auto
 tunnel enable 1

#L2TP接続のトンネル2設定
#
tunnel select 2
 tunnel encapsulation l2tp
 ipsec tunnel 102
  ipsec sa policy 102 2 esp aes-cbc sha-hmac
  ipsec ike keepalive use 2 off
  ipsec ike local address 2 192.168.***.***
  ipsec ike nat-traversal 2 on
  ipsec ike pre-shared-key 2 text  SHARED-KEY
  ipsec ike remote address 2 any
 l2tp tunnel disconnect time off
 l2tp keepalive use on 10 3
 l2tp keepalive log on
 l2tp syslog on
 ip tunnel tcp mss limit auto
 tunnel enable 2

#フィルタの設定
#
#静的フィルタの設定
#
ip filter 1090 pass * 192.168.***.*** esp
ip filter 1091 pass * 192.168.***.*** * 500
ip filter 1092 pass * 192.168.***.*** * 4500
ip filter 1093 pass * 192.168.***.*** * 1701

#NATの設定
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto

nat descriptor masquerade static 1 20 192.168.***.*** esp
nat descriptor masquerade static 1 21 192.168.***.*** udp 500
nat descriptor masquerade static 1 22 192.168.***.*** udp 4500

#IPsecのトランスポートモード設定
#
ipsec auto refresh on
ipsec transport 1 101 udp 1701
ipsec transport 2 102 udp 1701

#L2TPの設定
#
l2tp service on

VPN追加設定(ルーター越え)

上記ヤマハHPのVPN設定例では,通常のインターネット接続環境に追加設定した場合は,ルーター越えは出来ない。
通常の拠点間VPNの場合は主にプライベート回線のみであるためPP1のフイルターのみ指定してLAN1・LAN3のフイルター指定は無いのでLAN内にパケットが送られる。今回は一般のインターネット回線との併用の為,上記設定ではLAN1・LAN3のフイルターで弾かれてVPNパケットはルーター内に留まる。ただしルーターのIPアドレス指定で管理画面には入れるので,ルーターのメンテやカスタムGUIによるWOL機能へのアクセスには問題ない。
LANに接続するホストへのアクセスを行うには,VPNの設定はLAN1にマッピングしており,クライアントにもLAN1のIPアドレスを付与しているので,LAN1側にVPNパケットを通す設定を追加で行う必要がある。
config設定内でL2TP接続セクションの「ip pp remote address pool 192.168.***.***-192.168.***.***」で指定したIPアドレスからのパケットをPASSさせる。リモートデスクトップのパケットのみ通過させる場合はポート:3389を指定する。このフィルターを指定しても,VPNを使用しない一般のアクセスではPP1のINフィルターでrejectしているので,VPN経由からのパケットのみ対象となる。

ip lan1 secure filter out 1094 2000
#VPNパケット ALL PASS
ip filter 1094 pass 192.168.***.***-192.168.***.*** * * * *
## 又は
#VPNパケット リモートデスクトップ ポート3389
ip filter 1094 pass 192.168.***.***-192.168.***.*** * TCP * 3389
#上記以外は遮断
ip filter 2000 reject * * * * *

#3又は#6のいずれかを指定 

クライアント側VPN設定

スマホのVPNは機能があらかじめ入っているので,設定のみでOK
ヤマハのHPに設定方法が記載されていたので,参考にした。

リモートデスクトップアプリインストール

スマホにリモートデスクトップアブリをインストールした。
マイクロソフトの「Remote Desktop」を入れてみたが,使いづらい。緊急時に使用する想定では良いのかも。Chrome リモート デスクトップもあるのでしばらく使ってみたい。