Routing & Switching

IPsec VPN

IPsec VPN
W: Routing & Switching, Bezpieczeństwo

Bezpieczeństwo jest jednym z kluczowych czynników branych pod uwagę podczas projektowania sieci komputerowych. Na nic nam efektywnie skonfigurowany routing oraz wydajny LAN, jeśli nasze dane nie są odpowiednio zabezpieczone.

Stworzenie odpowiednich warunków jest jeszcze trudniejsze, gdy mamy kilka lokalizacji, które muszą się ze sobą komunikować poprzez niezabezpieczoną sieć, jaką jest internet.

W takim wypadku jest nam szczególnie potrzebne narzędzie, dzięki któremu zyskamy pewność, że nasze dane nie zostaną odczytane ani zmienione przez osoby niepowołane.

Jak tego dokonać? Odpowiedź jest jedna: stosować VPN! Rozwiązań jest co najmniej kilka, a dziś przyjrzymy się IPSec!

IPsec – IP Security

IP Security, czyli IPSec, to jedno z najczęściej stosowanych rozwiązań VPN. Stanowi zestaw narzędzi, czyli framework, z którego możemy dowolnie wybierać poszczególne elementy, co daje spore możliwości konfiguracyjne.

Nie zależnie od wybranego wariantu, funkcjonalne połączenie VPN musi zapewnić cztery podstawowe wartości:

  1. Poufność - zapewniana poprzez szyfrowanie. Komunikacja jest zrozumiała jedynie dla nadawcy i odbiorcy, którzy znają sposób na odszyfrowanie wiadomości.
  2. Integralność danych - realizowana poprzez haszowanie (tworzenie skrótu) lub użycie Hashed Message Authentication Code (HMAC), aby sprawdzić, czy dane odebrane są identyczne z tymi, które zostały wysłane.
  3. Uwierzytelnianie - oferuje częściową gwarancję, że odbiorca - i nadawca - są tymi, za kogo się podają. Możemy to osiągnąć korzystając z uwierzytelnienia zaraz po rozpoczęciu komunikacji na bazie uzgodnionych kluczy (pre-shared keys, PSK) lub podpisów cyfrowych. Drugą opcją jest ciągłe uwierzytelnianie dwóch stron transmisji przy użyciu HMAC.
  4. Ochrona przed powtórzeniem - wszystkie pakiety wysyłane poprzez VPN są numerowane po utworzeniu tunelu. W przypadku próby ponownego użycia pakietu urządzenie odbierające

PROTOKÓŁ IKE (INTERNET KEY EXCHANGE)

Protokół IKE (Internet Key Exchange) jest używany w IPsec do negocjacji i nawiązywania tuneli VPN. IKE jest strukturą zapewnianą przez protokół ISAKMP (Internet Security Association and Key Management Protocol) oraz dwie inne kluczowe protokoły zarządzania, Oakley i Secure Key Exchange Mechanism (SKEME).

IKE składa się z 2 faz:

W fazie 1 IKE, urządzenia nawiązujące połączenie IPsec wybierają jeden z przygotowanych zestawów zabezpieczeń i wzajemnie się uwierzytelniają. W skład takiego zestawu wchodzi:

  • Algorytm szyfrowania: DES, 3DES lub AES
  • Funkcja haszowania: MD5 lub SHA
  • Rodzaj uwierzytelniania: PSK, kod jednorazowy RSA lub certyfikat RSA
  • Grupa Diffiego-Hellmana: im wyższa, tym lepsza, np. grupy IKE 14 i 24 używają 2048-bitowego DH
  • Czas ważności tunelu (lifetime of connection) – To jest jedyny parametr, który nie musi się zgadzać! W takim wypadku wybierany jest najkrótszy czas

W fazie 2 IKE urządzenia uzgadniają materiał do tworzenia kluczy oraz algorytmy do szyfrowania danych przesyłanych przez tunel IPsec.

Istnieją dwie wersje IKE:

  • IKEv1 – Zdefiniowane w RFC 2409, Internet Key Exchange
  • IKEv2 – Zdefiniowane w RFC 4306, Internet Key Exchange (IKEv2) Protocol

W IKEv2 rozszerzono funkcję dynamicznej wymiany klucza oraz uwierzytelniania urządzeń. Uproszczono przepływ danych oraz wprowadzono środki umożliwiające naprawienie słabych punktów protokołu IKEv1.

