Skip to content

Konfiguracja IPsec VPN

Przygotowanie, scenariusz

Info

Do realizacji tego zadania wymagany będzie dowolnie wybrany emulator np. Cisco Modeling Labs, GNS3, EVE-NG oraz dostęp do obrazów Cisco IOS.

Celem jest konfiguracja tunelu IPsec Site-to-Site VPN między R1 i R3.

Topologia

Screenshot

Adresacja

  • R1 e0/0 - 10.10.0.1/30
  • R1 e0/1 - 64.100.0.2/30

  • R2 e0/1 - 64.100.0.1/30
  • R2 e0/2 - 64.100.1.1/30
  • R2 lop0 - 209.165.200.225/27

  • R3 e0/0 - 10.10.4.1/30
  • R3 e0/2 - 64.100.1.2/30

  • S1 e0/0 - 10.10.0.2/30
  • S1 e0/1 - 10.10.1.1/24
  • S1 lop2 - 10.10.2.1/24
  • S1 lop3 - 10.10.3.1/24

  • S2 e0/0 - 10.10.4.2/30
  • S2 e0/1 - 10.10.5.1/24
  • S2 lop6 - 10.10.16.1/24
  • S2 lop7 - 10.10.17.1/24
  • S2 lop8 - 10.10.18.1/24
  • S2 lop9 - 10.10.19.1/24
  • S2 lop20 - 10.10.20.1/24
  • S2 lop21 - 10.10.21.1/24
  • S2 lop22 - 10.10.22.1/24
  • S2 lop23 - 10.10.23.1/24

Konfiguracja R1

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R1

Adresujemy interfejsy i uruchamiamy OSPF dla połączenia z przełącznikiem S1. Na koniec rozgłaszamy domyślną trasę do sieci zewnętrznych przez router R2.

R1(config)#interface ethernet 0/1
R1(config-if)#ip address 64.100.0.2 255.255.255.252
R1(config-if)#no shutdown

R1(config)#interface ethernet 0/0
R1(config-if)#ip address 10.10.0.1 255.255.255.252
R1(config-if)#no shutdown

R1(config)#router ospf 123
R1(config-router)#router-id 1.1.1.1
R1(config-router)#auto-cost reference-bandwidth 1000
R1(config-router)#network 10.10.0.0 0.0.0.3 area 0
R1(config-router)#default-information originate

R1(config)#ip route 0.0.0.0 0.0.0.0 64.100.0.1

Konfiguracja R2

Router R2 pełni funkcję pośrednika, obsługuje połączenia z R1 i R3 oraz udostępnia trasę domyślną na interfejs loopback 0.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R2
R2(config)#interface ethernet 0/1
R2(config-if)#ip address 64.100.0.1 255.255.255.252
R2(config-if)#no shutdown

R2(config)#interface ethernet 0/2
R2(config-if)#ip address 64.100.1.1 255.255.255.252
R2(config-if)#no shutdown

R2(config)#interface loopback 0
R2(config-if)#ip address 209.165.200.225 255.255.255.224
R2(config-if)#no shutdown

R2(config)#ip route 0.0.0.0 0.0.0.0 loopback 0
R2(config)#ip route 10.10.0.0 255.255.252.0 64.100.0.2
R2(config)#ip route 10.10.4.0 255.255.252.0 64.100.1.2
R2(config)#ip route 10.10.16.0 255.255.248.0 64.100.1.2

Konfiguracja R3

Konfigurujemy połączenia do sieci i przełącznika S2 podobnie jak w przypadku routera R1.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname R3
R3(config)#interface ethernet 0/2
R3(config-if)#ip address 64.100.1.2 255.255.255.252
R3(config-if)#no shutdown

R3(config)#interface ethernet 0/0
R3(config-if)#ip address 10.10.4.1 255.255.255.252
R3(config-if)#no shutdown

R3(config)#ip route 0.0.0.0 0.0.0.0 64.100.1.1

R3(config)#router ospf 123
R3(config-router)#router-id 3.3.3.3
R3(config-router)#auto-cost reference-bandwidth 1000
R3(config-router)#network 10.10.4.0 0.0.0.3 area 0
R3(config-router)#default-information originate

Konfiguracja S1

Przełącznik będzie pracował jako router, który obsługuje ruch do PC1 i R1. Dodatkowo na loopbackach będą dodatkowe sieci potrzebne do symulacji OSPF. Konfiguracja mogłaby wyglądać prościej ale szkoda powielać to samo z poprzednich labów 😄

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S1
S1(config)#interface ethernet 0/0
S1(config-if)#no switchport
S1(config-if)#ip address 10.10.0.2 255.255.255.252
S1(config-if)#no shutdown

S1(config)#interface ethernet 0/1
S1(config-if)#no switchport
S1(config-if)#ip address 10.10.1.1 255.255.255.0
S1(config-if)#no shutdown

S1(config)#interface loopback 2
S1(config-if)#ip address 10.10.2.1 255.255.255.0
S1(config-if)#no shutdown
S1(config-if)#ip ospf network point-to-point

S1(config)#interface loopback 3
S1(config-if)#ip address 10.10.3.1 255.255.255.0
S1(config-if)#no shutdown
S1(config-if)#ip ospf network point-to-point

S1(config)#ip routing

S1(config)#router ospf 123
S1(config-router)#router-id 1.1.1.2
S1(config-router)#auto-cost reference-bandwidth 1000
S1(config-router)#network 10.10.0.0 0.0.3.255 area 0

