A CCNA Security egyik alap témaköre a VPN. IOS-szel sokat csináltam már, ASA-val még egyet sem. Ezt laborozom ki ma.
A topológia a szokásos (A Tunnelt itt most nem kell nézni, crypto-map-pel fogjuk megcsinálni, amit a fizikai interface-re konfigurálunk):

Az ASA-t ASDM-mel, az IOS oldalt pedig CLI-n fogjuk felkonfigurálni (Cisco Configuration Professional-ben van rá varázsló, ami végigvezet a lépéseken).
Első lépés: ahhoz, hogy a crypto map aktív lehessena végén, a routing-nak rendben kell lennie. Előbb route-l az eszköz, és utána titkosít. Azaz ha pl. az ASA nem tudja, merre van a 10.0.2.0/24, sosem fog életbe lépni a titkosítás, hiszen nem tudja, merre kellene továbbítani a csomagokat. Ezeket a route-kat fogom később a Crypto ACL-ekben felhasználni. Az egyszerűség kedvéért most B osztályokat adok meg, azaz:
ASA-n a 10.0.0.0/16-t:
ASAv# sh run | i route route INTERNET 10.0.0.0 255.255.0.0 100.100.100.2 1 ASAv#
R1-en pedig a 192.168.0.0/16-t:
R1#sh run | i route ip route 192.168.0.0 255.255.0.0 100.100.100.1 R1#
Pingelni már tudunk is a két eszköz között:
ASAv# ping 100.100.100.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.100.100.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/10 ms ASAv#
Az alábbiakat definiáljuk a VPN-hez (most nem veszem figyelembe titkosítás/hashelés erősségét):
- IKEv1 Phase 1 (“HAGLE”)
- Hash: sha
- Athentication: pre-share, key: fkuris
- Group: DH 2
- Lifetime: 3600
- Encryption: 3des
- IKEv1 Phase 2
- Transform-set: TS, 3des, sha1
- Mode: tunnel (alapértelmezett)
- Crypto ACL 100: 10.0.0.0/16 <-> 192.168.0.0/16. Pontos tükörképnek kell lenni!
- Crypto-map: FKURIS-VPN
Kezdjük az IOS oldallal, CLI-ből.
crypto isakmp policy 10 encr 3des authentication pre-share group 2 lifetime 3600 crypto isakmp key fkuris address 100.100.100.1 ! ! access-list 100 permit ip 10.0.0.0 0.0.255.255 192.168.0.0 0.0.255.255 ! ! crypto ipsec transform-set TS esp-3des esp-sha-hmac mode tunnel ! ! ! crypto map FKURIS-VPN 1 ipsec-isakmp set peer 100.100.100.1 set transform-set TS match address 100 ! ! interface Ethernet1/3 crypto map FKURIS-VPN ! ! end
Jöhet az ASA oldal.
Wizards –> VPN –> Site-to-Site VPN.
Ne feledjük, addig nem fog felépülni az IPSec tunnel, ameddig nem generálunk olyan forgalmat, amely a crypto ACL-re egyezik.
Pingeljük meg ASA belső lábát R1 belső lábáról, ennek fel kell építeni a VPN-t:
R1#ping 192.168.1.1 source e1/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds: Packet sent with a source address of 10.0.1.1 ..... Success rate is 0 percent (0/5)
Nézzük, hogy Phase 1 OK-e:
R1#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
100.100.100.1 100.100.100.2 QM_IDLE 1001 ACTIVE
IPv6 Crypto ISAKMP SA
R1#
Quick mode idle, ez jó, Phase 1 OK.
R1#sh crypto ipsec sa interface: Ethernet1/3 Crypto map tag: FKURIS-VPN, local addr 100.100.100.2 protected vrf: (none) local ident (addr/mask/prot/port): (10.0.0.0/255.255.0.0/0/0) remote ident (addr/mask/prot/port): (192.168.0.0/255.255.0.0/0/0) current_peer 100.100.100.1 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
Van encaps, de nincs decaps. Valami az ASA oldalán nem oké, nem jön vissza csomag. Az ASA oldalán is up-ban van a VPN, de nincs encapsulated packet.
Ennek oka, hogy az ASA eldobja alapból belső lábára érkező ICMP csomagokat.
De ha R2-ről próbáljuk pingelni R1 belső lábát, az már menni fog.
R2#ping 10.0.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/14 ms R2#
Látunk is encaps/decaps packeteket R1-en és ASA-n is:
R1#sh crypto ipsec sa | i caps #pkts encaps: 44, #pkts encrypt: 44, #pkts digest: 44 #pkts decaps: 35, #pkts decrypt: 35, #pkts verify: 35 R1#
Az itteni konfigurációt senki ne használja élesben, a gyenge titkosítás/hashelés miatt.