Mikrotik pozwala na uruchomienie bezpiecznych połączeń VPN w oparciu o OpenVPN. Ponieważ Open VPN wykorzystuje certyfiakty do zestawienia połączenia stajemy przed koniecznością ich wygenerowania.

Tworzenie certyfikatów

Po połączeniu się za pomocą winbox z Mikrotikiem wchodzimy do System->Certificates a następnie za pomocą niebieskiego plusa dodajemy w pierwszej kolejności certyfikat CA, który będzie używany do podpisywania certyfikatu serwera OpenVPN oraz klientów.

Musimy uzupełnić pola:

  • Name - nazwa certyfikatu
  • Common Name - nazwa domeny lub adres IP
  • Key Size - długość klucza
  • Days Valid - okres ważności

Następnie w drugiej zakładce Key Usage zaznaczamy jakie zastosowania będzie miał klucz. W przypadku klucza CA wybieramy jedynie crt sign i key cert. sign

Teraz przystępujemy do stworzenia certyfikatu dla serwera OpenVPN. Tak jak poprzednio wybieramy niebieski znak plusa w sekcji System->Certificates.

Uzupełniamy pola:

  • Name - nazwa cerryfikatu
  • Common Name - nazwa domeny lub adres IP wpisany w certyfikacie CA poprzedzony *. czyli przykładowo *.192.168.88.199
  • Key Size - długość klucza
  • Days Valid - okres ważności

W zakładce Key Usage wybieramy: digital signature, key enciphement, data enciphementoraz tls server

Pozostaje jeszcze wygenerować certyfikaty dla klientów serwera OpenVPN / użytkowników. Ponownie wybieramy niebieski + i odpowiednio wypełniamy formatkę New certificate

Na zakładce Key Usage zaznaczamy jedynie tls-client

Podpisywanie certyfikatów

Po utowrzeniu certyfikatów trzeba je podpisać. Bezwzględnie ważnym jest by Mikrotik na którym wykonujemy tą operację miał prawidłowo ustawioną datę i godzinę. Podpisywanie głównego certyfikatu CA odbywa się z konsoli przy użyciu poleceń certificate i sign CA-mt. Po wydaniu ostatniego polecenia rozpocznie się proces podpisywana, zależnie od szybkości procesora w routerze i długości klucza proces może zająć nawet kilka minut. Po zakończeniu podpisywania zostanie wyświetlona informacja progress: done

Mając podpisany certyfikat CA można przystąpić do podpisywania kolejnych certyfikatów. Certyfikat serwera podpisujemy klikając na nim prawym przyciskiem myszy i wybierając opcję Sign

W nowym oknie wybieramy certyfikat który chcemy podpisać (powinien to być ten na którym kliknięto) oraz certyfikat CA używany do podpisu. Wybranie Start rozpocznie proces podpisywania, zakończenie procesu będzie zasygnalizowane wyświetleniem informacji done w polu Progress.

Dokładnie tak samo postępujemy z certyfikatem klienta.

Po podpisaniu wszystkich certyfikatów należy wyeksportować certyfikat CA i certyfikat użytkownika. Aby tego dokonać klikamy prawym przyciskiem myszy na certyfikacie i wybieramy opcję Export. W okienku eksportu wybieramy jako typ PEM i klikamy Export. W przypadku certyfikatu klienta możemy należy ustawić hasło (minimum 8 znaków).

Wyeksportowane pliki odnaleźć można po kliknięciu w zakładkę Files w winbox, używając drag&drop możemy je skopiować na komputer.

Pula adresowa

Nadeszła pora na utworzenie puli adresowej przeznaczonej dla serwera OpenVPN. Nową pulę możemy stworzyć używając IP->Pool a następnie klikając niebieski znak plusa.

W polu Name wybieramy nazwę dla nowej puli a w polu Addresses podajemy zakres adresów z jakich będzie mógł skorzystać serwer OpenVPN.

Tworzenie profilu VPN i użytkownika

Zanim utworzymy użytkownika musimy utowrzyć profil dla OpenVPN w sekcji PPP winboxa. Przechodzimy do zakładki Profiles i klikamy niebieskiego plusa.

W oknie dodawania profilu ustalamy nazwę profilu wypełniając pole Name. Następnie wypełniamy pola:

  • Local Address - adres serwera VPN
  • Remote Address - adresy które będą dostawać klienci
  • DNS Server - adres serwera DNS jaki będzie przekazany klientom

W zakładce Protocols w pozycji Use Encryption wyberamy required.

Tworzymy Użytkownika VPN wybierając w winbox PPP->Secrets

Musimy uzupełnić pola:

  • Name - nazwa użytkownika
  • Password - hasło użytkownika
  • Service - rodzaj połączenia VPN
  • Profile - z którego profilu ma korzystać użytkownik przy łączeniu z VPN

Start serwera OpenVPN

W sekcji PPP->Interface klikamy w przycisk OVPN Server znajdujący się w listwie okna po prawej stronie pod zakładkami. W nowym oknie wypełniamy następujące pola:

  • Enable - po zaznaczeniu tego pola serwer OpenVPN będzie aktywny
  • Port - port na którym serwer ma nasłuchiwać na połączenia
  • Default Profile - profil z którym ma pracować serwer
  • Certificate - certyfikat którym ma się posługiwać serwer
  • Require Client Certificate - klienci bez poprawnego certyfikatu będą odrzucani
  • Auth - sha1
  • Cipher - aes256

Konfiguracja firewalla

Już prawie wszystko gotowe - pozostaje jeszcze dopuścić ruch do serwera OpenVPN. Korzystając z IP->Firewall dodajemy nową regułę:

Wypełniamy pola:

  • Chain - input
  • Protocol - 6 (tcp)
  • Dst port - port na którym funkcjonuje nasz serewer VPN

Zaznaczamy by firewall akceptował połączenia z ustalonymi parametrami. Należy pamiętać o tym by przesunąć nowo dodany wpis odpowiednio wysoko w liście reguł firewalla (zakładka Filter Rules).

Konfiguracja na komputerze klienckim

Tworzymy plik user1.ovpn do którego wklejemy poniższą konfigurację:

client
dev tun
proto tcp
remote ADRES_SERWERA 1195
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user1.crt
key user1_no_pass.key
remote-cert-tls server
cipher AES-256-CBC
auth SHA1
auth-user-pass user.txt
redirect-gateway def1
verb 3

Użyta wyżej konfiguracja zakłada, że plik user1.key nie ma hasła a podczas eksportu certyfikatów z Mikrotika hasło musi być ustanowione. Usunięcia hasła możemy dokonać wydając na komputrze klienckim następujące polcenie

openssl rsa -in user1.key -out user1_no_pass.key

Prócz tego login i hasło użytkownika ustanowione w PPP->Secrets są zapisane w pliku user.txt w następujący sposób:

user1
HASŁO

Nie ma możliwości ustawienia w pliku pustego hasła, hasło musi być nadane w konfiguracji Mikrotika.

Tak utowrzona konfiguracja pozwoli na automatyczne łączenie się bez podawania za każdym razem haseł.

Poprzedni wpis Następny wpis