今やスマートフォンやタブレットは一人に一台という勢いで普及しています。どこにいても情報を見ることができる便利さは、一度使うと手放せません。そんなスマートフォンやタブレットを使って、自宅や職場のシステムへ安全に接続したいと思ったことはありませんか。パソコンだとVPNを利用して、自宅や職場にあるシステムへ接続できますが、実はスマートフォン(タブレット)でも同じことができます。iPhoneやiPad、Androidも安全にリモート接続するための機能、VPN(Virtual Private Network)接続機能が実装されていますので、職場や自宅でVPNに対応した機器があり、適切に設定されていれば、安全にリモート接続できます。
※VPNでは通信内容は暗号化されますので、スニッファされても大丈夫です。
今回はヤマハのブロードバンドルーター、RTX1200を利用してVPNを設定してみました。既にRTX1200を導入しているところも多いので、そういう場合は設定を追加するだけで、安全な接続環境ができあがります。
※ヤマハのラインアップでRTX1200よりも安価なRTX810でも同じ設定が可能ですが、RTX810の場合、同時接続数が6セッションとかなり少ないところは注意が必要です。この設定で、外出先からiPadやiPhone、Androidでリモートデスクトップを利用したり、ファイルを閲覧したりできます。(iPad/iPhoneの場合、File Explorerをお勧めしています。)
※本記事のiPhone向け設定は基本的にipadと共通です。
1. PPTPでの接続を検討する
外部からの接続方法として、まずはリモートVPNとして実装が簡単な、PPTPを設定することを検討しました。PPTPは設定が容易で、比較的簡単に導入が可能です。RTX1200はもちろんPPTPに対応しています。早速、RTXにPPTP用設定を追加してテストを行います。尚、設定は全てGUIを利用せず、コマンドで行っています。
1-1. PPTPを導入するネットワーク環境
以下がVPNを実装するためのネットワーク環境です。
- インターフェイスはlan1がローカルネットワーク
- lan2がwan側です。wan側は固定のIPを取得しており、PPPoEは利用していません。
- lan1のローカルネットワークは 192.168.20.254/24を設定している。
1-2. PPTP接続設定
まずはRTX1200(1210)へログインし、PPTPサーバの設定を行います。
descriptionは任意の名前となります。
auth usernameは仮にtestuserとして、パスワードは任意のものを設定します。
pp bind tunnel100は手順1-2.で設定するトンネル番号を入力します。
pp select anonymous
description pp PPTP_SERVER
pp bind tunnel100
pp auth request mschap
pp auth username testuser * ← アカウント名とパスワード
ppp ipcp ipaddress on
ppp ipcp msext on
ppp ccp type mppe-any
ip pp remote address pool 192.168.20.*** ← 接続ホストに付与するIP
ip pp mtu 1280
pptp service type server
pp enable anonymous
1-3. PPTP用VPNトンネル設定
次にVPNトンネルの定義を行います。
tunnel select 100
description tunnel PPTP_TUNNEL
tunnel encapsulation pptp
pptp tunnel disconnect time 300
tunnel enable 100
tunnel番号は1-2.で設定した番号です。
descriptionは説明ですので、任意になります。
1-4. IPフィルタの設定
外部に対してPPTP接続を許可するために、IPフィルタをオープンします。
lan2が外部のインターフェイスです。
ip lan2 secure filter in 61 62 63 64
ip filter 61 pass * 192.168.20.254 udp * 500
ip filter 62 pass * 192.168.20.254 esp
ip filter 63 pass * * gre
ip filter 64 pass * 192.168.20.254 tcp * 1723
※filterは追加した部分のみ記載しています。filter番号は環境に合わせて読み替えてください。
1-5. natの設定
PPTPで利用するポートを外部に公開するためにNAT設定を行います。
nat descriptor masquerade static 1 14 192.168.20.254 udp 500
nat descriptor masquerade static 1 16 192.168.20.254 esp
nat descriptor masquerade static 1 18 192.168.20.254 tcp 1723
nat descriptor masquerade static 1 19 192.168.20.254 gre
1-6. PPTPサービスの有効化
PPTPサーバを起動します。
pptp service on
ここまででRTX側のPPTP設定は完了です。
2. PPTPでiPhoneとAndroidから接続テストを実行
2-1. iPhoneからの接続テスト
自分自身がiPhoneを利用していますので、iPhoneからVPN設定を追加してテストをしてみます。
iOSは6です。
[設定][一般][VPN][VPN構成を追加]をクリックして、PPTPボタンから
サーバ:RTXのwan側IPアドレスか、ホスト名
アカウント名:手順1-2.で設定したユーザー名
パスワード:手順1-2.で設定したパスワード
を入力します。
入力後 [保存] で設定を保存します。
保存すると、VPNの画面に戻りますので、VPNを[オフ]から[オン]にします。
少し時間が掛かりますが、VPN接続が完了すると、上部にVPNと表示されます。
iPhoneでPPTPによるVPN接続が確認できました。
導通も問題ありません。
2-2. Andoroidからの接続テスト
Androidからもテストをしてみます。Android OSバージョンは4.0で通信はLTEです。
Androidが手元にないので、詳細な接続手順は割愛します。LTE経由でiPhoneと同様に設定し、接続を行いました。結果はNG、まったく接続できません。
ログを確認すると、VPNを張ろうとAndroid側からセッションが始まりますが、その後、タイムアウトで切断されてしまいます。
テストで、回線契約のないAndroidからwifi経由で接続してみます。これは全く問題ありません。
こうなると原因はLTEの回線側にあるように思えます。
LTEとPPTPについて調べてみると、いくつか情報がでてきました。
どうも、LTE回線はPPTP接続で利用するGREプロトコルがフィルタされているようです。
こうなるとGREを利用しないVPN、L2TP IPSecを設定するしかありません。
このような経緯でPPTPからL2TPを設定を変更することになったのでした。
3. L2TP IPSecの設定
RTX側の設定をPPTPからl2tpへ変更します。
3-1. L2TP IPSecの設定
L2TPの設定を行います。設定内容はPPTP設定時と殆ど同じになります。
descriptionは任意です。
pp bind tunnel(番号)の番号部分は後程、定義の追加時に必要となります。
pp select anonymous
description pp L2TP_SERVER
pp bind tunnel30
pp auth request mschap
pp auth username testuser * ← アカウント名とパスワード
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp remote address 192.168.20.* ← 付与するIP
ip pp mtu 1258
pp enable anonymous
3-2. ipsec tunnelの設定
トンネルの定義を行います。
ここで利用する番号は3-1.で設定した番号になります。
pre-shared-key は任意のフレーズを入力します。
これは忘れないようにメモをしておきます。
tunnel select 30
tunnel encapsulation l2tp
ipsec tunnel 130
ipsec sa policy 130 30 esp aes-cbc sha-hmac
ipsec ike keepalive use 30 off
ipsec ike local address 30 192.168.20.254
ipsec ike nat-traversal 30 on
ipsec ike pre-shared-key 30 * ← シークレットを入力します
ipsec ike remote address 30 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 30
3-3. filterの解放
L2TP接続を許可するためのipフィルタを追加します。
ip lan2 secure filter in 61 62 65 66
ip filter 61 pass * 192.168.20.254 udp * 500
ip filter 62 pass * 192.168.20.254 esp
ip filter 65 pass * 192.168.20.254 udp * 1701
ip filter 66 pass * 192.168.20.254 udp * 4500
※filterを追加した部分だけ記載しています。filter番号は環境により適宜変更してください。
3-4. NAT設定 (L2TP用)
L2TPで利用するポートをNATして外部へ公開します。
nat descriptor masquerade static 1 14 192.168.0.254 udp 500
nat descriptor masquerade static 1 16 192.168.0.254 esp
nat descriptor masquerade static 1 20 192.168.0.254 udp 4500
3-5. NAT traversal設定
NAT以下にあるクライアントから、接続を行うためにNAT traversal設定を追加します。
ipsec auto refresh on
ipsec transport 1 130 udp 1701
3-6. L2TPサーバの有効化
L2TPサーバを起動するために、以下のコマンドを入力します。
l2tp servivce on
これで設定は完了です。
必要に応じて、設定を保存します。
save
これで設定は完了します。
通常はコマンドを投入した時点で、機能は有効になるので、接続確認が終わるまでsaveは行わないことが多いんですが。。
4. iPhoneとAndroidからの接続テスト
4-1. L2TP IPSecを利用したiPhoneのVPN接続テスト
iPhoneでL2TP IPSecの設定を行います。
基本的な設定は同じですが、L2TPを選択することと、シークレットとしてpre-shared-keyパラメータに設定した内容を
入力します。
VPNをオンにすると、接続します。
L2TP IPSecで問題なく接続できました。
4-2. L2TP IPSecを利用したAndroidのVPN接続テスト
手元にAndoridが無いので、設定手順は割愛しますが、問題なく動作しました。
基本的な設定はiPhoneと同じです。
L2TP IPSecではgreを利用していないので、接続できます。やはりgreがフィルタされているようです。
5. RTX1200でのnat traversalについて
この設定はRTX1200を利用していますが、一部のRTX1200ではL2TPを利用できません。
一部のRTXというのはファームウェア、10.01.36以下を利用しているRTX1200です。
RTXでは10.01.36のファームウェアからNAT traversalに対応しており、L2TP IPSecをNAT配下から行うためにはNAT traversalが必須なためです。
iPhoneやAndroidの公衆網は直接グローバルIPを割り振らず、ローカルIPを割り当てます。
その為、3G/4G回線やLTE回線で接続すると、NAT環境になってしまい、結果としてNAT traversal無しではVPNがつながりません。この問題を回避するために10.01.36以下のファームウェアを利用しているRTXはこの設定を行う前にファームウェアをアップデートしてください。
RTXのファームウェアアップデート手順は
-
ヤマハのRTX1210で復旧できるようにファームウェアアップデートを実行する
ヤマハのVPNルーターRTX1210(RTX1200を含む)は弊社でもよく利用するルーターです。中小企業向けのブロードバンドルーターとして弊社では導入実績も多数あります。そんなオススメのルーターRTX1210 (RTX1200)ですが、購入 ...
で紹介しています。是非、併せて参照下さい。