Mikrotik と Cisco ASA 間で Site-to-Site な IPsec を設定してみる
VIRL 上の Mikrotik(RouterOS)と Cisco ASAv 間で Site-to-Site な IPsec を設定してみます。
構成 / バージョン / パラメータ
構成
検証構成は以下の通りです。LAN 内の PC 代わりに Mikrotik を配置していまaす。
バージョン
各ルータのバージョン / 役割は以下の通りです。RoS-2 と ASAv-4 間で IPsec を設定するのが今回の目標です。
通し番号 |
デバイス名 |
メーカー |
OS バージョン |
備考 |
1 |
RoS-1 |
Mikrotik |
6.30.2 |
LAN-1 内の PC 代わり |
2 |
RoS-2 |
Mikrotik |
6.30.2 |
LAN-1 側のゲートウェイ |
3 |
IOSv-3 |
Cisco |
Cisco IOS 15.5(2)T |
インターネット中継ルータ想定 |
4 |
ASAv-4 |
Cisco |
Cisco ASA 9.3(2)200 |
LAN-2 側のゲートウェイ |
5 |
RoS-5 |
Mikrotik |
6.30.2 |
LAN-1 内の PC 代わり |
パラメータ
IKE Phase.1 のパラメータは以下とします。
項目 |
値 |
モード |
Main |
暗号化アルゴリズム |
AES |
ハッシュアルゴリズム |
SHA1 |
ライフタイム |
1 日(86,400 秒) |
認証方式 |
事前鍵共有方式(今回、利用したフレーズは「PSK」) |
DH グループ |
グループ 2(1,024bit) |
IKE Phase.2 のパラメータは以下とします。
項目 |
値 |
セキュリティプロトコル |
ESP |
暗号化アルゴリズム |
AES |
認証アルゴリズム |
HMAC-SHA1 |
ライフタイム |
1 日(86,400 秒) |
カプセル化モード |
トンネルモード |
DH グループ |
グループ 2(1,024 bit) |
コンフィグ
各ルータのコンフィグは以下の通りです。
RoS-1 のコンフィグ
LAN 内の PC 想定なので、「インターフェイスアドレス」と「デフォルトゲートウェイ」程度しか設定していません。
| /ip address
add address=172.16.1.100/24 interface=ether2 network=172.16.1.0
/ip route
add distance=1 gateway=172.16.1.1
/system identity
set name=RoS-1
|
RoS-2 のコンフィグ
RouterOS ip ipsec proposal の auth-algorithms や ip ipsec peer の hash-algorithm のデフォルト値は sha1 のようで、sha1 に設定されているとコンフィグ上には表示されません。RoS 側では sha256 等に対応しているのですが、Cisco ASAv 側では sha1 までしか対応していないようなので、今回は sha1 としました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | /ip ipsec proposal
add auth-algorithms=sha1 enc-algorithms=aes-256-cbc lifetime=1d pfs-group=modp1024 name=ESP-AES256-SHA
/ip address
add address=172.16.1.1/24 interface=ether3 network=172.16.1.0
add address=192.168.1.1/24 interface=ether2 network=192.168.1.0
/ip firewall nat
add chain=srcnat dst-address=172.16.2.0/24 src-address=172.16.1.0/24
add action=masquerade chain=srcnat out-interface=ether2 src-address=172.16.1.0/24
/ip ipsec peer
add address=192.168.2.1/32 dpd-interval=disable-dpd dpd-maximum-failures=1 enc-algorithm=aes-256 hash-algorithm=sha1 lifetime=1d nat-traversal=no secret=PSK
/ip ipsec policy
add dst-address=172.16.2.0/24 proposal=ESP-AES256-SHA sa-dst-address=192.168.2.1 sa-src-address=192.168.1.1 src-address=172.16.1.0/24 tunnel=yes
/ip route
add distance=1 gateway=192.168.1.254
/system identity
set name=RoS-2
|
IOSv-3 のコンフィグ
インターネットの中継ルータを模している為、インターフェイスアドレスしか設定していません。インターネットから LAN 内への到達性(WAN → LAN への到達性)は「無くて当然」ですので、LAN-1 や LAN-2 のネットワーク(172.16.1.0/24 や 172.16.2.0/24)へのルーティングは設定しません。
| hostname IOSv-3
!
interface GigabitEthernet0/1
ip address 192.168.1.254 255.255.255.0
no shutdown
!
interface GigabitEthernet0/2
ip address 192.168.2.254 255.255.255.0
no shutdown
!
end
|
ASAv-4 のコンフィグ
ワンライナーでコンフィグが書けない為、Mikrotik に比べてかなりコンフィグが長くなります。
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 | hostname ASAv-4
!
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 192.168.2.1 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 172.16.2.1 255.255.255.0
no shutdown
!
object network LOCAL-172.16.2.0
subnet 172.16.2.0 255.255.255.0
!
object network REMOTE-172.16.1.0
subnet 172.16.1.0 255.255.255.0
!
object network ANY-0.0.0.0
subnet 0.0.0.0 0.0.0.0
!
access-list ACL-PERMIT-VPN extended permit ip 172.16.2.0 255.255.255.0 172.16.1.0 255.255.255.0
!
no pager
!
nat (inside,outside) source static LOCAL-172.16.2.0 LOCAL-172.16.2.0 destination static REMOTE-172.16.1.0 REMOTE-172.16.1.0
!
object network ANY-0.0.0.0
nat (inside,outside) dynamic interface
!
route outside 0.0.0.0 0.0.0.0 192.168.2.254 1
!
crypto ipsec ikev1 transform-set ESP-AES256-SHA esp-aes-256 esp-sha-hmac
crypto ipsec security-association pmtu-aging infinite
crypto map CRYPTO-MAP 1 match address ACL-PERMIT-VPN
crypto map CRYPTO-MAP 1 set peer 192.168.1.1
crypto map CRYPTO-MAP 1 set ikev1 transform-set ESP-AES256-SHA
crypto map CRYPTO-MAP interface outside
crypto ikev1 enable outside
!
crypto ikev1 policy 65535
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
!
tunnel-group 192.168.1.1 type ipsec-l2l
tunnel-group 192.168.1.1 ipsec-attributes
ikev1 pre-shared-key PSK
!
policy-map global_policy
class inspection_default
inspect icmp
!
end
|
RoS-5 のコンフィグ
RoS-1 同様、LAN 内の PC 想定なので、「インターフェイスアドレス」と「デフォルトゲートウェイ」程度しか設定していません。
| /ip address
add address=172.16.2.100/24 interface=ether2 network=172.16.2.0
/ip route
add distance=1 gateway=172.16.2.1
/system identity
set name=RoS-5
|
これで RoS-2 〜 ASAv-4 間の IPsec トンネルが確立するはずです。
状態確認
エンド 〜 エンド(RoS-1 と RoS-5)間で Ping 等の通信を発生させた状態で、各ルータの状態を見てみます。
RoS-2 での状態確認
/ip ipsec remote-peers print を確認すると、IPsec の Peer が「established」状態になっている = IPsec トンネルが確立していることが分かります。
| [admin@RoS-2] > /ip ipsec remote-peers print
0 local-address=192.168.1.1 remote-address=192.168.2.1 state=established side=responder established=59m9s
|
/ip ipsec installed-sa print で SA(Security Association)の状態を確認出来ます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | [admin@RoS-2] > /ip ipsec installed-sa print
Flags: A - AH, E - ESP
0 E spi=0x14FCDA9 src-address=192.168.2.1 dst-address=192.168.1.1 state=mature auth-algorithm=md5 enc-algorithm=3des
auth-key="9c52dd1f71f3f5b7850f55a644e2d266" enc-key="2b29611444d1d3800b3eb0e8b0bfd6758474e0271f412e3e"
addtime=aug/09/2015 05:52:05 expires-in=4h43m38s add-lifetime=6h24m/8h current-bytes=231728 replay=128
1 E spi=0xD2C7BD6 src-address=192.168.2.1 dst-address=192.168.1.1 state=mature auth-algorithm=md5 enc-algorithm=3des
auth-key="0c4921d7045b2bc28e6b5864c55c8618" enc-key="cbc62a0ba6497fbb96a4a3cda73d4a89fed1b8702c13b96c"
addtime=aug/09/2015 07:38:41 expires-in=6h30m14s add-lifetime=6h24m/8h current-bytes=19208 replay=128
2 E spi=0x76C8CFD src-address=192.168.2.1 dst-address=192.168.1.1 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc
auth-key="7fd546635b9f4cb81231a5885fdd4c52602ec452"
enc-key="eef3dcf2a27e8e072bb749acbf83b563fe1e7aca033de77cfc16914999b1cb9d" addtime=aug/09/2015 07:48:44
expires-in=6h40m17s add-lifetime=6h24m/8h current-bytes=5320 replay=128
3 E spi=0x8324658 src-address=192.168.2.1 dst-address=192.168.1.1 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc
auth-key="3fc93da72011fb555a8ae31ab362f8dbd97621ec"
enc-key="3c77c5e54f8891ac5510c5c39a2adfe9f3cd649cf5bf5066c46055801324c6c7" addtime=aug/09/2015 07:49:34 expires-in=6h41m7s
add-lifetime=6h24m/8h current-bytes=3360 replay=128
・
・
・
|
ASAv-4 での状態確認
show crypto isakmp sa detail で ISAKMP の状態を確認出来ます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | ASAv-4# show crypto isakmp sa detail
IKEv1 SAs:
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: 192.168.1.1
Type : L2L Role : initiator
Rekey : no State : MM_ACTIVE
Encrypt : aes-256 Hash : SHA
Auth : preshared Lifetime: 86400
Lifetime Remaining: 82674
There are no IKEv2 SAs
|
show crypto ipsec sa で IPsec SA の状態を確認出来ます。
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 | ASAv-4# show crypto ipsec sa
interface: outside
Crypto map tag: CRYPTO-MAP, seq num: 1, local addr: 192.168.2.1
access-list ACL-PERMIT-VPN extended permit ip 172.16.2.0 255.255.255.0 172.16.1.0 255.255.255.0
local ident (addr/mask/prot/port): (172.16.2.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (172.16.1.0/255.255.255.0/0/0)
current_peer: 192.168.1.1
#pkts encaps: 7605, #pkts encrypt: 7605, #pkts digest: 7605
#pkts decaps: 7605, #pkts decrypt: 7605, #pkts verify: 7605
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 7605, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 192.168.2.1/0, remote crypto endpt.: 192.168.1.1/0
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 0F3DA7C9
current inbound spi : 6553425E
inbound esp sas:
spi: 0x6553425E (1699955294)
transform: esp-aes-256 esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 126976, crypto-map: CRYPTO-MAP
sa timing: remaining key lifetime (kB/sec): (4373583/24988)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFFFFF
outbound esp sas:
spi: 0x0F3DA7C9 (255698889)
transform: esp-aes-256 esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 126976, crypto-map: CRYPTO-MAP
sa timing: remaining key lifetime (kB/sec): (4373583/24988)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
|