UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Cisco - Cisco ASA IPsecVPN




CiscoASAでIPSecVPNを構築します。


実案件ではフレッツ等のベストエフォードでなおかつセキュリティが保たれていない回線の場合にIPSecを設定し てセキュリティを保つケースが多いです。自治体や金融系など、セキュリティに関して非常に厳しい考え方をしているところでは閉鎖網である広域イーサであってもその上からさらに暗号化をかけるところもあります。ただ、IPSecをかけるとなると通常のパケットフォワーディングと比較して普通に半分以下にスループットが低下しますので注意してください。


また、ASAでIPSecVPNトンネルをはる場合には必ず固定IPが必要となります。接続の度にIPが変わるような環境だとそもそもASAでは無理という話になりますのでこちらも注意してください。


ここで紹介するのは以下の前提条件です。


・拠点Aと拠点BをVPNで接続
・拠点Aの内部LANは192.168.1.0/24、拠点Bは192.168.2.0/24を使用している。
・拠点AのグローバルIPはxx.xx.xx.xx、拠点BのグローバルIPはyy.yy.yy.yy
・回線はBフレッツだがPPPoE/PATに関する設定はこちらを参照頂くこととして割愛


■IPSec設定例(拠点A)


# VPN対象トラフィックを定義
access-list VPN extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
# VPN通信はNAT対象外とする
nat (inside) 0 access-list VPN

# ISAKMP SAを定義
crypto isakmp policy 10
authentication pre-share
encry 3des
hash sha
group 2
lifetime 86400
crypto isakmp enable outisde

# IPSEC SAを定義
crypto ipsec transform-set TS esp-3des esp-sha-hmac
crypto map VPN 1 match address VPN
crypto map VPN 1 set peer yy.yy.yy.yy
crypto map VPN 1 set transform-set TS
crypto map VPN interface outside

# Tunnel-Groupの定義
tunnel-group yy.yy.yy.yy type ipsec-l2l
tunnel-group yy.yy.yy.yy ipsec-attributes
pre-shared-key *


■IPSec設定例(拠点B)


access-list VPN extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0
nat (inside) 0 access-list VPN

crypto isakmp policy 10
authentication pre-share
encry 3des
hash sha
group 2
lifetime 86400
crypto isakmp enable outisde

crypto ipsec transform-set TS esp-3des esp-sha-hmac
crypto map VPN 1 match address VPN
crypto map VPN 1 set peer xx.xx.xx.xx
crypto map VPN 1 set transform-set TS
crypto map VPN interface outside

tunnel-group xx.xx.xx.xx type ipsec-l2l
tunnel-group xx.xx.xx.xx ipsec-attributes
pre-shared-key *


最初の2行でVPNの対象となるトラフィックを定義しています。これが対向同士で対になっておく必要があります。またPATを設定している場合にはPATの対象から外さないといけませんのでnat (inside) 0 と指定して対象から外す設定を行っています。


crypto isakmpでisakmpに関するPhase-1(isakmp)の設定を行っています。ここで設定しているパラメータは一例ですので参考程度にしてく ださい。crypto ipsecでipsec saのPhase-2の設定を行っています。Phase-1と同様、ここで設定しているパラメータも一例です。さらにtunnel-groupでpre-shared-keyを設定しています。keyはルータ同士で一致しておく必要があります。
これらのパラメータを outsideインターフェイスに適用しています。




< OS 8.4以降の場合 >


ASA 8.4以降からIPSecの設定の文言等が変わり、新たにIKE ver2がサポートされました。8.3からNAT関連のコマンドが大幅に変わり( NAT Migration )、全体的なコンフィグは様変わりした感じになります。上の拠点Aのコンフィグを8.4以降のバージョンで表すと下記のようになります。

# VPN対象トラフィックを定義
access-list VPN extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
# VPN通信はNAT対象外とする
object network LOCAL
subnet 192.168.1.0 255.255.255.0
object network REMOTE
subnet 192.168.2.0 255.255.255.0
nat (inside,outside) source static LOCAL LOCAL destination static REMOTE REMOTE

