Ciscoルータを使ったL2TPv3 over IPsecの設定
どうもこんばんわ。皆さん。
どんどん寒さが増してきましたね。ここ数日かなり冷え込んでる気がします。
風邪などひかないように気をつけてくださいね。
インフルエンザも流行っているようですのでお気をつけて。
さて、今回は前回記事にした際に使った「L2TPv3」の続きです。
前回は「L2TPv3」だけでトンネリングを構築しましたが
このままでは暗号化の設定を一切していないので中身が丸見えです。
そこで、暗号化を行ってくれる「IPsec」をかぶせて通信を安全にしようというのが今回の目的。
では、やっていきましょう。
なお、今回の検証には2960シリーズの機器を使用しています。機種によって使える鍵の種類に変動がありますので注意してください。
最後のほうに設定の例を載せてありますので「解説いいからさっさと設定方法教えろや!!」って方は最下層までスクロール!!!
■L2TPv3 over IPsecとは?
IPsecは、暗号化システムの技術によりネットワーク層にて、データのセキュリティを保護するのに使用されるプロトコルです。
IPsecは、AH、ESP、IKEなどのプロトコルから構成されています。
このIPsecを使用したVPN接続により、インターネットなどの公共インフラでも安全に通信することが可能になります。
ネットワークエンジニアとして:IPsec ( Security Architecture for IP )
■設定方法
♦IKEフェイズ1
まずは、ポリシーの設定から。
policy_number
の数字は小さければ小さいほど優先順位が高くなります(1は最優先)
Router(config)# crypto isakmp policy <policy_number> Router(config-isakmp)# encryption { 3des | aes | des } Router(config-isakmp)# hash { md5 | sha } Router(config-isakmp)# authentication { pre-share | rsa-encr | rsa-sig } Router(config-isakmp)# group { 1 | 2 | 5} Router(config-isakmp)# exit
コマンド | 意味 | 種類 | デフォルト |
---|---|---|---|
encryption | 暗号アルゴリズム。メッセージを暗号化。 | des |
|
hash | ハッシュ。メッセージの認証と鍵計算時に使用する。 | SHA |
|
authentication | ピア接続の際に使用する認証方式。 | rsa-sig |
|
group | 鍵計算のために使うパラメータ。DHアルゴリズムで暗号化して送信する。 | 1 |
これでIKEフェイズ1が終了です。
設定が終わったら次にVPN接続相手を認証する「鍵」と「ピアアドレス」を設定します。
Router(config)# crypto isakmp key { 0 | 6 } <key_password> address <ipaddr> <subnetmask>
keyの後の数字は
0
は暗号化なし
で送信
6
は暗号化あり
で送信を意味します。お好きなほうを選んでください。
key_password
には鍵を入力します。接続相手と同じ鍵を使ってください。(例:相手がhogehoge
なら自身もhogehoge
を使用)address
には接続相手のIPを入れてください。また、subnet
は省略可です。
・オプション1 keepalive
Router(config)# crypto isakmp keepalive <second> <retiry_time> {peridodic | on-demand }
second
で生存時間(秒)を指定します。リアルタイムで確認する際どの時間まで生存させるかを指定します。
retriy_time
では、接続が落ちたときに何秒後に再接続するのかを指定します。
例:
Router(config)# crypto isakmp keepalive 10 20 peridodic
・オプション2 password-encryption
Router(config)# key config-key password-encryption Router(config)# password encryption aes
コンフィグ上でのパスワードを暗号化します。セキュリティ上の対策にどうぞ。
♦IKEフェイズ2
さて次はIPsecの設定から。その前にどの通信をトンネリングするか設定するためにaccess-list
を定義します。
Router(config)# access-list 100 permit ip 192.168.100.0 0.0.0.255 192.168.200.0 0.0.0.255
ACLについてはこちらを参照してください。→
拡張ACL:ネットワークエンジニアとして
では設定に入ります。
・ipsec 暗号化設定
Router(config)# crypto ipsec transform-set <transform-set_name> { trans1 } { trans2 } {trasn3} Router(cfg-crypto-trans)# mode { tunnel | transport } Router(cfg-crypto-trans)# exit
crypto ipsec transform-set
で「IPsec」で使用するパラメータを指定します。
transform-set_name
部分はお好きな名前をどうぞ
パラメータ(trans)では、暗号化
・認証
・セキュリティプロトコル
のうち最低でも下から2つを選択します。
コマンド | 種類 | デフォルト |
---|---|---|
ESP暗号化 | - | |
ESP認証 | - | |
AH | - |
mode
ではIPsecをVPNトンネリングに使う(tunnel
)のか、暗号化をメインに使うか(transport
)で設定します。
環境に合わせて変更しましょう。
・ipsec map設定
Router(config)# crypto map <map_name> <number> ipsec-isakmp Router(config-crypto-map)# set peer <remote_addr> Router(config-crypto-map)# set transform-set <transform-set_name> Router(config-crypto-map)# match address <access_list_name> or <access_list_number> Router(config-crypto-map)# exit
map_name
にはお好きな名前を設定した後、number
で番号を決めます。数字が低ければ高優先度になります。
remote_addr
でVPN構築相手を指定します。ホスト名で指定することもできます。
set transform-set
では先ほど定義した暗号形式の名前を定義します。間違えると接続不可になりますので気をつけてください。
match address
にはじめ定義したaccess-list
を記載します。このとき、名前付きACLを使用することもできます。
これでIPsecの設定が終わりました。最後に使用するインターフェイスに適用してあげます。
♦Interfaceへの適用
あとは使用するinterfaceに適用します。
PPPoEを使用している場合には「dialer」に割り振ることをお勧めします。
Router(config)# interface <vpn_source_port> Router(config-if)# crypto map <map_name>
map name
にはipsec map設定で使った名前を定義しておきます。
このインターフェイスへの適用をもってISAKMPが有効化されてVPNを設置することができます。忘れずに設定しましょう!!
以上で設定が終わりました!あとは前回設定した「L2TPv3」を設定すると終了となります。
お疲れさまでした。
♦設定例
最後に、今回構築した内容を設定例として残しておきます。
ご参考になれば…。
初期条件としてPPPoE経由で
R2→209.168.100.1
R3→209.168.100.2
が割り当て済みとしてあります。
R2
R2(config)# psedowire-class l2tpv3 R2(config-xx)# encapsulation l2tpv3 R2(config-xx)# ip local interface dialer 1 R2(config)# crypto isakmp policy 1 R2(config-isakmp)# encryption aes256 R2(config-isakmp)# hash sha R2(config-isakmp)# authentication rsa-encr | R2(config-isakmp)# group 2 R2(config-isakmp)# exit R2(config)# crypto isakmp key 6 cisco address 209.168.100.2 R2(config)# crypto isakmp keepalive 10 20 R2(config)# crypto ipsec transform-set l2tpv3_ipsec esp-aes-256 esp-sha-hmac R2(cfg-crypto-trans)# mode transport R2(cfg-crypto-trans)# exit R2(config)# crypto map ipsec_l2tpv3_map 1 ipsec-isakmp R2(config-crypto-map)# set peer 209.168.100.2 R2(config-crypto-map)# set transform-set l2tpv3_ipsec R2(config-crypto-map)# match address 100 R2(config-crypto-map)# exit R2(config)# access-list 100 permit ip any any R2(config)# interface dialer 1 R2(config-if)# crypto map ipsec_l2tpv3_map R2(config-if)# interface FastEthernet 0/1 R2(config-if)# xconnect 209.168.100.2 1 encapsulation l2tpv3 pw-class l2tpv3
R3
R3(config)# psedowire-class l2tpv3 R3(config-xx)# encapsulation l2tpv3 R3(config-xx)# ip local interface dialer 1 R3(config)# crypto isakmp policy 1 R3(config-isakmp)# encryption aes256 R3(config-isakmp)# hash sha R3(config-isakmp)# authentication rsa-encr | R3(config-isakmp)# group 2 R3(config-isakmp)# exit R3(config)# crypto isakmp key 6 cisco address 209.168.100.1 R3(config)# crypto isakmp keepalive 10 20 R3(config)# crypto ipsec transform-set l2tpv3_ipsec esp-aes-256 esp-sha-hmac R3(cfg-crypto-trans)# mode transport R3(cfg-crypto-trans)# exit R3(config)# crypto map ipsec_l2tpv3_map 1 ipsec-isakmp R3(config-crypto-map)# set peer 209.168.100.1 R3(config-crypto-map)# set transform-set l2tpv3_ipsec R3(config-crypto-map)# match address 100 R3(config-crypto-map)# exit R3(config)# access-list 100 permit ip any any R3(config)# interface dialer 1 R3(config-if)# crypto map ipsec_l2tpv3_map R3(config-if)# interface FastEthernet 0/1 R3(config-if)# xconnect 209.168.100.1 1 encapsulation l2tpv3 pw-class l2tpv3