Windows10やスマホから、L2TP/IPSecによるリモートアクセスVPNを行うためのヤマハRTXルーターのCUI設定方法
2018/05/14
本エントリーの目次
外出先からWindows 10やスマホを使って内部ネットワークにアクセスしたい!
外出先で資料を忘れていることに気付いたなどの理由から、Windows 10やスマホを使って自宅や社内の内部ネットワークにアクセスしたい!
また、無料のWi-Fiを安全に使いたい!と思うことがありますよね。
こういったときにおすすめなのが、リモートアクセスVPNの利用です。
適切な設定を行ったリモートアクセスVPNを使えば、内部ネットワークにインターネット回線を通じて安全にアクセス可能となります。
これは内部ネットワークに接続されたL2スイッチに、非常に長い有線LANケーブルで接続したようなイメージと言えば、分かりやすいでしょうか。
今回は、現在法人向けのルーター製品で高いシェアを持っているヤマハさんのルーター製品、RTX1210などに代表されるRTXシリーズのルーターでの、リモートアクセスVPNのCUI設定例をご紹介しますので、興味がある方はぜひ設定・構築を試してみてください!
標準機能を使ったL2TP/IPSecを使ったリモートアクセスVPNをご紹介します!
これからご紹介するのは、ヤマハさんのRTXシリーズのルーター製品に対するL2TP/IPSecを使ったリモートアクセスVPNの構成方法です。
リモートアクセスVPNを実現する方法はいくつかあります。
ですが、RTXルーターとWindows 10・スマホ(Android・iOS)間のリモートアクセスVPNをそれぞれの標準機能※で実現する場合、現在はL2TP/IPSecを使うことが多いです。
※ルーターやOSに最初から搭載されている機能のこと
したがって今回は、L2TP/IPSecを使ったリモートアクセスVPNの構成方法をご紹介します。
尚、L2TP/IPSecを使ったリモートアクセスVPNであれば、先にも少しふれましたがWindows 10やAndroid OS、iOSに標準搭載された機能のみで実現可能です。
そのためRTXルーターとWindows 10やスマホを持っていれば、それぞれに適切な設定を行うだけですぐに使えます。
そして標準機能のみで実現しているわけですから、もちろん追加料金を必要とせずに利用可能です。
ただヤマハさんでは、RTXルーターとWindows 10の標準機能によるVPN接続はサポート対象外。
対してAndroid OSやiOSについては、標準機能によるVPN接続をサポートするという立場を取っています。(ヤマハさんに以前に確認済み。)
はるるが以前に確認した範囲では、Windows 10の標準機能でも正常に動作することを確認しており、問題は起きていません。
ですが一応サポート対象外であり、仮に何か問題が起きたとしても、ヤマハさんはサポートに応じてはくれない旨、あらかじめご了承ください。
こういった事情により、Windows 10から拠点に設置されたRTXルーターに対して、L2TP/IPSecを使ったリモートアクセスVPNを法人利用したい場合には、後述のヤマハさんのリモートアクセスVPNクライアント製品を使うと良いでしょう。
L2TP/IPSecを使ったリモートアクセスVPNの構成について
今回ご紹介するL2TP/IPSecを使ったリモートアクセスVPNの構成を図示したものがこちら。
茶色い四角で囲ったエリアが、インターネット接続が可能な一般的な内部ネットワークの概要図。
通常内部ネットワークに存在するサーバーに対しては、同じ内部ネットワークに属するデバイスからのみアクセス可能ですよね。
ところがL2TP/IPSecを使ったリモートアクセスVPNを構成することで、外部ネットワークに存在するスマホやノートPCからも、物理的な内部ネットワークにアクセス可能なように、仮想的な内部ネットワークが構成されます。
図中黄色い線で示した経路がL2TP/IPSecによる暗号化されたトンネリング経路となります。
これにより、物理的には外部ネットワークに接続されているスマホやノートPCであっても、暗号化されたトンネリング経路を使って物理的な内部ネットワークとパケットのやり取りをすることができ、その結果仮想的に内部ネットワークに接続しています。
尚、スマホのWi-Fiテザリング経由でL2TP/IPSecによる内部ネットワークへのアクセスを行うケースでは、スマホ・ノートPC間をWi-Fiで接続。
そしてノートPC上でL2TP/IPSecの設定を行い、VPN接続を開始します。
RTXルーターの設定方法を説明するにあたっての前提事項
リモートアクセスVPNの設定にあたっては、以下前提で説明を行います。
- 既にRTXルーターにNATやip filterなどの適切な設定を行い、内部ネットワークからインターネットへのアクセスが正常にできている。
- LAN1インターフェースに内部ネットワークを接続している。
- LAN2インターフェースにPPインターフェースを割り当ててPPPOE接続をしているか、LAN2インターフェースに回線業者から割り当てられたIPアドレスを設定して、外部ネットワークと通信をしている。
- 内部ネットワークは192.168.200.0/24とし、LAN1インターフェースのIPアドレスは192.168.200.1。
192.168.200.101-192.168.200.200/24をDHCPの割り当て範囲と設定。
192.168.200.201-192.168.200.254までを固定IPの範囲とする。 - リモートアクセスVPNで同時に接続可能なデバイスを5ユーザー(5台)としuser1~5、パスワードはpasswordと設定する。
(L2TPトンネルが5つ必要。) - リモートアクセスVPNで接続したデバイスに割り当てるIPアドレスの範囲は、192.168.200.51-192.168.200.55/24とする。
- IPSecの事前共有鍵(pre-shared key)はharuruとする。
L2TP/IPSecを使ったリモートアクセスVPN実現のためのRTXルーターの設定方法
L2TP/IPSecを使ったリモートアクセスVPN実現のためのRTXルーターの設定は、以下のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #------------------------------------------------------------ #代理ARPの設定 #------------------------------------------------------------ ip lan1 proxyarp on #------------------------------------------------------------ #NATの設定 #------------------------------------------------------------ #VPN(IPsec)に関係するパケットを通過させる設定 nat descriptor masquerade static 1 1 192.168.200.1 udp 500 #VPN(IPsec:NATトラバーサル機能を使用時)に関係するパケットを通過させる設定 nat descriptor masquerade static 1 2 192.168.200.1 udp 4500 #VPN(IPsec)に関係するパケットを通過させる設定 nat descriptor masquerade static 1 3 192.168.200.1 esp #------------------------------------------------------------ #相手先情報番号(anonymous)の設定 #------------------------------------------------------------ pp select anonymous pp bind tunnel1-tunnel5 pp auth request chap #接続ユーザーの定義 pp auth username user1 password pp auth username user2 password pp auth username user3 password pp auth username user4 password pp auth username user5 password ppp ipcp ipaddress on ppp ipcp msext on #リモートアクセスVPNで接続したデバイスに割り当てるIPアドレスの範囲を定義 ip pp remote address pool 192.168.200.51-192.168.200.55 ppp ccp type stac ip pp mtu 1258 pp enable anonymous #------------------------------------------------------------ #L2TP tunnelインターフェースの設定 #------------------------------------------------------------ l2tp service on tunnel select 1 #tunnel templateによりtunnelインターフェース1の設定を、tunnelインターフェース2~5に展開・複製する。 tunnel template 2-5 tunnel encapsulation l2tp ipsec tunnel 1 ipsec sa policy 1 1 esp aes256-cbc sha-hmac ipsec ike keepalive use 1 on dpd ipsec ike local address 1 192.168.200.1 ipsec ike nat-traversal 1 on ipsec ike pre-shared-key 1 text haruru ipsec ike retry 3 5 ipsec ike remote address 1 any ipsec auto refresh on l2tp tunnel disconnect time off l2tp keepalive use on 10 3 l2tp keepalive log off ip tunnel tcp mss limit auto tunnel enable 1 ipsec transport 1 1 udp 1701 ipsec transport template 1 2-5 #-------------------------------------------------- #tunnel templateで展開・複製できないため、個別設定 #-------------------------------------------------- tunnel select 2 ip tunnel tcp mss limit auto tunnel select 3 ip tunnel tcp mss limit auto tunnel select 4 ip tunnel tcp mss limit auto tunnel select 5 ip tunnel tcp mss limit auto #------------------------------------------------------------ #ip filterの設定 #------------------------------------------------------------ #VPN(IPsec)に関係するパケットを通過させる設定 ip filter XXXXXX pass * 192.168.200.1 esp * * #VPN(IPsec)に関係するパケットを通過させる設定 ip filter XXXXXX pass * 192.168.200.1 udp * 500 #VPN(IPsec:NATトラバーサル機能を使用時)に関係するパケットを通過させる設定 ip filter XXXXXX pass * 192.168.200.1 udp * 4500 #ip filterは外部ネットワークへの接続に使用しているPPインターフェース、またはLAN2インターフェースのINフィルターに適用してください。 |
ipsec ike retryコマンドは、鍵交換のパケットが相手に届かないときに実施する再送の回数と間隔を設定するものです。
初期設定では再送回数が10、再送間隔が5秒となっていますが、上記設定では脆弱性による影響を減らすため再送回数を3、再送間隔を5秒としています。
IKE/IKEv2プロトコルには、その仕様に基づくDOS攻撃に悪用される脆弱性があり、踏み台にされた場合でもターゲットへの影響を少なくするために、再送回数を少なく設定しています。
ただ本設定を行うことで、不安定なネットワーク回線では接続維持性が低下するので、環境に合わせて設定を行ってください。
参考:
「IKE/IKEv2プロトコルがDOS攻撃に悪用される脆弱性」について
JVNVU#91475438 Internet Key Exchange (IKEv1, IKEv2) が DoS 攻撃の踏み台として使用される問題
尚、上記設定はヤマハさんのRTXシリーズのルーター(RTX5000、RTX3500、RTX1210、RTX830など)であれば、その多くで共通して設定可能です。
しかし製品によってL2TP/IPsec VPN対地数が異なるため、製品それぞれの最大対地数を超えないようにトンネルインターフェースの設定を行ってください。
Windows 10の設定について
Windows 10は初期設定ではNAT トラバーサルが無効となっており、RTXルーターとのL2TP/IPSecを使ったリモートアクセスVPN接続ができないことがあります。
そのためレジストリエティターで以下の値を設定してからPCを再起動し、NAT トラバーサルを有効にしてください。
- キー名:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
- 値の名前:AssumeUDPEncapsulationContextOnSendRule
- 値の種類:REG_DWORD / DWORD(32ビット)
- 値のデータ:2
レジストリエディターでの設定が面倒な場合には、PowerShellを管理者権限で起動し、キー追加コマンドを実行してください。
1 | reg add HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 2 |
尚、値の意味は以下のとおりです。
- 0 (ゼロ) の値は、NAT デバイスの背後に配置されているサーバーとのセキュリティ アソシエーションを確立できないように Windows を構成します。
これは、既定値です。- 1 の値は、NAT デバイスの背後に配置されているサーバーとのセキュリティ アソシエーションを確立できるように Windows を構成します。
- 2 の値は、サーバーと Windows Vista ベースまたは Windows Server 2008 ベースの VPN クライアント コンピューターの両方が NAT デバイスの背後にいるときにセキュリティ アソシエーションを確立できるように Windows を構成します。
(Microsoft – Windows Vista および Windows Server 2008 で NAT-T デバイスの背後に L2TP/IPsec サーバーを構成する方法より引用)
PCの再起動が終わったら、Windowsキー押下 → 設定 → ネットワークとインターネット → VPNと選択し、『VPN接続を追加する』をクリックします。
設定画面では以下項目を設定します。
- Windows(ビルトイン)
- 接続名:任意のVPN接続識別用の名前を設定
- サーバー名またはアドレス:VPNサーバーのサーバー名やIPアドレスを指定
- VPNの種類:事前共有キーを使ったL2TP/IPSecを選択
- 事前共有キー:ipsec ike pre-shared-key 1 textコマンドで設定した事前共有キーを指定
- サインイン情報の種類:ユーザー名とパスワードを選択
- ユーザー名:pp auth usernameコマンドで設定したユーザー名を指定
- パスワード:pp auth usernameコマンドで設定したパスワードを指定
次に『Windows』キーと『R』キーを同時に押下し、『ncpa.cpl』と入力後に『Enter』キーを押下。
表示された設定画面で追加したVPN接続のプロパティーを開きます。
そしてセキュリティータブで以下の内容を設定してください。
- データの暗号化:『最強の暗号化(サーバーが拒否する場合は切断します)』を選択
- 『次のプロトコルを許可する』を選択
- チャレンジ ハンドシェイク認証プロトコル(CHAP)にチェックを入れる
あとはVPNの画面で接続を実行すれば、L2TP/IPSecを使ったリモートアクセスVPN接続が行われます。
Androidスマホの設定について
AndroidスマホでL2TP/IPSecを使ったリモートアクセスVPNを行う場合には、設定 → VPNと選択し、画面右上の『+』ボタンをタップ。
表示された設定画面で以下項目を設定します。
- 名前:任意のVPN接続識別用の名前を設定
- タイプ:L2TP/IPSec PSKを選択
- サーバーアドレス:VPNサーバーのサーバー名やIPアドレスを指定
- IPSec事前共有鍵:ipsec ike pre-shared-key 1 textコマンドで設定した事前共有キーを指定
- ユーザー名:pp auth usernameコマンドで設定したユーザー名を指定
- パスワード:pp auth usernameコマンドで設定したパスワードを指定
基本的な設定内容はWindows 10と同じで、VPN識別用の名称とサーバーアドレス、事前共有キー、ユーザー名、パスワードです。
認証アルゴリズムにHMAC-SHA2-256を使用したい場合の設定例
本エントリー執筆時点のWindows 10では、認証アルゴリズムにHMAC-SHA2-256を使う場合、追加の設定が必要となります。
そのため先の説明では、認証アルゴリズムにHMAC-SHA-1を使用した例をご紹介しています。
認証アルゴリズムにHMAC-SHA2-256を使いたい場合は、以下の手順で設定を変更してください。
まずはHMAC-SHA2-256を使用するよう、RTXルーターの設定を変更します。
1 2 3 4 | #変更前(認証アルゴリズムにHMAC-SHA-1を使用) ipsec sa policy 1 1 esp aes256-cbc sha-hmac #変更後(認証アルゴリズムにHMAC-SHA2-256を使用) ipsec sa policy 1 1 esp aes256-cbc sha256-hmac |
次にWindowsのVPNコネクションのIPSecの設定を、PowerShellのSet-VpnConnectionIPsecConfigurationコマンドレットを使って変更します。
VPNの名前には、先ほど『接続名』として入力した文字列を指定します。
1 | Set-VpnConnectionIPsecConfiguration -ConnectionName "VPNの名前" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 -DHGroup Group14 -Force |
本コマンドレットで指定する『PfsGroup』や『DHGroup』などの各パラメーターは、RTXルーターの設定値と同じものとなるように指定してください。
Set-VpnConnectionIPsecConfigurationコマンドレットで設定した値は、以下コマンドを実行することで確認可能です。
1 | (Get-VpnConnection -ConnectionName "VPNの名前").IPSecCustomPolicy |
以上の設定変更により、Windows 10のPCに対してAES256-CBC + HMAC-SHA2-256の組み合わせで接続できるようになるはずです。
尚、Set-VpnConnectionIPsecConfigurationコマンドレットで設定した値を初期値に戻したいときは、RevertToDefaultパラメーターを使用して再設定を行います。
1 | Set-VpnConnectionIPsecConfiguration -ConnectionName "VPNの名前" -RevertToDefault -Force |
AuthenticationTransformConstantsについて
Set-VpnConnectionIPsecConfigurationコマンドレットのAuthenticationTransformConstantsパラメーターについて、Microsoftさんの解説を見ると以下のように記載されており、ESPを使用する場合はNoneとするような印象を受けます。(AHを使う場合のみ指定。)
Specifies authentication header (AH) transform in the IPsec policy.
日本語にすると『IPsecポリシーの認証ヘッダー(AH)変換を指定します。』というような意味でしょうか。
また上記ページの下部に掲載されていたL2TP/IPSecの設定サンプルでも、AuthenticationTransformConstantsにはNoneが指定されていました。
ですが本エントリー執筆時点のWindows 10とRTXルーターの組み合わせでは、AuthenticationTransformConstantsがNoneの状態では正常に接続することができなかったため、SHA256128を指定しています。
ヤマハさんのリモートアクセスVPNクライアント製品について
冒頭にも書いたとおり、RTXルーターとWindows 10の標準機能によるVPN接続はサポート対象外とされています。
そのためWindows 10から拠点に設置されたRTXルーターに対して、L2TP/IPSecを使ったリモートアクセスVPNを法人利用したい場合には、ヤマハさんのリモートアクセスVPNクライアント製品を使うと良いでしょう。
ヤマハ VPNクライアントソフトウェア YMS-VPN8
10ライセンス版のヤマハ VPNクライアントソフトウェア YMS-VPN8-LP10
これら製品を使っていれば、ヤマハさんのサポートを受けられるので、法人利用する場合にも安心です。
YMS-VPN8はシンプルなVPNクライアントソフトウェア。
そのため操作はとっても簡単で、Windows 10の標準VPNクライアントと同じ内容を設定するだけでOKです!
以下リンクから評価・製品版をダウンロード可能なので、まずは評価版を使ってみると良いでしょう。
VPNクライアントソフトウェア「YMS-VPN8」(お試し版/製品版共通)
以上、参考になさってくださーい!