# ISAKMP SAを定義
crypto ikev1 policy 10
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto ikev1 enable outside

# IPSEC SAを定義
crypto ipsec ikev1 transform-set TS esp-3des esp-sha-hmac
crypto map VPN 1 match address VPN
crypto map VPN 1 set peer yy.yy.yy.yy
crypto map VPN 1 set ikev1 transform-set TS
crypto map VPN interface outside

# Tunnel-Groupの定義
tunnel-group yy.yy.yy.yy type ipsec-l2l
tunnel-group yy.yy.yy.yy ipsec-attributes
ikev1 pre-shared-key *****


IKE ver2ではコンフィグはさらに変わってきます。IKE ver1とver2では互換性はなく、site to siteのVPN接続では両端のIKEのverをあわせる必要性があります。IKE ver2を使用する場合は当然ながら両端ともIKE ver2がサポートされた機器を使用する必要があります。以下はIKE ver2の設定ログです。

# VPN対象トラフィックを定義
access-list VPN extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
# VPN通信はNAT対象外とする
object network LOCAL
subnet 192.168.1.0 255.255.255.0
object network REMOTE
subnet 192.168.2.0 255.255.255.0
nat (inside,outside) source static LOCAL LOCAL destination static REMOTE REMOTE

# ISAKMP SAを定義
crypto ikev2 policy 1
encryption 3des
integrity sha
group 2
prf sha
lifetime seconds 86400
crypto ikev2 enable outside

# IPSEC SAを定義
crypto ipsec ikev2 ipsec-proposal 3DES
protocol esp encryption 3des
protocol esp integrity sha-1

crypto map VPN 1 match address VPN
crypto map VPN 1 set peer yy.yy.yy.yy
crypto map VPN 1 set ikev2 ipsec-proposal 3DES
crypto map VPN interface outside

# Tunnel-Groupの定義
tunnel-group yy.yy.yy.yy type ipsec-l2l
tunnel-group yy.yy.yy.yy ipsec-attributes
ikev2 remote-authentication pre-shared-key *****
ikev2 local-authentication pre-shared-key *****

但し、現状のVPN接続は大半がIKE ver1であることから、IKE ver2が主になるのは数年先のことではないかと思います。



VPNの動作確認を行うには上記で指定しているトラフィックを実際に発生させる必要があります。ASAでは全面のLEDにVPNというのがあり、VPNトラフィックが発生して無事トンネルがはれればこれが点灯します。コマンドベースでは以下のコマンドで確認可能です。

# show crypto isa sa
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1

1 IKE Peer: yy.yy.yy.yy
Type : L2L Role : initiator
Rekey : no State : MM_ACTIVE


上記ではPhase-1の状態を表しており、initiatorがMM_ACTIVEになっていればOKです。


# show crypto ipsec sa


上記でパケットの数が表示されます。pkts encapsやpkts decapsがコマンドを 打つたびにカウントアップしていれば通信はできていると思って良いと思います。但し、pre-frag failuresPMTUs sentなどもカウントアップしている場合、パケットがフラグメントされ一部のみの通信ができていない可能性があります。

これはASAに設定したMSSの値よりも大きなデータを送受信しようとしたときにデフォルトでパケットが分割 ( フラグメント )禁止となっているためです。MTUやMSSの値の微調整で正常となることもありますし、そもそもフラブメントを許可することでも正常になります。フラブメントを許可する場合は以下の設定を入れることで可能になりますが、スループットに関して低下することもあるので注意が必要です。


crypto ipsec df-bit clear-df outside


CiscoASAでのIPSecの設定例ですが、当然ながらシスコルータでもサポートされています。VPNをはってダイナミックルーティングを使いたい等の要件がなければASAでの構築を強くおすすめします。機能としてはルータでもASAでもサポートされておりますが、パフォーマンスという観点ではASAのほうがかなり良いからです。



 

 関連記事
 Cisco PIX Firewallの設定
 CiscoASAの基本設定
 CiscoASA PPPoE+NAT/PAT
 CiscoASA SSL-VPN
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.