読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

Mikrotik と Cisco ASA 間で Site-to-Site な IPsec を設定してみる

Cisco IPsec MikroTik Network

VIRL 上の Mikrotik(RouterOS)と Cisco ASAv 間で Site-to-Site な IPsec を設定してみます。

構成 / バージョン / パラメータ

構成

検証構成は以下の通りです。LAN 内の PC 代わりに Mikrotik を配置しています。

f:id:sig9:20150809162847p:plain

バージョン

各ルータのバージョン / 役割は以下の通りです。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 proposalauth-algorithmsip ipsec peerhash-algorithm のデフォルト値は sha1 のようで、sha1 に設定されているとコンフィグ上には表示されません。RoS 側では sha256 等に対応しているのですが、Cisco ASAv 側では sha1 までしか対応していないようなので、今回は sha1 としました。

/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 に比べてかなりコンフィグが長くなります。

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)の状態を確認出来ます。

[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 の状態を確認出来ます。

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 saIPsec SA の状態を確認出来ます。

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