Nasz sąsiad OSPF jest dostępny.

Screenshot

Konfiguracja S2

Analogicznie konfigurujemy przełącznik S2.

Tryb konfiguracyjny i zmiana nazwy urządzenia.

inserthostname-here#configure terminal
inserthostname-here(config)#hostname S2
S2(config)#interface ethernet 0/0
S2(config-if)#no switchport
S2(config-if)#ip address 10.10.4.2 255.255.255.252
S2(config-if)#no shutdown

S2(config)#interface ethernet 0/1
S2(config-if)#no switchport
S2(config-if)#ip address 10.10.5.1 255.255.255.0
S2(config-if)#no shutdown

S2(config)#interface loopback 6
S2(config-if)#ip address 10.10.16.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 7
S2(config-if)#ip address 10.10.17.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 8
S2(config-if)#ip address 10.10.18.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 9
S2(config-if)#ip address 10.10.19.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 20
S2(config-if)#ip address 10.10.20.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 21
S2(config-if)#ip address 10.10.21.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 22
S2(config-if)#ip address 10.10.22.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#interface loopback 23
S2(config-if)#ip address 10.10.23.1 255.255.255.0
S2(config-if)#no shutdown
S2(config-if)#ip ospf network point-to-point

S2(config)#ip routing

S2(config)#router ospf 123
S2(config-router)#router-id 3.3.3.2
S2(config-router)#auto-cost reference-bandwidth 1000
S2(config-router)#network 10.10.4.0 0.0.1.255 area 0
S2(config-router)#network 10.10.16.0 0.0.7.255 area 0

Test ping z PC1 do PC2 i S2

Przed główną konfigruacją zrobimy test ping z PC1 do PC2 oraz dowolny adres interfejsu loopback na przełączniku S1.

Screenshot

Konfiguracja IPsec VPN na R1 oraz R3

Tworzymy politykę ISAKMP na routerach R1 i R3.

R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encryption aes 256
R1(config-isakmp)#hash sha256
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 14
R1(config-isakmp)#lifetime 3600

R3(config)#crypto isakmp policy 10
R3(config-isakmp)#encryption aes 256
R3(config-isakmp)#hash sha256
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 14
R3(config-isakmp)#lifetime 3600

Poleceniem show crypto isakmp policy możemy podejrzeć konfiguracje.

Screenshot

Konfigurujemy klucze.

R1(config)#crypto isakmp key cisco123 address 64.100.1.2

R3(config)#crypto isakmp key cisco123 address 64.100.0.2

Tworzymy zestaw transformacji oraz określamy w jaki sposób pakiety będą szyfrowane i uwierzytelnianie.

R1(config)#crypto ipsec transform-set S2S-VPN esp-aes 256 esp-sha256-hmac

R3(config)#crypto ipsec transform-set S2S-VPN esp-aes 256 esp-sha256-hmac

Teraz skonfigurujemy listę ACL, która określi jaki ruch ma być tunelowany.

R1(config)#ip access-list extended S2S-VPN-ACL
R1(config-ext-nacl)#permit ip 10.10.0.0 0.0.3.255 10.10.4.0 0.0.3.255
R1(config-ext-nacl)#permit ip 10.10.0.0 0.0.3.255 10.10.16.0 0.0.7.255

R3(config)#ip access-list extended S2S-VPN-ACL
R3(config-ext-nacl)#permit ip 10.10.4.0 0.0.3.255 10.10.0.0 0.0.3.255
R3(config-ext-nacl)#permit ip 10.10.16.0 0.0.7.255 10.10.0.0 0.0.3.255

Tworzymy zestaw zasad dla tunelu IPsec określając ruch pasujący do listy ACL S2S-VPN-ACL. Używamy silnej grupy Diffie-Hellmana dla dodatkowego bezpieczeństwa oraz definiujemy parametry szyfrowania i autentykacji według S2S-VPN.

R1(config)#crypto map S2S-CMAP 10 ipsec-isakmp
R1(config-crypto-map)#match address S2S-VPN-ACL
R1(config-crypto-map)#set peer 64.100.1.2
R1(config-crypto-map)#set pfs group14
R1(config-crypto-map)#set transform-set S2S-VPN
R1(config-crypto-map)#set security-association lifetime seconds 900

Analogicznie postępujemy z routerem R3.

R3(config)#crypto map S2S-CMAP 10 ipsec-isakmp
R3(config-crypto-map)#match address S2S-VPN-ACL
R3(config-crypto-map)#set peer 64.100.0.2
R3(config-crypto-map)#set pfs group14
R3(config-crypto-map)#set transform-set S2S-VPN
R3(config-crypto-map)#set security-association lifetime seconds 900

Na koniec aktywacja reguł na odpowiedznich interfejsach.

R1(config)#interface ethernet 0/1
R1(config-if)#crypto map S2S-CMAP

R3(config)#interface ethernet 0/2
R3(config-if)#crypto map S2S-CMAP

Testy i rezultaty

Ponownie wykonałem ping z PC1 do PC2 i zaobserwowałem, że pierwszy pakiet nie dotarł. To dlatego, że tunel musiał nawiązać połączenie.

Screenshot

Poleceniem show crypto isakmp sa sprawdzamy status aktualnych połączeń ISAKMP.

Screenshot

Success

Wszystkie przykłady są tylko formą zainteresowania danym zagadnieniem. Zachęcam do zapoznania się ze szczegółami zawartymi w dokumentacji autora lub producenta 😄


🕞 Ostatnia aktualizacja 07.06.2025