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
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.
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.
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.
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.
Poleceniem show crypto isakmp sa sprawdzamy status aktualnych połączeń ISAKMP.
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