W celu stworzenia bezpiecznego połączenia VPN z wykorzystaniem niewielkiej ilości klientów można wykorzystać maszynę MikroTik CHR jako serwer OpenVPN.

Należy pamiętać, że duża ilość użytkowników VPN podłączonych do maszyny z systemem RouterOS w znaczącym stopniu wykorzystuje moc obliczeniową. W takim wypadku zalecane jest skorzystanie z dedykowanego serwera OpenVPN.

W celu skorzystania z serwera OpenVPN wymagane jest posiadanie publicznego adresu IP.

Tworzenie certyfikatów

Ponieważ OpenVPN wykorzystuje certyfikaty do zestawienia połączenia, w pierwszej kolejności należy je wygenerować.

Po zostawieniu połączenia z wykorzystaniem aplikacji Winbox, trzeba przejsć do zakładki System->Certificates. Zostanie ukazane następujące okno.

okno certyfikatów mt

Na początek zostanie utworzony certyfikat CA. Wykorzystany będzie później w celu podpisu certyfikatów dla klientów oraz serwera.

Należy kliknąć znak niebieskiego plusa znajdujący się w lewym górnym rogu okna. Otworzy się okno takie jak na poniższym zdjęciu.

Trzeba uzupełnić następujące pola:

  • Name: Nazwa certyfikatu, na potrzeby poradnika będzie to CA-cert,
  • Common Name: Nazwa domeny, można wykorzystać również posiadany adres IP,
  • Key Size: 4096,
  • Days Valid: 3650 czyli 10 lat.

Następnie w zakładce Key Usage zaznaczyć następujące opcje:

  • key cert. sign,
  • crl sign.
użycie certyfikatu CA

Po wybraniu wszystkich opcji kliknąć przycisk „Apply”.

Następnie należy utworzyć certyfikat dla serwera OpenVPN. Tak jak poprzednio, znakiem plusa otworzyć okno dodawania certyfikatu i uzupełnić pola:

  • Name: Nazwa certyfikatu, na potrzeby poradnika zostanie wpisana nazwa Server,
  • Common Name: nazwa domeny bądź adres IP wpisany w certyfikacie CA poprzedzony gwiazdką i kropką np. *.192.168. 2.34,
  • Key Size: 4096,
  • Days Valid: 3650 czyli 10 lat.

W zakładce Key Usage zaznaczyć następujące opcje:

  • digital signature,
  • key enciphement,
  • data enciphement,
  • tls server.
key usage cert server MT

Ostatni certyfikat jaki zostanie wygenerowany będzie z przeznaczeniem dla użytkownika. W oknie tworzenia certyfikatu uzupełnić pola:

  • Name: Nazwa certyfikatu, na potrzeby poradnika user1,
  • Common name: user1.192.168.2.34,
  • Key Size:4096,
  • Days Valid:3650 czyli 10 lat.
general user1cert

W zakładce Key Usage zaznaczyć tylko tls client.

key usage user1 MT

Po utworzeniu certyfikatów należy je podpisać. Aby podpisać certyfikat CA trzeba skorzystać z terminala. Z menu po lewej stronie wybrać pozycję New Terminal. Następnie wydać polecenie:

certificate

oraz:

sign CA-Cert name=CA-certificate

Rozpocznie się proces podpisywania certyfikatu CA. Czas trwania procedury zależy od mocy obliczeniowej i wybranej długości klucza. Po skończonym procesie podpisywania zostanie wyświetlona następująca informacja.

podpis CA MT

Po podpisaniu certyfikatu CA należy powrócić do zakładki System-> Certificates i kliknąć prawym przyciskiem myszy na polu z certyfikatem serwera. Z otworzonego menu kontekstowego wybrać pozycję sign.

podpisywanie certyfikatów MT

W otworzonym oknie w pozycji CA wybrać CA-certificate i kliknąć przycisk start. Po zakończonym procesie w polu Progress zostanie wyświetlona informacja „done”.

podpisywanie cert serwera skończone

Procedurę należy powtórzyć dla certyfikatu przeznaczonego dla użytkownika.

Po podpisaniu wszystkich certyfikatów należy wyeksportować certyfikat CA oraz użytkownika. Aby tego dokonać należy kliknąć prawym przyciskiem myszy na polu danego certyfikatu i wybrać opcję „Eksport”.

export cert mt

Zostanie wyświetlone okno eksportowania, należy w nim kliknąć przycisk Export.

okno eksportowania

W przypadku eksportowania certyfikatu użytkownika, w polu Export Passphrase trzeba podać 8 znakowe hasło. Na potrzeby poradnika zostanie użyte hasło 12345678. Po jego wpisaniu trzeba kliknąć przycisk Export.

Wyeksportowane pliki znajdują się w zakładce Files.

wyeksportowane pliki

Metodą Drag&Drop należy zapisać je na komputerze.

Tworzenie puli adresowej

