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.
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.
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.
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.
W zakładce Key Usage zaznaczyć tylko tls client.
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.
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.
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”.
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”.
Zostanie wyświetlone okno eksportowania, należy w nim kliknąć przycisk Export.
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.
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ą.
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.
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.
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”.
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.
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
Po ich uzupełnieniu przejść do zakładki Action i w polu Action wybrać 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.
Należy kliknąć na nią prawym przyciskiem myszy, wybrać wcześniej utworzony plik konfiguracyjny i kliknąć połącz.
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.
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
W celu testu została wykonana procedura ping do routera. Zgodnie z ustawionymi parametrami router posiada adres 10.0.2.1.