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 1Gbit i 10Gbit.

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:

  1. Instalacja Mikrotik CHR w AWS
  2. Modyfikacja AWS Security group, aby umożliwić dostęp do serwera SSTP i na czas konfiguracji do usługi Winbox
  3. Przygotowanie certyfikatów potrzebnych do połączenia klienta MS Windows
  4. Włączenie serwera SSTP i utworzenie użytkowników
  5. Konfiguracja klienta

Schemat poglądowy rozwiązania

sst vpn z mikrotik chr rys1

1. 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

sst vpn z mikrotik chr rys2

Jako typ instancji dla potrzeb artykułu wybrałem t2.micro (jest darmowa w ramach free-tier)

sst vpn z mikrotik chr rys3

Do pierwszego zalogowania do RouterOS będą potrzebne klucze – zapisz je korzystając z „Download Key Pair”

sst vpn z mikrotik chr rys4

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.

sst vpn z mikrotik chr rys5

Teraz już pozostało tylko skonfigurowanie klienta putty, aby korzystał z przygotowanego klucza (Zakładka Connection – SSH- Auth)

sst vpn z mikrotik chr rys6

Po połączeniu zalecam ustawienie hasła dla konta admin.

sst vpn z mikrotik chr rys7

2. 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.

sst vpn z mikrotik chr rys8
sst vpn z mikrotik chr rys9

3. Przygotowanie certyfikatów potrzebnych do połączenia klienta MS Windows

Do poprawnego połą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.
Pierw należy wygenerować certyfikat CA (Certificate Authority) i podpisać go (bez wskazywania CA)

sst vpn z mikrotik chr rys10

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)

sst vpn z mikrotik chr rys11
sst vpn z mikrotik chr rys12

4. Włączenie serwera SSTP i utworzenie użytkowników

Włączenie usługi serwera SSTP w RouterOS jest proste i ogranicza się do zaznaczenia checkbox’a „Enable” oraz wskazania certyfikatu dla usługi SSTP.

sst vpn z mikrotik chr rys13

Adresy IP będziemy przydzielać z puli, należy ją utworzyć (IP->Pool)

sst vpn z mikrotik chr rys14

I następnie utworzyć profil (PPP-> Profiles)

sst vpn z mikrotik chr rys15

Kolejnym krokiem jest utworzenie użytkowników, którzy będą łączyć się do naszego koncentratora. Robimy to w zakładce PPP-> Secret

sst vpn z mikrotik chr rys16

5. Konfiguracja klienta SSTP (Windows)

Pierwszym krokiem jest zaimportowanie wcześniej wygenerowanego certyfikatu CA jako główny urząd certyfikacji.

sst vpn z mikrotik chr rys17

Następnym krokiem jest skonfigurowanie klienta SSTP.

sst vpn z mikrotik chr rys18

Ostatecznie test

sst vpn z mikrotik chr rys19

Weryfikacja na koncentratorze VPN

sst vpn z mikrotik chr rys20

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.

sst vpn z mikrotik chr rys21

Tak jak się spodziewaliśmy, jest to adres koncentratora VPN.