Różnice między IKEv2 a IKEv1 są następujące:

  • W IKEv2 w fazie 1 mamy jedną wymianę pary komunikatów, nie ma już 2 trybów (agresywnego i głównego).
  • W IKEv2 w fazie 2 zachodzi prosta wymiana dwóch zamiast co najmniej 3 par wiadomości.

Protokół Diffiego Hellmana

Protokół Diffiego-Hellmana jest wykorzystywany do generowania wspólnego, tajnego materiału służącego do tworzenia kluczy (klucze symetryczne).

Dzięki temu w pierwszej fazie protokołu IKE możemy przesłać nasze klucze publiczne przez internet w formie niezaszyfrowanej, co pozwoli nam później na bezpieczną, zaszyfrowaną komunikację.

Oto jak działa ten protokół:

  1. Obie strony ustalają publiczne parametry:
    • Wybierają dużą liczbę pierwszą 𝑝 i generator 𝑔 grupy multiplikatywnej modulo 𝑝.
  2. Każda strona wybiera tajną liczbę:
    • Strona A wybiera tajną liczbę 𝑎.
    • Strona B wybiera tajną liczbę 𝑏.
  3. Obie strony obliczają wartość publiczną:
    • Strona A oblicza 𝐴=𝑔𝑎mod  𝑝 i przesyła ją do B.
    • Strona B oblicza 𝐵=𝑔𝑏mod  𝑝 i przesyła ją do A.
  4. Obie strony obliczają wspólny tajny klucz:
    • Strona A oblicza (𝑔𝑏)𝑎mod  𝑝.
    • Strona B oblicza (𝑔𝑎)𝑏mod  𝑝.
    • Ta sama wartość jest uzyskiwana po obu stronach i jest wspólnym tajnym kluczem.

Warto zaznaczyć, że algorytm jest asymetryczny, ale klucze wynikowe są symetryczne.

Dzięki temu protokołowi, nawet jeśli ktoś przechwyci wartości publiczne 𝐴 i 𝐵, nie będzie w stanie łatwo obliczyć wspólnego tajnego klucza bez znajomości tajnych liczb 𝑎 i 𝑏. To sprawia, że Diffie-Hellman jest używany do bezpiecznej wymiany kluczy w celu zapewnienia poufności komunikacji.

Nagłówki IPsec

Do implementacji IPsec można wykorzystać dwa protokoły warstwy 4: ESP (IP protokół 50) i AH (IP protokół 51). Należy zauważyć, że nagłówek autentykacji AH (Authentication Header) praktycznie nie jest używany, ponieważ nie zapewnia szyfrowania komunikacji. ESP (Encapsulating Security Payload) jest stosowany do szyfrowania oraz częściowego uwierzytelniania danych. W przypadku korzystania z NAT-T, ten nagłówek jest ukryty za.

Tryby połączeń VPN

W przypadku połączeń VPN wyróżniamy dwa podstawowe typy: tryb tunelowy oraz tryb transportowy.

  • Tryb transportowy - W tym trybie połączenie jest ustanawiane między prawdziwymi adresami nadawcy i odbiorcy. W przypadku przechwycenia pakietu w transporcie, atakujący zna dane odbiorcy i nadawcy, ale dzięki szyfrowaniu nie ma dostępu do zawartości pakietu.
  • Tryb tunelowy - W tym trybie rzeczywiste adresy nadawcy i odbiorcy są ukryte za adresami urządzeń pośredniczących. W przeciwieństwie do trybu transportowego, do komunikacji nie jest wymagane bezpośrednie połączenie między urządzeniami końcowymi.

