EdgeRouter X – 6. 自宅にどこからでもアクセスできるようにする ( リモートアクセス VPN )

さて、やっとこさ VPN の設定に入ります。今回は外出先から自宅の LAN 内にアクセスする「リモートアクセス VPN」と呼ばれる VPN の設定をしてみます。 対象ファームウェアは 1.9.1 です。

ER-X は PPTP と L2TP / IPSec に対応していますが、 PPTP はセキュリティ的にアレなので、今回は L2TP で設定してみようと思います。

リモートアクセス VPN とは

インターネッツ上の通信を暗号化する VPN と呼ばれる技術のうち、主に遠隔地から家庭や社内の LAN にアクセスするのに用いられるものを指します。リモートアクセス VPN で LAN に接続すると、まるでその LAN 内に直接繋がっているかのごとく、その LAN 内の他のサーバーや端末などにアクセスできるようになります。代表的プロトコルは L2TP / IPsec や PPTP などがあります。

またリモートアクセス VPN 経由でインターネットにアクセスできるようになり、地理的な制限を回避することができるようにもなります。例えば北米から日本の実家に L2TP で接続し、日本でしか視聴できないサイトを見られるようにしたり、中国から北米の自宅に接続し、 Facebook や Twitter 等中国国内では見られないサイトを見られるようにしたりできます。

L2TP は一般的なプロトコルなため、 Mac や iPhone も対応していて、難なく今回設定するサーバーに VPN 接続できるようになります。

今回はこのような作業になります。

  1. コマンドラインで L2TP / IPSec の設定をする
  2. 外部から L2TP / IPSec でアクセスできるよう Firewall を変更する
  3. iPhone で L2TP VPN の設定をする

コマンドラインで L2TP / IPsec の設定をする

では設定してみます。まずは WAN ポートが eth0 になっている場合です。今回は L2TP のクライアントのユーザー名を user1 、パスワードを password1 、そしてシークレットを secret1 としましたが、必ず各自変更して入力してください。

SSH でルーターにアクセス
## 設定モードに入る
configure

## 基本的な IPsec の設定
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable
set vpn ipsec auto-firewall-nat-exclude enable

## L2TP の WAN 側 IP アドレスが DHCP 経由で割り当てられると指定
set vpn l2tp remote-access dhcp-interface eth0

## L2TP でアクセスしてきたクライアントに割り当てる IP アドレスの範囲を指定
set vpn l2tp remote-access client-ip-pool start 192.168.1.121
set vpn l2tp remote-access client-ip-pool stop 192.168.1.140

## L2TP の「シークレット」を設定
## secret1 の部分を任意のパスワードに変更して入力
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret secret1
set vpn l2tp remote-access ipsec-settings ike-lifetime 3600

## L2TP クライアントの認証方法をローカルに設定
set vpn l2tp remote-access authentication mode local

## L2TP クライアントのユーザー名とパスワードを設定
## user1 と password1 の部分を変更して入力
set vpn l2tp remote-access authentication local-users username user1 password password1

## L2TP の MTU を保守的に設定
set vpn l2tp remote-access mtu 1280

## L2TP のクライアントが使う DNS をルーター自身と Google DNS に設定
set vpn l2tp remote-access dns-servers server-1 192.168.1.1
set vpn l2tp remote-access dns-servers server-2 8.8.8.8

## ルーターの DNS が L2TP から使えるよう DNS Frowarding をルーター自身に設定
set service dns forwarding listen-on lo

commit
save

そして以下が WAN ポートが pppoe0 になっている場合です。この場合 dhcp-interface pppoe0 というコマンドが通らないので outside-address 0.0.0.0 を指定します。もちろん L2TP のクライアントのユーザー名を user1 、パスワードを password1 、そしてシークレットを secret1 としましたが、必ず各自変更して入力してください。

SSH でルーターにアクセス
## 設定モードに入る
configure

## 基本的な IPsec の設定
set vpn ipsec ipsec-interfaces interface pppoe0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable

## WAN 側 IP アドレスが pppoe0 経由で割り当ての場合これを指定
set vpn l2tp remote-access outside-address 0.0.0.0