Po utworzeniu i zapisaniu certyfikatów należy utworzyć pulę adresową przeznaczoną dla serwera OpenVPN. W tym celu trzeba przejsć do zakładki IP->Pool. Następnie kliknąć niebieski znak plusa i stworzyć nową pulę adresową.

pula adresowa vpn

W polu Name należy podać nazwę puli, w polu Addresses pulę adresów z jakich będzie korzystał serwer vpn. Na potrzeby tego poradnika będzie to odpowiednio ovpnpool i 10.0.2.2-10.0.2.40.

Tworzenie użytkownika

Po utworzeniu puli adresowej należy kliknąć pozycję PPP. Zostanie otwarte nowe okno. Należy przejść do zakładki Profiles i kliknąć znak niebieskiego plusa.

W oknie dodawania nowego profilu PPP uzupełnić następujące pozycje:

  • Name: dowolna nazwa,
  • Local Address: adres routera wykorzystywany po zestawieniu połączenia,
  • Remote Address: wcześniej utworzona pula adresów,
  • DNS Server: Zewnętrzny adres routera.
dodawanie użytkownika vpn mt

W zakładce Protocols w pozycji User Encryption wybrać required.

Po utworzeniu profilu użytkownika przejść do zakładki Secrets w oknie PPP i kliknąć niebieski znak plusa.

ppp secret

Uzupełnić następujące pola:

  • Name: nazwa użytkownika wykorzystywana do zalogowania podczas zestawiania połączenia,
  • Password: wybrane hasło,
  • Service: ovpn,
  • Profile: wcześniej utworzony profil.

Uruchomienie serwera OpenVPN

Po utworzeniu użytkownika należy przejść do zakładki Interface i kliknąć przycisk „OVPN Server”.

ovpn serwer

Po jego naciśnięciu zostanie otwarte nowe okno. W nim zaznaczyć i uzupełnić następujące opcje:

  • Enable,
  • Default Profile: Utworzony wcześniej profil,
  • Certificate: Certyfikat serwera,
  • Require Client Certificate,
  • Auth:sha1,
  • Cipher:aes256.
ustawienia serwera ovpn

Konfiguracja Firewall

Ostatnim etapem jest utworzenie odpowiedniej reguły firewall. W  tym celu należy przejść do zakładki IP->Firewall i kliknąć niebieski znak plusa. W nowym oknie uzupełnić następujące pozycje:

  • Chain: input,
  • Protocol: 6 (tcp),
  • Dst.port: 1194

 

firewall pierwsze okno

Po ich uzupełnieniu przejść do zakładki Action i w polu Action wybrać accept.

firewall accept

Instalacja i konfiguracja klienta OpenVPN

Po ukończonym procesie konfiguracji serwera OpenVPN należy przystąpić do instalacji i konfiguracji klienta. Proces instalacji został opisany w tym artykule.

Po zainstalowaniu klienta vpn należy utworzyć plik konfiguracyjny. Poniżej znajduje się zawartość pliku konfiguracyjnego:

client
dev tun
proto tcp
remote adres ip routera 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca //nazwa pliku certyfikatu CA// ca.crt
cert //nazwa pliku certyfikatu użytkownika// user1.crt
key //nazwa pliku klucza certyfikatu użytkownika // user1.key
remote-cert-tls server
cipher AES-256-CBC
auth SHA1
auth-user-pass
redirect-gateway def1
verb 3

Plik konfiguracyjny powinien nosić nazwę w postaci „naszanazwa.ovpn”. W folderze C:\Program Files\OpenVPN\config należy utworzyć nowy folder a w nim umieścić plik konfiguracyjny wraz z certyfikatami.

Zalecane jest użycie tej samej nazwy dla pliku konfiguracyjnego i folderu.

Następnie trzeba uruchomić program OpenVPN. W prawej części paska zadań zostanie ukazana ikona programu.

ikona ovpn

Należy kliknąć na nią prawym przyciskiem myszy, wybrać wcześniej utworzony plik konfiguracyjny i kliknąć połącz.

połączenie testowego vpn

Podczas zestawiania połączenia zostanie wyświetlone okno proszące o podanie nazwy użytkownika i wcześniej przygotowanego hasła. Zaznaczając opcję Save password klient vpn zapamięta podane hasło.

login i hasło użytkownika

Następnie zostanie wyświetlone okno proszące o podanie samego hasła. W tym miejscu trzeba podać hasło do wyeksportowanego pliku certyfikatu. Zaznaczając opcję Save password hasło zostanie zapamiętane i nie będzie wymogu jego ponownego podawania.

Pomyślne zestawione połączenie vpn zostanie obarczone odpowiednim komunikatem z informacją o uzyskanym adresie IP jak i ikona klienta vpn zmieni kolor na zielony

alert ovpn
pomyślnie zestawione połączenie ovpn

W celu testu została wykonana procedura ping do routera. Zgodnie z ustawionymi parametrami router posiada adres 10.0.2.1.