photo by Axel Schwenke
前回はシスコ機のIPsec メインモードの解説をしましたが、今回はアグレッシブモード(aggressive mode)の解説をいたします!
目次
IPsecの二つのモード!
IPsec IKEv1には「mainモード」と「aggressiveモード」という二つの接続モードがあります。
mainモードとは、IPsecゲートウェイとIPsecゲートウェイの間でIPsecトンネルを確立するときによく使われるモードです。主にIPアドレスが固定されている装置同士でIPsecをするときに使用します。
例えば、ある会社のオフィスと、別拠点のオフィスのVPNサーバの間でIPsecトンネルを構築する場合などは、おそらくこのモードを使うことになると思います。
agressiveモードとは、IPsec端末とIPsecゲートウェイの間でIPsecトンネルを確立するときによく使われるモードです。主にIPアドレスが動的に変わる端末(ノートPCやスマホなど)と、IPアドレスが固定されているゲートウェイ同士でIPsecをするときに使用します。ネゴシエーションの際にID情報を隠蔽せずに生で送信するので、mainモードよりもややセキュリティ的に弱いモードといえます。
例えば、出張先のホテルから自社のVPNサーバにアクセスする場合などは、おそらくこのモードを使うことになると思います。
ネットワーク環境はNGS3で構築!
実験環境はいつもと同じ、シスコルーターのエミュレータ「NGS3」を使いました。
ネットワーク構成もいつものとおりです。
R1はIPsecのクライアント装置、R3はIPsecのサーバ装置です(PC1は今回は使いません)。両装置の間でIPsecトンネルを確立して、エンドノードのR1とPC2が通信できることを確認します。
※ちなみにシスコのファームウェアは「Cisco 3700 シリーズ」のものを使用しています。
aggressiveモードのネゴのキャプチャ!
以下にaggressiveモードのネゴシエーションのキャプチャデータを置いておきます。
このキャプチャは、上図のR1装置からPC2に対してpingを送信して、R1装置がR3装置に対してIPsecセッションを張りにいったときのものです。
IKEv1のネゴシエーションでは、主に鍵交換のために使われるセッション「ISAKMP_SA」を確立するための「Phase1」ネゴシエーションと、IPsec通信に使われるセッション「IPSEC_SA」を確立するための「Phase2」ネゴシエーションが行われます。
前回紹介したmainモードのネゴでは6発のPhase1パケットが交換されていましたが、今回のaggressiveモードでは3発のPhase1パケットが交換されています(このようにaggressiveモードではネゴシエーションがより簡略化されるのです)。ペイロード内のクライアントのID情報「hogehoge.com」が平文で送信されているのが、お分かり頂けますでしょうか・・。
キャプチャ:ikev1_aggressive.pcap
aggressiveモードの設定例!
以下がIKEv1(aggressiveモード)の設定です。
IPsecの確立に必要な設定のみをピックアップして記述しています。
ルーターR1の設定:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
! crypto isakmp policy 1 encr aes 256 authentication pre-share group 5 lifetime 1800 ! crypto isakmp keepalive 10 periodic ! crypto isakmp peer address 30.0.0.2 set aggressive-mode password hogehoge set aggressive-mode client-endpoint user-fqdn hogehoge.com ! crypto ipsec transform-set IPSEC-TRA esp-aes 256 esp-sha-hmac ! crypto map IPSEC-MAP 1 ipsec-isakmp set peer 30.0.0.2 set security-association lifetime seconds 1200 set transform-set IPSEC-TRA match address 100 ! interface FastEthernet0/1 ip address 20.0.0.1 255.255.255.0 crypto map IPSEC-MAP ! ip route 0.0.0.0 0.0.0.0 20.0.0.2 ! access-list 100 permit ip host 20.0.0.1 172.16.0.0 0.0.0.255 ! |
ルーターR3の設定:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
! crypto isakmp policy 1 encr aes 256 authentication pre-share group 5 ! crypto isakmp key hogehoge hostname hogehoge.com crypto isakmp keepalive 10 periodic ! crypto ipsec transform-set IPSEC-TRA esp-aes 256 esp-sha-hmac ! crypto dynamic-map IPSEC-DMAP 10 set transform-set IPSEC-TRA ! crypto map IPSEC-MAP 1 ipsec-isakmp dynamic IPSEC-DMAP ! interface FastEthernet0/0 ip address 172.16.0.2 255.255.255.0 ! interface FastEthernet0/1 ip address 30.0.0.2 255.255.255.0 crypto map IPSEC-MAP ! ip route 0.0.0.0 0.0.0.0 30.0.0.1 ! |
設定の解説!
IPsecの主要設定については前回の記事で解説をしたので、今回はaggressiveモードの設定にしぼって解説をいたします。
crypto isakmp peer
「crypto isakmp peer」は、aggressiveモードのクライアント装置側にする設定です。ここにIPsec接続時の様々な基本設定を指定します。
「crypto isakmp peer address」には、IPsecの対向装置のIPアドレスを指定します。
「crypto isakmp peer hostname」には、IPsecの対向装置のID情報を指定します。IPsecのクライアント装置は、IPsecのイニシエータ(開始者)になるので、基本的にID情報だけでは対向装置に接続にいけません。この設定をするときは、ID情報からname解決によってIPアドレスを引くための設定も必要なはずです。
「set aggressive-mode password」には、ネゴシエーションの際に使用するpreshared key(事前共有鍵)の情報を設定します。
「set aggressive-mode client-endpoint」には、IPsecクライアント装置が使用する、自らのID情報を指定します。「ipv4-address」を指定すると、IPv4アドレスをIDとして使用します。「fqdn」を使用すると、fqdn情報をIDとして使用します(例:hogehoge.com)。「user-fqdn」を使用すると、user-fqdn情報をIDとして使用します(例:user1@hogehoge.com)
crypto isakmp key
「crypto isakmp key」には、ネゴシエーションの際に使われる事前共有鍵(pre-shared-key)の情報と、相手装置の識別情報(IPアドレス・ID情報)を設定します。
crypto dynamic-map
「crypto dynamic-map」には、aggressiveモードのクライアントを受け入れるための、ダイナミックマップの設定をします。ダイナミックマップとは、アドレスが決まっていない不特定多数のクライアント装置を動的に収容するための設定方法です。
「set transform-set」には、IPsec通信に使われる暗号化アルゴリズムやハッシュアルゴリズムを指定します。
crypto map {mapname} ipsec-isakmp dynamic
「crypto map {mapname} ipsec-isakmp dynamic」には、IPsec確立のためのパラメータ情報を、上記のダイナミックマップを指定することで設定します。ここで指定した条件で相手装置とIPsecを確立します。
access-list設定について
上記のコンフィグでは、クライアント装置R1にはacccess-list設定がされていますが、サーバ側装置R3にはaccess-list設定がされていません。このように設定すると、サーバ側装置はクライアントがネゴの際に通知してきたトラフィックセレクタ情報をいいなりに受け入れて、IPsecを確立します。基本的にaggressiveモードではクライアント装置のIPアドレスが未定なので、このようにクライアントが提示したアドレス範囲を柔軟に受け入れる設定にします。
まとめ
以上、IPsecのaggressiveモードの解説でした。
今回紹介した設定は、aggressiveモードの接続のために必要な最小限の設定です。実際に運用するときには、ユーザを個別に認証するためのXAUTH機能や、クライアント装置にアドレスを割り当てる際に使うモードコンフィグ機能など、いろんな機能を組み合わせて使うことが多いと思います。
IPsecのその他の機能「XAUTH」や「mode-config」の説明は、次回の記事でしたいと思います・・。
参考サイト・参考文献:
参考アグレッシブモードでIKEを開始するルータとの、ルータ同士によるLAN間トンネルの設定
参考Cisco機のIPsec機能を大解剖!IPsec(IKEv1)の設定を解説!