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](https://nsix.pl/kb/wp-content/uploads/2020/01/certificates.png)
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.
![](https://nsix.pl/kb/wp-content/uploads/2020/01/new-cert.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/key-usage-ca.png)
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.
![](https://nsix.pl/kb/wp-content/uploads/2020/01/cer-server.png)
W zakładce Key Usage zaznaczyć następujące opcje:
- digital signature,
- key enciphement,
- data enciphement,
- tls server.
![key usage cert server MT](https://nsix.pl/kb/wp-content/uploads/2020/01/key-usage-server.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/general-user1-cert.png)
W zakładce Key Usage zaznaczyć tylko tls client.
![key usage user1 MT](https://nsix.pl/kb/wp-content/uploads/2020/01/key-usage-user1.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/terminal-ca-sign-done.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/sign.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/sign-server-done.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/export-cert.png)
Zostanie wyświetlone okno eksportowania, należy w nim kliknąć przycisk Export.
![okno eksportowania](https://nsix.pl/kb/wp-content/uploads/2020/01/okno-eksportowania.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/files.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/vpn-pool.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/ppp-profile.png)
W zakładce Protocols w pozycji User Encryption wybrać required.
![](https://nsix.pl/kb/wp-content/uploads/2020/01/protocols-ppp-profile.png)
Po utworzeniu profilu użytkownika przejść do zakładki Secrets w oknie PPP i kliknąć niebieski znak plusa.
![ppp secret](https://nsix.pl/kb/wp-content/uploads/2020/01/ppp-secret.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/ovpn-serwer.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/ovpn-server-ustawienia.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/firewall-1.png)
Po ich uzupełnieniu przejść do zakładki Action i w polu Action wybrać accept.
![firewall accept](https://nsix.pl/kb/wp-content/uploads/2020/01/accpet.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/ikona.png)
Należy kliknąć na nią prawym przyciskiem myszy, wybrać wcześniej utworzony plik konfiguracyjny i kliknąć połącz.
![połączenie testowego vpn](https://nsix.pl/kb/wp-content/uploads/2020/01/terstvpn.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/uzytkownik.png)
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](https://nsix.pl/kb/wp-content/uploads/2020/01/ip-vpn.png)
![pomyślnie zestawione połączenie ovpn](https://nsix.pl/kb/wp-content/uploads/2020/01/zielona-ikona.png)
W celu testu została wykonana procedura ping do routera. Zgodnie z ustawionymi parametrami router posiada adres 10.0.2.1.
![](https://nsix.pl/kb/wp-content/uploads/2020/01/testy-ping.png)