Inicjalizacja połączenia typu site-to-site

  1. Bramka VPN równorzędna inicjuje sesję do zdalnej bramki VPN.
  2. Negocjacja parametrów połączenia fazy 1 (zarządzanie tunelem) ISAKMP/IKE. ISAKMP/IKE korzysta z portu UDP 500 (CISCO), inni dostawcy mogą używać losowo generowanych portów od 1023 wzwyż.
  3. Diffie-Hellman jest wykorzystywany do bezpiecznej wymiany kluczy dla algorytmów szyfrowania oraz funkcji skrótu HMAC.
  4. Obie urządzenia (bramki VPN) wzajemnie potwierdzają swoje tożsamości.
  5. Faza 2 ISAKMP/IKE - peery negocjują parametry oraz kluczowe informacje do zabezpieczenia (dane przesyłane przez tunel utworzony w fazie 1 lub poprzez ponowne wykorzystanie Diffie-Hellmana).
  6. Zakończenie tworzenia tunelu fazy 2, rozpoczęcie przesyłania danych.
  7. W razie potrzeby odtworzenie tuneli fazy 1 lub 2 po upływie czasu ważności (wygaśnięciu okresu życia).

Inicjalizacja połączenia typu remote-access

  1. Klient VPN inicjuje sesję do zdalnego peer-a bramy VPN.
  2. Negocjacja parametrów połączenia dla fazy 1 (zarządzanie tunelem) ISAKMP/IKE. ISAKMP/IKE korzysta z portu UDP 500 (CISCO), inne firmy mogą używać losowo generowanych portów 1023+.
  3. Diffie-Hellman jest wykorzystywany do bezpiecznej wymiany kluczy dla algorytmów szyfrowania oraz funkcji skrótu HMAC.
  4. Oba urządzenia (brama VPN) wzajemnie potwierdzają swoją tożsamość.
  5. OPCJONALNIE! Uwierzytelnianie użytkownika, dla IPsec stosuje się XAUTH. Brama VPN sprawdza nazwę użytkownika i hasło.
  6. Implementacja zdalnego dostępu poprzez Ipsec pozwala na przekazywanie „policy information”. W przypadku zestawienia połączenia między dwoma różnymi dostawcami istnieje ryzyko, że klient nie zrozumie otrzymanych informacji. Poniżej skrócona lista możliwych przekazywanych danych:
    1. Wewnętrzny adres IP (LAN wewnętrzny) lub adres logiczny
    2. Typ połączenia (klient lub rozszerzenie sieciowe/LAN)
    3. Nazwę domeny DNS
    4. Adres serwera DNS
    5. Adres serwera WINS
    6. Polityki split tunneling
    7. Polityki zapory ogniowej
    8. Polityki split DNS
    9. Listę zapasowych adresów bram VPN
  7. OPCJONALNIE! Możliwe jest wstrzykiwanie odwróconych tras (RRI). Klient może rozgłaszać trasy routingu do bramy VPN, która dalej je rozpropaguje w sieci wewnętrznej.
  8. W fazie 2 ISAKMP/IKE peery negocjują parametry oraz kluczowe informacje do zabezpieczenia (dane przesyłane poprzez tunel utworzony w fazie 1 lub poprzez ponowne wykorzystanie Diffie-Hellmana).
  9. Zakończenie tworzenia tunelu fazy 2, rozpoczęcie przesyłania danych.
  10. Ewentualne odtworzenie tuneli fazy 1 lub 2 po wygaśnięciu czasu ważności (expire of lifetime).

ISAKMP/IKE

Faza 1

Tryb main: W tym trybie przeprowadzane są trzy dwukierunkowe wymiany pakietów, co łącznie daje 6 pakietów.

  1. Peery negocjują sposób zabezpieczenia połączenia w fazie 1.
  2. Peery używają protokołu Diffiego-Hellmana do wymiany kluczowych informacji.
  3. Peery uwierzytelniają się wzajemnie (PSK/RSA).

Tryb Aggresive: W tym trybie odbywają się tylko dwie dwukierunkowe wymiany pakietów.

  1. Peery negocjują zabezpieczenia połączenia w fazie pierwszej, przesyłają klucze publiczne DH, dane identyfikacyjne oraz wynik weryfikacji.
  2. Potwierdzenie otrzymania pakietów z pierwszej wymiany, akceptacja warunków i utworzenie tunelu.

Faza 2

Faza 2 IKE posiada jedynie tryb Quick Mode. Ten tryb określa, w jaki sposób zostanie zabezpieczone połączenie do przesyłania danych:

  1. Negocjuje parametry bezpieczeństwa dla połączenia fazy drugiej.
  2. Okresowe odnawianie kluczowych informacji.

Tryby połączenie klienta

Tryb klienta

