29

Mikrotik OpenVPN Server

Jeżeli nie używasz jeszcze VPN’a, to najwyższy czas zacząć. Jest wiele zastosowań VPN’a, jednak najważniejsze to bezpieczeństwo. Nie odważyłbym się podłączyć do otwartego hotspotu, np. w kawiarni czy dworcu bez aktywnego połączenia VPN. Jest wiele dostawców usługi VPN, ale jeżeli posiadasz router Mikrotika taki serwer możesz postawić u siebie w domu czy też biurze. O samych zaletach i wadach VPN’a postaram się wam przybliżyć w następnym poście. Teraz skupimy się na konfiguracji Mikrotik OpenVPN Server.

Schemat połączeniowy

Mikrotik OpenVPN Server

Konfiguracja routera

Ponieważ OpenVPN bazuje na certyfikatach, zaczniemy od wygenerowania 3 certyfikatów. Dla serwera, klienta i certyfikat CA. Przechodzimy na zakładkę System->Certificates
Oczekiwany efekt powinien wyglądać tak:
Mikrotik OpenVPN Server

Generowanie certyfikatu CA
Zaczniemy od wygenerowania własnego CA, którym w późniejszym etapie podpiszemy certyfikat dla klienta i serwera. Klikamy na znak plusa i uzupełniamy:
Mikrotik OpenVPN Server

  • Name: podajemy dowolnie
  • Common Name: nazwę domeny
  • Key Size: 4096
  • Days Valid: 3650, czyli 10 lat

Zakładka Key Usage, zaznaczamy tylko:
Mikrotik OpenVPN Server

  • key cert. sign
  • crl sign

Generowanie certyfikatu dla serwera
Mikrotik OpenVPN Server

  • Name: podajemy dowolnie
  • Common Name: *.grzegorzkowalik.com, czyli certyfikat typu wildcard
  • Key Size: 4096
  • Days Valid: 3650, czyli 10 lat

Zakładka Key Usage, zaznaczamy tylko:

  • digital signature
  • key enciphement
  • data enciphement
  • tls server

Generowanie certyfikatu dla klienta
Mikrotik OpenVPN Server

  • Name: podajemy dowolnie
  • Common Name: user.grzegorzkowalik.com
  • Key Size: 4096
  • Days Valid: 3650, czyli 10 lat

Zakładka Key Usage, zaznaczamy tylko:

  • tls client

Podpisywanie certyfikatów

Po wygenerowaniu certyfikatu dla serwera i klienta musimy je podpisać naszym certyfikatem CA. Czas podpisywania zależy od CPU routera, i może zająć nawet kilkanaście minut. Certyfikaty możemy podpisać na dwa sposoby. Za pomocą terminala oraz z poziomu winbox’a. W przypadku skorzystania z terminala możecie otrzymać timeout dlatego warto dodatkowo włączyć podgląd zużycia CPU i poczekać, aż zjedzie ze 100%.
Mikrotik OpenVPN Server
CA tworzymy za pomocą terminala: sign CA-Cert name=CA-Certificate
Kolejne podpiszemy za pomocą winboxa klikając prawym myszy na certyfikacie i sign.
Mikrotik OpenVPN Server
przy podpisywaniu certyfikatu dla klienta podajemy dowolne hasło.

Eksport certyfikatów

Klient OpenVPN do poprawnej pracy potrzebuje certyfikatów(CA, klient i key). Klikamy prawym myszy na CA i wciskamy Eksport. Analogicznie postępujemy przy certyfikacie dla klienta. Jeżeli wszystko poprawnie zrobiliście, po przejściu na Files, powinny się pojawić trzy nowe pliki.
Mikrotik OpenVPN Server
Za pomocą drag&drop przenosimy pliki na dysk.

Przygotowanie adresacji dla klientów VPN

Tworzymy osobną pulę adresową dedykowaną dla połączeń VPN. Klikamy na IP->pool i dodajemy nową pulę.
Mikrotik OpenVPN Server

