Site2Site VPN z wykorzystaniem IKEv2 cz.1

Witajcie drodzy czytelnicy 馃檪

Jaki艣 czas temu mia艂em okazj臋 popracowa膰 nad implementacj膮 Cisco ASA 5545X. Jednym z zada艅 by艂o zestawienie tuneli VPN z r贸偶nymi plac贸wkami zdalnymi.聽Poniewa偶 sprz臋t kt贸ry mia艂em do dyspozycji wspiera ikev2, postanowi艂em zatem, wykorzysta膰 ten fakt.
Dla u艣ci艣lenia IKEv2 zosta艂 opublikowany we Wrze艣niu 2010 (RFC 5996).
Zbudowa艂em na pocz膮tku do艣膰 prostego LAB鈥檃 – schemat poni偶ej. Dla r贸偶norodno艣ci u偶y艂em Cisco ASA wspomnianej powy偶ej oraz ma艂ego 鈥渂ranchowego鈥 routera Cisco 867 (niestety jego poprzednik 861 nie obs艂uguje ikev2)

site2sitevpnikv2

Cisco ASA konfiguracja:

Na pierwszy ogie艅 we藕miemy ASA鈥檈. Wraz z softem 8.4 pojawi艂o si臋 wsparcie dla ikev2 dla tego sprz臋tu.

Konfiguracja IKEv2 Policy

Tutaj ustawienia s膮 do艣膰 podobne jak w przypadku ike wersji 1szej:

crypto ikev2 policy 10
 encryption aes-256
 integrity sha256
 group 2
 prf sha256
 lifetime seconds 120

Konfiguracja IKEv2 IPSEC Proposal

To jest to co do tej porty konfigurowali艣my jako transform set鈥檡 (faza 2-a). Sk艂adnia w tym wypadku wygl膮da jak poni偶ej:

crypto ipsec ikev2 ipsec-proposal IPSEC.PROP
 protocol esp encryption aes-256 3des aes-gmac-256
 protocol esp integrity sha-256 sha-1 md5

Nale偶y r贸wnie偶 pami臋ta膰 o w艂膮czeniu ikev2 na interfejsie OUTSIDE

crypto ikev2 enable OUTSIDE

Reszta konfiguracji.

Teraz ju偶 wszystko jest praktycznie tak samo jak do tej pory.
Zatem access-list okre艣laj膮ca jaki ruch ma wpada膰 w tunel.

access-list ACL.CM.VPN.TEST extended permit ip host 10.20.20.1 host 10.10.10.2

Dalej kolejno crypto-map鈥檃 w kt贸rej zbieramy w ca艂o艣膰, ikev2 proposal, access-list臋, adres ip peer鈥檃 itp.

crypto map CM.OUTSIDE 10 match address ACL.CM.VPN.TEST
crypto map CM.OUTSIDE 10 set pfs
crypto map CM.OUTSIDE 10 set peer 200.1.1.1
crypto map CM.OUTSIDE 10 set ikev2 ipsec-proposal IPSEC.PROP
crypto map CM.OUTSIDE 10 set reverse-route

Nie zapomnijcie o przypi臋ciu crypto-map鈥檡 do interfejsu OUTSIDE:

crypto map CM.OUTSIDE interface OUTSIDE

No i oczywi艣cie tunnel-group鈥檃

tunnel-group 200.1.1.1 type ipsec-l2l
tunnel-group 200.1.1.1 ipsec-attributes
 ikev2 remote-authentication pre-shared-key some_key
 ikev2 local-authentication pre-shared-key some_key1

Jak wida膰 ikev2 posiada dodatkow膮 opcj臋 okre艣lenia dw贸ch kluczy PSK (remote,local). Po drugiej stronie konfigurujemy na odwr贸t. Mo偶na te偶 skonfigurowa膰 identyczny klucz.

W tym miejscu pragn臋 jeszcze zwr贸ci膰 uwag臋, na pewien fakt, kt贸ry mo偶e sprawi膰,偶e tak jak ja sp臋dzisz troch臋 czasu na troubleshootingu pt 鈥渃zemu si臋 nie zestawia鈥.

Wy艣wietlaj膮c pe艂n膮 konfiguracj臋 poprzez

show run all

zauwa偶ysz, 偶e (by design) tunnel-grup鈥檃 u偶ywa domy艣lnej group-policy:

tunnel-group 200.1.1.1 general-attributes
default-group-policy DfltGrpPolicy

Warto zatem sprawdzi膰 czy DfltGrpPolicy ma skonfigurowane wsparcie ikev2 (zw艂aszcza, gdy tak jak ja lubisz du偶o miesza膰 w konfiguracji).

group-policy DfltGrpPolicy attributes
 vpn-tunnel-protocol ikev2

Weryfikacja

Sprawdzi膰 dzia艂anie tunelu mo偶na do艣膰 艂atwo, np poprzez wygenerowanie pakiety icmp do zdalnego hosta:

#ping 10.10.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 64/114/240 ms

Po stronie ASA mo偶na sprawdzi膰 czy zar贸wno faza I jak i II s膮 aktywne.

ASA1# sh crypto ikev2 sa
IKEv2 SAs:
Session-id:1, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id 聽 聽 聽 聽 聽 聽 聽 聽 Local聽 聽 聽 聽 聽 聽 聽 聽 Remote 聽 聽 Status 聽 聽 聽 聽 Role
13758825 聽 聽 聽 聽 200.1.1.1/500 聽 聽 聽 聽 200.1.1.2/500聽 聽 聽 READY聽 聽 INITIATOR

Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:2, Auth sign: PSK, Auth verify: PSK

Life/Active Time: 120/12 sec

Child sa: local selector聽 10.20.20.0/0 - 10.20.20.255/65535

remote selector 10.10.10.0/0 - 10.10.10.255/65535

ESP spi in/out: 0x88aa384e/0x5046f2ef

oraz

ASA1# sh crypto ipsec sa
interface: OUTSIDE
Crypto map tag: CM.OUTSIDE, seq num: 10, local addr: 200.1.1.1

access-list ACL.CM.VPN.TEST extended permit ip 10.20.20.0 255.255.255.0 10.10.10.0 255.255.255.0

local ident (addr/mask/prot/port): (10.20.20.0/255.255.255.0/0/0)

remote ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)

current_peer: 200.1.1.2

#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4

#pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4

#pkts compressed: 0, #pkts decompressed: 0

Jak wida膰 po licznikach ruch przep艂ywa w obie strony.

To tyle je艣li chodzi o konfiguracj臋 po stronie Cisco ASA, w kolejnym po艣cie opisz臋 co trzeba z]obi膰 po stronie Router鈥檃. A tymczasem polecam zabawy z tunelem ASA-ASA.

Zach臋cam r贸wnie偶 do obejrzenia ciekawej prezentacji Piotra Matusiaka z Cisco. Co prawda g艂贸wnym tematem jest FlexVPN, ale jest te偶 sporo dobrego 鈥渕i臋sa鈥 nt. tego jak dzia艂a IKEv2.

艁ukasz od kilkunastu lat zajmuje si臋 sieciami komputerowymi i systemami teleinformatycznymi, pracuj膮c obecnie jako in偶ynier wsparcia sprzeda偶y. Od pewnego czasu intensywnie zainteresowany rozwi膮zaniami Public Cloud i wszystkim as a Service. W wolnym czasie biega i prowadzi bloga https://www.lukado.eu