MikroTik jako serwer VPN w oparciu o protokół L2TP z szyfrowaniem IPSEC z wykorzystaniem klucza.

Na routerze MikroTik przed przystąpieniem do konfiguracji serwera VPN stworzyłem typową konfiguracji domowego routera (NAT, DHCP, DNS, prosty firewall)

  1. W pierwszej kolejności musimy utworzyć użytkownika VPN. Aby to zrobićprzechodzimy w menu PPP do zakładki Secrects.
  2. Klikamy dodaj, w nowym oknie wpisujemy nazwę użytkownika, hasło,wybieramy rodzaj tunelu jaki będzie używany przez tego użytkownika (w tymprzypadku l2tp). Następnie podajemy Local Address (ten adres pojawi się w /ipaddress po zestawieniu tunelu) następnie podajemy Remote Address. Adresywykorzystywane w tunelu nie muszą być (chodź mogą) wykorzystywane w sieciLAN. W polu Remote Address można wybrać pulę adresów (którą wcześniejdefiniujemy w /ip pool).
    Możemy również stworzyć własny profil przechodząc do zakładki Profiles w menuPPP. Możemy m.in. nadać w profilu local adres który będzie obowiązywał dlawszystkich użytkowników korzystających z tego profilu. Dla przykładu, gdy wprofilu wpiszemy adres lokalny, a w remote adres wybierzemy pulę adresówbędziemy mogli tworzyć użytkowników podając tylko ich login i hasło reszta będzieposługiwać się danymi z profilu.

Jeżeli w konfiguracji użytkownika podamy innedane będą one ważniejsze niż te z profilu i zostaną użyte w tunelu.

/ppp secret
add local-address=192.168.50.10 name=l2tp_user password=ZAQ!2wsx
profile=default-encryption remote-address=192.168.50.1 service=l2tp

Następnie w menu PPP przechodzimy do zakładki Interface aby włączyć serwerL2TP. Klikamy w przycisk L2TP Server, zaznaczamy Enable, jako profil wybieramydefault-encryption, jako autentykację odznaczamy wszystko oprócz mschap2 (jestto algorytm dostępny w większości urządzeń i systemów operacyjnych). W poluUse IPsec wybieramy require (IPsec będzie wymagany do nawiązania połączenia),w polu IPsec Secret wpisujemy klucz szyfrujący transmisję (klucz będzie taki samdla wszystkich użytkowników).

 

/interface l2tp-server serverset authentication=mschap2 enabled=yes ipsec-secret=HasloIPSec useipsec=required

Dla tego typu tunelu na firewallu należy wprowadzić:

ACCEPT INPUT, Protocol UDP, Dst. Port 4500

ACCEPT INPUT, Protocol UDP, Dst. Port 500

ACCEPT INPUT, Protocol UDP, Dst. Port 1701

/ip firewall filter
 add action=accept chain=input dst-port=4500 protocol=udp
 add action=accept chain=input dst-port=500 protocol=udp
 add action=accept chain=input dst-port=1701 protocol=udp

 

Konfiguracja klienta na przykładzie Windows 7 wygląda następująco:

– wchodzimy w centrum sieci i udostępniania– klikamy w „Skonfiguruj nowe połączenie lub nową sieć”

– połącz z miejscem pracy– użyj mojego połączenia internetowego (VPN)

– w polu Adres internetowy wpisujemy publiczny adres IP naszego routera,ustalamy nazwę połączenia, zaznaczamy „Nie łącz teraz, tylko skonfiguruj…” iklikamy dalej

– wpisujemy nazwę użytkownika i hasło zdefiniowane w PPP/Secrets

– zamykamy kreator– wchodzimy w „Zmień ustawienia karty sieciowej”

– na utworzonym połączeniu VPN klikamy w właściwości

– wybieramy zakładkę „Zabezpieczenia”

– wybieramy „Typ wirtualnej sieci prywatnej (VPN) jako”. Protokół L2TP/IPSec” a wpolu Szyfrowanie danych wybieramy Najmocniejsze szyfrowanie, w poluUwierzytelnianie zaznaczany „Zezwalaj na użycie tych protokołów” i zostawiamyzaznaczone Microsoft CHAP wersja 2

– wchodzimy w Ustawienia zaawansowane, zaznaczamy „użyj kluczawstępnego…” i wpisujemy nasz IPsec Secret zdefiniowany u ustawieniach serwerana routerze i klikamy OK

Podłączamy się do sieci VPN klikając podwójnie na utworzone połączenie i wpisując dane zdefiniowane w PPP/Secrets.

Urządzenie które podłączy się do VPN będzie miało komunikację L3 z hostami sieci lokalnej. Ruchem tym można zarządzać odpowiednimi regułami /ip firewall

UWAGA: Jeżeli planujesz uruchomić serwer VPN na routerze będącym za NAT’em (w sieci lokalnej) pomimo utworzenia prawidłowych reguł na routerze brzegowym(przekierowań portów 500,4500,1701) i konfiguracji serwera VPN stacje klienckie z systemami Windows mogą mieć problemy z połączeniem.

Rozwiązaniem jest edycjarejestru (polecenie CMD jako administrator):

REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 2

 

Autor: Wojciech Mańka