## L2TP でアクセスしてきたクライアントに割り当てる IP アドレスの範囲を指定
set vpn l2tp remote-access client-ip-pool start 192.168.1.121
set vpn l2tp remote-access client-ip-pool stop 192.168.1.140

## L2TP の「シークレット」を設定
## secret1 の部分を任意のパスワードに変更して入力
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret secret1
set vpn l2tp remote-access ipsec-settings ike-lifetime 3600

## L2TP クライアントの認証方法をローカルに設定
set vpn l2tp remote-access authentication mode local

## L2TP クライアントのユーザー名とパスワードを設定
## user1 と password1 の部分を変更して入力
set vpn l2tp remote-access authentication local-users username user1 password password1

## L2TP の MTU を保守的に設定
set vpn l2tp remote-access mtu 1280

## L2TP のクライアントが使う DNS をルーター自身と Google DNS に設定
set vpn l2tp remote-access dns-servers server-1 192.168.1.1
set vpn l2tp remote-access dns-servers server-2 8.8.8.8

## ルーターの DNS が L2TP から使えるよう DNS Frowarding をルーター自身に設定
set service dns forwarding listen-on lo

commit
save

外部から L2TP / IPSec でアクセスできるよう Firewall を変更する

続いてルーターの WAN 側から L2TP / IPsec でアクセスできるよう Firewall の設定を変更します。具体的には UDP のポート 500 / 1701 / 4500 と、IP プロトコルの ESP の通過を許可するルールを追加します。 Firewall のルールは順番が重要なので、順番がわかりやすい GUI で設定します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow L2TP
Action: Accept
Protocol: UDP
[Destination]
Port: 500,1701,4500 (スペース無し)
Save ボタンを押す

Add New Rule ボタンを押す
[Basic]
Description: Allow ESP
Action: Accept
Protocol: choose protocal by name > esp
Save ボタンを押す

追加した2つのルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

screen-shot-2016-10-06-at-11-22-02-pm
screen-shot-2016-10-06-at-11-23-18-pm

これで Firewall が WAN 側から ER-X 方向への L2TP / IPsec を通すようになります。

注意事項

ちなみにこのポート 4500 番ですが、「どこでも My Mac (Back to My Mac)」とコンフリクトして、 L2TP が接続できなくなったりします。その際には LAN 内のすべての Mac / Airport Time Capsule でどこでも My Mac をオフにするか、 ER-X の UPnP2 をオフにするか、 UPnP2 でポート 4500 での Port Forward をブロックするよう設定してください。 UPnP2 でブロックする設定はこんな感じです。

service / UPnP2 / acl / rule / 10
action: deny
description: Block port 4500
external-port: 4500
local-port: 4500
subnet: 192.168.1.0/24

iPhone で VPN クライアントの設定をする

続いて iPhone でいま設定した ER-X の L2TP VPN サーバーに接続する設定をします。

「設定」を開く
「一般」を選択
「VPN」を選択
「VPN構成を追加...」を選択
タイプ: L2TP
説明: 自宅
サーバ: yaberouter1.duckdns.org
アカウント: user1
パスワード: password1
シークレット: secret1
全ての信号を送信: オン
「完了」を選択

img_6515

これで iPhone の「設定」のトップに VPN という項目が現れ、出先から自宅の LAN 内の端末にアクセスしたり、もしくは外国から自宅経由でインターネットのサイトにアクセスしたりできるようになります。また VPN は回線が暗号化されているので、通信内容の秘匿が保たれます。街のカフェ等でまったくセキュリティのかかってないフリー WiFi なんかを使うと、通信内容を同じ WiFi を使っている誰かに見られる可能性がありますが、 VPN を使うことで防ぐことができます。

今回はこのページを参考にしました。

EdgeRouter – IPsec L2TP Server

Re: l2tp vpn simple setup

以上、お疲れ様でした。


yabe.jp » Gadgets » EdgeRouter X – 6. 自宅にどこからでもアクセスできるようにする ( リモートアクセス VPN )