l2tp/ipsecは殆どのクライアント環境で利用できる安全なリモートアクセス用のVPNです。iOSやandroidでも利用でき、Windows7/8でもデフォルトで機能が実装されており、利用するのにクライアント側の追加費用が掛かりません。以前の記事でRTX-1200を利用したl2tp/ipsecの設定手順を紹介していますが、RTX-1200はやや高価で、ちょっと試してみたいという場合には向かないところもあります。
-
ヤマハ RTXシリーズのVPN機能で自宅やオフィスへリモート接続する
今やスマートフォンやタブレットは一人に一台という勢いで普及しています。どこにいても情報を見ることができる便利さは、一度使うと手放せません。そんなスマートフォンやタブレットを使って、自宅や職場のシステムへ安全に接続したいと思ったことはありませ ...
弊社ではCentury SystemsのNXR-230/CをVPNルーターとして利用しています。l2tp/ipsecは本当に便利で、私たちのような仕事では一度利用すると手放せません。ただ、このNXR-230/CはRTX-1200と同程度の価格なので、手軽に利用するのは難しいと思います。l2tp/ipsecは同社の一つグレードの低いルーターであるNXR-120/Cでも実装されています。NXR-120/Cは実売で5万を切る価格ですので、費用面では手を出しやすい商品です。今回はこのNXRを利用して安価にl2tp/ipsecを設定する手順を記載してみたいと思います。
2016/10/15 (追記)
本記事の設定ではAndroid 6系で接続ができないことを確認しています。これはAndroid 6の返す暗号化の応答が低いビットで帰ってくることが原因なようです。Century Systemsではこの対応について、以下のオプションを追加する設定を紹介しています。
trunc-length 96
本オプションはNXRのファームウェアバージョン5.26.13で実装されていることを確認しておりますので、android6系で利用l2tp/ipsecを設定される場合は、できる限り最新のファームウェアに更新することをオススメします。
1. 環境
l2tp/ipsecを行う環境として、以下を前提としています。
- インターネット回線は光ファイバ、PPPoEにて固定1IPを取得している。
- DMZゾーンはなく、LANゾーンのみ
- LAN側のIPは192.168.10.0/24を指定
- クライアント側は基本的にNAT環境のため、nat-traversalを設定する。
- 接続クライアントはiphoneおよびPC(Windows7)
- 接続クライアントのプールIPは10.0.0.10,10.0.0.11
- 設定はコマンドにて行う。
2. 具体的な設定手順
基本的な設定手順は
- デフォルトのIPアドレスへsshで接続
192.168.0.254/24がLAN側IPとして設定されていますので、ここへLANケーブルを接続し、sshで接続します。 - configの設定
- 動作確認
- クライアント側の設定(iOS,Windows7)
という4ステップです。
l2tp/ipsecで接続するためのconfigは以下になります。
****で伏せてある部分は実環境に合わせて設定の変更が必要になる箇所です。
sshでルーターへ接続した直後は設定の変更ができないモードのため、以下のコマンドで設定変更ができるモードへ移行します。
(TABキーでコマンドの補完が可能)
# configure terminal
(config)#
プロンプトが(config)#に変更したら、モードの移行が完了です。
以下のconfigの通りに設定を進めて行きます。
****の伏字部分についての詳細は4章に記載しておりますので、こちらも併せて見て下さい。
2016/10/15 (追記)
andorid6系の接続設定に合わせて、configを変更致しました。
!
! Century Systems NXR-230 Series ver 5.26.13 (build 1/20:51 07 06 2016)
!
hostname nxr230
no telnet-server enable
ssh-server enable
ssh-server version 2
ssh-server address-family ip
http-server enable
!
password *******
gui password ********
!
!
!
!
!
ipv6 forwarding
fast-forwarding enable
!
ppp account username pppoe*** password ******
ppp account username ios*** password *******
ppp account username win*** password *********
!
ipsec nat-traversal enable
!
l2tp udp source-port 1701
!
l2tpv3 udp source-port 40001
!
ipsec local policy 1
address ip
!
!
ipsec isakmp policy 1
description smartphone
authentication pre-share *****
hash sha256
encryption aes256
group 5
lifetime 86400
isakmp-mode main
remote address ip any
local policy 1
!
!
ipsec tunnel policy 1
description smartphone
set transform esp-aes256 esp-sha256-hmac
set esp-sha256-hmac trunc-length 96
no set pfs
set key-exchange isakmp 1
set sa lifetime 28800
match protocol l2tp-smartphone nat-traversal
!
!
l2tp 1
tunnel address any ipsec
tunnel mode lns
tunnel virtual-template 0
!
interface virtual-template 0
ip address 10.0.0.1/32
no ip redirects
no ip rebound
ip tcp adjust-mss auto
peer ip proxy-arp
peer ip pool smartphoneip
!
interface ppp 0
description IP1
ip address ***.*.***.***/32
no ip redirects
ip tcp adjust-mss auto
ip access-group in in-ppp0
ip masquerade
ip spi-filter
ppp username ********************
ipsec policy 1
!
interface ethernet 0
ip address 192.168.10.254/24
!
interface ethernet 1
no ip address
pppoe-client ppp 0
!
interface ethernet 2
no ip address
!
ntp
service enable
server 210.173.160.57 polling 6 10
!
dns
service enable
!
syslog
local enable
!
dhcp-server 1
network 192.168.10.0/24 range 192.168.10.100 192.168.10.150
gateway 192.168.10.254
dns-server 192.168.10.254
!
!
!
system led ext 0 signal-level mobile 0
!
!
!
!
!
!
ip route 0.0.0.0/0 ppp 0
!
ip local pool smartphoneip address 10.0.0.10 10.0.0.11
!
ip access-list in-ppp0 permit any any icmp
ip access-list in-ppp0 permit any ***.*.***.*** 50
ip access-list in-ppp0 permit any ***.*.***.*** udp any 500
ip access-list in-ppp0 permit any ***.*.***.*** udp any 4500
ip access-list in-ppp0 permit 210.173.160.57 any udp any 123
!
!
!
end
最後に
(config)# exit
# save config
でconfigを保存します。
PPPoEやDHCP/DNSの設定も含まれていますので、正しく設定が出来ていれば、上位回線側へ接続するだけで、L2TP/IPSecを利用するための環境作成が完了します。
尚、WAN側のフィルタはSPI(ステートフルパケットインスペクション)を有効にしているため、必要なポートのみ明示的にオープンしています。環境に応じてフィルタの追加を行ってください。
次の項目で、設定が必要な点の詳細を説明します。
4. 設定の変更点、詳細について
configの変更点として、伏字にした部分のパラメーターを説明します。
設置する環境に合わせて以下の点を変更します。
4−1. ルーターログイン用パスワードの変更
password *******
gui password ********
sshでルーターにログインするためのパスワードと、gui画面へログインするためのパスワードを設定します。
パスワードは任意のものを設定して下さい。
NXRはguiから操作できる機能が、それ程多くないため、guiパスワードは必須ではありません。
4−2. ppp/pppoe接続用アカウントの設定
ppp account username pppoe*** password ******
ppp account username ios*** password *******
ppp account username win*** password *********
ここでは、PPPoEアカウントと、L2TP/IPSec接続時に利用するアカウント名、パスワードを設定します。
上から、PPPoE用アカウント(プロバイダからの資料に記載されている情報)、iOSに設定するアカウント、windowsクライアントに設定するアカウントを指定します。
pppoe,ios,winという部分は分かり易いように記載しているだけですので、実際には異なるものを設定します。
4−3. 事前共有キーの設定
ipsec isakmp policy 1
description smartphone
authentication pre-share *****
hash sha1
encryption aes128
authentication pre-shareは事前共有キーです。VPN設定の際に利用する共有キーとなります。簡単に推測されないような複雑なキーを設定します。
4−4. PPPoE認証設定
interface ppp 0
description IP1
ip address ***.*.***.***/32
no ip redirects
ip tcp adjust-mss auto
ip access-group in in-ppp0
ip masquerade
ip spi-filter
ppp username ********************
ipsec policy 1
PPPoE接続を行うための設定を行います。
IPアドレスはプロバイダから割り当てられた固定IPを指定、ppp usernameは上で設定したpppアカウントのpppoe***に該当するアカウント名を指定します。
4-5. IPフィルタ設定
外部からl2tp/ipsecで接続するためのフィルタ及び
nat-traversalで接続するためにフィルタをオープンします。
ip access-list in-ppp0 permit any ***.*.***.*** 50
ip access-list in-ppp0 permit any ***.*.***.*** udp any 500
ip access-list in-ppp0 permit any ***.*.***.*** udp any 4500
***.*.***.*** はPPPoE側のグローバルIPアドレス、固定IPを設定します。
上記の3フィルタ、50番ポート、UDP:500番ポート、UDP:4500番ポートのオープンはl2tp/ipsec接続を行うために必要なため、必ず設定します。
その他のフィルタは環境に併せて任意で設定して下さい。
サンプルの設定では、NTPへのDDoS攻撃対策として、明示的にNTPのフィルタを追加しています。
ルーター側の設定はこれで完了です。
設定が完了したら、save configコマンドでconfigを保存します。
設定済みのルーターを設置して、LAN側からインターネットへ接続できること、pingが外部へ通ることを確認して下さい。
5. クライアント側の設定
これまでの設定で、ルーター側に接続できるようになっています。
次にクライアント側で設定を行い、l2tp/ipsecでリモートアクセスを行います。
iOSのl2tp/ipsec設定は、RTX-1200と同様の設定になりますので、「RTX-1200を使ってl2tp/ipsecを設定。自宅・オフィスへ接続する」
の記事を参照して下さい。
window7のl2tp/ipsec設定手順は「SEIL:Windows 7のVPN(L2TP/IPsec)設定手順」
に詳細が記載されていますので、導入した環境に合わせて設定を行います。
設定後、外部からVPN接続を行い、NXRルーターのLAN側ローカルIPからpingの応答が帰ってくれば、導入は完了です。
弊社の環境では、iphone5sのテザリング (wifi) を利用してテストを行いましたが、やや速度が遅い結果が出ました。
テザリングをUSBケーブル経由で行ったときのパフォーマンスは問題なかったので、wifiを利用したテザリングで速度が出ない場合は、USBケーブル、もしくはbluetoothでの接続に変更してテストしてみてください。