W zasadzie większość osób, które korzystają z Mikrotików jako routerów korzysta z wbudowanych rozwiązań do VPN aby dostawać się do sieci wewnętrznej. Takim przykładem może być również uruchomienie Mikrotika w Azure dla zabezpieczenia małych rozwiązań (pisałem o takim rozwiązaniu jakiś czas temu).
RouterOS oferuje wiele rozwiązań do VPN dla użytkowników końcowych:
PPTP (Point-to-Point Tunelling Protocol), dostępny niemal z dowolnego urządzenia i łatwy w konfiguracji – niestety obecnie nie zalecany, ze względu na bezpieczeństwo. PPTP poprostu jest dziurawy 🙁
IPsec – rozwiązanie zalecane głównie do połączeń Site-2-Site. Konfiguracja dla Point-2-Site była by zbyt złożona (choćby ze względu na wymóg podania adresu IP z którego następuje połączenie.
L2TP/IPsec – protokół L2TP jest dość prosty w konfiguracji, można go dodatkowo zabezpieczyć przez IPsec zyskując bardzo bezpieczne medium komunikacyjne, co istotne – większość nowych OS pozwala na zestawienie takiego połączenia (począwszy od Windows przez komputery MAC/Linux jak i urządzenia mobilne Android, IOS). O tej konfiguracji opowiem poniżej
OVPN (Open VPN). Bezpieczne rozwiązanie (oparte o OpenSSL), które wymaga instalacji na urządzeniu dodatkowego oprogramowania.
Czemu L2TP/Ipsec?
Bo jest szybszy niż SSTP. Wg. samego Mikrotik nawet 3 krotnie.
Bo część Mikrotików ma sprzętowe wsparcie dla IPsec.
Bo standardowo wspiera go m.in. IOS i można zestawić taki tunel choćby z iPhone czy iPad
Konfiguracja L2TP/IPsec na Mikrotik
Tworzymy w Mikrotik serwer L2TP i dodajemy wymóg szyfrowania połączenia poprzez IPsec. Zwróćcie uwagę na pozycję Use IPsec. Jeśli wybierzemy wartość „yes„, to umożliwimy zestawienie połączeń zarówno z aktywnym IPsec jak i bez niego. Jesli chcemy wymusić IPsec dla każdego tunelu L2TP wybierzcie wartość „required„.
Tworzymy użytkowników, którzy będą logować się do naszego serwera VPN. Kluczowe jest wybranie usługi do której loguje się użytkownik (Service) o wartości „l2tp„. Oczywiście jeśli posiadacie serwer RADIUS to można ten punkt pominąć, dodając odpowiednią konfigurację po stronie serwera Radius.
Wchodzimy do ustawień IPsec i dodajemy Policy Proposal
Oraz dodajemy Peer ProfileJeśli macie wysokie restrykcje na Firewall to oczywiście trzeba jeszcze dodać trochę dodatkowych portów do połączeń: 500/UDP, 4500/UDP, 1701/UDP, ESP
I jeszcze w/w konfiguracja w wersji dla zaawansowanych (CLI).
Jak pisałem na wstępie Windows posiada pełne wsparcie dla tunelu VPN opartego o L2TP i IPsec, konfiguracja wymaga wybrania odpowiedniego protokołu i wypełnienia raptem kilku pozycji
Dostawca sieci VPN – Windows (wbudowane) – skorzystamy wtedy z klienta, który wchodzi w skład systemu operacyjnego
Typ sieci VPN: L2TP/IPsec z kluczem wstępnym – to jest nasz typ połączenia, gdzie sam protokół IPsec chronimy przy użyciu hasła (klucza)
Konfiguracja dla IOS
W przypadku urządzeń Apple konfiguracja wygląda podobnie jak do tej z Windows, tu też wybieramy typ połączenia VPN, w tym przypadku będzie to L2TP, wybieramy opcję bez RSA SecureID (autoryzujemy połączenie kluczem do IPsec a nie certyfikatem). W IOS klucz dla IPsec to pozycja „Hasło wspólne„.
Proponuje wywalić 3dsa z polityk oraz prośba o podanie ver RouterOS na której konfigurowałeś
dzięki, poprawiam. 3des usunięty. IOS działa
Co do wersji to zawsze aktualna stable. MT w domu same się aktualizują codziennie.
Jak umożliwić korzystanie z internetu przy takim połączeniu? Mi po zestawieniu tego VPN rozłącza internet.
Tak na 99% masz do zmiany firewall.
Myślę że masz tam tamte coś jak drop forward.
Musisz dodać regułę która nie wytnie Ci ruchy po VPN.
Nie ładują się obrazki, prośba o poprawę linków. Dzięki
Dzięki za zwrócenie uwagi. Poprawione
A ja mam: no suitable proposal found
I co zawiera „profile-vpn” użyty w L2TP server
W moim przypadku profile-vpn zawiera:
PPP > Profiles
/ppp profile
add change-tcp-mss=yes local-address=__lokalny_IP_dla_VPN__ name=profile-vpn remote-address=__pula_adresow_dla_klientow_vpn__ use-encryption=yes
no suitable proposal to komunikat z ipsec
IP > IPsec > Proposals
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-128-cbc
add enc-algorithms=aes-256-cbc,aes-128-cbc name=ios pfs-group=none