W tym trybie klient otrzymuje wewnętrzny adres IP od bramy VPN. Jeśli klientem jest fizyczne urządzenie, na przykład mały router SOHO, to to urządzenie dokonuje translacji PAT (port/address translation) dla urządzeń w swojej sieci LAN.

Z perspektywy sieci VPN wszystkie urządzenia za klientem VPN posiadają ten sam adres IP, który otrzymują z puli DHCP bramy VPN.

W każdym oddziale możliwe jest wykorzystanie tej samej puli adresów IP. W trybie klienta tunel do bramy VPN jest nawiązywany ręcznie lub automatycznie poprzez dowolny ruch wychodzący od klienta, ponieważ klient musi pobrać reguły split tunnelingu (określające, która część ruchu ma być filtrowana, a która nie).

Ipsec client mode przykład działania

Tryb Rozszerzenia LAN

Ten tryb symuluje połączenie typu site-to-site, ale z punktu widzenia bramy VPN na drugim końcu tunelu nadal jest traktowany jako klient. Pozwala to na zastosowanie wszystkich ustawień polityki informacyjnej dla grupy urządzeń.

W odróżnieniu od połączenia w trybie klienckim, inicjowanie tunelu jest możliwe od strony bramy, a także umożliwia bezpośrednie połączenie z urządzeniami w SOHO ze względu na brak translacji PAT.

W tym modelu wszystkie adresy w danej sieci VPN muszą być unikatowe.

Ipsec tryb lan extension przykład działania

Tryb site to site – s2s

Ten rodzaj połączenia umożliwia bezpieczne połączenie dwóch lub więcej lokalizacji poprzez niezabezpieczoną sieć zewnętrzną, na przykład internet. Urządzenia brzegowe w każdej lokalizacji nawiązują bezpieczny tunel, a cała operacja VPN jest transparentna dla użytkownika. Najczęściej VPN typu site to site jest utożsamiany z L2L, czyli LAN to LAN.

Tryb site2site IPsec VPN

Konfiguracja IPsec

Przedstawiona konfiguracja IPsec opisuje sposób łączenia site-to-site, co umożliwia bezpieczną, szyfrowaną komunikację między Bydgoszczą a Toruniem.

Konfiguracja routera Bydgoszcz

crypto isakmp policy 10 - Tworzymy politykę dla Fazy pierwszej 
 encr aes 256 - wybieramy algorytm szyfrowania
 authentication pre-share - wybieramy sposób uwierzytelnienia
 group 5 - wybieramy grupę DH
 lifetime 3600 - wybieramy czas ważności tunelu
!
crypto isakmp key cisco address 10.2.0.2 - wybieramy hasło oraz podajemy adres peera dla IPsec
!
crypto ipsec transform-set TRANSFORM_SET_1 esp-aes 256 esp-sha-hmac - Tworzymy politę dla fazy drugiej
!
access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255 - Tworzymy access listę która określa jaki ruch wpuszczać do tunelu IPsec
!
crypto map STS_VPN 10 ipsec-isakmp - tworzymy crypto mapę która zepnie razem wszystkie wcześniej przygotowane elementy
 set peer 10.2.0.2 - określamy peera dla bezpiecznej komunikacji
 set transform-set TRANSFORM_SET_1 - wybieramy zestaw transformacji
 match address 100 - wybieramy access-listę
!
interface FastEthernet0/0 - wybieramy interfejs na którym ma działać IPsec
 crypto map STS_VPN - przypinamy crypto mapę do interfejsu

Konfiguracja routera Toruń

crypto isakmp policy 10 
 encr aes 256 
 authentication pre-share group 5 
 lifetime 3600
! 
 crypto isakmp key cisco address 10.1.0.1 
! 
crypto ipsec transform-set TRANSFORM_SET_1 esp-aes 256 esp-sha-hmac 
! 
crypto map STS_VPN 10 ipsec-isakmp set peer 10.1.0.1 
 set transform-set TRANSFORM_SET_1 
match address 100 
! 
 interface FastEthernet0/0 crypto map STS_VPN
Napisane przez
Rafał Rudewicz
Pasjonat sieci komputerowych i automatyzacji. CCNP Enterprise & DevNet Specialist. IP/MPLS SME. Dołącz do mnie, aby razem odkrywać fascynujący świat technologii!
Komentarze
Spis treści
Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.