[miejsce publikacji] ICT Professional, Nr 19 – Lato 2018
[rubryka] TRENING Z MIKROTIK
[autor] Piotr Wasyk
[tytuł] Koncentrator SSTP VPN w chmurze z wykorzystaniem Mikrotik CHR
Czym jest Mikrotik CHR?
CHR (Cloud Hosted Router) to wersja RouterOS przygotowana do wykorzystania w środowiskach wirtualnych. Do wyboru mamy dwa poziomy licencjonowania: P1 i P10 – różnica to ograniczenie w przepustowości per interfejs – do 1 Gbit i 10 Gbit.
Czym jest SSTP?
SSTP (Secure Socket Tunneling Protocol) to następca popularnego do niedawna PPTP. Tak jak i swój poprzednik został opracowany przez Microsoft. Jest odpowiedzią na potrzebę lepszego zabezpieczenia transmisji danych poprzez zastosowanie mocnej kryptografii.
Natywnie klient SSTP jest dostępny w systemach MS od wersji Vista SP1, stąd można powiedzieć, że jest już pozbawiony problemów wieku dziecięcego i z powodzeniem można określić go jako rozwiązanie stabilne i pewne.
Uwierzytelnienie dostępne jest poprzez EAP-TLS oraz MS-CHAP.
Domyślnie działa na porcie tcp/443 – niestety nie ma możliwości wykorzystania udp. Dzięki wykorzystaniu portu 443, prościej jest uzyskać połączenie z kawiarni, hoteli, czy publicznych punktów dostępu do internetu, omijając reguły firewall oraz problemy z natowaniem. Znacznie usprawnia to wykorzystanie SSTP przez pracowników zdalnych.
Środowisko bliskie open-source jako minus wskazuje brak otwartości kodu i niemożność audytu szczegółów implementacji. Mimo to, w ostatnich latach widać coraz większą liczbę aplikacji klientów na inne systemy niż MS, w tym także dla urządzeń mobilnych.
W poniższym artykule przedstawię, jak skonfigurować koncentrację VPN SSTP z wykorzystaniem Mikrotik CHR zainstalowanego jako wirtualna maszyna EC2 w usłudze AWS.
Zachęcam do samodzielnego przetestowania – możliwe jest wykorzystanie darmowej opcji (free-tier) maszyny AWS t2.micro.
Zadanie zostało podzielone na następujące etapy:
-
Instalacja Mikrotik CHR w AWS.
-
Modyfikacja AWS Security group, aby umożliwić dostęp do serwera SSTP i na czas konfiguracji do usługi Winbox.
-
Przygotowanie certyfikatów potrzebnych do połączenia klienta MS Windows.
-
Włączenie serwera SSTP i utworzenie użytkowników.
-
Konfiguracja klienta.
Schemat poglądowy rozwiązania
-
Instalacja Mikrotik CHR w AWS
Zakładam, że posiadasz już konto w AWS. Po zalogowaniu się do konsoli należy utworzyć nową instancję EC2, wybierając z AWS Marketplace Mikrotik.
Jako typ instancji dla potrzeb artykułu wybrałem t2.micro (jest darmowa w ramach free-tier).
Do pierwszego zalogowania do RouterOS będą potrzebne klucze – zapisz je korzystając z „Download Key Pair”.
Aby wykorzystać klucze w putty, konieczne jest ich przekonwertowanie. Do tego celu można wykorzystać np. narzędzie puTTy Key Generator. Klikamy w nim „Load” -> wskazujemy wcześniej zapisany plik, a następnie „Save Private Key” – Pamiętaj, aby chronić ten plik i nie udostępniać go publicznie.
Teraz już pozostało tylko skonfigurowanie klienta putty, aby korzystał z przygotowanego klucza (Zakładka Connection – SSH- Auth).
Po połączeniu zalecam ustawienie hasła dla konta admin.
-
Modyfikacja AWS Security Group, aby umożliwić dostęp do serwera SSTP i na czas konfiguracji do usługi Winbox.
Dla ułatwienia, późniejsze kroki konfiguracyjne będą wykonywane za pomocą aplikacji Winbox – do połączenia wymagany jest otwarty port tcp/8291. Dla usługi SSTP Server wymagany jest tcp/443. Domyślnie te porty są zablokowane przez AWS – należy zmodyfikować Security Group.
-
Przygotowanie certyfikatów potrzebnych do połączenia klienta MS Windows
Do poprawnego podłączenia się klienta SSTP (Microsoft Windows) do koncentratora będą potrzebne certyfikaty. Minimalny wymóg to, aby serwer SSTP wykorzystywał certyfikat, któremu ufa klient. Certyfikaty wygeneruję bezpośrednio na Mikrotik.
Najpierw należy wygenerować certyfikat CA (Certificate Authority) i podpisać go (bez wskazywania CA).
Kolejnym krokiem jest wygenerowanie certyfikatu dla usługi serwera SSTP. Robi się to analogicznie, jak w przypadku certyfikatu, w polu Common Name – tym razem należy wskazać IP/nazwę DNS. Podczas podpisywania wybieramy CA: <<certyfikatCA>>.
Następnie zaznaczamy certyfikat jako zaufany.
Eksport certyfikatu CA (będzie później potrzebny przy konfiguracji klienta SSTP).
-
Włączenie serwera SSTP i utworzenie użytkowników
Włączenie usługi serwera SSTP w RouterOS jest proste i ogranicza się do zaznaczenia checkboxa „Enable” oraz wskazania certyfikatu dla usługi SSTP.
Adresy IP będziemy przydzielać z puli, należy ją utworzyć (IP->Pool).
I następnie utworzyć profil (PPP-> Profiles).
Kolejnym krokiem jest utworzenie użytkowników, którzy będą łączyć się do naszego koncentratora. Robimy to w zakładce PPP-> Secret.
-
Konfiguracja klienta SSTP (Windows)
Pierwszym krokiem jest zaimportowanie wcześniej wygenerowanego certyfikatu CA jako główny urząd certyfikacji.
Następnym krokiem jest skonfigurowanie klienta SSTP.
Ostatecznie test.
Weryfikacja na koncentratorze VPN.
Na koniec dodamy jeszcze regułę NAT, aby umożliwić dostęp do internetu dla klientów VPN
(domyślnie cały ruch będzie kierowany przez VPN).
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
Sprawdźmy jakim adresem IP prezentujemy się w internecie.
Tak jak się spodziewaliśmy, jest to adres koncentratora VPN.