Edited at

RTX1200 で L2TP/IPsec の VPN を構築する


公式のサポートについて

Android や iOS クライアントとの L2TP/IPsec VPN の接続設定については公式に説明がありサポート対象らしいです。

リンク先の説明は古いので適宜読み替える必要はありますが、困るほどでは無いでしょう。

参考: iOSからリモートアクセスする

参考: Androidからリモートアクセスする

Windows での接続はサポート対象外で、ヤマハ公式のクライアントソフトウェアを使えという感じっぽいです。

参考: YMS-VPN8ソフトウェアライセンス版

たくさん情報があるように当然 OS 標準の機能でVPN接続できますので、 OS 標準の機能でやっていきたいと思います。

Mac については専用クライアントソフト含め、特に記述が見つからないですね。。

こちらも同様に OS 標準の機能を使って設定していきます。


ネットボランチについて

ヤマハのルーターではグローバルIPアドレスを割り当てられている場合、

ネットボランチDNSサービスというものを利用できます。

参考: FAQ / ネットボランチDNSサービス

要するにヤマハルーターを使っていれば無料で利用できるDDNSサービスです。

申し訳ないことに私はこのサービスをちゃんと理解していないのですが、ヤマハルーターのWANポートにグローバルIPアドレスが付与されていないとダメという事でしょうか。

私の環境ではグローバルIPアドレスは付与されているものの、ヤマハルーターがNAPT配下にいるためかアドレスを取得できませんでした。

こちらのサービスを利用できる環境の方はこちらのサービスを使うと良いでしょう。

静的グローバルIPアドレスを取得可能な方はそれをそのまま使えば問題無いでしょう。

どちらもダメな場合は別のDDNSサービスを利用しましょう。

この記事上ではサンプルのアドレスとして .netvolante.jp と書きますが、私も別のDDNSサービスを利用しています。

DDNSに関しましては別途調べてください。


ルーター側の設定

慣れている人は始めからコマンドで、不慣れな人ではまずGUIで設定してから部分的にコマンドで変更したり詳細設定していくのが良いと思います。

今回は簡単のため、証明書による認証では無く事前共有鍵による認証で設定します。


GUIでの設定

参考: L2TP/IPsecを使用したリモートアクセス : RTX1200 Web GUI設定

インターネット接続設定ができている場合、「インターネット接続設定」は無視して次に進んで良いでしょう。

ネットボランチを利用する場合、その設定もこちらに書いてあります。

このページはGUIで分かりやすいのでおおよそそのまま従うと良いでしょう。

ただ、「認証鍵(pre-shared key)」は画像では「yamaha」とシンプルなものになっていますが、もうちょっと複雑なものにしておくと良いでしょう。

PPP認証方法は画像で示されている「CHAP-PAP」に設定でも、クライアント側で指定すれば問題ないでしょうが、 PAP はクリアテキストで認証を行うので使わないのが吉でしょう。

CHAPMS-CHAP v2 を選択すると良いでしょう。

参考: PPP / PPPoE の認証(PAP/CHAP)、MS-CHAPv2について


コマンドラインでの設定

参考: ヤマハネットワーク機器の技術資料 - L2TP/IPsec

特に 設定例3: NATトラバーサルを利用したL2TPクライアントの接続を受け付ける場合 を引用します。

インターネット接続設定は こちら で済ませているので「

【経路設定】」「【LAN設定】」「【プロバイダとの接続設定】」は無視します。

pp select anonymous

pp name L2TP
pp bind tunnel1
pp auth request (認証方式)
pp auth username (ユーザーネーム1) (パスワード1)
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp remote address pool 192.168.100.10-192.168.100.20
ip pp mtu 1258
pp enable anonymous

tunnel select 1
tunnel encapsulation l2tp
ipsec tunnel 101
ipsec sa policy 101 1 esp (暗号アルゴリズム) (認証アルゴリズム)
ipsec ike keepalive use 1 off
ipsec ike local address 1 192.168.100.1
ipsec ike nat-traversal 1 on
ipsec ike pre-shared-key 1 text (事前共有鍵)
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

nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.100.1 esp
nat descriptor masquerade static 1 2 192.168.100.1 udp 500
nat descriptor masquerade static 1 3 192.168.100.1 udp 4500

ipsec transport 1 101 udp 1701
ipsec auto refresh on

l2tp service on

pp auth request で指定するのが上のGUIで指摘したPPP認証方法です。

こちらでも chapmschap-v2 を指定すると良いでしょう。

参考: 14.3 要求する認証タイプの設定

ipsec sa policy で選択する暗号アルゴリズムと認証アルゴリズムは強固に超したことはないですが、始めは

暗号アルゴリズムは aes-cbc

認証アルゴリズムは sha-hmac を選択することをおすすめします。

少なくともWindowsでは追加の設定が必要になりますのでまず、 aes-cbc / sha-hmac を選択して、VPNに一通り接続できることを確認してから、 aes256-cbc / sha256-hmac に変更すると良いと思います。

参考: Windows10やスマホから、L2TP/IPSecによるリモートアクセスVPNを行うためのヤマハRTXルーターのCUI設定方法

コマンドのインデントされている部分は上のコマンドを実行してから実行します。

つまり、例えば SA ポリシーを変更したい場合、

# tunnel select 1