Konfiguracja serwera OpenVPN

Przechodzimy na PPP zakładka Profiles i dodajemy profil dla klientów VPN.
Mikrotik OpenVPN Server
Uzupełniamy:

  • Name: podajemy dowolnie
  • Local Address: w tej samej sieci co wcześniej stworzona pula. Np. 10.0.0.1
  • Remote Address: wybieramy pulę vpn
  • DNS Server: podajemy wewnętrzny adres routera

w zakładce Protocols zaznaczamy Use Encryption na required
Mikrotik OpenVPN Server
Przechodzimy na zakładkę Secrets i znakiem plusa dodajemy nowe konto. Ważne jest, aby nazwa konta była taka sam jak przy tworzeniu certyfikatu z pola Common Name, ale bez domeny.
Przy tworzeniu certyfikatu podałem nazwę user.grzegorzkowalik.com dlatego konto secret ustawiam na samo user, z dowolnym hasłem.

  • Service: wybieramy ovpn
  • Profile: wcześniej utworzony profil, czyli openvpn

Pozostaje nam jeszcze włączenie serwera, w tym celu przechodzimy na zakładkę Interface, będąc oczywiście dalej w PPP
Mikrotik OpenVPN Server

Konfiguracja Firewall’a

Ostatnia z rzeczy jakie musimy ustawić na Mikrotiku to odblokowanie portu 1194 dla połączeń przychodzących. Przechodzimy na IP->Firewall, dodajemy nową regułę:

  • Chain: wybieramy input
  • Protocol: tcp
  • Dst. Port: 1194
  • Action: accept

Mikrotik OpenVPN Server

Konfiguracja klienta OpenVPN

Zaczynamy od pobrania klienta OpenVPN, najlepiej z oficjalnej strony. Po instalacji dodajemy certyfikaty i plik z konfiguracją. W zależności od systemu operacyjnego może to być C:\Users\nazwa_usera\OpenVPN\config albo C:\Program Files\OpenVPN\config.
Plik z konfiguracją .ovpn powinien wyglądać mniej więcej tak:

client
dev tun
proto tcp
remote grzegorzkowalik.com 1194 #podajemy adres IP serwera
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
remote-cert-tls server
cipher AES-256-CBC
auth SHA1
auth-user-pass
redirect-gateway def1
verb 3

Mikrotik OpenVPN Server

Grzegorz Kowalik

