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)
- W pierwszej kolejności musimy utworzyć użytkownika VPN. Aby to zrobićprzechodzimy w menu PPP do zakładki Secrects.
- 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