業務用ルーターとしておなじみのYAMAHA RTXシリーズ。
IPsecによるリモートアクセスVPNを使用する場合は YMS-VPN7 等のソフトウェアを購入する必要があるのですが、そこを無料のVPNクライアント Shrew Soft VPN Client を使ってケチってみようというお話。
もともとの環境
- 拠点1のグローバルIPアドレスは動的。
- なので、拠点1はダイナミックDNS(ネットボランチDNS)で運用。(hoge.xxx.netvolante.jp)
- 拠点2のグローバルIPアドレスは動的。
- なので、拠点2はダイナミックDNS(ネットボランチDNS)で運用。(huga.xxx.netvolante.jp)
- 拠点1と拠点2はIPsecでLAN間接続されている。(tunnel 1)
リモートアクセス条件
- 拠点1のルーターをサーバーとしてIPsecで接続する。
- Shrew Soft VPN Client をクライアントとして使用する。
- ユーザー名とパスワードで認証。(XAUTH認証)
- 拠点3からのアクセスのみ有効。
- 拠点3のグローバルIPアドレスは動的。
- なので、拠点3はダイナミックDNS(ネットボランチDNS)で運用。(piyo.xxx.netvlante.jp)
サーバー側(拠点1)ルーター設定の抜粋
ip lan1 address 192.168.1.1/24 ip lan1 proxyarp on pp select 1 ... ip pp secure filter in ... 100 101 102 ... ... ip pp nat descriptor 1000 ... netvolante-dns hostname host pp server=1 hoge.xxx.netvolante.jp pp enable 1 tunnel select 1 tunnel name VPN1 ipsec tunnel 1 ... ipsec ike pre-shared-key 1 text VPN1_KEY ipsec ike remote address 1 fuga.xxx.netvolante.jp ... tunnel enable 1 tunnel select 2 tunnel template 3-4 tunnel name VPN2 ipsec tunnel 2 ipsec sa policy 2 2 esp aes-cbc sha-hmac ipsec ike keepalive log 2 off ipsec ike local address 2 192.168.1.1 ipsec ike nat-traversal 2 on ipsec ike payload type 2 3 ipsec ike pre-shared-key 2 text VPN2_KEY ipsec ike remote address 2 piyo.xxx.netvolante.jp ipsec ike remote name 2 pc ipsec ike xauth request 2 on 1 ipsec ike mode-cfg address 2 1 tunnel enable 2 tunnel select 3 tunnel name VPN3 ipsec ike pre-shared-key 3 text VPN3_KEY tunnel enable 3 tunnel select 4 tunnel name VPN4 ipsec ike pre-shared-key 4 text VPN4_KEY tunnel enable 4 ip filter 100 pass * 192.168.1.1 udp * 500 ip filter 101 pass * 192.168.1.1 esp * * ip filter 102 pass * 192.168.1.1 udp * 4500 nat descriptor type 1000 masquerade nat descriptor masquerade static 1000 1 192.168.1.1 udp 500 nat descriptor masquerade static 1000 2 192.168.1.1 esp nat descriptor masquerade static 1000 3 192.168.1.1 udp 4500 ipsec auto refresh on ipsec ike mode-cfg address pool 1 192.168.1.100-192.168.1.102/32 auth user 1 USER1 PASSWORD1 auth user 2 USER2 PASSWORD2 auth user 3 USER3 PASSWORD3 auth user group 1 1-3 auth user group attribute 1 xauth=on
簡単な解説
ip lan1 address 192.168.1.1/24
ip lan1 proxyarp on
設定しないとクライアントがルーターから先にアクセスできないようだ。
忘れがち。
pp select 1 ... ip pp secure filter in ... 100 101 102 ... ... ip pp nat descriptor 1000 ... netvolante-dns hostname host pp server=1 hoge.xxx.netvolante.jp pp enable 1
YAMAHAルーターのフィルタの仕様として、
- フィルタを1つも設定しない » すべて通過
- フィルタを1つでも設定する » 設定されたフィルタ以外すべて破棄
というのがあったはず。
PP接続のIN側フィルタ設定は、必要最低限のパケット(icmpなど)だけ通過させるようにすることが多いので IPsec で使用されるパケットが通過できない可能性がある。
UDPポート番号 500 | IKE(鍵交換) |
IPプロトコル番号 50 | ESP(暗号通信) |
UDPポート番号 4500 | NATトラバーサル(ESPパケットをUDPでカプセル化) |
その場合はこれらを通過させるフィルタを設定する。
今回は6行目に 100 101 102 を追加した。(内容は48-50行目参照)
8行目はNATディスクリプタの設定。
一般的に(番号が1000とは限らないが)設定されているはず。
こちらも後述の静的IPマスカレードの設定を追加する。(内容は53-55行目参照)
tunnel select 1 tunnel name VPN1 ipsec tunnel 1 ...
tunnel select 2 tunnel templete 3-4 tunnel name VPN2
23行目は tunnel 3 と tunnel 4 でも同じ設定を使えるようにトンネルテンプレートの設定。
使用しなくても動作するが、その場合はトンネル毎に全設定を記述すること。
トンネルの名前はとりあえず「VPN2」とでもしておく。
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec sa policy の後、左から
- POLICY-ID = 2
- GATEWAY = 2
- 暗号アルゴリズム = AES-CBC
- 認証アルゴリズム = HMAC-SHA-1
とする。
ipsec ike keepalive log 2 off
ipsec ike keepalive use を on にすると1分程度で接続が切れるので使用していない。
(Shrew Soft VPN Client を使用した時の話でLAN間接続では問題なし)
Rev.6.03系以降のファームウェアだと標準で auto となり、対向側からキープアライブを受信したときに限って送信するらしいのでカットしたが、必要であれば明示的に off に。
ipsec ike local address 2 192.168.1.1
ipsec ike nat-traversal 2 on
クライアント側のルーターでESPパケットまわりの設定が不要になるので便利。
通信経路上にNATの処理がなければ動作しないらしい。
ipsec ike payload type 2 3
Shrew Soft VPN Client は TYPE = 3 でないと動作しない。
ただし「TYPE 3 » 初期ベクトル(IV)の生成方法を一部の実装に合わせる」の意味はわからんw
ipsec ike pre-shared-key 2 text VPN2_KEY
ここではテキスト形式の鍵で「VPN2_KEY」にしてある。(認証用のパスワードではない)
ipsec ike remote address 2 piyo.xxx.netvolante.jp
今回は拠点3からのみ接続を許可するので、拠点3のネットボランチホスト名を指定。
接続元を限定しない場合はanyにしておけば良し。
ipsec ike remote name 2 pc
ipsec ike remote address を any にした場合は必要になる模様。
ipsec ike xauth request 2 on 1
今回はユーザーグループ1を使用する。(63-64行目参照)
ipsec ike mode-cfg address 2 1
今回はアドレスプール1を使用する。(58行目参照)
tunnel enable 2
たまに設定し忘れてハマることがあるので注意w
tunnel select 3 tunnel name VPN3 ipsec ike pre-shared-key 3 text VPN3_KEY tunnel enable 3
23行目により tunnel 2 の設定を引き継いでいるので、変更点のみ設定。
- 名前 = VPN3
- 事前認証キー = VPN3_KEY
なお、remote name は pc3 になる。
(ベースになる tunnel 2 の remote name + トンネルインターフェイス番号)
tunnel select 4 tunnel name VPN4 ipsec ike pre-shared-key 4 text VPN4_KEY tunnel enable 4
- 名前 = VPN4
- 事前認証キー = VPN4_KEY
とする。
remote name は pc4 となる。
ip filter 100 pass * 192.168.1.1 udp * 500 ip filter 101 pass * 192.168.1.1 esp * * ip filter 102 pass * 192.168.1.1 udp * 4500
192.168.1.1(ルーター)宛ての UDP 500 、ESP 、UDP 4500 を通過できるようにする。
nat descriptor type 1000 masquerade nat descriptor masquerade static 1000 1 192.168.1.1 udp 500 nat descriptor masquerade static 1000 2 192.168.1.1 esp nat descriptor masquerade static 1000 3 192.168.1.1 udp 4500
UDP 500 、ESP 、UDP 4500 を 192.168.1.1(ルーター)に向けて開放する。
NATトラバーサルを使用する場合は ESP のかわりに UDP 4500 が必要になる。
今回は拠点間でのIPsecにNATトラバーサルは使われていないので、フィルタ・静的IPマスカレード共に両方利用できるようにした。
ipsec auto refresh on
ipsec ike mode-cfg address pool 1 192.168.1.100-192.168.1.102/32
192.168.1.100 ~ 102 までの3つを予約。
auth user 1 USER1 PASSWORD1 auth user 2 USER2 PASSWORD2 auth user 3 USER3 PASSWORD3
今回は3ユーザー分。
auth user group 1 1-3
上記の3ユーザーをグループ1に登録。
34行目に対応する。
auth user group attribute 1 xauth=on
備考
と、私の場合はこんな感じの設定で現在動作しています。
show config で見ると、40,45行目が57行目の後ろに表示されますが・・・(^ ^;
ネットワークに関しては素人なので間違いがあったらゴメンなさい。
YAMAHAルーターでのIPsecについては以下を参照のこと。
セキュリティ・ゲートウェイ機能とIPsec
YAMAHA RTシリーズのFAQ / IPsec&IKE&VPN
長くなったのでクライアント側(Shrew Soft VPN Client)の設定は次回に。