29 Comments

  1. Dzień dobry,

    Świetny artykuł!

    Mam kilka spostrzeżeń:

    1. Można wygenerować jeden certyfikat klienta a dostęp dla poszczególnych użytkowników ustawić w PPP. Wszyscy użytkownicy mają ten sam certyfikat klienta (a co za tym idzie jeden plik profilu .ovpn, ale o tym w punkcie 3).

    2. Można uniknąć pytania o hasło do klucza prywatnego (oprócz loginu i hasła). W tym celu trzeba wykonać:
    openssl.exe rsa -in user.key -out user.key

    3. Zamiast 4 plików (profil.ovpn, ca.cert, user.cert, user.key) można mieć jeden – profil.ovpn w nim sekcje:

    W tych sekcjach należy wkleić odpowiednie certyfikaty (ca.cert, user.cert, user.key).

    Z pliku profilu trzeba usunąć linie:
    ca ca.crt
    cert user.crt
    key user.key

    Pozdrawiam,
    Bogusław Gębura

  2. Widzę, że do komentarza nie wkleiły się sekcje. Hmmm… Jak to napisać?

    znak mniejszośći ca znak większości
    znak mniejszośći /ca znak większości

    znak mniejszośći cert znak większości
    znak mniejszośći /cert znak większości

    znak mniejszośći key znak większości
    znak mniejszośći /key znak większości

  3. Witam, walczę z OpenVPN wg Pana poradnika i pawie się udało ale…
    Tue May 15 22:09:56 2018 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    Tue May 15 22:09:56 2018 TLS Error: TLS handshake failed
    Tue May 15 22:09:56 2018 Fatal TLS error (check_tls_errors_co), restarting
    Mogę liczyć na drobną pomoc? Mogę przesłać cały log i plik konfiguracji ovpn

  4. Tak, na mikrotiku w chain input jest accept na 1194 i TCP. Wg licznika przepuścił 66 pakietów.
    Router jest za modemem/routerem LTE ale Mikrotik jest w strefie DMZ

      • Witam, po kilku kombinacjach w pliku konfiguracyjnym klienta wszystko OK. Dodałem certyfikaty do pliku i mam całość w jednym miejscu. Tylko co będzie jak taki plik dostanie się w niepowołane ręce?
        Teraz próbuje skonfigurować klienta na innym Mikrotiku, zaimportowałem certyfikaty ale w konfiguracji interfejsu można wybrać tylko jeden. Oczywiście się nie łączy: TCP zostaje nawiązane ale TLS failed….

        • Może się komuś przyda klient openvpn w Mikrotik: Najpierw trzeba przekonwertować user.cert i user.key do jednego pliku user.pem i dopiero wgrać w Mikrotika i zaimportować. Jeśli dodamy interfejs openvpn i wskażemy certyfikat pem to ładnie się łączy.
          Konwersja w openssl na linuksie:
          openssl pkcs12 -export -in hostname.crt -inkey hsotname.key -out hostname.p12
          openssl pkcs12 -in hostname.p12 -nodes -out hostname.pem (stevenhaddox z github).
          Po dodaniu interfejsu do bridge teoretycznie powinno się połączyć obie sieci LAN mikrotików w jedną przez przezroczysty tunel ale niestety u mnie nie działa. Jak pinguję zdalne komputery przez interfejs openvpn to jest ok ale jak ping idzie przez bridge to nie wraca niestety. Tu już mi zabrakło wiedzy niestety 🙂 Zachęcam autora bloga do napisania kiedyś artykułu jak połączyć dwie sieci w jedną za pomocą dwóch Mikrotików po VPN tak aby łącze było “przezroczyste” jak po kablu. Pozdrawiam

          • To jest w przypadku gdy cert mamy z innego źródła niż wygenerowany z MT. Dziękuje za komentarz, postaram się także rozszerzyć artykuł o taką opcję. Dwa mikrotiki lepiej połączyć l2tp/ipsec albo samym ipsec. Nie wykorzystywałbym do tego openvpna.

  5. Podpowie ktoś jak skonfigurować klienta aby w tej konfiguracji przez tunel vpn łączył się tylko z jednym hostem bądz z konkretną siecią natomiast internet był dostępny przez łącze lokalne.

  6. Witam, mam problem z zestawieniem sesji cały czas zapętla się jak w logu poniżej uprzejmie proszę o pomoc

    Tue Jun 19 10:21:52 2018 MANAGEMENT: >STATE:1529396512,RESOLVE,,,,,,
    Tue Jun 19 10:21:52 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]188.125.X.X:1194
    Tue Jun 19 10:21:52 2018 Socket Buffers: R=[65536->65536] S=[65536->65536]
    Tue Jun 19 10:21:52 2018 Attempting to establish TCP connection with [AF_INET]188.125.X.X:1194 [nonblock]
    Tue Jun 19 10:21:52 2018 MANAGEMENT: >STATE:1529396512,TCP_CONNECT,,,,,,

  7. Dzień dobry,
    czy jeśli moje połączenie z dostawcą internetowym nie odbywa się przy pomocy PPPoE to czy taka konfiguracja powinna działać? Pytam bo mam problem z połączeniem po skonfigrowaniu wg instrukcji. Moje połączenie to dostaje adres zewnętrzny przez DHCP od dostawcy.

  8. Witam, potrzebujemy zestawić połączenie VPN między 1 lokalizacją w które będą stały kamery IP z routerem LTE SXT mikrotik jako klient a 2 lokalizacją gdzie stoi rejestrator NVR. Po stronie rejestratora stałe IP jest, po stronie routera LTE mamy kartę sim bez publicznego IP. Proszę o info czy podana instrukcja postawienia serwera nadaje się do w/w celu – czy lepiej ovpn czy lepiej przez pptp ?

  9. Witam
    Piewszy raz chciałbym postawić jakiegoś VPNa Mam stały publiczny adres IP połączenie PPPoE i MT RB2011 UiAS. Zależy mi żeby z jednego góra dwóch komputerów mieć dostęp do sieci LAN. Próbowałem l2tp ale wystąpił u mnie w kompie jakiś “nieoczekiwany błąd” nie dało się wejść we właściwości nowego połączenia.

    Czy żeby móc korzystać z OPENVPN muszę mieć jakieś konto? Wszystko jest płatne czy jak? Bo potrzebuję domeny jak w artykule: “Common Name: *.grzegorzkowalik.com, czyli certyfikat typu wildcard”
    Pewnie za jakiś czas douczę się, dowiem o co chodzi, więc jeśli mój wpis zaniża poziom proszę usunać.
    Zajmuję się konfigurowaniem systemów KD CCTV SAP itp polubiłem MT ale o co chodzi z tym VPN? Szukam w google top 10 darmowych VPN otwieram jakies a tam załóż konto podaj nr karty kredytowej…

    • Do openvpna nie potrzebujesz konta. Domena także nie jest wymagana, można wszystko robić po adresie IP. W przypadku CCTV najlepszą opcją będzie l2tp/ipsec. Sprawdź w logach MT co dokładnie się dzieje przy komunikacie “nieoczekiwany błąd”.

      • Cz dobrze zrozumiałem, że w polu “domena” można wpisać adres IP WAN? Mama stały adres IP Providera.

  10. Witam serdecznie. Mam pytanie problem dot. polecenia ” redirect-gateway def1″ po stronie klienta. Z poleceniem cały ruch w komputerze klienta (nawet internetowy) kierowany jest poprzez vpn do bramy sieci lokalnej. Natomiast bez tego polecenia nie widzi z kolej sieci lokalnej, co jest mi bardzo potrzebne do pracy.
    Stąd moje pytanie: czy istnieje możliwość dostępu do sieci LAN przez VPN bez przekierowywania całego ruchu poprzez VPN i LAN ?

    • Cześć, musisz ręcznie ustawić routing do sieci lokalnej. Skasuj “redirect-gateway def1” i dodaj:
      route 192.168.1.0 255.255.255.0 – oczywiście w miejsce 192.168.1.0 podajesz adres ip swojej sieci.

  11. Przez ustawienie user.key nie działa autoryzacja, nazwę należy ustawić jako user a system sam doda .key, inaczej wychodzi user.key.key

  12. Dzięki za poradnik, działa super, nawet przy braku statycznego adresu IP (wykorzystuję *sn.mynetname.net zamiast IP) 🙂
    Mam jeden problem. Potrzebuję, by osoba łącząca się przez VPN miała adres z tej samej puli co główne DHCP.
    Eksperymentalnie ustawiłem “Local address” 192.168.8.2 dla OpenVPN (DNS server na 192.168.8.1 – taki sam jak IP MT) i wskazałem zarówno dla głównej sieci jak i dla OVPN tę samą pulę adresów 192.168.8.x-y. Jest to połowiczny sukces
    Jestem w stanie się połączyć się, mam internet i zewn. IP od MT ale chyba brakuje jakiejś reguły bo nie mam dostępu do zasobów (rdp i udostępnione foldery) wewnątrz sieci.

  13. Czy jest możliwość konfiguracji VPN zgodnie z powyższym opisem bez domeny tylko ze stałym adresem IP?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Captcha * Time limit is exhausted. Please reload the CAPTCHA.