Witamy na kursie poświęconym technologiom VPN (Virtual Private Network).
Ten wykład stanowi fundament teoretyczny dla całego semestru.
Zrozumienie mechanizmów VPN jest kluczowe dla inżyniera sieciowego i administratora systemów.
Omówimy nie tylko sposób konfiguracji, ale przede wszystkim zasady działania tych rozwiązań.
Wirtualne sieci prywatne to fundament bezpiecznej komunikacji w dzisiejszym Internecie.
Plan prezentacji: Definicje, Historia, Bezpieczeństwo (triada CIA), Tunelowanie, Architektury.
Definicja VPN - Rozbiór na czynniki pierwsze
2/40
Virtual (Wirtualna): Sieć nie posiada własnej, dedykowanej fizycznej infrastruktury
kablowej na całej długości. Wykorzystuje logiczne kanały w istniejącej sieci publicznej.
Private (Prywatna): Komunikacja jest odseparowana od ruchu publicznego. Dane są
nieczytelne dla osób postronnych dzięki zastosowaniu kryptografii.
Network (Sieć): Umożliwia łączenie hostów i podsieci, zachowując funkcjonalność
pełnoprawnej sieci komputerowej (adresacja, routing).
Skrót VPN stał się synonimem bezpiecznego połączenia, choć technicznie obejmuje szersze spektrum
rozwiązań.
Potrzeba biznesowa - dlaczego VPN?
3/40
Problem: Firma ma oddziały w Warszawie, Krakowie i Gdańsku.
Rozwiązanie 1 (Kosztowne): Wydzierżawienie fizycznych łączy światłowodowych między miastami.
Rozwiązanie bezpieczne, ale koszty sięgają tysięcy złotych miesięcznie.
Rozwiązanie 2 (VPN): Wykorzystanie standardowych łączy internetowych w każdym biurze i zestawienie tuneli VPN
między nimi.
Zysk: Znaczna redukcja kosztów operacyjnych przy zachowaniu bezpieczeństwa
logicznego.
To właśnie aspekt ekonomiczny był głównym motorem rozwoju technologii VPN.
Zastosowania VPN - Przegląd
4/40
Site-to-Site (LAN-to-LAN): Łączenie całych oddziałów firm. Routery negocjują tunel,
a proces ten jest przezroczysty dla użytkowników końcowych.
Remote Access (Client-to-Site): Pracownik zdalny (Home Office) łączy się z zasobami firmy.
Wymaga dedykowanego oprogramowania (klienta VPN) na urządzeniu.
Host-to-Host: Bezpieczne połączenie między dwoma konkretnymi serwerami (np. komunikacja bazy
danych z serwerem aplikacji w różnych lokalizacjach).
Obejście geoblokad i cenzury: Zastosowanie konsumenckie (często komercyjne usługi VPN), służące do zmiany publicznego adresu IP.
Historia: Era przed VPN (Linie dzierżawione)
5/40
Przed upowszechnieniem Internetu firmy korzystały z linii dzierżawionych (Leased Lines), np. Frame Relay,
ATM.
Były to fizyczne lub wirtualne obwody zestawiane przez operatorów telekomunikacyjnych.
Cechy: Wysoka jakość usług (SLA), wysokie bezpieczeństwo (izolacja sieci), lecz bardzo wysokie koszty
i długi czas instalacji.
Wymagały specjalistycznego sprzętu oraz zaawansowanej wiedzy technicznej.
Popularność tanich łączy szerokopasmowych wymusiła poszukiwanie bardziej elastycznych alternatyw.
Narodziny PPTP (1996)
6/40
Gurdeep Singh-Pall z firmy Microsoft opracowuje protokół PPTP (Point-to-Point Tunneling Protocol).
Wdrożony w systemach Windows 95 i Windows NT 4.0.
Był rewolucją – pozwalał na bezpieczny dostęp do sieci firmowej przez Internet zamiast kosztownych połączeń bezpośrednich.
Bazował na protokołach PPP i GRE.
Szybko stał się standardem, mimo zidentyfikowanych później luk w bezpieczeństwie.
Standaryzacja: L2F i L2TP
7/40
Cisco opracowało własny protokół L2F (Layer 2 Forwarding).
W celu uniknięcia fragmentacji standardów, IETF (Internet Engineering Task Force) połączyło cechy PPTP i L2F.
W ten sposób w 1999 r. powstał L2TP (Layer 2 Tunneling Protocol), opisany w RFC 2661.
Ważne: L2TP sam w sobie nie szyfruje danych! Pełni jedynie funkcję tunelu.
Dlatego niemal zawsze występuje w parze z protokołem IPSec (L2TP/IPSec), który zapewnia bezpieczeństwo.
Era IPSec (Internet Protocol Security)
8/40
IPSec to zestaw protokołów służących do zabezpieczania komunikacji IP.
Stał się standardem w połączeniach typu Site-to-Site.
Zapewnia uwierzytelnianie, integralność i poufność na poziomie warstwy sieciowej (L3).
Jest bardzo bezpieczny, ale bywa skomplikowany w konfiguracji i diagnostyce (troubleshooting).
Wymaga pełnej zgodności parametrów (Phase 1, Phase 2) po obu stronach tunelu.
Rewolucja SSL/TLS: OpenVPN (2001)
9/40
James Yonan stworzył OpenVPN jako rozwiązanie o otwartym kodzie źródłowym (Open Source).
Zamiast skomplikowanego IPSec, wykorzystano protokoły SSL/TLS (znane z HTTPS).
Działa w warstwie użytkownika (userspace), co ułatwia przenośność (Windows, Linux, macOS, systemy mobilne).
Wykorzystuje wirtualne karty sieciowe (TAP/TUN).
Uznawany za standard branżowy ze względu na elastyczność i wysoki poziom bezpieczeństwa.
Nowa fala: WireGuard (2018+)
10/40
Jason A. Donenfeld zaproponował WireGuard jako nowoczesną alternatywę dla dotychczasowych rozwiązań.
Cel: Maksymalna prostota (ok. 4000 linii kodu vs 400,000 w IPSec/OpenVPN).
Bardzo wysoka wydajność i szybkość nawiązywania połączenia (handshake).
Wykorzystuje nowoczesne algorytmy kryptograficzne (Curve25519, ChaCha20, Poly1305).
Został włączony do głównej linii jądra Linux w 2020 roku.
Postrzegany jako przyszłość VPN, choć w środowiskach korporacyjnych (Legacy) wdrażany jest stopniowo.
Triada CIA w VPN: Wprowadzenie
11/40
Aby VPN był "Prywatny", musi spełniać zasady triady CIA.
C - Confidentiality (Poufność): Tylko uprawnione osoby mogą odczytać treść danych.
I - Integrity (Integralność): Gwarancja, że dane nie zostały zmienione podczas transmisji.
A - Availability (Dostępność): System musi być dostępny dla uprawnionych użytkowników.
Dodatkowo kluczowe są: Autentyczność (Authenticity) i Niezaprzeczalność (Non-repudiation).
Każdy protokół VPN realizuje te cele przy użyciu różnych mechanizmów.
Poufność: Szyfrowanie Symetryczne
12/40
Podstawowa metoda szyfrowania danych użytkowych (payloadu) w tunelu.
Wykorzystuje ten sam klucz do szyfrowania i deszyfrowania informacji.
Zaleta: Bardzo duża wydajność obliczeniowa (wsparcie sprzętowe w procesorach).
ChaCha20 – zoptymalizowany dla urządzeń mobilnych bez wsparcia sprzętowego dla AES.
3DES, Blowfish – obecnie uznawane za przestarzałe i niezalecane.
Problem dystrybucji klucza
13/40
Szyfrowanie symetryczne wymaga posiadania identycznego klucza po obu stronach połączenia.
Jak bezpiecznie dostarczyć ten klucz przez niezaufaną sieć publiczną?
Przesłanie go jawnym tekstem (np. e-mailem) kompromituje całe połączenie.
To fundamentalne wyzwanie w kryptografii.
Rozwiązaniem jest zastosowanie szyfrowania asymetrycznego oraz protokołów bezpiecznej wymiany kluczy.
Poufność: Szyfrowanie Asymetryczne
14/40
Każda ze stron posiada parę dopasowanych kluczy: Prywatny (tajny) i Publiczny (jawny).
Dane zaszyfrowane kluczem publicznym mogą zostać odszyfrowane wyłącznie odpowiadającym mu kluczem prywatnym.
Wykorzystywane głównie na etapie nawiązywania połączenia (VPN Handshake) do ustalenia wspólnego klucza symetrycznego.
Główne algorytmy: RSA, ECC (kryptografia krzywych eliptycznych).
Z uwagi na dużą złożoność obliczeniową nie stosuje się go do szyfrowania całego ruchu, a jedynie kluczy sesyjnych.
Wymiana kluczy: Diffie-Hellman (DH)
15/40
Algorytm DH umożliwia dwóm stronom bezpieczne ustalenie wspólnego sekretu przy użyciu kanału publicznego.
Nawet pełne przechwycenie komunikacji podczas wymiany DH nie pozwala osobie postronnej na odtworzenie klucza.
W systemach VPN stosuje się grupy DH (DH Groups) – wyższy numer grupy (np. 14, 19, 21) oznacza silniejsze zabezpieczenie, ale większe obciążenie procesora.
To rozwiązanie stanowi fundament bezpieczeństwa w protokołach IPSec oraz OpenVPN.
Integralność: Funkcje Skrótu (Hash)
16/40
Mechanizm zapobiegający niezauważonym modyfikacjom pakietów przez osoby trzecie (atak typu Man-in-the-Middle).
Do każdego pakietu dołączany jest unikalny skrót matematyczny (Hash) lub podpis cyfrowy.
Odbiorca samodzielnie przelicza Hash i porównuje go z otrzymanym. Dowolna rozbieżność skutkuje odrzuceniem pakietu.
Algorytmy: SHA-256 (obecny standard), SHA-512 (bardzo silny), MD5/SHA-1 (niezalecane ze względu na podatności).
Uwierzytelnianie (Authentication)
17/40
Proces weryfikacji tożsamości: "Czy użytkownik/urządzenie jest tym, za kogo się podaje?".
PSK (Pre-Shared Key): Wspólne hasło zdefiniowane po obu stronach. Proste, ale ryzykowne w dużej skali (wyciek klucza kompromituje całą sieć).
Certyfikaty cyfrowe (PKI): Metoda oparta na unikalnych certyfikatach podpisanych przez zaufane centrum certyfikacji (CA). Najwyższy poziom bezpieczeństwa.
Login/Hasło: Standardowa metoda (np. integracja z Active Directory/LDAP), często stosowana jako dodatkowa warstwa (XAuth).
Uwierzytelnianie wieloskładnikowe (MFA/2FA)
18/40
Samo hasło lub certyfikat bywa niewystarczające w środowiskach o wysokim rygorze bezpieczeństwa.
Zasada: Połączenie czegoś, co znasz (hasło) z czymś, co posiadasz (token sprzętowy, aplikacja mobilna).
W połączeniach VPN powszechnie stosuje się kody OTP (One-Time Password), generowane np. przez Google Authenticator lub przesyłane przez SMS.
Kluczowy element zabezpieczenia dostępu zdalnego (Remote Access), chroniący przed skutkami kradzieży haseł.
Zaleta PFS: Perfect Forward Secrecy
19/40
Zaawansowana funkcja bezpieczeństwa chroniąca przed retrospektywnym odszyfrowaniem danych.
Zagrożenie: Atakujący rejestruje zaszyfrowany ruch przez długi czas, a następnie zdobywa klucz prywatny serwera.
Bez PFS: Możliwe jest odszyfrowanie całej historycznej komunikacji.
Z PFS: Dla każdej sesji (lub w regularnych odstępach czasu) generowany jest nowy, unikalny klucz tymczasowy. Przejęcie klucza głównego nie pozwala na odczytanie wcześniejszych sesji.
Mechanizm ten wymusza okresową renegocjację kluczy sesyjnych (re-keying).
Podsumowanie sekcji bezpieczeństwa
20/40
Bezpieczeństwo VPN jest tak silne, jak jego najsłabsze ogniwo.
Systematyczną aktualizację oprogramowania i firmware'u urządzeń.
Tunelowanie - Anatomia Pakietu
21/40
Tunelowanie polega na enkapsulacji, czyli pakowaniu jednego pakietu w drugi.
1. Host generuje pakiet źródłowy (Payload). Np. z IP 192.168.1.10 do 10.0.0.5.
2. Oprogramowanie VPN szyfruje ten pakiet w całości.
3. Dołączany jest nagłówek protokołu VPN (np. ESP dla IPSec).
4. Dodawany jest zewnętrzny nagłówek IP umożliwiający tranzyt przez sieć publiczną (z publicznego IP klienta do publicznego IP bramy VPN).
5. Tak przygotowana struktura nazywana jest "kanałem logicznym" lub tunelem.
Narzut protokołów (Overhead)
22/40
Tunelowanie zawsze zwiększa rozmiar przesyłanych danych o dodatkowe nagłówki.
Na narzut składa się: zewnętrzny nagłówek IP (20 B) + nagłówek VPN (np. GRE 4 B, IPSec 50-70 B) + sumy kontrolne i dopełnienie (padding).
Konsekwencja: Realna przepustowość połączenia (goodput) jest zawsze niższa od nominalnej.
W przypadku małych pakietów (np. ruch głosowy VoIP) narzut może stanowić znaczącą część całej transmisji.
MTU i Fragmentacja
23/40
MTU (Maximum Transmission Unit) to maksymalna wielkość pakietu w danej warstwie (domyślnie 1500 bajtów dla Ethernetu).
Dodanie nagłówków VPN do pakietu o rozmiarze 1500 B spowoduje przekroczenie MTU sieci fizycznej.
Skutkuje to fragmentacją (dzieleniem pakietu na części), co obciąża procesory routerów, lub odrzuceniem pakietu (jeśli ustawiona jest flaga DF - Don't Fragment).
Rozwiązanie: Obniżenie MTU na wirtualnym interfejsie VPN oraz mechanizm MSS Clamping.
Typowe wartości MTU dla VPN to ok. 1360–1400 bajtów.
Mechanizm MSS Clamping
24/40
MSS (Maximum Segment Size) określa maksymalną ilość danych, jaką można przesłać w pojedynczym segmencie TCP.
Zależność: MSS = MTU - (nagłówek IP + nagłówek TCP).
W tunelach VPN routery brzegowe modyfikują pakiety podczas nawiązywania połączenia (TCP Handshake), wymuszając bezpieczną wartość MSS.
W systemie MikroTik RouterOS wykonuje się to regułą change-mss w łańcuchu Mangle zapory sieciowej.
Objaw niewłaściwego MSS: Strony WWW ładują się tylko częściowo, a sesje SSH "zawieszają się" przy przesyłaniu danych.
Transport: UDP vs TCP w tunelach VPN
25/40
Większość standardów (OpenVPN, WireGuard, IPSec) preferuje bezpołączeniowy protokół UDP jako warstwę transportową.
Problem "TCP-over-TCP meltdown": Jeśli tunelujemy TCP wewnątrz TCP, mechanizmy retransmisji obu warstw mogą wejść w konflikt, powodując drastyczny spadek wydajności w przypadku utraty pakietów.
UDP jest "lżejszy" – to protokoły wewnątrz tunelu odpowiadają za ewentualną kontrolę błędów i kolejność danych.
Użycie TCP dla tunelu jest rozwiązaniem ostatecznym, stosowanym głównie do omijania restrykcyjnych zapór sieciowych (poprzez port 443).
Architektura Site-to-Site: Intranet VPN
26/40
Służy do łączenia oddziałów tej samej organizacji.
Zakłada pełne wzajemne zaufanie między lokalizacjami.
Zasoby sieciowe (dyski sieciowe, systemy CRM, urządzenia biurowe) są widoczne w obu sieciach.
Wymiana informacji o trasach odbywa się zazwyczaj automatycznie przy użyciu protokołów routingu dynamicznego (OSPF, BGP).
Architektura Site-to-Site: Extranet VPN
27/40
Łączy sieć firmową z siecią partnera zewnętrznego, dostawcy lub klienta.
Zasada ograniczonego zaufania (Least Privilege).
Wymaga precyzyjnej kontroli dostępu na zaporach sieciowych (Firewall) po obu stronach tunelu.
Udostępniane są wyłącznie wybrane usługi lub serwery, a nie cała infrastruktura.
Często wymaga stosowania mechanizmów NAT w celu uniknięcia konfliktów adresacji IP.
Architektura Remote Access (Model Road Warrior)
28/40
Podstawowy model dla pracy zdalnej i hybrydowej.
Klient posiada zmienny adres IP (sieci publiczne, LTE, Wi-Fi domowe).
Serwer (Brama VPN) posiada stały, publiczny adres IP.
Połączenie ma charakter dynamiczny – jest zestawiane przez użytkownika w razie potrzeby.
Urządzenie klienta otrzymuje wirtualny adres IP z wewnętrznej puli adresowej firmy.
Split Tunneling vs Full Tunneling
29/40
Full Tunneling (Redirect Gateway): Cały ruch z urządzenia (w tym dostęp do Internetu) jest kierowany do tunelu VPN.
Zaleta: Pełna kontrola bezpieczeństwa przez firmowy firewall/IPS. Wada: Duże obciążenie łącza i infrastruktury centralnej.
Split Tunneling: Przez VPN przesyłane są wyłącznie dane przeznaczone do sieci firmowej. Ruch internetowy odbywa się bezpośrednio przez lokalne łącze klienta.
Zaleta: Optymalna wydajność i mniejsze opóźnienia. Wada: Potencjalne zagrożenie bezpieczeństwa (urządzenie może posłużyć jako pomost docelowy dla ataku).
Topologia Hub-and-Spoke (Gwiazda)
30/40
Jeden centralny węzeł (Hub) oraz wiele węzłów podrzędnych (Spokes) w oddziałach.
Oddziały komunikują się wyłącznie z centralą.
Wymiana danych między oddziałem A i B odbywa się za pośrednictwem Hub-a.
Zalety: Prostota konfiguracji i centralizacja polityk bezpieczeństwa.
Wady: Centrala stanowi pojedynczy punkt awarii (SPOF) oraz wąskie gardło wydajnościowe.
Topologia Full Mesh (Pełna siatka)
31/40
Każdy oddział posiada bezpośrednie połączenie z każdym innym oddziałem.
Liczba wymaganych tuneli: N*(N-1)/2. Dla 5 oddziałów to 10 tuneli, ale dla 20 to już 190.
Zalety: Minimalne opóźnienia, najwyższa niezawodność i brak punktu centralnego.
Wady: Bardzo trudne zarządzanie przy dużej liczbie węzłów. Rozwiązaniem są standardy dynamiczne, jak DMVPN lub ADVPN.
VPN w Warstwie 3 (Routed VPN) - TUN
32/40
Najpowszechniejszy model (ok. 90% wdrożeń). Stosowany w IPSec, OpenVPN TUN, WireGuard.
Przesyłane są pakiety warstwy sieciowej (IP).
Sieci po obydwu stronach muszą posiadać odmienną adresację (np. 192.168.1.0/24 i 192.168.2.0/24).
Przekazywanie ruchu odbywa się na podstawie tablic routingu.
Zalety: Wysoka wydajność, brak narzutu Ethernetu, izolacja ruchu rozgłoszeniowego (broadcast).
VPN w Warstwie 2 (Bridged VPN) - TAP
33/40
Przesyłane są ramki Ethernetowe.
Łączy odległe sieci lokalne w jeden spójny segment logiczny (identyczna adresacja IP).
Przenosi ruch rozgłoszeniowy (Broadcast), co jest wymagane przez niektóre starsze protokoły lub gry sieciowe.
Wymaga stworzenia mostka (Bridge) między interfejsem VPN a fizycznym interfejsem LAN.
Wady: Duży narzut danych, "zatykanie" tunelu przez zbędny ruch typu broadcast.
Zalecane wyłącznie w specyficznych przypadkach technicznych.
Interfejsy wirtualne (TUN/TAP)
34/40
Z punktu widzenia systemu operacyjnego VPN widoczny jest jako dodatkowa karta sieciowa (np. tun0).
Aplikacje nie muszą być modyfikowane, by korzystać z VPN – wysyłają dane w standardowy sposób.
Tablica routingu decyduje, czy pakiet ma trafić do karty fizycznej (eth0), czy do wirtualnej (tun0).
Sterownik interfejsu wirtualnego przechwytuje pakiety, poddaje je obróbce (szyfrowaniu) i przekazuje do sieci fizycznej.
Mechanizm NAT Traversal (NAT-T)
35/40
Standard IPSec (protokół ESP) natywnie koliduje z mechanizmem translacji adresów NAT.
Zastosowanie NAT uniemożliwia poprawną weryfikację integralności pakietu ESP.
NAT-T to rozwiązanie, które pakuje zaszyfrowany pakiet ESP w dodatkowy nagłówek UDP (zazwyczaj port 4500).
Dzięki temu VPN może działać poprawnie za standardowymi routerami domowymi.
Nowoczesne systemy automatycznie wykrywają obecność NAT i aktywują ten mechanizm.