IPsecについてです。
ASA5505でのIPsec設定は以下のページに記載しました。
参照サイト
①ネットワーク層で動作するため、上位層で暗号化を意識する必要無し。
②IPレベルで暗号化できる。
③インターネットVPN(インターネットを介した拠点間で暗号化データを
カプセリング/トンネリングし通信をする方法)でよく使用される。
Internet Security Association and Key Management Protocolの略。
①IPsecのIKEの中で使われる。鍵交換先の認証と、
鍵交換の構造及びSAの生成を規定する仕様。
IKEはInternet Key Exchage略。
②ISAKMPは2つのフェーズで2つのSAを生成する。
③フェーズ1は鍵交換方式と鍵交換に用いる
暗号/認証方式をネゴシエーション(事前に折衝)する。
④フェーズ2でAH,ESPの使用有無と暗号/認証方式等を
ネゴシエーションする。
①IKEフェーズ1 ISAKMP SAを確立する。
②IKEフェーズ2 フェーズ1で作成したISAKMP SA内でIPsec SAを確立する。
③IPsecでの暗号通信 フェーズ2で作ったIPsec SA内でパケットを通信する。
以下の動作を行ないます。
・SAを確立する相手の認証
・フェーズ2の通信を安全に行う為の共有秘密鍵の生成
・ISAKMP SAの確立
・認証(Pre-Shared Key認証/公開鍵暗号化認証/デジタル署名認証)
・ID情報を暗号化して送信する。
・メインモードでは送信元IPアドレスをIDとして実装している。
・どちらも固定IPの時に使用する。
両拠点に固定グローバルIPのVPN機器を置いている場合等のイメージ。
・ID情報は暗号化されない。
・メインモードよりセキュリティが低い
・一方が固定IP、もう一方が動的IPの時に使用する。
出先のノートPCから拠点の自PCに接続する等のイメージ。
事前の秘密の共有無しに、盗聴の可能性のある通信路を使って、
暗号鍵の共有を可能にする暗号プロトコルである。
この鍵は、共通鍵暗号方式の鍵として使用可能である。
引用先
Diffie-Hellman Groupには、1(768-bit)と、2(1024-bit)と
5(1536-bit)の3種類があります。
VPNピアと設定が異なる場合は、"Group 1"で動作します。
引用先
フェーズ1で作成したISAKMP SA内でIPsec SAを確立します。
内容は、IPSec SAの暗号化の方式や鍵生成に必要となる
情報や鍵の有効期限等。
対向が動的IPアドレスの場合で、
IP変更などで切断時、再接続が可能。
「アグレッシブモード」の場合に必要な機能になります。
IPSecではトンネルを張り直す。その有効期限を設定する。
経過時間かパケットの量で設定する。
DHCPの有効期限と少し考え方が似てるかもしれない。
IPパケットのペイロード部(データ)が処理の対象。
なので送受信端末共にIPsec対応である必要がある。
スループットの低下が少ない。
どちらか一方の終端にセキュリティ・ゲートウェイが
ある場合に必ず使用する。
プライベートIPヘッダを含めたIPパケットを暗号化して
ペイロード(送信データ)とし、パブリックIPヘッダを
つけて送信。
AH Authentication Headerの略。パケットの認証のみ。
ESP Encapsulated Security Payloadの略。パケットの認証と暗号化。
・AH トランスポートモード
・AH トンネルモード
・ESP トランスポートモード
・ESP トンネルモード
DES<3DES<AES
MD5 128bitのハッシュ値< SHA-1 160bitのハッシュ値 <HMAC
参照サイト
今回はルーターの認証にPre-Shared Keyを使います。
ルータは4台ともCisco7200、
IOSはc7200-advipservicesk9-mz.124-6.T.binです。
設定は以下の構成で試行しました。
となる場合はIOSがIPsecに対応していません。
まず、対象のトラフィックを定義します。
※以後のipsec設定で使用するため、denyを使用する場合は
「ブロック」では無く「VPNの対象外」との動作となります。
IKEフェーズ1の定義に入ります。
config-isakmpモード。
※1~10000迄で設定可能、1が最優先です。
認証には「事前共有鍵」を使用することにしました。
・pre-share
・rsa-encr
・rsa-sig
が有ります。
暗号化アルゴリズムは「3DES」を使用することにしました。
R1(config-isakmp)#encryption 3des
・3des
・aes
・des
が有ります。
R1(config-isakmp)#encryption ?
ディフィー・ヘルマン鍵共有/交換のグループは「2」を使用することにしました。
・1
・2
・5
が有ります。
認証アルゴリズムは「sha」を使用することにしました。
R1(config-isakmp)#hash sha
・md5
・sha
が有ります。
有効期限を設定します。
デフォルトは1日の86400秒です。
相手側ルータのIPアドレスとパスワード(共通鍵)を関連付けます。
トランスフォーム セット(IPSecセキュリティプロトコルと
アルゴリズムの有効な組み合わせ)を定義します。
・ah-md5-hmac
・ah-sha-hmac
・comp-lzs
・esp-3des
・esp-aes
・esp-des
・esp-md5-hmac
・esp-null
・esp-seal
・esp-sha-hmac
が有ります。
ah-md5-hmac AH-HMAC-MD5 transform
ah-sha-hmac AH-HMAC-SHA transform
comp-lzs IP Compression using the LZS compression algorithm
esp-3des ESP transform using 3DES(EDE) cipher (168 bits)
esp-aes ESP transform using AES cipher
esp-des ESP transform using DES cipher (56 bits
esp-md5-hmac ESP transform using HMAC-MD5 auth
esp-null ESP transform w/o cipher
esp-seal ESP transform using SEAL cipher (160 bits)
esp-sha-hmac ESP transform using HMAC-SHA auth
通信モードを設定します。
・transport
・tunnel
が有ります。
transport transport (payload encapsulation) mode
tunnel tunnel (datagram encapsulation) mode
暗号マッププロファイルの作成を行います。
シーケンス番号は1~65535です。
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
ipsecに使用する先程のアクセスリストを番号か名前で指定します。
相手側ルーターのアドレスかホスト名を指定します。
先程のトランスフォームセットを指定します。
※もしIPSec SAの生存時間もデフォルトから変更するなら、KBか秒で指定します。
最後に、インターフェースへipsecポリシーを割り当てます。
*Sep 25 19:21:25.867: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
IPsec SAの設定を見ます。
Transform set AAAIPSEC: { esp-3des esp-sha-hmac }
will negotiate = { Transport, },
ISAKMP SAの状態を見ます。
IPv4 Crypto ISAKMP SA
dst src state conn-id slot status
IPv6 Crypto ISAKMP SA
IPsec SAの状態を見ます。
interface: FastEthernet0/0
Crypto map tag: BBBMAP, local addr 10.0.0.1
protected vrf: (none)
local ident (addr/mask/prot/port):
(192.168.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port):
(192.168.2.0/255.255.255.0/0/0)
current_peer 10.0.0.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
#pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 10.0.0.1, remote crypto endpt.: 10.0.0.2
path mtu 1500, ip mtu 1500
current outbound spi: 0x0(0)
inbound esp sas:
inbound ah sas:
inbound pcp sas:
outbound esp sas:
outbound ah sas:
outbound pcp sas:
相手側ルータも同じ設定を投入します。
access-listとset peerは対向ルータについての設定です。
以上でIPsecの基本設定は終了です。
検証のため通信を発生させます。まずスタティックルートを入れておきます。
R1(config)#ip route 192.168.2.0 255.255.255.0 10.0.0.2
R2(config)#ip route 192.168.1.0 255.255.255.0 10.0.0.1
R3(config)#ip route 192.168.2.0 255.255.255.0 192.168.1.1
R4(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1
R3#ping 192.168.2.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.100, timeout is 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max = 120/124/128 ms
再度、ISAKMP SAの設定を見ます。
R1#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id slot status
10.0.0.2 10.0.0.1 QM_IDLE 1001 0 ACTIVE
IPv6 Crypto ISAKMP SA
再度、IPsec SAの設定を見ます。
R1#show crypto ipsec sa
interface: FastEthernet0/0
Crypto map tag: BBBMAP, local addr 10.0.0.1
protected vrf: (none)
local ident (addr/mask/prot/port):
(192.168.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port):
(192.168.2.0/255.255.255.0/0/0)
current_peer 10.0.0.2 port 500
PERMIT, flags={origin_is_acl,ipsec_sa_request_sent}
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
#pkts decaps: 3, #pkts decrypt: 3, #pkts verify: 3
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
local crypto endpt.: 10.0.0.1, remote crypto endpt.: 10.0.0.2
path mtu 1500, ip mtu 1500
current outbound spi: 0xA65E995(174451093)
inbound esp sas:
spi: 0xBC4C973F(3159136063)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 1, flow_id: SW:1, crypto map: BBBMAP
sa timing: remaining key lifetime (k/sec): (4404850/3588)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xA65E995(174451093)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2, flow_id: SW:2, crypto map: BBBMAP
sa timing: remaining key lifetime (k/sec): (4404850/3587)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
IPsecとIKEの概要を見ます。
R1#show crypto engine connection active
Crypto Engine Connections
ID Interface Type Algorithm Encrypt Decrypt IP-Address
1 Fa0/0 IPsec 3DES+SHA 0 3 10.0.0.1
2 Fa0/0 IPsec 3DES+SHA 4 0 10.0.0.1
1001 Fa0/0 IKE SHA+3DES 0 0 10.0.0.1
パケットキャプチャは以下です。
※Protocol LOOPと有るのはキープアライブです。
機器にもよりますがおよそ下位ポートではデフォルトで送信しています。
以下の図解が分かりやすいです。
L2ループ対策
キープアライブについて
送信したポートにキープアライブ パケットがループバックされると、ループバック
エラーが発生します。デフォルトでは、すべてのインターフェイスに対して、
スイッチはキープアライブを送信します。
ネットワークにはスパニング ツリーでブロックされていない論理ループが存在するので、
通常は、デバイスが自分の発信元インターフェイスにパケットをループバックできます。
自分が送出したキープアライブ パケットを発信元インターフェイスが受信すると、
スイッチによってそのインターフェイスがディセーブル(errdisable)にされます。