IPSec(Security Architecture for IP) とは暗号化技術となります。
VPNの構築に使われ、ネットワーク層で機能します。
事前共有キー (Pre-Shared Key)での認証を実施するのでSSLVPNより処理が速いとされています。
細かい仕組みはこちらを参照→「IPsecとは①」
構成
IPsec設定
ISAKMP SA(フェーズ1)の設定値 | |
(config)#crypto isakmp policy (プライオリティ値) | ISAKMPポリシーの設定 プライオリティ値=1~10000で指定可能 数字が低いほど優先度が高くなる |
(config-isakmp)#encryption (暗号値) | 暗号化アルゴリズムの指定。 (des | 3des | aes | aes 192 | aes 256)から選択 デフォルトはdes |
(config-isakmp)#hash (ハッシュ値) | ハッシュアルゴリズムの指定 (md5 | sha | sha256 | sha384 | sha512)から選択 デフォルトはsha |
(config-isakmp)#authentication (認証値) | 認証アルゴリズムの指定 (rsa-sig | rsa-encr | pre-share)から選択 デフォルトはrsa-sig |
(config-isakmp)#group (DHグループ値) | DH(Diffie-Hellman)グループの指定。 ( 1 | 2 | 5 | 14 | 15 | 16 | 19 | 20 )から選択 デフォルトは1 |
(config-isakmp)# lifetime (秒) | IKE SA のライフタイムを指定 60~86,400秒で指定可能 デフォルトは86,400秒 |
(config)#crypto isakmp key (パスワード) address (ピアのIPアドレス) | 事前共有鍵と接続先IPアドレスの設定。 ※認証設定でpre-shareを設定した場合 |
(config)#crypto isakmp keepalive (秒) [ periodic | on-demand ] | DPDの設定※リアルタイムで通信断を検知したい場合に設定する 10~3,600秒で指定可能 •periodic:DPD メッセージを指定時間で定期的に送信 •on-demand:DPD メッセージをIPsecトラフィックが流れていないときのみ送信 |
IPSEC SA(フェーズ2)の設定値 | |
(config)#crypto ipsec transform-set (トランスフォーム名) (ESP暗号化トランスフォーム1) [ESP/AH認証トランスフォーム2] トランクフォーム名:任意の名前を指定 AH/ESP暗号化トランスフォーム:ESP = esp-gcm | esp-gmac | esp-aes(128・192・256) | esp-des | esp-3des から選択 ESP/AH認証トランスフォーム:AH = ah-md5-hmac | ah-sha-hmac から選択 ESP = esp-md5-hmac | esp-sha-hmac mode:Trasport | tunnel から選択 ※指定しない場合はTunnelとなる |
|
(cfg-crypto-tran)#mode [transport | tunnel] | mode:Trasport | tunnel から選択 ※デフォルトはTunnel |
IPsecの対象とする通信をACLの設定 | |
(config)#access-list (番号 | 名前) permit ip 送信元IPアドレス SM 宛先IPアドレス SM | IPsecの対象とする通信をACLで定義 ※ACLの細かい設定はこちら |
暗号マップの作成 | |
(config)#crypto map (暗号MAP名) (シーケンス番号) ipsec-isakmp | 暗号マップの枠を作成 MAP名:任氏の名前 シーケンス番号:番号を指定(小さい値が優先) |
(config-crypto-map)#set peer (ピアのIPアドレス) | 接続相手のIPアドレスを指定 |
(config-crypto-map)#set transform-set (トランスフォーム名) | IPSEC SA(フェーズ2)の設定で作成したトランスフォーム名を指定 |
(config-crypto-map)#match address (アクセスリスト番号 | アクセスリスト名) | 暗号化するACLを指定 |
(config-crypto-map)#set pfs (group1・2・5) | IPSec SA ネゴシエーションの Diffie-Hellman(DH)グループ ID を指定。 • デフォルトでは無し オプションなので設定しなくても問題なし ※新しい SA を要求する場合、Perfect Forward Secrecy(PFS; 完全転送秘密)を要求する |
暗号マップをインターフェースに割り当て | |
(config-if)#crypto map (暗号MAP名) | インターフェースに対する暗号マップの適用 |
設定例
パケット内容
GREトンネル
GRE(Generic Routing Encapsulation)とはトンネルプロトコルの1つでパケットをGREでカプセル化します。
IPsecと異なり、トンネル内で暗号化は行いません。
GREトンネルを使用する事でマルチキャストを転送できるようになるので、主にルーティングプロトコルの交換に使用されます。
GREを使用するときは大体はIPsecとセットで使用します。
GRE設定
(config)#interface tunnel (番号) | トンネルインターフェースの作成 |
(config-if)#ip address IPアドレス サブネットマスク | GREトンネルで設定する任意のローカルアドレスを設定 |
(config-if)#tunnel source (実I/FのIP | I/F名) | 送信元のIPアドレスを指定 |
(config-if)#tunnel destination (宛先IP) | 宛先IPアドレスを指定 |
GRE over IPsecの設定
GREトンネルの通信をIPsecで暗号化します。
①IPsecトンネルとGREの設定を実施して、IPsecで指定しているACLの設定を下記のように設定します。
GREトンネルとセットで使うと先にGREトンネルが構築されるため、ACLを下記のようにする必要があるみたい
access-list (番号) permit gre host (送信元IP) host (宛先IP) |
暗号化するIPを指定する 番号:任意の番号(IPsecのcrypto mapで指定するACL) プロトコル:GREを指定 送信元:GREで指定した送信元I/FのIPアドレス 宛先:GREで指定した宛先のIPアドレス |
②IPSecプロファイルを作成してTunnelインターフェースに適用する
Ciscoパケットトレーサでは設定ができませんでした
(config)#crypto ipsec profile プロファイル名 | 任意のプロファイル名を設定 |
(config-crypto)#set transform-set (トランスフォームセット名) | IPsecの設定の時に作成したトランスフォームを指定 |
(config-if)#tunnel protection ipsec profile プロファイル名 | 作成したGREトンネルにIPsecプロファイルを設定 |
詳細確認コマンド
show crypto isakmp policy | 作成したIKEフェーズ 1 のISAKMPポリシーを表示 |
show crypto isakmp sa | IKEフェーズ 1 のピア間で構築された ISAKMP SAを表示 ステータス ①表示無し:IPsecの通信が行われていない状態 ②MM_NO_STATE:IKEフェーズ1の失敗 ③QM_IDLE:IKEフェーズ1の成功 |
show crypto ipsec transform-set | IKEフェーズ 2 のトンラスフォームセットの表示 |
show crypto ipsec sa | IKEフェーズ 2 のピア間で構築された IPSec SA を表示 |
show crypto session detail | IPsec SAの詳細ステータス表示 |
コメント