L2TP / IPSec, NAT-T i wpisy rejestru na kliencie Windows

Przy konfigurowaniu VPNa opartego na L2TP/IPSec spotkałem się z dwoma ciekawymi problemami dotyczącymi konfiguracji wbudowanego klienta w Windows 7 (na Windows Vista jest identycznie)
1. Niedziałający IPSec. – VPN niby działał ale szyfrowanie oparte o IPSec już nie. Klucz wstępnego uwierzytelniania był pomijany a połączenie zestawiane w oparciu o protokół MPPE (Microsoft Point-to-Point Encryption). Po analizie okazało się, że zmieniona (notabene przez dedykowanego klienta VPN 🙂 )została wartość klucza odpowiadająca za wymuszanie IPSec po stronie klienta (Windows 7).
Wpis rejestru odpowiadający za działanie IPSec znajduje się w HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\RasMan\Parameters\ProhibitIpSec i może przybierać dwie wartości:

  • 0 – IPsec działa
  • 1 – IPSec nie dziala / jest pomijany

2. L2TP i NAT. W przypadku kiedy serwer i klient L2TP znajdują się za NATem wykorzystywany jest mechanizm NAT-Traversal. Aby L2TP w takim przypadku zadziałał musimy przyjrzeć się i poprawnie ustawić wartości w następującym kluczu rejestru na kliencie (Windows 7): HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\PolicyAgent\AssumeUDPEncapsulationContextOnSendRule
Wartości jakie może przybierać to:

  • 0 – wartość domyślna – serwer wystawiony do Internetu bez NAT
  • 1 – serwer za NAT
  • 2 – serwer i klient za NAT

2 komentarze do “L2TP / IPSec, NAT-T i wpisy rejestru na kliencie Windows”

  1. Ahoj,
    piszesz „W przypadku kiedy serwer i klient L2TP znajdują się za NATem wykorzystywany jest mechanizm NAT-Traversal” – do tego mam pytania.
    Na wstępie powiem, że próbuję zainicjować połączenie VPN przez Internet wykorzystując do tego OpenVPN. Obie maszyny znajdują się w tym samej sieci. Nie udało mi się to, ale dowiedziałem się, że router mój HUAWEI LTE BOX nie posiada opcji VPN passthrough, więc zacząłem wertować rozwiązanie NAT-T.

    1. Czy da się ustawić OpenVPN żeby działał z NAT-T?
    2. W ogóle co to jest ten NAT-T, maszyna, coś wirtualnego, jakiś program, od czego zacząć?

    Zastanawiam się że gdy będę chciał ustawić połączenie VPN do mojej sieci w domu, to będę musiałzastanawiać się , czy jakiś inny router, którego właśnie używam, posiada VPNpassthrough? – to bez sensu

    Dobra, nie chce za dużo pisać, po prostu chciałbym bezpośredni kontakt z moją sięcią w domu z każdego miejsca na świecie, dlatego zacząłem od VPN. W związku z tą tematyką istnieje jakaś dobra lektura od której mogę zacząć?

    Odpowiedz
    • To tak. VPN ma rożne implementacje: OpenVpn, L2TP, PPTP, IP Sec. Akurat NAT-T (to mechanizm kapsułkowania pakietów aby poprawnie przechodziły przez NAT). Na szybko. VPN to klient i serwer. Klienta konfigurujesz na maszynie zdalnej – serwer (niekoniecznie maszyna fizyczna – może być to usługa na routerze lub którymś z domowych komputerów) musi być w lokalizacji docelowej (w twoim domu). Masz serwer, masz klienta i wtedy zestawiasz połączenie (a jak coś nie działa zastanawiasz się np na vpn passtrough czy forwardingiem portów). Na początek przeczytaj ogólnie co to jest VPN zebyś poznał ideę rozwiązania a później o konkretnych implementacjach (np tu jedno z rozwiązań http://losiakit.pl/serwer-openvpn-w-oparciu-o-dd-wrt-i-router-tp-link-tl-wr1043nd/).

      Odpowiedz

Dodaj komentarz