Sieci nowej generacji Sieci VPN Marek Pałczyński Sieci VPN Cechy sieci VPN Tunel do przekazywania pakietów sieci LAN przez sieć WAN Przezroczystość dla użytkowników końcowych Bezpieczeństwo transmisji szyfrowanie i uwierzytelnianie Brak konieczności dzierżawienia łączy Najczęściej stosowane rozwiązania IPSec PPTP SSL (OpenVPN) Topologie Site-to-site (łączenie sieci korporacyjnych) Zdalny dostęp (dostęp pojedynczego użytkownika do sieci firmowej) 1
Zadania systemów VPN Szyfrowanie przekazywanych informacji DES 3DES AES Uwierzytelnianie treści (podpisy cyfrowe) SHA MD5 Zapewnienie jednokrotności transmisji (nonrepudiation) Bezpieczna wymiana kluczy wykorzystywanych w algorytmach szyfrowania i uwierzytelniania Algorytm Diffiego-Hellmana (DH) Stos IPsec 2
Standardowy datagram IP Proto 1 2 Opis ICMP Internet Control Message Protocol IGMP Internet Group Management Protocol 4 IP w IP (a kind of encapsulation) 6 TCP Transmission Control Protocol 17 UDP User Datagram Protocol 41 IPv6 następna wersja TCP/IP 47 GRE Generic Router Encapsulation 50 IPsec: ESP Encapsulating Security Payload 51 IPsec: AH Authentication Header Rysunki: http://www.unixwiz.net/techtips/iguide-ipsec.html Protokół AH Zastosowanie uwierzytelnianie (ochrona integralności, ale nie poufności) Uwierzytelnienie wyznaczenie wartości skrótu kryptograficznego dla niemal wszystkich pól pakietu IP (oprócz modyfikowanych podczas transmisji TTL, checksum) Ochrona przed: Modyfikacją danych Wstrzyknięciem danych przez osobę atakującą 3
Protokół AH Pola nagłówka AH next hdr typ protokołu pola danych AH len długość nagłówka AH Reserved musi mieć wartość zero SPI skojarzenie pakietu z daną sesją (wskaźnik do parametrów szyfrowania rodzaju algorytmu, klucza, ) Sequence Number inkrementowana wartość zapobiegająca powtarzaniu pakietów Authentication Data wyznaczona wartość ICV Protokół AH w trybie transportowym 4
AH w trybie tunelowym Tryb transportowy i tunelowy Brak pola informującego o trybie O trybie decyduje wartość pola next hdr 5
Protokół AH problem NAT Skrót kryptograficzny obejmuje wszystkie pola, które są uznawane za niezmienne Przejście pakietu przez router NAT zmniejszenie TTL zmiana adresu IP przeliczenie sumy kontrolnej w nagłówku IP Protokół ESP Zastosowanie szyfrowanie lub szyfrowanie i uwierzytelnianie (ochrona poufności i integralności) Otoczenie pola danych wartościami ESP Możliwość rezygnacji z szyfrowania (algorytm NULL) Osoba atakująca ma dostęp do adresów IP, ale nie do pola danych Uwierzytelnianie dotyczy jedynie nagłówka ESP i pola danych (nie obejmuje dołączanego nagłówka IP) 6
Protokół ESP bez uwierzytelniania i z uwierzytelnianiem Protokół ESP w trybie transportowym 7
Protokół ESP w trybie tunelowym ESP + uwierzytelnianie + tryb tunelowy = VPN 8
Algorytm DH Bezpieczny sposób ustalenia i wymiany kluczy Grupa DH DH 1 DH 2 DH 5 Długość klucza 768 bitów 1024 bity 1536 bity Etapy ustanawiania połączenia VPN (IPsec) Negocjowanie parametrów wymiany kluczy (IKE) ISAKMP (Internet Security Association Key Management Protocol) hasło znane obu stronom (shared secret) certyfikaty X.509 Wyznaczenie wspólnego klucza (DH) Uwierzytelnienie jednostek Negocjowanie parametrów szyfrowania danych Zestaw ustalonych parametrów komunikacji SA (Security Association) Odzwierciedla uzgodnienia odnośnie polityki zabezpieczania transmisji Przechowuje parametry potrzebne do bezpiecznego transportu pakietów w IPsec 9
Fazy IKE Faza 1 Ustalenie zestawu kryptograficznego do przeprowadzania transakcji IKE Wymiana kluczy zabezpieczających operację IKE (algorytm DH) Uwierzytelnienie urządzeń Wyznaczenie SA IKE Faza 2 Ustalenie parametrów mechanizmu IPsec (zestaw transformat) Wyznaczenie SA IPsec Okresowe ponawianie negocjacji parametrów SA IPsec Faza 1 IKE IKE Policy 10 3DES SHA wspólne hasło DH 2 IKE Policy 20 3DES MD5 wspólne hasło DH 2 IKE Policy 15 3DES SHA wspólne hasło DH 5 IKE Policy 17 3DES SHA wspólne hasło DH 2 IKE Policy 30 DES MD5 wspólne hasło DH 1 10
Faza 2 IKE Zestaw 10 ESP 3DES SHA Tryb tunelowy Czas ważności Zestaw 20 ESP DES MD5 Tryb tunelowy Czas ważności Zestaw 30 AH DES SHA Tryb tunelowy Czas ważności Zestawy transformat IPsec Zestaw 10 ESP 3DES SHA Tryb tunelowy Czas ważności Zestaw 10 ESP 3DES MD5 Tryb tunelowy Czas ważności Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja fazy 1 ISAKMP Ustawienie Słowo kluczowe Znaczenie Wartość domyślna encryption (szyfrowanie) hash (skrót integralność komunikatu) authentication (uwierzytelnianie) group (grupa DH) liftime (czas ważności) des 3des aes aes 192 aes 256 sha md5 pre-share rsa-sig rsa-encr 1 2 5 sekundy klucz 56-bitowy DES klucz 168-bitowy 3DES klucz 128-bitowy AES klucz 192-bitowy AES klucz 256-bitowy AES Funkcja skrótu SHA-1 Funkcja skrótu MD5 Wspólny klucz Sygnatury RSA Zaszyfrowane wartości jednorazowe (nonce) 768 bitów 1024 bity 1536 bitów Czas ważności wpisu SA mechanizmu ISAKMP des sha rsa-sig 1 86400 11
Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja fazy 1 ISAKMP Router(config)# crypto isakmp policy priorytet Centrala(config)# crypto isakmp policy 10 Centrala(config-isakmp)# authentication pre-share Centrala(config-isakmp)# encryption 3des Centrala(config-isakmp)# group 2 Centrala(config-isakmp)# hash md5 Centrala(config-isakmp)# lifetime 86400 Centrala(config)# crypto isakmp policy 20 Centrala(config-isakmp)# authentication pre-share Centrala(config-isakmp)# encryption des Centrala(config-isakmp)# group 1 Centrala(config-isakmp)# hash md5 Centrala(config-isakmp)# lifetime 86400 Filia1(config)# crypto isakmp policy 10 Filia1(config-isakmp)# authentication pre-share Filia1(config-isakmp)# encryption 3des Filia1(config-isakmp)# group 2 Filia1(config-isakmp)# hash md5 Filia1(config-isakmp)# lifetime 86400 Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja fazy 1 ISAKMP Ustawienie wspólnego hasła Router(config)# crypto isakmp key ciąg-hasła address adres-zdalny Router(config)# crypto isakmp key ciąg-hasła hostname nazwa-jednostki-zdalnej Hasło może składać się ze znaków alfanumerycznych o dowolnych wartościach. Nie może jednak przekraczać 128 bajtów. Identyczne hasło musi zostać zdefiniowane po obydwu stronach połączenia. W przypadku użycia opcji hostname, konieczne jest również wykonanie instrukcji crypto isakmp identity hostname Centrala(config)# crypto isakmp key supertajnehaslo address 212.1.2.3 Filia1(config)# crypto isakmp key supertajnehaslo address 199.19.98.1 12
Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja fazy 2 IPsec Definicja zestawów transformat Centrala(config)#crypto ipsec transform-set nazwa-transformaty? ah-md5-hmac AH-HMAC-MD5 transform ah-sha-hmac AH-HMAC-SHA transform comp-lzs IP Compression using the LZS compression algorithm esp-3des ESP transform using 3DES(EDE) cipher (168 bits) esp-aes ESP transform using AES cipher esp-des ESP transform using DES cipher (56 bits) esp-md5-hmac ESP transform using HMAC-MD5 auth esp-null ESP transform w/o cipher esp-seal ESP transform using SEAL cipher (160 bits) esp-sha-hmac ESP transform using HMAC-SHA auth Centrala(config)#crypto ipsec transform-set vpn-ts esp-3des esp-sha-hmac Centrala(cfg-crypto-trans)#exit Filia1(config)#crypto ipsec transform-set vpn-ts-filia1 esp-3des esp-sha-hmac Filia1(cfg-crypto-trans)#exit Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja fazy 2 IPsec Definicja listy ACL obejmujące ruch szyfrowany Centrala(config)#access-list 101 permit ip 192.168.254.0 0.0.0.255 192.168.1.0 0.0.0.255 Filia1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.254.0 0.0.0.255 13
Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Konfiguracja crypto-map y Crypto-mapa łączy konfigurację poszczególnych faz i definiuje ostateczny tunel IPsec Centrala(config)#crypto map nazwa-mapy numer-policy-isakmp ipsec-isakmp Centrala(config)#crypto map cmapa 10 ipsec-isakmp Centrala(config)#set transform-set vpn-ts Centrala(config)#set peer 212.1.2.3 Centrala(config)#match address 101 Centrala(config)#exit Centrala(config)#int Gi0/0 zewnętrzny interfejs (podłączony do i-netu) Centrala(config-if)#crypto map cmapa Filia1(config)#crypto map cmapa 10 ipsec-isakmp Filia1(config)#set transform-set vpn-ts-filia1 Filia1(config)#set peer 199.19.98.1 Filia1(config)#match address 101 Filia1(config)#exit Filia1(config)#int Gi0/0 zewnętrzny interfejs (podłączony do i-netu) Filia1(config-if)#crypto map cmapa Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Weryfikacja ustawień Polecenie show crypto map show crypto isakmp policy show crypto isakmp sa show crypto ipsec sa show crypto ipsec transform-set debug crypto isakmp debug crypto ipsec Opis Wyświetlenie zdefiniowanych crypto-map Wyświetlenie zdefiniowanych polityk ISAKMP Wyświetlenie stowarzyszeń ISAKMP Wyświetlenie stowarzyszeń IPsec Wyświetlenie zdefiniowanych zestawów transformat Śledzenie zdarzeń IKE Śledzenie zdarzeń IPsec 14
Konfiguracja połączenia VPN IPsec w trybie tunelowym z wykorzystaniem protokołu ESP Transport danych w tunelu IPsec Wady rozwiązania Nie można przenosić ruchu rozgłoszeniowego ani multiemisji Nie jest możliwe wykorzystanie protokołów routingu (OSPF, EIGRP) Tunel GRE Tunel ogólnego przeznaczenia Umożliwia przenoszenie dowolnych pakietów IP w zewnętrznych pakietach IP Przenosi rozgłoszenia i multiemisję Nie zapewnia szyfrowania Uwzględnia uwierzytelnianie Bezstanowy mechanizm transmisji 15
Tunel GRE Konfiguracja tunelu (bez szyfrowania) Centrala(config)#interface Tunnel 0 Centrala(config-if)#ip address 172.16.1.254 255.255.255.0 Centrala(config-if)#tunnel source 199.19.98.1 Centrala(config-if)#tunnel destination 212.1.2.3 Centrala(config-if)#tunnel key 1313 Centrala(config-if)#exit Filia1(config)#interface Tunnel 0 Filia1(config-if)#ip address 172.16.1.1 255.255.255.0 Filia1(config-if)#tunnel source FastEthernet 0/0 Filia1(config-if)#tunnel destination 199.19.98.1 Filia1(config-if)#tunnel key 1313 Filia1(config-if)#exit Zabezpieczenie transmisji w tunelu GRE za pomocą mechanizmu IPsec Centrala(config)# crypto isakmp policy 10 Centrala(config-isakmp)# authentication pre-share Centrala(config-isakmp)# encryption 3des Centrala(config-isakmp)# group 2 Centrala(config-isakmp)# hash md5 Centrala(config-isakmp)# lifetime 86400 Centrala(config)#crypto ipsec transform-set vpn-ts esp-3des esp-sha-hmac Centrala(config)#crypto ipsec profile vpn-profil Centrala(ipsec-profile)#set transform-set vpn-ts Centrala(config)#interface Tunnel 0 Centrala(config-if)#tunnel protection ipsec profile vpn-profil Analogiczne polecenia należy wykonać po stronie routera Filia1 16
Problem wielu tuneli GRE/IPsec Skomplikowana konfiguracja Wiele tuneli Wiele sieci tranzytowych Skomplikowany routing Niska wydajność i elastyczność konfiguracji Dodanie nowej filii wymaga utworzenia nowego tunelu (konfiguracja po stronie centrali i routera zdalnego) Konieczność wykorzystywania statycznych publicznych adresów IP Przekazywanie danych między filiami wymaga zaangażowania routera w centrali DMVPN Dynamic Multipoint VPN Chmura VPN jedna sieć wirtualna zabezpieczona mechanizmem IPsec Tryby pracy Hub-and-spoke Spoke-to-spoke 17
DMVPN Zalety: Routery zdalne mogą się posługiwać adresami dynamicznymi (a nawet ukrytymi za NAT-em). Dodanie nowej sieci zdalnej sprowadza się do konfiguracji routera zdalnego (konfiguracja na routerze centralnym pozostaje bez zmian). Adresy IP interfejsów wirtualnych pochodzą z jednej sieci IP. Komunikacja między ośrodkami zdalnymi może pomijać router centralny. Odwzorowanie wirtualnych adresów routerów zdalnych na adresy rzeczywiste jest realizowane w sposób automatyczny w protokole NHRP (Next Hop Routing Protocol) Konfiguracja DMVPN Konfiguracja interfejsów tunelowych (bez szyfrowania) Centrala(config)#interface Tunnel 0 Centrala(config-if)#ip address 172.16.1.254 255.255.255.0 Centrala(config-if)#tunnel source 199.19.98.1 Centrala(config-if)#tunnel mode gre multipoint <- tunel mgre Centrala(config-if)#tunnel key 1313 Centrala(config-if)#ip nhrp authentication tajnehaslo <- uwierzytelnienie żądań kierowanych do bazy NHRP Centrala(config-if)#ip nhrp map multicast dynamic <- przekazywanie ruchu multiemisji w tunelu Centrala(config-if)#ip nhrp network-id 1 <- identyfikator chmury DMVPN Filia1(config)#interface Tunnel 0 Filia1(config-if)#ip address 172.16.1.1 255.255.255.0 Filia1(config-if)#tunnel source FastEthernet 0/0 Filia1(config-if)#tunnel mode gre multipoint Filia1(config-if)#tunnel key 1313 Filia1(config-if)#ip nhrp authentication tajnehaslo Filia1(config-if)#ip nhrp map multicast dynamic Filia1(config-if)#ip nhrp map 172.16.1.254 199.19.98.1 <- odwzorowanie adresu serwera NHRP na adres fizyczny Filia1(config-if)#ip nhrp map multicast 199.19.98.1 <- przesyłanie ruchu multiemisji do routera centralnego Filia1(config-if)#ip nhrp network-id 1 Filia1(config-if)#ip nhrp nhs 172.16.1.254 <- wskazanie routera pełniącego funkcję serwera NHRP 18
Weryfikacja ustawień DMVPN Sprawdzenie sesji DMVPN Centrala# show dmvpn Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete N - NATed, L - Local, X - No Socket # Ent --> Number of NHRP entries with same NBMA peer NHS Status: E --> Expecting Replies, R --> Responding UpDn Time --> Up or Down Time for a Tunnel ========================================================================== Interface: Tunnel1, IPv4 NHRP Details Type:Hub, NHRP Peers:2, # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb ----- --------------- --------------- ----- -------- ----- 1 212.1.2.3 172.16.0.1 UP 1w1d D 1 82.145.12.43 172.16.0.2 UP 1d02h D Filia1# show dmvpn... ========================================================================== Interface: Tunnel1, IPv4 NHRP Details Type:Spoke, NHRP Peers:1, # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb ----- --------------- --------------- ----- -------- ----- 1 199.19.98.1 172.16.1.254 UP 2d07h S Zabezpieczenie komunikacji w chmurze DMVPN za pomocą mechanizmu IPsec Centrala(config)# crypto isakmp policy 10 Centrala(config-isakmp)# authentication pre-share Centrala(config-isakmp)# group 2 Centrala(config)#crypto ipsec transform-set vpn-ts esp-3des esp-sha-hmac Centrala(config)#crypto ipsec profile vpn-profil Centrala(ipsec-profile)#set transform-set vpn-ts Centrala(config)#interface Tunnel 0 Centrala(config-if)#tunnel protection ipsec profile vpn-profil Filia1(config)# crypto isakmp policy 10 Filia1(config-isakmp)# authentication pre-share Filia1(config-isakmp)# group 2 Filia1(config)#crypto ipsec transform-set vpn-ts esp-3des esp-sha-hmac Filia1(config)#crypto ipsec profile vpn-profil Filia1(ipsec-profile)#set transform-set vpn-ts Filia1(config)#interface Tunnel 0 Filia1(config-if)#tunnel protection ipsec profile vpn-profil 19