tunnel1# ipsec tunnel 101
tunnel1# ipsec sa policy 101 1 esp aes-cbc sha-hmac
tunnel1# no ipsec tunnel
tunnel1# no tunnel select
# save

というように変更します。


クライアント側の設定


Windows クライアントの設定

前述の通り、ヤマハ公式としてはWindowsビルトインのVPNはサポート対象外のようで、公式のクライアントアプリケーション(有料)での使用を推奨しています。

ですが、標準の機能でも接続できます。


NATトラバーサルについて

Windows 10 においてNATトラバーサルの機能はデフォルトでオフになっており、レジストリを変更して使える様にする必要があります。

AssumeUDPEncapsulationContextOnSendRule というキーを設定します。

AssumeUDPEncapsulationContextOnSendRule は次のような値を取ります。


説明

0
NAT トラバーサル無効、初期値

1
NAT トラバーサル有効、サーバーが NAPT 配下の場合

2
NAT トラバーサル有効、クライアント・サーバーの両方が NAPT 配下の場合

自身の環境に合った値を設定してください。

環境によってはこれを設定する必要ない場合もあります。

私の環境ではサーバー側クライアント側共にNAPT配下だったので 2 を設定します。

参考: Windows Vista および Windows Server 2008 で NAT-T デバイスの背後に L2TP/IPsec サーバーを構成する方法

[Windowsボタン + X] -> [A] で PowerShell を起動します。

以下のコマンドを実行し、再起動します。

sl HKLM:\SYSTEM\CurrentControlSet\Services\PolicyAgent\; New-ItemProperty . AssumeUDPEncapsulationContextOnSendRule -T Dword -V 2; Restart-Computer -con


VPN の設定

[設定] -> [ネットワークとインターネット] -> [VPN] から「VPN 構成を追加する」を選択します。

image.png

VPN 接続設定で以下の設定を入力します。

設定項目名
設定値

VPN プロバイダー
Windows (ビルトイン)

接続名
(任意の名前)

サーバー名またはアドレス
(グローバルIPアドレス or DDNS から取得したホスト名

VPNの種類
事前共有キーを使った L2TP/IPsec

事前共有キー

ipsec ike pre-shared-key 1 text XXXXX で設定した XXXXX の部分

サインイン情報の種類
ユーザー名とパスワード

ユーザー名

pp auth username USERNAME PASSWORD で設定した USERNAME の部分

パスワード

pp auth username USERNAME PASSWORD で設定した PASSWORD の部分

で保存ボタンをクリックします。

image.png

関連項目にある「アダプターのオプションを変更する」をクリックします。

「ネットワーク接続」の画面に先ほど「接続名」で設定した名称のアダプターがあるはずなのでそれを右クリックしプロパティをクリックします。

image.png

「全般」タブでホスト名が正しく入力されていることを確認します。

image.png

セキュリティタブで L2TP/IPsec になっていることを確認します。

「データの暗号化」は「暗号化が必要(サーバーが拒否する場合は切断します)」を選択、

「認証」で、自分が pp auth request xxxx で指定した設定に合わせて、

「チャレンジハンドシェイク認証プロトコル (CHAP)」「Microsoft CHAP Version 2 (MS-CHAP v2)」のチェックボックスにチェックを入れます。

image.png

また、「VPN の種類」のすぐ右下の「詳細設定」先で事前共有鍵あるいは証明書の再設定を行えます。

接続に失敗する場合はこれの再入力を試すのも良いと思います。

image.png


接続する

タスクバー右のネットワークアイコンをクリックすると接続されているネットワークの他に VPN が表示されるようになっています。

そこで、接続する VPN をクリックして「接続」ボタンをクリックすれば、 VPN に接続できます。


Mac クライアントの設定


設定

[システム環境設定]の[ネットワーク]を開きます。

左下の「+」を押して以下の設定を追加し「作成」を押します。

「メニューバーにVPNの状況を表示」にはチェックを入れておきましょう。

設定項目名
設定値

インターフェース
VPN

VPNタイプ
L2TP over IPsec

サービス名
(任意の名前)

image.png

設定項目名
設定値

構成
デフォルト

サーバアドレス
(グローバルIPアドレス or DDNS から取得したホスト名)

アカウント名

pp auth username USERNAME PASSWORD で設定した USERNAME の部分

image.png

「認証設定…」を押して以下を入力。

設定項目名
設定値

パスワード

pp auth username USERNAME PASSWORD で設定した PASSWORD の部分

共有シークレット

ipsec ike pre-shared-key 1 text XXXXX で設定した XXXXX の部分

image.png

VPNサーバーをデフォルトゲートウエイに設定したい場合は「詳細…」をクリックして、「すべてのトラフィックをVPN接続経由で送信」にチェックを入れれば良い。

image.png


接続

メニューバーのVPNアイコンをクリックして、対象のVPNの接続をクリックすれば接続できます。

スクリーンショット 2018-08-15 23.17.50.png


Windowsで接続に失敗する

Windows での接続が少し不安定に感じます。

一度接続しても頻繁に切れるということではなく、設定を全く変更していなくても、

接続できるときもあれば失敗するときもあります。

失敗する場合、時間を置いて再度試すと接続できるようになることが多いです。

iOS や Mac からでは Windows で失敗しているときに試しても安定して接続できるので、

ルーター側では無く Windows 側の問題のように思いますが、原因が分かりません。


参考

Yamaha ルーターシリーズ コマンドリファレンス