Przedstawienie metodyki wdrożenia tunelu L2TP/IPSec na urządzeniach MikroTik RouterBoard oraz wykazanie konieczności kryptograficznej ochrony nagłówków L2TP przez stos IPsec.
- Celem tego modułu jest konfiguracja tunelu L2TP między dwoma routerami MikroTik RouterBoard.
- Najpierw skonfigurujemy L2TP bez IPSec - ruch będzie przesyłany jako UDP 1701 w czystym tekście (dane widoczne dla obserwatora).
- Następnie dodamy IPSec, co zapewni szyfrowanie (AES), uwierzytelnianie i integralność na poziomie pakietu IP.
- Konfiguracja testowana na RouterOS v7.8 (wersja stabilna) - komendy zweryfikowane na żywym urządzeniu.
L2TP/IPSec: Hybrydowa architektura sieci VPN łącząca protokół tunelowania warstwy łącza danych L2TP (RFC 2661) z protokołem bezpieczeństwa IPsec w trybie transportowym (RFC 3193), gwarantująca uwierzytelnienie węzłów, integralność i szyfrowanie danych.
Współczesna inżynieria sieciowa wymaga od administratorów precyzyjnego rozróżniania mechanizmów tunelowania od protokołów zapewniających kryptograficzną ochronę przesyłanych danych. Protokół L2TP powstał z połączenia technologii Cisco L2F oraz Microsoft PPTP w celu przenoszenia sesji warstwy łącza danych przez publiczne sieci IP. Sam protokół L2TP nie ma jednak żadnych mechanizmów szyfrowania ani kontroli integralności ładunku, co wymusza jego ścisłą integrację ze stosem IPsec. Szczegółowe zasady implementacji tych mechanizmów w środowiskach sieciowych opisuje Oficjalna dokumentacja MikroTik RouterOS.
W architekturze urządzeń MikroTik RouterBoard pracujących pod kontrolą systemu RouterOS v7 protokół L2TP implementowany jest jako demon serwera i klienta zintegrowany z podsystemem PPP. Umożliwia to elastyczne przydzielanie adresacji IP, negocjację parametrów połączenia za pomocą LCP oraz uwierzytelnianie użytkowników. W konfiguracji laboratoryjnej proces został podzielony na dwa kluczowe etapy: zestawienie bazowego tunelu L2TP bez szyfrowania oraz nałożenie na niego bezpiecznego kanału IPsec.
Zrozumienie działania L2TP w czystej postaci pozwala na empiryczną weryfikację struktury nagłówków pakietów w analizatorze Wireshark. Pakiet L2TP jest hermetyzowany wewnątrz datagramu UDP na porcie docelowym 1701. Wewnątrz pakietu L2TP przesyłana jest kompletna ramka PPP, zawierająca nagłówki protokołu warstwy sieciowej (np. IPv4) oraz właściwe dane aplikacyjne, które bez wsparcia IPsec pozostają całkowicie jawne dla każdego węzła tranzytowego.
Wdrożenie pełnego stosu L2TP/IPsec eliminuje tę fundamentalną lukę bezpieczeństwa poprzez enkapsulację całego pakietu UDP 1701 w protokole ESP (IP protocol 50) w trybie transportowym. W ramach tego modułu skonfigurujemy pełne połączenie site-to-site między dwoma routerami brzegowymi, weryfikując poprawność routingu, wpływ narzutu nagłówków na MTU oraz polityki filtrujące zapory sieciowej.
Wyjaśnienie skrótów użytych na slajdzie:
L2TP - Layer Two Tunneling Protocol - Protokół tunelowania warstwy łącza danych zdefiniowany w standardzie IETF RFC 2661.
IPsec - Internet Protocol Security - Zestaw protokołów kryptograficznych zapewniających poufność, integralność i uwierzytelnianie pakietów IP.
PPP - Point-to-Point Protocol - Protokół komunikacyjny warstwy łącza danych służący do bezpośredniego łączenia dwóch węzłów sieciowych.
ESP - Encapsulating Security Payload - Protokół bezpieczeństwa IPsec (IP proto 50) realizujący szyfrowanie oraz weryfikację integralności danych.
UDP - User Datagram Protocol - Bezpołączeniowy protokół warstwy transportowej wykorzystywany przez L2TP na porcie 1701.
Uporządkowanie konfiguracji interfejsów fizycznych, adresacji IP oraz tablicy routingu na routerze pełniącym rolę serwera połączeń tunelowych.
- Zakładamy, że Router A ma skonfigurowane interfejsy i adresację.
- Przykładowa konfiguracja początkowa:
# Router A - adresacja interfejsów
/ip address add address=1.1.1.1/24 interface=ether1 comment="WAN"
/ip address add address=192.168.10.1/24 interface=ether2 comment="LAN"
/ip route add dst-address=2.2.2.0/24 gateway=1.1.1.254
- Upewnij się, że Router A ma trasę do sieci WAN Routera B (lub domyślną bramę do Internetu).
- Sprawdź łączność przed dalszą konfiguracją:
/ping 2.2.2.2
Brama domyślna (Default Gateway): Węzeł sieciowy (router), do którego stacja robocza lub inny router przesyła pakiety zaadresowane do sieci, dla których w lokalnej tablicy routingu nie ma odpowiedniej trasy (trasa 0.0.0.0/0).
Prawidłowe przygotowanie węzła brzegowego przed uruchomieniem usług VPN stanowi fundament stabilnej pracy całej infrastruktury rozległej. Router A w przyjętym scenariuszu pełni rolę centralnego koncentratora VPN (L2TP Network Server - LNS). Konfiguracja wymaga precyzyjnego przypisania adresacji publicznej WAN na porcie ether1 oraz lokalnej adresacji podsieci biurowej LAN na porcie ether2. Specyfikację architektury LNS formalizuje Standard IETF RFC 2661.
W systemie MikroTik RouterOS v7 konfiguracja interfejsów realizowana jest w menu /ip address. Dla portu ether1 przypisujemy adres 1.1.1.1/24 z komentarzem WAN, natomiast dla sieci lokalnej ether2 ustalamy adresację 192.168.10.1/24. W środowisku produkcyjnym adres WAN jest unikalnym publicznym adresem IP przydzielonym przez operatora telekomunikacyjnego.
Kluczowym elementem fazy przygotowawczej jest weryfikacja tabeli routingu statycznego. Router A musi mieć zapewnioną łączność z podsiecią WAN Routera B (2.2.2.0/24) przez bramę operatorską 1.1.1.254 lub mieć poprawnie zdefiniowaną trasę domyślną 0.0.0.0/0. Brak trasy powrotnej do adresu WAN klienta uniemożliwi odebranie pakietów inicjujących sesję L2TP.
Przed przejściem do konfiguracji podsystemu PPP inżynier sieciowy powinien bezwzględnie zweryfikować dwukierunkową łączność ICMP za pomocą polecenia /ping 2.2.2.2. Dodatkowo należy upewnić się, że reguły zapory sieciowej na styku WAN nie blokują ruchu diagnostycznego ani nie kolidują z planowanymi usługami tunelowymi.
Wyjaśnienie skrótów użytych na slajdzie:
LNS - L2TP Network Server - Węzeł kończący sesję L2TP i realizujący dekapsulację ramek PPP.
WAN - Wide Area Network - Sieć rozległa łącząca odległe geograficznie zasoby teleinformatyczne.
LAN - Local Area Network - Lokalna sieć komputerowa o wysokiej przepustowości wewnątrz organizacji.
ICMP - Internet Control Message Protocol - Protokół diagnostyczny i kontrolny warstwy sieciowej wykorzystywany przez narzędzie ping.
CIDR - Classless Inter-Domain Routing - Metoda bezklasowej alokacji adresów IP i agregacji tras routingu.
Wdrożenie bazowej konfiguracji sieciowej na routerze oddziałowym pełniącym rolę inicjatora połączenia tunelowego L2TP.
- Router B będzie inicjatorem tunelu (klient L2TP).
# Router B - adresacja interfejsów
/ip address add address=2.2.2.2/24 interface=ether1 comment="WAN"
/ip address add address=192.168.20.1/24 interface=ether2 comment="LAN"
/ip route add dst-address=1.1.1.0/24 gateway=2.2.2.1
- Sprawdź łączność: polecenie
/ping 1.1.1.1 wykonane z Routera B powinno uzyskać odpowiedź.
LAC (L2TP Access Concentrator): Węzeł sieciowy inicjujący tunel L2TP w imieniu użytkownika lub sieci oddziałowej i hermetyzujący ramki PPP w pakiety transportowe UDP.
Router B w projektowanej architekturze pełni rolę klienta tunelu (L2TP Access Concentrator - LAC) i reprezentuje sieć oddziałową organizacji. Jego zadaniem jest nawiązanie sesji tunelowej do centrali oraz pośredniczenie w wymianie ruchu między podsiecią 192.168.20.0/24 a zasobami centralnymi. Wymagania dotyczące zabezpieczenia sesji między węzłami LAC i LNS definiuje Standard IETF RFC 3193.
W procedurze konfiguracyjnej RouterOS przypisujemy adres 2.2.2.2/24 do fizycznego interfejsu ether1 (WAN) oraz 192.168.20.1/24 do interfejsu ether2 (LAN). Brama domyślna dostawcy usług internetowych (ISP) ma adres 2.2.2.1, co zapewnia Routerowi B łączność ze światem zewnętrznym i adresem WAN centrali 1.1.1.1.
W praktyce laboratoryjnej stacje robocze podłączone do portu ether2 Routera B korzystają z serwera DHCP uruchomionego na routerze lub mają statyczne adresy IP ze wskazaną bramą 192.168.20.1. Niezwykle istotne jest zagwarantowanie, aby przestrzenie adresowe LAN w centrali i oddziale nie nakładały się na siebie (brak konfliktu podsieci IP).
Test łączności z poziomu konsoli Routera B poleceniem /ping 1.1.1.1 potwierdza prawidłowe działanie warstwy fizycznej i internetowej. Po uzyskaniu stabilnej odpowiedzi ICMP router oddziałowy jest gotowy do zestawienia wirtualnego interfejsu klienta l2tp-out, który w kolejnych krokach zostanie powiązany z mechanizmami uwierzytelniania PPP.
Wyjaśnienie skrótów użytych na slajdzie:
LAC - L2TP Access Concentrator - Koncentrator dostępowy L2TP inicjujący sesję tunelową do serwera LNS.
ISP - Internet Service Provider - Przedsiębiorstwo telekomunikacyjne dostarczające usługi dostępu do sieci Internet.
DHCP - Dynamic Host Configuration Protocol - Protokół automatycznego przydzielania parametrów sieciowych stacjom roboczym.
RFC - Request for Comments - Seria oficjalnych memorandów technicznych standaryzujących protokoły internetowe.
IP - Internet Protocol - Podstawowy protokół warstwy sieciowej odpowiedzialny za adresację i routing datagramów.
Zdefiniowanie puli dynamicznych adresów IP oraz profilu konfiguracyjnego PPP na serwerze L2TP.
- Parametr bridge w profilu PPP RouterOS nie przyjmuje wartości logicznej (yes/no), lecz jawną nazwę interfejsu mostka (np.
bridge=bridge1).
- Przypisanie profilu do mostka włącza mechanizm BCP (Bridge Control Protocol, RFC 3518), łącząc klientów w jedną domenę rozgłoszeniową L2.
- W standardowym tunelu L3 parametr ten pozostawia się jako none.
- Dla prawidłowej komunikacji z siecią lokalną zaleca się włączenie Proxy-ARP na interfejsie LAN serwera:
/interface bridge set [find] arp=proxy-arp comment="Obsługa Proxy-ARP dla klientów VPN"
Profil PPP (PPP Profile): Zbiór reguł i parametrów konfiguracyjnych w systemie RouterOS określający adresację końcówek tunelu, serwery DNS, parametry MTU oraz powiązania z interfejsami mostu dla sesji PPP.
Zarządzanie adresacją węzłów w technologiach opartych na protokole Point-to-Point Protocol wymaga utworzenia dedykowanej puli adresowej (/ip pool) oraz powiązania jej z profilem sesji. Każde nawiązane połączenie tunelowe tworzy logiczne łącze punkt-punkt, które wymaga unikalnego adresu IP dla stacji lokalnej serwera oraz stacji zdalnej klienta. Zasady negocjacji adresów IP w podprotokole IPCP precyzuje Standard IETF RFC 1332.
Na serwerze Router A definiujemy pulę l2tp-pool obejmującą zakres adresów 10.0.0.2-10.0.0.10. Zakres ten pozwala na jednoczesną obsługę do 9 klientów tunelowych. W menu /ppp profile nadajemy nazwę l2tp-profile i wskazujemy parametr local-address=10.0.0.1 (stały adres wirtualnego interfejsu serwera) oraz remote-address=l2tp-pool (pula adresów przydzielana klientom).
Istotnym aspektem konfiguracji profilu PPP jest parametr bridge. W systemie RouterOS parametr ten przyjmuje nazwę konkretnego interfejsu mostka (np. bridge=bridge1), a nie wartość logiczną. Przypisanie profilu do mostka pozwala na włączenie klienta do wspólnej domeny rozgłoszeniowej warstwy 2 (mechanizm BCP), natomiast w klasycznym tunelu L3 parametr ten pozostawia się jako domyślny (none).
Profil PPP umożliwia również zdefiniowanie parametrów DNS wysyłanych do klienta, wymuszenie szyfrowania MPPE (gdyby L2TP pracowało bez IPsec) oraz określenie limitów szybkości (rate-limit). Poprawnie skonstruowany profil gwarantuje spójność przydziału parametrów sieciowych niezależnie od liczby jednocześnie podłączonych stacji.
Wyjaśnienie skrótów użytych na slajdzie:
IPCP - Internet Protocol Control Protocol - Podprotokół PPP odpowiedzialny za negocjację adresacji IP i parametrów TCP/IP.
BCP - Bridge Control Protocol - Protokół sterujący PPP (RFC 3518) umożliwiający mostkowanie ramek Ethernet przez łącza punkt-punkt.
DNS - Domain Name System - Hierarchiczny system translacji nazw domenowych na adresy IP.
LCP - Link Control Protocol - Podprotokół PPP odpowiedzialny za nawiązywanie, testowanie i zamykanie łącza danych.
MPPE - Microsoft Point-to-Point Encryption - Mechanizm szyfrowania strumieniowego RC4 stosowany historycznie w sesjach PPP.
Uruchomienie demona serwera L2TP na Routerze A z celowym wyłączeniem szyfrowania IPsec w celu demonstracji braku poufności.
- use-ipsec=no - IPSec nie zostanie automatycznie skonfigurowany (celowa demonstracja braku poufności danych).
- Krytyczne ostrzeżenie: Uwierzytelnianie MS-CHAPv2 w tunelu bez IPsec przesyła skróty podatne na odzyskanie hasła w czasie poniżej 24 godzin (atak na pojedynczy klucz DES zaprezentowany na konferencji DEF CON w 2012 roku)!
- Bilans MTU/MRU w L2TP:
- 1500 B (MTU Ethernet) - 20 B (IPv4) - 8 B (UDP) - 8 B (L2TP) - 4 B (PPP) = 1460 bajtów.
- Po włączeniu IPsec ESP narzut wzrośnie o kolejne 50-70 bajtów, co wymusi obniżenie MTU do 1400 bajtów lub wdrożenie MSS Clamping.
- W systemie RouterOS v7 parametry logiczne przyjmują wartości tekstowe yes/no (zapis 1/0 jest odrzucany).
L2TP Server: Usługa sieciowa nasłuchująca na porcie UDP 1701, odpowiedzialna za przyjmowanie połączeń kontrolnych SCCRQ od klientów i negocjowanie sesji tunelowych L2TP.
Włączenie usługi serwera L2TP w systemie RouterOS realizuje się poleceniem /interface l2tp-server server set. Na tym etapie celowo konfigurujemy parametr use-ipsec=no, aby zobrazować, że protokół L2TP sam w sobie nie zapewnia ochrony przed podsłuchem. Do uwierzytelniania użytkowników wybieramy metody CHAP oraz MS-CHAPv2, których kryptoanalityczne właściwości opisuje Standard IETF RFC 2759.
Podczas konfiguracji serwera kluczowe znaczenie ma dobór parametrów max-mtu oraz max-mru. Wartość 1460 bajtów wynika bezpośrednio z odliczenia narzutu nagłówków w czystym tunelu L2TP: od standardowego MTU 1500 bajtów odejmuje się 20 bajtów nagłówka IPv4, 8 bajtów nagłówka UDP oraz 8 bajtów nagłówka L2TP i 4 bajty narzutu PPP (łącznie 40 bajtów narzutu).
Warto zwrócić uwagę na składnię systemu MikroTik RouterOS v7. Wszystkie parametry logiczne przyjmują wartości tekstowe yes lub no (zapis 1 lub 0 jest odrzucany przez parser poleceń). Jako profil domyślny wskazujemy wcześniej utworzony obiekt l2tp-profile, co automatycznie narzuca politykę przydziału adresów z puli.
Po wykonaniu polecenia serwer Router A rozpoczyna nasłuchiwanie na porcie UDP 1701. Wszelkie próby nawiązania połączenia będą rejestrowane w logach systemowych z tematami l2tp i ppp. Z punktu widzenia bezpieczeństwa należy pamiętać, że przesyłane w tym trybie hasła użytkowników (zwłaszcza przy użyciu protokołu PAP) lub skróty MS-CHAPv2 są narażone na natychmiastowe przechwycenie.
Wyjaśnienie skrótów użytych na slajdzie:
MRU - Maximum Receive Unit - Maksymalny rozmiar jednostki danych, jaką interfejs PPP jest w stanie przyjąć bez fragmentacji.
MTU - Maximum Transmission Unit - Maksymalny rozmiar jednostki danych transmitowanej w warstwie sieciowej.
PAP - Password Authentication Protocol - Nieszyfrowany, podatny protokół uwierzytelniania przesyłający hasła jawnym tekstem.
MS-CHAPv2 - Microsoft Challenge Handshake Authentication Protocol v2 - Protokół uwierzytelniania wzajemnego podatny na ataki kryptoanalityczne DES.
SCCRQ - Start-Control-Connection-Request - Pakiet kontrolny L2TP wysyłany przez klienta w celu zainicjowania sesji.
Utworzenie konta użytkownika w bazie PPP Secret serwera oraz uruchomienie interfejsu klienta L2TP na routerze oddziałowym.
- Przed zestawieniem tunelu dodajemy użytkownika PPP na serwerze (Router A):
# Konto PPP dla klienta L2TP (tylko usługa l2tp)
/ppp secret add name=l2tp-user password=Hasło123 \
profile=l2tp-profile service=l2tp
- Następnie na Routerze B tworzymy interfejs klienta L2TP:
# Klient L2TP bez IPSec
/interface l2tp-client add name=l2tp-tun \
connect-to=1.1.1.1 user=l2tp-user password=Hasło123 \
profile=l2tp-profile add-default-route=no \
use-ipsec=no disabled=no
- connect-to - adres IP WAN serwera L2TP (Router A).
- service=l2tp w secret - ogranicza konto tylko do L2TP (nie PPTP/SSTP/PPPoE).
- add-default-route=no - nie zmieniamy domyślnej trasy na Routerze B.
PPP Secret: Lokalna baza kont użytkowników w systemie RouterOS przechowująca nazwy, hasła, powiązane usługi (service) oraz profile uprawnień dla sesji PPP.
Nawiązanie połączenia tunelowego wymaga uprzedniego zdefiniowania poświadczeń w bazie użytkowników serwera. W menu /ppp secret tworzymy wpis l2tp-user z silnym hasłem, przypisując go do profilu l2tp-profile. Z inżynierskiego punktu widzenia krytycznym parametrem jest service=l2tp, który uniemożliwia wykorzystanie tego samego konta w innych usługach dostępowych. Metodę wymiany wyzwanie-odpowiedź stosowaną w CHAP standaryzuje Standard IETF RFC 1994.
Następnie na Routerze B przechodzimy do utworzenia wirtualnego interfejsu klienckiego poleceniem /interface l2tp-client add. Jako adres docelowy connect-to wskazujemy publiczny adres IP Routera A (1.1.1.1). Wprowadzamy zdefiniowaną wcześniej nazwę użytkownika oraz hasło, ustawiając use-ipsec=no oraz add-default-route=no.
Ustawienie opcji add-default-route=no jest fundamentalną zasadą w konfiguracjach typu site-to-site. Włączenie tej opcji spowodowałoby przekierowanie całego ruchu internetowego Routera B do tunelu, co w przypadku braku pełnego routingu w centrali doprowadziłoby do natychmiastowego odcięcia oddziału od sieci zewnętrznej (tzw. Black Hole Routing).
Po aktywacji interfejsu l2tp-client demon klienta wysyła pakiet UDP na port 1701 serwera. Po wymianie komunikatów kontrolnych SCCRQ/SCCRP następuje negocjacja LCP, uwierzytelnienie poświadczeń oraz uruchomienie podprotokołu IPCP. W rezultacie po obu stronach pojawiają się dynamiczne interfejsy tunelowe oznaczone statusem Running.
Wyjaśnienie skrótów użytych na slajdzie:
CHAP - Challenge Handshake Authentication Protocol - Protokół uwierzytelniania trzyetapowego wykorzystujący algorytm skrótu MD5.
SCCRP - Start-Control-Connection-Reply - Odpowiedź serwera L2TP potwierdzająca przyjęcie żądania zestawienia kanału kontrolnego.
CDN - Content Delivery Network - Rozproszona sieć dostarczania treści optymalizująca transmisję danych w Internecie.
CLI - Command Line Interface - Tekstowy interfejs wiersza poleceń służący do konfiguracji urządzeń sieciowych.
PSK - Pre-Shared Key - Wstępnie uzgodniony klucz symetryczny wykorzystywany do uwierzytelniania węzłów.
Zapewnienie dwukierunkowej komunikacji między podsieciami lokalnymi centrali i oddziału poprzez dodanie tras statycznych w tablicach routingu.
- Trasy statyczne dla ruchu między sieciami LAN:
- Na Routerze A (serwer):
/ip route add dst-address=192.168.20.0/24 gateway=10.0.0.2 comment="do LAN B przez L2TP"
- Na Routerze B (klient):
/ip route add dst-address=192.168.10.0/24 gateway=10.0.0.1 comment="do LAN A przez L2TP"
- Dobra praktyka inżynierska: Aby uniknąć problemów przy dynamicznym przydziale IP z puli, w konfiguracji produkcyjnej przypisuje się klientowi statyczny adres w
/ppp secret lub jako bramę wskazuje nazwę interfejsu (np. gateway=l2tp-tun).
- Wyjątek NAT: Należy upewnić się, że reguła maskarady WAN nie modyfikuje pakietów tranzytowych kierowanych do sieci zdalnej.
Routing statyczny (Static Routing): Ręczne definiowanie tras w tablicy routingu urządzenia sieciowego, wiążące docelową podsieć IP z adresem następnego skoku (Next-Hop) lub interfejsem wyjściowym.
Zestawienie interfejsu tunelowego L2TP tworzy logiczne połączenie punkt-punkt, jednak nie powoduje automatycznego trasowania ruchu pomiędzy podsieciami lokalnymi znajdującymi się za routerami. Aby stacje z sieci 192.168.10.0/24 mogły przesyłać pakiety do sieci 192.168.20.0/24, konieczne jest wprowadzenie odpowiednich wpisów w tablicy routingu (FIB). Obowiązki routera w zakresie przekazywania pakietów określa Standard IETF RFC 1812.
Na Routerze A dodajemy trasę do sieci oddziałowej poleceniem /ip route add dst-address=192.168.20.0/24 gateway=10.0.0.2. Warto zauważyć, że w systemie RouterOS jako bramę można wskazać albo adres IP drugiego końca tunelu (10.0.0.2), albo nazwę dynamicznego interfejsu tunelowego. Wskazanie adresu IP z puli PPP jest poprawne, o ile klient ma przypisany stały adres w profilu.
Analogiczną operację wykonujemy na Routerze B, wprowadzając trasę powrotną: /ip route add dst-address=192.168.10.0/24 gateway=10.0.0.1. Brak tej trasy skutkowałby ruchem asymetrycznym lub odrzucaniem pakietów odpowiedzi przez Router B i kierowaniem ich na domyślną bramę dostawcy internetowego.
W środowiskach produkcyjnych z wieloma oddziałami alternatywą dla tras statycznych jest uruchomienie protokołu routingu dynamicznego OSPF wewnątrz tuneli L2TP. Wymaga to jednak poprawnego skonfigurowania typu sieci OSPF (Point-to-Point) oraz uwzględnienia narzutu czasowego protokołu hello na łączach rozległych.
Wyjaśnienie skrótów użytych na slajdzie:
FIB - Forwarding Information Base - Baza przekazywania pakietów wykorzystywana przez jądro systemu do szybkiego przełączania ruchu.
OSPF - Open Shortest Path First - Hierarchiczny protokół routingu dynamicznego oparty na algorytmie stanu łącza Dijkstra.
TTL - Time to Live - Pole nagłówka IP ograniczające czas życia pakietu w celu eliminacji pętli routingu.
L3 - Layer 3 - Warstwa sieciowa modelu OSI odpowiedzialna za adresację logiczną i routing pakietów.
LAN - Local Area Network - Lokalna sieć komputerowa o wysokiej przepustowości wewnątrz organizacji.
Przeprowadzenie diagnostyki stanu połączenia L2TP oraz empiryczny dowód braku szyfrowania za pomocą wbudowanego analizatora pakietów.
- Sprawdź stan interfejsów L2TP:
/interface l2tp-server server print
/interface l2tp-client print
/interface print where type=l2tp-server
/interface print where type=l2tp-client
- Powinieneś zobaczyć interfejs
l2tp-out (klient) i l2tp-in (serwer) z flagą R (running).
- Sprawdź aktywnych użytkowników PPP:
/ppp active print
- Wykonaj przechwycenie pakietów na interfejsie WAN Routera A:
/tool sniffer quick interface=ether1 port=1701
Packet Sniffer: Narzędzie diagnostyczne analizujące ruch sieciowy w czasie rzeczywistym na wskazanym interfejsie fizycznym lub wirtualnym, z możliwością eksportu zrzutu do formatu PCAP.
Weryfikacja poprawności zestawienia tunelu rozpoczyna się od kontroli flag interfejsów w wierszu poleceń. Za pomocą poleceń /interface print where type=l2tp-server oraz type=l2tp-client upewniamy się, że obiekty mają flagę R (Running). Dodatkowo polecenie /ppp active print pozwala podejrzeć czas trwania sesji, przydzielony adres IP oraz parametry kodowania. Zaawansowane metody analizy ramek omawia Dokumentacja Wireshark.
Kluczowym elementem ćwiczenia laboratoryjnego jest weryfikacja bezpieczeństwa przesyłanych informacji. Na Routerze A uruchamiamy wbudowane narzędzie przechwytywania ruchu poleceniem /tool sniffer quick interface=ether1 port=1701. Generując ruch ICMP lub transfer plików między stacjami roboczymi z sieci LAN A i LAN B, obserwujemy przepływ pakietów na porcie UDP 1701.
Analiza przechwyconych datagramów ujawnia krytyczną słabość czystego L2TP: ładunek pakietu UDP zawiera nieszyfrowane ramki PPP. Zapisując przechwycone pakiety do pliku l2tp-test.pcap i otwierając go w programie Wireshark, student widzi pełną treść przesyłanych dokumentów, nagłówki IP podsieci wewnętrznych, a nawet treść zapytań protokołów wyższych warstw.
Eksperyment ten jednoznacznie udowadnia, że określenie VPN w odniesieniu do samego protokołu L2TP oznacza jedynie wirtualną separację połączenia logicznego, a nie bezpieczeństwo kryptograficzne. Aby zrealizować wymagania poufności i integralności, konieczne jest nałożenie mechanizmu IPsec, co stanowi przedmiot kolejnych kroków procedury.
Wyjaśnienie skrótów użytych na slajdzie:
PCAP - Packet Capture - Powszechny format zapisu przechwyconych pakietów sieciowych do celów kryptoanalizy i diagnostyki.
R - Running - Flaga systemowa RouterOS oznaczająca aktywny stan interfejsu sieciowego.
VPN - Virtual Private Network - Logiczna sieć prywatna zestawiana w strukturze publicznej infrastruktury sieciowej.
CRC - Cyclic Redundancy Check - Cyfrowa suma kontrolna służąca do wykrywania przypadkowych błędów transmisji danych.
Wireshark - Wireshark Packet Analyzer - Wiodący na świecie analizator protokołów sieciowych o otwartym kodzie źródłowym.
Wyjaśnienie architektury bezpieczeństwa stosu IPsec oraz mechanizmu enkapsulacji datagramów L2TP wewnątrz pakietów ESP.
- Jak pokazaliśmy, L2TP samo w sobie NIE SZYFRUJE danych.
- Pakiety UDP 1701 są wysyłane jawnym tekstem - każdy może je odczytać.
- L2TP zapewnia jedynie enkapsulację (tunelowanie) ramek PPP.
- Do zapewnienia poufności, integralności i uwierzytelniania potrzebny jest IPSec.
- IPSec szyfruje cały pakiet L2TP (wraz z nagłówkami) wewnątrz protokołu ESP (IP proto 50).
- Zewnętrzny obserwator widzi tylko ruch ESP, nie L2TP - zawartość tunelu jest nieczytelna.
Architektura bezpieczeństwa IPsec: Zestaw standardów kryptograficznych IETF (RFC 4301) operujących w warstwie sieciowej, zapewniających poufność, integralność, autentyczność oraz ochronę przed atakami powtórzeniowymi (Anti-Replay).
Podstawowym błędem spotykanym w projektach sieciowych jest utożsamianie tunelowania z szyfrowaniem. Tunel L2TP hermetyzuje ramkę PPP w nagłówek UDP, umożliwiając jej transport przez routery pośredniczące, jednak zawartość datagramu pozostaje całkowicie czytelna. Dopiero integracja ze stosem IPsec dostarcza triady bezpieczeństwa: poufności (Confidentiality), integralności (Integrity) oraz uwierzytelnienia pochodzenia danych (Authentication). Architekturę tę kompleksowo definiuje Standard IETF RFC 4301.
W standardowym wdrożeniu L2TP/IPsec (RFC 3193) protokół IPsec działa w trybie transportowym (Transport Mode). Oznacza to, że oryginalny nagłówek pakietu IP (z publicznymi adresami WAN routerów) pozostaje na zewnątrz, a cały ładunek warstwy transportowej (nagłówek UDP port 1701 wraz z zawartością L2TP i PPP) zostaje zaszyfrowany i umieszczony wewnątrz nagłówka ESP (IP protocol 50).
Zewnętrzny obserwator w sieci Internet, monitorujący ruch między routerami, widzi wyłącznie pakiety protokołu ESP. Nie jest w stanie ustalić, jakie protokoły są przesyłane wewnątrz (brak widoczności portu 1701), jakie adresy IP mają stacje w sieciach LAN, ani odczytać żadnych danych aplikacyjnych. Dodatkowo kod MAC/HMAC chroni pakiet przed modyfikacją przez atakującego podczas transmisji.
W systemie MikroTik RouterOS konfiguracja IPsec dla L2TP może zostać zrealizowana w sposób zautomatyzowany (mechanizm one-click use-ipsec=yes) lub całkowicie ręczny. Zrozumienie relacji między demonem L2TP a podsystemem IPsec jest kluczowe dla właściwej konfiguracji zapory sieciowej i optymalizacji wydajności procesora routera.
Wyjaśnienie skrótów użytych na slajdzie:
CIA - Confidentiality, Integrity, Availability - Klasyczna triada celów bezpieczeństwa informacji w teleinformatyce.
HMAC - Hash-based Message Authentication Code - Kryptograficzny kod uwierzytelniania wiadomości oparty na funkcji skrótu i kluczu tajnym.
MAC - Message Authentication Code - Krótki fragment informacji służący do potwierdzenia autentyczności i nienaruszalności wiadomości.
Anti-Replay - Anti-Replay Protection - Mechanizm protokołu ESP chroniący przed atakami polegającymi na przechwyceniu i ponownym wysłaniu pakietu.
OSI - Open Systems Interconnection - Standardowy model odniesienia podziału protokołów sieciowych na siedem warstw.
Wdrożenie zautomatyzowanego mechanizmu aktywacji IPsec na serwerze L2TP za pomocą parametru use-ipsec=yes.
- Na Routerze A włączamy serwer L2TP z opcją IPSec (one-click):
# Serwer L2TP z automatycznym IPSec
/interface l2tp-server server set enabled=yes \
authentication=chap,mschap2 \
default-profile=l2tp-profile \
use-ipsec=yes ipsec-secret="MojeHasłoIPSec"
- use-ipsec=yes - włącza automatyczne generowanie polityk IPSec.
- ipsec-secret - wspólny klucz wstępny (PSK) używany do uwierzytelnienia IPSec.
- RouterOS automatycznie utworzy wpisy w
/ip ipsec peer, /ip ipsec identity i /ip ipsec policy.
Automatyczny IPsec (One-Click IPsec): Funkcjonalność systemu MikroTik RouterOS dynamicznie generująca wpisy Peer, Identity oraz Policy w podsystemie IPsec na podstawie konfiguracji serwera L2TP.
Firma MikroTik wprowadziła w systemie RouterOS mechanizm znacznie upraszczający wdrażanie bezpiecznych połączeń L2TP/IPsec. Zamiast ręcznego konfigurowania wielu powiązanych tabel w menu /ip ipsec, administrator może uaktywnić automatyczne generowanie polityk za pomocą parametru use-ipsec=yes oraz wskazania wspólnego klucza wstępnego w parametrze ipsec-secret. Strukturę nagłówka chroniącego te pakiety opisuje Standard IETF RFC 4303.
Wprowadzając na Routerze A polecenie /interface l2tp-server server set enabled=yes use-ipsec=yes ipsec-secret="MojeHasłoIPSec", wymuszamy na serwerze utworzenie dynamicznego szablonu IPsec. Serwer automatycznie dodaje regułę w /ip ipsec peer z adresem 0.0.0.0/0 (nasłuchiwanie połączeń od dowolnego klienta), tożsamość z kluczem PSK oraz dynamiczną politykę typu generate policy.
Należy pamiętać, że automatyczna konfiguracja korzysta z domyślnego profilu Fazy 1 (default profile) oraz propozycji Fazy 2 (default proposal). W starszych wersjach oprogramowania domyślne ustawienia mogły zawierać przestarzałe szyfry, dlatego inżynier bezpieczeństwa powinien zweryfikować zawartość domyślnej propozycji (proposal) i usunąć z niej słabe algorytmy, takie jak DES czy 3DES.
Zaletą metody zautomatyzowanej jest szybkość wdrożenia oraz bezbłędne przypisywanie dynamicznych polityk transportowych dla każdego podłączającego się klienta L2TP. W kolejnym kroku skonfigurujemy klienta na Routerze B, aby dopasować parametry uwierzytelniania i zestawić w pełni zaszyfrowany tunel.
Wyjaśnienie skrótów użytych na slajdzie:
PSK - Pre-Shared Key - Wstępnie uzgodniony klucz symetryczny wykorzystywany do uwierzytelniania węzłów.
DES - Data Encryption Standard - Przestarzały, złamany symetryczny szyfr blokowy o 56-bitowej długości klucza.
3DES - Triple Data Encryption Standard - Trzykrotna aplikacja algorytmu DES, wycofana ze współczesnych standardów z uwagi na luki.
SA - Security Association - Jednokierunkowa relacja bezpieczeństwa IPsec określająca algorytmy i klucze sesyjne.
IKE - Internet Key Exchange - Protokół uzgadniania kluczy i parametrów kryptograficznych dla sesji IPsec.
Skonfigurowanie klienta L2TP na Routerze B z wymuszeniem szyfrowania IPsec oraz analiza sekwencji uzgadniania IKE i tunelu L2TP.
- Prawidłowa sekwencja nawiązywania połączenia L2TP/IPsec (RFC 3193):
- 1. Negocjacja IKE w fazie 1 (ISAKMP SA): Wymiana parametrów kryptograficznych na porcie UDP 500 oraz uwierzytelnienie kluczem PSK.
- 2. Wykrywanie translatora NAT (NAT-T): W przypadku wykrycia translacji adresów sesja automatycznie przełącza się na port UDP 4500 (RFC 3948).
- 3. Negocjacja IPsec w fazie 2 (Quick Mode / CREATE_CHILD_SA): Ustanowienie skojarzenia IPsec SA w trybie transportowym dedykowanego do ochrony ruchu na porcie UDP 1701.
- 4. Sesja L2TP i PPP: Wewnątrz bezpiecznego kanału ESP następuje wymiana komunikatów kontrolnych L2TP oraz uwierzytelnienie użytkownika w protokole MS-CHAPv2.
NAT-Traversal (NAT-T): Mechanizm enkapsulacji pakietów IPsec ESP wewnątrz datagramów UDP na porcie 4500 (RFC 3948), umożliwiający bezproblemowe przechodzenie ruchu szyfrowanego przez translatory adresów NAPT/PAT.
Aktywacja ochrony kryptograficznej po stronie węzła oddziałowego Router B wymaga zaktualizowania konfiguracji interfejsu klienta L2TP lub utworzenia nowego obiektu z parametrem use-ipsec=yes. Klient musi mieć zdefiniowany dokładnie ten sam wspólny klucz wstępny (ipsec-secret), który został wprowadzony na serwerze. W przypadku obecności routerów brzegowych realizujących translację adresów krytyczną rolę odgrywa Standard IETF RFC 3948.
W systemie RouterOS wykonujemy polecenie w menu /interface l2tp-client add name=l2tp-tun-sec connect-to=1.1.1.1 user=l2tp-user password=Hasło123 use-ipsec=yes ipsec-secret="MojeHasłoIPSec" add-default-route=no. Po aktywacji interfejsu demon inicjuje wieloetapowy proces zestawiania łączności, który zasadniczo różni się od procedury w czystym L2TP.
Sekwencja rozpoczyna się od negocjacji IKE na porcie UDP 500. Routery uzgadniają parametry kryptograficzne Fazy 1 (ISAKMP SA), weryfikują tożsamość za pomocą klucza PSK i generują wspólny sekret za pomocą algorytmu Diffie-Hellmana. Jeśli którykolwiek z węzłów znajduje się za translatorem NAT, proces automatycznie przełącza się na port UDP 4500 (mechanizm NAT-Traversal), co zapobiega odrzuceniu pakietów przez zapory stanowe.
Dopiero po pomyślnym zainstalowaniu skojarzeń bezpieczeństwa Fazy 2 (IPsec SA w trybie transportowym dla portu UDP 1701) rozpoczyna się właściwa transmisja ramek kontrolnych L2TP oraz negocjacja protokołu PPP. Cały proces uwierzytelniania użytkownika w protokole MS-CHAPv2 odbywa się już wewnątrz bezpiecznego, zaszyfrowanego kanału ESP.
Wyjaśnienie skrótów użytych na slajdzie:
NAT-T - NAT Traversal - Mechanizm enkapsulacji pakietów IPsec ESP w datagramy UDP 4500 w celu przejścia przez translatory NAT.
IKE - Internet Key Exchange - Protokół uzgadniania kluczy kryptograficznych i parametrów bezpieczeństwa dla IPsec.
NAPT - Network Address Port Translation - Odmiana translacji NAT mapująca wiele prywatnych adresów IP i portów na jeden adres publiczny.
DH - Diffie-Hellman - Protokół kryptograficzny umożliwiający bezpieczne uzgodnienie klucza symetrycznego przez niezaufany kanał.
UDP - User Datagram Protocol - Bezpołączeniowy protokół transportowy stosowany m.in. przez IKE oraz L2TP.
Weryfikacja routingu LAN-to-LAN przez tunel L2TP/IPsec oraz analiza bilansu narzutu nagłówków MTU i mechanizmu MSS Clamping.
- Trasy dodajemy tak samo jak dla tunelu bez IPSec - przez interfejs L2TP.
Na Routerze A:
/ip route add dst-address=192.168.20.0/24 \
gateway=10.0.0.2 comment="do LAN B przez L2TP/IPSec"
Na Routerze B:
/ip route add dst-address=192.168.10.0/24 \
gateway=10.0.0.1 comment="do LAN A przez L2TP/IPSec"
- Sprawdź łączność - ping między sieciami LAN powinien działać.
- Tym razem ruch na interfejsie WAN jest zaszyfrowany (ESP, nie UDP 1701).
MSS Clamping w L2TP/IPsec: Technika dynamicznego obniżania wartości pola Maximum Segment Size w tranzytowych pakietach TCP SYN do poziomu uwzględniającego podwójny narzut nagłówków L2TP oraz IPsec ESP.
Z punktu widzenia warstwy sieciowej (L3) proces trasowania pakietów w połączeniu L2TP/IPsec opiera się na interfejsach logicznych PPP, tak samo jak w przypadku tunelu nieszyfrowanego. Pakiety kierowane do podsieci zdalnej trafiają na logiczny interfejs tunelu, a następnie jądro systemu poddaje je enkapsulacji L2TP oraz szyfrowaniu IPsec przed wysłaniem przez interfejs fizyczny WAN. Wpływ tunelowania na parametry transmisji i zjawisko fragmentacji szczegółowo wyjaśnia Standard IETF RFC 4459.
Na Routerze A dodajemy trasę statyczną /ip route add dst-address=192.168.20.0/24 gateway=10.0.0.2, natomiast na Routerze B /ip route add dst-address=192.168.10.0/24 gateway=10.0.0.1. Z inżynierskiego punktu widzenia kluczowe jest uświadomienie sobie bilansu rozmiaru jednostki transmisyjnej MTU: dodanie nagłówka ESP, wektora inicjalizacyjnego IV oraz sumy kontrolnej ICV zwiększa narzut o dodatkowe 50-70 bajtów.
W rezultacie efektywne MTU dla tunelu L2TP/IPsec spada ze standardowych 1500 bajtów do około 1400-1410 bajtów. Przesyłanie pakietów o rozmiarze 1500 bajtów z ustawioną flagą DF (Don't Fragment) spowodowałoby ich ciche odrzucenie na styku WAN. Aby temu zapobiec, konieczne jest wdrożenie reguły MSS Clamping w łańcuchu mangle zapory sieciowej.
Reguła /ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=clamp-to-pmtu automatycznie modyfikuje ogłaszany rozmiar segmentu TCP dla wszystkich nawiązywanych sesji. Dzięki temu stacje robocze w obu sieciach LAN generują pakiety, które po nałożeniu wszystkich warstw enkapsulacji mieszczą się w MTU łącza fizycznego bez groźby fragmentacji.
Wyjaśnienie skrótów użytych na slajdzie:
MSS - Maximum Segment Size - Maksymalny rozmiar segmentu danych przesyłanego w pojedynczym pakiecie TCP.
MTU - Maximum Transmission Unit - Maksymalny rozmiar jednostki danych w warstwie sieciowej.
PMTUD - Path MTU Discovery - Procedura badania minimalnego MTU na trasie między węzłami sieciowymi za pomocą ICMP.
DF - Don't Fragment - Flaga w nagłówku IPv4 zabraniająca fragmentacji pakietu przez routery pośredniczące.
IV - Initialization Vector - Losowy wektor inicjalizacyjny stosowany w trybach szyfrowania blokowego.
Opracowanie kompletnego zestawu reguł filtrujących zapory sieciowej na styku WAN dla obsługi protokołów IKE, NAT-T, ESP oraz ruchu tranzytowego.
- Kompletny zestaw reguł zapory sieciowej na styku WAN dla serwera L2TP/IPsec:
- 1. Ochrona usług routera (łańcuch input):
- Negocjacja IKE:
/ip firewall filter add chain=input protocol=udp dst-port=500 action=accept comment="IKE (IPSec)"
- Obsługa NAT-T:
/ip firewall filter add chain=input protocol=udp dst-port=4500 action=accept comment="NAT-T (IPSec)"
- Szyfrowany ruch ESP:
/ip firewall filter add chain=input protocol=ipsec-esp action=accept comment="ESP (IPSec)"
- Kanał L2TP:
/ip firewall filter add chain=input protocol=udp dst-port=1701 action=accept comment="L2TP sterowanie"
- 2. Ruch tranzytowy między sieciami LAN (łańcuch forward):
/ip firewall filter add chain=forward src-address=192.168.10.0/24 dst-address=192.168.20.0/24 action=accept comment="Ruch LAN A do LAN B"
- 3. Wyjątek w translacji NAT (przed regułą maskarady WAN):
/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 dst-address=192.168.20.0/24 action=accept comment="Wyjątek NAT dla VPN" place-before=0
Łańcuch Input vs Forward: Strukturalny podział reguł filtrujących w zaporze sieciowej: łańcuch Input chroni usługi samego routera (np. porty VPN), a Forward zarządza ruchem tranzytowym między podsieciami LAN.
Prawidłowa konfiguracja zapory sieciowej (Firewall Filter) jest warunkiem koniecznym do poprawnego nawiązania i utrzymania sesji L2TP/IPsec. Administrator musi precyzyjnie otworzyć niezbędne porty i protokoły w łańcuchu Input, zachowując przy tym zasadę domyślnego blokowania wszelkiego pozostałego ruchu nieautoryzowanego ze styku WAN. Oficjalne wytyczne w zakresie polityk filtrowania dla bram VPN zawiera dokument Rekomendacje NIST SP 800-77 Rev. 1.
W łańcuchu Input należy zezwolić na cztery krytyczne typy ruchu: UDP na porcie 500 (początkowa negocjacja IKE), UDP na porcie 4500 (obsługa NAT-Traversal w przypadku obecności translatorów adresów), protokół IP 50 (ESP, czyli właściwy szyfrowany strumień danych) oraz port UDP 1701 (ruch sterujący L2TP). Warto podkreślić, że w RouterOS ruch ESP definiuje się parametrem protocol=ipsec-esp.
Kolejnym kluczowym aspektem jest łańcuch Forward. Ruch między podsieciami 192.168.10.0/24 i 192.168.20.0/24 przechodzi przez router jako ruch tranzytowy. W restrykcyjnych środowiskach korporacyjnych należy dodać jawną regułę akceptującą: /ip firewall filter add chain=forward src-address=192.168.10.0/24 dst-address=192.168.20.0/24 action=accept.
Równie ważna jest kolejność reguł w tabeli NAT. Jeśli na routerze aktywna jest reguła masquerade dla interfejsu WAN, pakiety przesyłane do odległej podsieci LAN mogą zostać niepotrzebnie poddane translacji adresów źródłowych. Aby temu zapobiec, dodaje się wyjątek NAT z regułą action=accept przed regułą maskarady lub stosuje parametr ipsec-policy=out,none.
Wyjaśnienie skrótów użytych na slajdzie:
NIST - National Institute of Standards and Technology - Amerykańska agencja federalna opracowująca normy i standardy bezpieczeństwa teleinformatycznego.
NAT - Network Address Translation - Translacja adresów sieciowych umożliwiająca współdzielenie publicznego adresu IP.
ESP - Encapsulating Security Payload - Protokół bezpieczeństwa IPsec (IP proto 50) zapewniający poufność i integralność.
WAN - Wide Area Network - Sieć rozległa łącząca odległe geograficznie zasoby przedsiębiorstwa.
SPI - Security Parameter Index - 32-bitowy identyfikator w nagłówku ESP wskazujący właściwe skojarzenie bezpieczeństwa SA.
Szczegółowe zdefiniowanie profilu IKE Fazy 1 oraz obiektu peer z precyzyjnym doborem algorytmów kryptograficznych i grup Diffie-Hellmana.
- Ręczna definicja profilu Fazy 1 w
/ip ipsec profile oraz obiektu Peer:
- enc-algorithm=aes-256 + hash-algorithm=sha256 + dh-group=modp2048 - silne parametry kryptograficzne.
- Wybór trybu wymiany (exchange-mode):
- Dla połączeń z wbudowanymi klientami systemowymi (Windows, macOS, iOS, Android) bezwzględnie wymagany jest tryb IKEv1 Main Mode (exchange-mode=main) zgodnie ze standardem RFC 3193.
- Tryb exchange-mode=ike2 jest rekomendowany wyłącznie w połączeniach site-to-site między routerami MikroTik RouterBoard wspierającymi IKEv2 w L2TP.
- lifetime=1d - czas życia ISAKMP SA (24 godziny).
IKE Faza 1 (ISAKMP SA): Pierwsza faza negocjacji IPsec, w której następuje wzajemne uwierzytelnienie węzłów, uzgodnienie algorytmów ochrony i ustanowienie bezpiecznego kanału do dalszej wymiany parametrów sesyjnych.
Chociaż zautomatyzowany mechanizm one-click use-ipsec=yes jest wygodny, w środowiskach o podwyższonych rygorach bezpieczeństwa zaleca się ręczne konfigurowanie podsystemu IPsec. Pozwala to na całkowitą eliminację podatnych algorytmów kryptograficznych i precyzyjną kontrolę nad czasem życia kluczy sesyjnych. Ewolucję mechanizmów wymiany kluczy od IKEv1 do nowoczesnego standardu IKEv2 dokumentuje Standard IETF RFC 7296.
W pierwszym kroku tworzymy profil Fazy 1 poleceniem /ip ipsec profile add name=l2tp-ike enc-algorithm=aes-256 hash-algorithm=sha256 dh-group=modp2048 lifetime=1d. Zastosowanie szyfrowania AES-256, bezpiecznej funkcji skrótu SHA-256 oraz grupy Diffie-Hellmana modp2048 (grupa 14 o długości modułu 2048 bitów) zapewnia pełną ochronę przed atakami kryptoanalitycznymi.
Następnie definiujemy obiekt peer poleceniem /ip ipsec peer add name=peer-B address=2.2.2.2/32 profile=l2tp-ike exchange-mode=main. W tym miejscu inżynier sieciowy musi pamiętać o fundamentalnej zasadzie kompatybilności: w klasycznym protokole L2TP/IPsec (RFC 3193) wbudowane stosy systemowe (Windows, macOS, Android) obligatoryjnie wymagają trybu wymiany IKEv1 Main Mode.
Ustawienie exchange-mode=ike2 jest dopuszczalne wyłącznie w połączeniach router-router, gdzie obie strony są urządzeniami MikroTik RouterBoard lub wspierają niestandardowe rozszerzenia IKEv2 dla L2TP. W przypadku budowy uniwersalnego koncentratora dla stacji roboczych pracowniczych wymuszenie IKEv1 Main Mode w profilu serwera jest bezwzględnym wymogiem interoperacyjności.
Wyjaśnienie skrótów użytych na slajdzie:
ISAKMP - Internet Security Association and Key Management Protocol - Protokół zarządzania skojarzeniami bezpieczeństwa i wymiany kluczy (RFC 2408).
IKEv2 - Internet Key Exchange Version 2 - Druga, zoptymalizowana wersja protokołu IKE zredukowana do mniejszej liczby komunikatów.
AES - Advanced Encryption Standard - Współczesny symetryczny szyfr blokowy o długości klucza 128, 192 lub 256 bitów.
SHA - Secure Hash Algorithm - Rodzina kryptograficznych funkcji skrótu standaryzowanych przez NIST.
MODP - Modular Exponential - Grupy Diffie-Hellmana oparte na arytmetyce modularnej z użyciem liczb pierwszych.
Precyzyjna konfiguracja tożsamości IPsec oraz polityki bezpieczeństwa w trybie transportowym dla ruchu UDP na porcie 1701 zgodnie ze standardem RFC 3193.
- Korekta krytycznego błędu architektonicznego:
- Zdefiniowanie polityki IPsec w trybie tunelowym (
tunnel=yes) między sieciami LAN omija całkowicie enkapsulację L2TP!
- Prawidłowa polityka w architekturze L2TP/IPsec (RFC 3193) musi działać w trybie transportowym (tunnel=no) dla ruchu na porcie UDP 1701 między publicznymi adresami WAN routerów:
/ip ipsec policy add peer=peer-B proposal=l2tp-prop src-address=1.1.1.1/32 dst-address=2.2.2.2/32 protocol=udp dst-port=1701 tunnel=no comment="Transport Mode dla L2TP UDP 1701"
- Przesyłaniem ruchu między sieciami LAN zajmuje się logiczny interfejs L2TP oraz standardowa tablica routingu.
Polityka IPsec w trybie transportowym: Reguła w bazie SPD (Security Policy Database) nakazująca szyfrowanie pakietów IP bez dodawania zewnętrznego nagłówka IP, stosowana w L2TP/IPsec dla ochrony portu UDP 1701 między adresami WAN.
W ręcznej procedurze konfiguracji IPsec kolejnym etapem jest powiązanie tożsamości węzła z mechanizmem uwierzytelniania. W menu /ip ipsec identity tworzymy wpis przypisany do obiektu peer, wskazując klucz współdzielony secret="MojeHasłoIPSec". Klucz ten musi być w 100% zgodny po obu stronach łącza. Specyfikację negocjacji tożsamości w trybie Main Mode określa Standard IETF RFC 2409.
Następnie definiujemy politykę bezpieczeństwa (Security Policy). W tym miejscu wielu administratorów popełnia kardynalny błąd projektowy, próbując konfigurować politykę tunelową (tunnel=yes) pomiędzy podsieciami LAN (192.168.10.0/24 i 192.168.20.0/24). W architekturze L2TP/IPsec jest to całkowicie błędne, ponieważ L2TP samo stanowi protokół tunelujący, a zadaniem IPsec jest wyłącznie ochrona kanału transmisyjnego UDP 1701.
Prawidłowa polityka IPsec dla L2TP musi być zdefiniowana w trybie transportowym (tunnel=no). Wskazujemy adresy publiczne końcówek tunelu: src-address=1.1.1.1/32, dst-address=2.2.2.2/32, protocol=udp, dst-port=1701. Taka konfiguracja gwarantuje, że podsystem IPsec przechwyci i zaszyfruje wyłącznie pakiety L2TP, pozostawiając routing pomiędzy podsieciami wewnętrznymi samemu interfejsowi tunelowemu.
Wdrożenie trybu transportowego zapobiega konfliktom routingu oraz eliminuje konieczność dublowania polityk w miarę dodawania kolejnych podsieci LAN w oddziale. Wszelkie nowe trasy do podsieci oddziałowych wystarczy skierować na interfejs L2TP, a jądro RouterOS automatycznie zabezpieczy cały strumień wewnątrz ustanowionego skojarzenia transportowego.
Wyjaśnienie skrótów użytych na slajdzie:
SPD - Security Policy Database - Baza polityk bezpieczeństwa IPsec określająca reguły przetwarzania pakietów sieciowych.
SAD - Security Association Database - Baza skojarzeń bezpieczeństwa przechowująca aktywne klucze sesyjne i algorytmy.
PSK - Pre-Shared Key - Wstępnie uzgodniony klucz symetryczny wykorzystywany do uwierzytelniania węzłów.
UDP - User Datagram Protocol - Protokół warstwy transportowej wykorzystywany przez ruch sterujący i dane L2TP.
RFC - Request for Comments - Seria dokumentów technicznych określających standardy komunikacji internetowej.
Zdefiniowanie propozycji parametrów Fazy 2 (IPsec Proposal) z wykorzystaniem nowoczesnego szyfrowania AES, funkcji skrótu SHA-256 oraz ochrony PFS.
- Proposal definiuje algorytmy dla Fazy 2 (IPSec SA - właściwe szyfrowanie danych).
# Proposal - algorytmy Fazy 2
/ip ipsec proposal add name=l2tp-prop \
enc-algorithms=aes-256-cbc \
auth-algorithms=sha256 \
pfs-group=modp2048 lifetime=4h
- enc-algorithms - algorytm szyfrowania (AES-256 w trybie CBC).
- auth-algorithms - algorytm integralności (SHA-256). Uwaga: w RouterOS v7 parametr nazywa się auth-algorithms, nie hash-algorithms.
- pfs-group - Perfect Forward Secrecy (modp2048 = DH-14).
- lifetime - czas życia kluczy sesji IPSec (4 godziny).
- Proposal musi być identyczny po obu stronach tunelu.
Perfect Forward Secrecy (PFS): Właściwość protokołu kryptograficznego gwarantująca, że skompromitowanie długoterminowego klucza prywatnego nie pozwala na odszyfrowanie wcześniej zarejestrowanego ruchu z zamkniętych sesji.
Faza 2 negocjacji IPsec (Quick Mode w IKEv1 lub IKE_AUTH/CREATE_CHILD_SA w IKEv2) odpowiada za wynegocjowanie konkretnych skojarzeń bezpieczeństwa IPsec SA, które bezpośrednio szyfrują i uwierzytelniają pakiety danych. Parametry te grupuje obiekt zwany propozycją (Proposal). Obowiązujące wytyczne doboru algorytmów kryptograficznych dla protokołu ESP standaryzuje Standard IETF RFC 8221.
W systemie RouterOS tworzymy propozycję poleceniem /ip ipsec proposal add name=l2tp-prop enc-algorithms=aes-256-cbc auth-algorithms=sha256 pfs-group=modp2048 lifetime=4h. Warto zwrócić uwagę na specyfikę składni RouterOS v7: parametr integralności w propozycjach nosi nazwę auth-algorithms (liczba mnoga), podczas gdy w profilach Fazy 1 nazywa się hash-algorithm (liczba pojedyncza).
Zastosowanie mechanizmu Perfect Forward Secrecy (pfs-group=modp2048) stanowi krytyczny filar nowoczesnego bezpieczeństwa sieciowego. Włączenie PFS wymusza przeprowadzenie nowej wymiany Diffie-Hellmana podczas każdego odnawiania klucza sesji Fazy 2. Dzięki temu klucze szyfrujące kolejne pakiety nie są wyprowadzane bezpośrednio z klucza Fazy 1, co całkowicie chroni historyczne dane przed deszyfracją w razie kompromitacji węzła.
Czas życia klucza lifetime=4h stanowi optymalny kompromis między obciążeniem procesora a wymogami bezpieczeństwa. W urządzeniach wyposażonych w sprzętową akcelerację kryptograficzną (np. koprocesory AES-NI w architekturach x86 lub silniki kryptograficzne w układach ARM) szyfrowanie AES-256-CBC odbywa się z minimalnym narzutem wydajnościowym.
Wyjaśnienie skrótów użytych na slajdzie:
PFS - Perfect Forward Secrecy - Właściwość kryptograficzna zapewniająca niezależność kluczy poszczególnych sesji.
CBC - Cipher Block Chaining - Tryb pracy szyfru blokowego łączący blok jawny z szyfrogramem bloku poprzedniego.
ICV - Integrity Check Value - Kryptograficzna suma kontrolna dołączana na końcu pakietu ESP w celu weryfikacji integralności.
AES-NI - Advanced Encryption Standard New Instructions - Zestaw instrukcji procesora przyspieszający sprzętowo operacje szyfrowania AES.
SA - Security Association - Jednokierunkowe logiczne połączenie definiujące parametry kryptograficzne strumienia IPsec.
Praktyczne zastosowanie narzędzi diagnostycznych RouterOS do monitorowania aktywnych skojarzeń bezpieczeństwa IKE i zainstalowanych rekordów SA.
/ip ipsec active-peers print detail
/ip ipsec policy print
/ip ipsec installed-sa print
- Sprawdź stan interfejsów L2TP i aktywnych użytkowników PPP:
/interface l2tp-server server print
/ppp active print
/interface print where type=l2tp-server
/log print where topics=ipsec
/log print where topics=l2tp
- Sniffer - sprawdź czy widzisz ESP (zamiast UDP 1701):
/tool sniffer quick interface=ether1
Installed SA (Skojarzenie Bezpieczeństwa): Zainstalowany w tablicy kryptograficznej jądra systemu rekord zawierający klucze sesyjne, algorytmy, indeks SPI oraz liczniki bajtów dla jednokierunkowego strumienia szyfrowanego ESP.
Zakończenie konfiguracji wymaga przeprowadzenia rygorystycznej kontroli odbiorczej. Inżynier sieciowy musi sprawdzić stan negocjacji na obu poziomach: w warstwie IKE oraz w warstwie zainstalowanych skojarzeń ESP. Metodykę systematycznej diagnostyki tuneli opisuje Baza wiedzy Cisco IPSec Troubleshooting.
W systemie RouterOS podstawowym poleceniem kontrolnym jest /ip ipsec active-peers print detail. Polecenie to wyświetla listę aktywnych sesji IKE, wskazuje wynegocjowany tryb wymiany (IKEv1 lub IKEv2), używane algorytmy oraz adres IP i port węzła zdalnego (UDP 500 lub UDP 4500 w przypadku NAT-T). Brak wpisu na tej liście oznacza, że tunele nie nawiązały nawet bazowej komunikacji sterującej.
Kolejnym krokiem jest analiza właściwych skojarzeń danych za pomocą /ip ipsec installed-sa print. W prawidłowo działającym tunelu dwukierunkowym widoczne są dokładnie dwa rekordy SA: jeden dla kierunku nadawczego, drugi dla odbiorczego. Każdy wpis ma unikalny 32-bitowy indeks SPI, algorytm auth/enc oraz stale rosnący licznik przetworzonych bajtów.
Weryfikację empiryczną kończy ponowne uruchomienie analizatora pakietów na interfejsie WAN Routera A. Generując ruch ping między sieciami LAN, w narzędziu /tool sniffer quick interface=ether1 obserwujemy wyłącznie pakiety protokołu ipsec-esp lub UDP 4500. Całkowity brak pakietów UDP 1701 potwierdza, że cała komunikacja L2TP/PPP jest w 100% ukryta wewnątrz szyfrowanego strumienia.
Wyjaśnienie skrótów użytych na slajdzie:
SA - Security Association - Skojarzenie bezpieczeństwa definiujące parametry kryptograficzne dla danego strumienia IPsec.
SPI - Security Parameter Index - Unikalny 32-bitowy identyfikator jednoznacznie wskazujący właściwe skojarzenie SA w odbiorniku.
NAT-T - NAT Traversal - Mechanizm enkapsulacji pakietów IPsec w port UDP 4500 w celu ominięcia translacji NAT.
CLI - Command Line Interface - Tekstowy interfejs wiersza poleceń służący do zaawansowanego zarządzania urządzeniem.
IKE - Internet Key Exchange - Protokół zarządzania kluczami i negocjacji parametrów IPsec.
Komparatywna analiza inżynierska właściwości transmisyjnych, narzutu wydajnościowego oraz poziomu odporności na ataki w wariantach czystego L2TP i L2TP/IPsec.
| Cecha | L2TP (bez IPSec) | L2TP/IPSec |
| Szyfrowanie danych | Brak (jawny tekst) | AES-128/256 |
| Uwierzytelnianie | Tylko PPP (CHAP/MS-CHAPv2) | PPP + IPSec (PSK/Certyfikat) |
| Integralność | Brak (tylko CRC PPP) | SHA-256/HMAC |
| Anti-Replay | Brak | Tak (numery sekwencyjne ESP) |
| Protokół na WAN | UDP 1701 | ESP (IP 50) lub UDP 4500 |
| Widoczność danych | Pełna (Wireshark dekoduje L2TP) | Zaszyfrowane (niewidoczne) |
| Narzut wydajności | Niski (~40 bajtów) | Wyższy (~50-70 bajtów + kryptografia) |
| Bezpieczeństwo | Niskie - NIE UŻYWAĆ w produkcji | Wysokie - standard korporacyjny |
Narzut enkapsulacji (Encapsulation Overhead): Dodatkowa liczba bajtów dodawana do każdego pakietu sieciowego przez nagłówki tunelowania i szyfrowania, zmniejszająca przestrzeń dostępną dla właściwych danych aplikacyjnych.
Zestawienie cech funkcjonalnych i kryptograficznych czystego protokołu L2TP oraz hybrydy L2TP/IPsec pozwala na sformułowanie jednoznacznych wytycznych architektonicznych. Czysty L2TP nie zapewnia poufności, integralności ani ochrony przed podsłuchem, narażając organizację na ataki kradzieży tożsamości. Ostrzeżenia przed eksploatacją niezaszyfrowanych kanałów transmisyjnych publikuje zespół CERT Polska.
Wdrożenie stosu IPsec diametralnie zmienia profil bezpieczeństwa. Wprowadzenie szyfrowania symetrycznego AES-256 zabezpiecza przesyłane informacje przed wglądem niepowołanych podmiotów, kody HMAC gwarantują niezmienność danych podczas transmisji, a mechanizm 32-bitowych numerów sekwencyjnych ESP całkowicie uniemożliwia przeprowadzenie groźnych ataków powtórzeniowych (Anti-Replay).
Ceną za podwyższone bezpieczeństwo jest narzut transmisyjny oraz obliczeniowy. Czysty protokół L2TP generuje narzut zaledwie 40 bajtów (IP + UDP + L2TP + PPP), podczas gdy L2TP/IPsec wymaga dodatkowo około 50-70 bajtów na nagłówki ESP, wektory IV, dopełnienie (padding) oraz sumy kontrolne ICV. Ponadto szyfrowanie każdego datagramu wymaga stałej alokacji mocy obliczeniowej procesora.
Podsumowując analizę porównawczą, jedynym uzasadnionym obszarem stosowania czystego L2TP są odizolowane laboratoria testowe lub bezpieczne sieci operatorskie MPLS, gdzie izolacja ruchu jest gwarantowana w warstwie rdzeniowej. We wszystkich pozostałych wdrożeniach produkcyjnych przez sieć Internet stosowanie L2TP bez IPsec jest poważnym błędem i naruszeniem podstawowych zasad cyberbezpieczeństwa.
Wyjaśnienie skrótów użytych na slajdzie:
MPLS - Multiprotocol Label Switching - Technika szybkiego przełączania pakietów w sieciach szkieletowych oparta na etykietach.
AES - Advanced Encryption Standard - Współczesny symetryczny szyfr blokowy o wysokim poziomie bezpieczeństwa.
HMAC - Hash-based Message Authentication Code - Kod uwierzytelniania wiadomości oparty na funkcji skrótu i kluczu tajnym.
Anti-Replay - Anti-Replay Protection - Mechanizm odrzucający duplikaty pakietów IPsec w celu neutralizacji ataków powtórzeniowych.
IV - Initialization Vector - Losowy wektor inicjalizacyjny stosowany w trybach szyfrowania blokowego.
Diagnozowanie i usuwanie najczęstszych awarii wdrożeniowych L2TP/IPsec, w tym kolizji z akceleracją FastTrack, błędów translacji NAT oraz rozbieżności w negocjacji IKE.
- Kompleksowa diagnostyka najczęstszych problemów z tunelem L2TP/IPsec:
- 1. Niezgodność algorytmów (błąd 'no acceptable proposal'): Należy zweryfikować parametry profilu Fazy 1 oraz propozycji Fazy 2 po obu stronach.
- 2. Brak łączności (komunikat 'peer not responding'): Zapora sieciowa na styku WAN blokuje porty UDP 500, UDP 4500 lub protokół IP 50 (ESP).
- 3. Błąd klucza ('authentication failed'): Niezgodność wartości parametru
secret w menu /ip ipsec identity.
- 4. Konflikt z akceleracją FastTrack: Zamiast wyłączać conntrack w tabeli RAW, należy zastosować oficjalny warunek wykluczający w regule FastTrack:
/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related ipsec-policy=out,none comment="FastTrack z pominięciem tuneli IPSec"
FastTrack a pomijanie IPsec: Konflikt mechanizmu szybkiej ścieżki pakietów FastTrack w RouterOS z politykami IPsec, wymagający jawnego wyłączenia FastTrack dla ruchu szyfrowanego parametrem ipsec-policy=out,none.
W praktyce laboratoryjnej i wdrożeniowej inżynierowie najczęściej napotykają problemy wynikające z konfliktów konfiguracji zapory sieciowej lub rozbieżności parametrów kryptograficznych. Komunikat w logach no acceptable proposal oznacza niezgodność algorytmów Fazy 1 lub Fazy 2 między węzłami. Najnowsze wydania oprogramowania układowego i poprawki błędów są dostępne w repozytorium MikroTik.
Szczególnie podstępnym problemem w systemie MikroTik RouterOS jest mechanizm FastTrack. FastTrack przyspiesza przetwarzanie pakietów TCP/UDP poprzez ominięcie zaawansowanych łańcuchów zapory i tabeli polityk IPsec. W rezultacie tunel wydaje się poprawnie zestawiony, lecz przesyłany ruch LAN-to-LAN nie zostaje zaszyfrowany i jest odrzucany przez router docelowy.
Prawidłowym i rekomendowanym rozwiązaniem tego problemu jest dodanie warunku wykluczającego w regule FastTrack zapory filtrującej: /ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related ipsec-policy=out,none comment="FastTrack z pominięciem tuneli IPSec". Wyklucza to pakiety podlegające politykom IPsec z szybkiej ścieżki bez wyłączania FastTrack dla pozostałego ruchu.
Innym powszechnym źródłem awarii jest modyfikacja adresów w pakietach przez reguły maskarady (NAT Masquerade). Jeśli router zmieni adres źródłowy przed dopasowaniem pakietu do polityki IPsec, reguła szyfrowania nie zostanie wyzwolona. Rozwiązaniem jest dodanie reguły wyłączającej NAT dla podsieci VPN na początku tabeli /ip firewall nat.
Wyjaśnienie skrótów użytych na slajdzie:
FastTrack - FastTrack Connection Acceleration - Mechanizm RouterOS przyspieszający przetwarzanie tranzytowych pakietów sieciowych.
NAT - Network Address Translation - Translacja adresów sieciowych realizowana przez router brzegowy.
IKE - Internet Key Exchange - Protokół negocjacji parametrów i kluczy dla sesji IPsec.
CLI - Command Line Interface - Tekstowy interfejs wiersza poleceń urządzenia sieciowego.
ROS - RouterOS - Wielozadaniowy system operacyjny urządzeń MikroTik RouterBoard.
Usystematyzowanie reguł bezpiecznego projektowania, wdrażania i audytu sieci VPN opartych na protokole L2TP/IPsec w środowiskach operatorskich i korporacyjnych.
- L2TP bez IPSec - używać wyłącznie w laboratorium edukacyjnym.
- L2TP z IPSec - standard korporacyjny dla połączeń site-to-site i zdalnego dostępu.
- Zawsze stosuj silne algorytmy: AES-256, SHA-256, PFS z grupą modp2048 lub wyższą.
- Używaj IKEv2 (exchange-mode=ike2) zamiast starszego IKEv1 (main/aggressive).
- W miarę możliwości stosuj certyfikaty zamiast PSK dla lepszego bezpieczeństwa.
- Pamiętaj o wyjątkach NAT i FastTrack dla ruchu VPN.
- Używaj yes/no dla parametrów logicznych (nie 1/0).
Przydatne polecenia do monitorowania:
/ip ipsec active-peers print detail
/ip ipsec installed-sa print
/ppp active print
/interface print where type=l2tp-server
/log print where topics=ipsec
Utwardzanie bramy VPN: Procedura systemowego utwardzania koncentratora VPN polegająca na wyłączeniu zbędnych usług, wdrożeniu silnych szyfrów, wymuszeniu uwierzytelniania wieloskładnikowego oraz rygorystycznej filtracji adresowej.
Zakończenie modułu poświęconego wdrożeniu L2TP/IPsec na platformie MikroTik RouterBoard pozwala na sformułowanie uniwersalnych zaleceń inżynierskich. Technologia L2TP/IPsec, mimo upływu lat, pozostaje stabilnym i szeroko wspieranym standardem korporacyjnym, o ile jej wdrożenie spełnia rygorystyczne normy kryptograficzne. Zasady bezpiecznego zarządzania tunelami IPsec definiuje Standard bezpieczeństwa NIST SP 800-113.
W środowiskach produkcyjnych bezwzględnie zakazuje się stosowania przestarzałych algorytmów 3DES, DES oraz funkcji skrótu MD5 i SHA-1. Standardem branżowym pozostaje szyfrowanie AES-256 lub AES-GCM oraz funkcje skrótu z rodziny SHA-2 (SHA-256/SHA-512). Czas życia kluczy ISAKMP SA powinien wynosić maksymalnie 24 godziny, a kluczy IPsec SA od 1 do 8 godzin, obligatoryjnie z włączoną ochroną PFS (grupa DH 14 lub wyższa).
W infrastrukturze zarządzania tożsamością przedsiębiorstwa zaleca się odejście od statycznych kluczy PSK na rzecz cyfrowych certyfikatów X.509 oraz integracji podsystemu PPP z centralnym serwerem RADIUS (np. Microsoft NPS, FreeRADIUS). Rozwiązanie to pozwala na natychmiastowe unieważnianie poświadczeń pracowniczych oraz wdrożenie uwierzytelniania wieloskładnikowego (MFA).
Nieodzownym elementem utrzymania sieci jest ciągłe monitorowanie stanu łączy za pomocą poleceń /ip ipsec active-peers print detail, /ip ipsec installed-sa print oraz /log print where topics=ipsec. Prawidłowo zaprojektowany, utwardzony i monitorowany tunel L2TP/IPsec stanowi niezawodny kręgosłup komunikacyjny łączący rozproszone oddziały nowoczesnego przedsiębiorstwa.
Wyjaśnienie skrótów użytych na slajdzie:
MFA - Multi-Factor Authentication - Uwierzytelnianie wieloskładnikowe wymagające minimum dwóch różnych metod weryfikacji tożsamości.
RADIUS - Remote Authentication Dial-In User Service - Protokół sieciowy do centralnego uwierzytelniania, autoryzacji i rozliczania użytkowników.
PFS - Perfect Forward Secrecy - Właściwość protokołu wymiany kluczy chroniąca minione sesje przed deszyfracją.
NPS - Network Policy Server - Implementacja serwera RADIUS w systemach operacyjnych Microsoft Windows Server.
NIST - National Institute of Standards and Technology - Amerykańska agencja federalna standaryzująca wytyczne cyberbezpieczeństwa.