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
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:
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:
- Name: podajemy dowolnie
- Common Name: nazwę domeny
- Key Size: 4096
- Days Valid: 3650, czyli 10 lat
Zakładka Key Usage, zaznaczamy tylko:
- key cert. sign
- crl sign
Generowanie certyfikatu dla serwera
- 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
- 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%.
CA tworzymy za pomocą terminala: sign CA-Cert name=CA-Certificate
Kolejne podpiszemy za pomocą winboxa klikając prawym myszy na certyfikacie i sign.
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.
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ę.
Konfiguracja serwera OpenVPN
Przechodzimy na PPP zakładka Profiles i dodajemy profil dla klientów VPN.
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
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
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
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
Polecany sprzęt
Z własnego doświadczenia mogę wam polecić poniższy sprzęt, z podziałem na ewentualne przeznaczenie routera.
Do domu i małej firmy(SOHO): hAP AX Lite , hAP AC3, RB4011, RB260GS, RB2011
hAP AC3 LTE, hAP AX2, hAP AX3, L009UiGS-2HaxD-IN, RB5009UG+S+IN, Audience
LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit, Audience LTE, Chateau LTE6 ax, LTAP LTE6
Access Pointy: mAP lite, mAP, cAP AX, cAP XL AC
POE: hEX PoE
LAB: hEX lite
Średnia/Duża firma: CCR1036-12G-4S, CCR2004-16G-2S+
Mikrotik OpenVPN Server
[su_youtube url=”https://www.youtube.com/watch?v=oGP0Zk7-cdI”]
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
Dziękuje za przydatne uwagi:)
Jak w takim wypadku wygenerować certyfikaty ?
Witam
Mógłbyś opisać dokładniej jak skonfigurować kilku użytkowników na jednym certyfikacie dla użytkowników
Pozdrawiam
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
Tagi w komentarzach są filtrowane.
Czy mogę prosić bardziej obrazowo co do tych sekcji z certyfikatami bo nie za bardzo wiem w czym dokładnie rzecz może na email proszę
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
Sprawdź czy na pewno port 1194 jest odblokowany.
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
Modem LTE jest z hlinkiem? Jaki dostajesz adres wanowy??
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.
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.
Wszystko zależy od routingu. Pokaż jak masz skonfigurowany teraz routing.
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,,,,,,
Włącz w logach opcje debug, i jeszcze raz daj logi. Lepiej skorzystaj z https://pastebin.com/ do wklejenia logów.
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.
Możliwe, że operator blokuje porty pod vpna. Najlepiej proszę przejrzeć logi.
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 ?
Lepszym rozwiązaniem będzie l2tp.
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.
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.
Przez ustawienie user.key nie działa autoryzacja, nazwę należy ustawić jako user a system sam doda .key, inaczej wychodzi user.key.key
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.
Tak bym tego nie robił. Lepiej dodać routing z podsieci vpn do głównego dhcp.
Czy jest możliwość konfiguracji VPN zgodnie z powyższym opisem bez domeny tylko ze stałym adresem IP?
Tak, zamiast nazwy domeny podajesz adres IP.
A jak to zrobić?
Dzięki za poradnik, samo połączenie działa. Teraz zależy mi na dostępie do internetu przez vpn, a przede wszystkim na IP dla VPN z puli lokalnej.
Grzegorzu dlaczego polecasz L2TP/IPSEC zamiast OpenVPN ?
L2TP/IPSEC mam już zestawione między MT, jednak OpenVPN jest chyba na obecną chwilę najbezpieczniejszym protokołem.
Link do artykułu
https://pl.vpnmentor.com/blog/porownanie-protokolow-vpn-pptp-vs-l2tp-vs-openvpn-vs-sstp-vs-ikev2/
Ja mam zamiar tylko przepuścić przez tego VPN obraz z kamer (z działki letniskowej do domu).
Proszę o wyjaśnij dlaczego L2TP/IPSEC.
Jeżeli chcesz łączyć dwa routery ze sobą site-to-site to l2tp z ipsec będzie lepszym rozwiązaniem. Łatwiejszy w konfiguracji, lepiej poradzi sobie jeżeli urządzenia są za NAT’em. Nie wymaga instalacji dodatkowego klienta. Natomiast jeżeli chcesz używać VPN per użytkownik(komórka, pc, laptop) to OpenVPN będzie lepszym rozwiązaniem. Do obrazu z kamer l2tp będzie wygodniejszym rozwiązaniem.
Skonfigurował wszystko jak w tutorialu i nie mogę nawiązać połączenia.
LOG z OVPN:
Tue Sep 25 21:40:50 2018 Certificate does not have extended key usage extension
Tue Sep 25 21:40:50 2018 VERIFY EKU ERROR
Tue Sep 25 21:40:50 2018 OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Tue Sep 25 21:40:50 2018 TLS_ERROR: BIO read tls_read_plaintext error
Tue Sep 25 21:40:50 2018 TLS Error: TLS object -> incoming plaintext read error
Tue Sep 25 21:40:50 2018 TLS Error: TLS handshake failed
Tue Sep 25 21:40:50 2018 Fatal TLS error (check_tls_errors_co), restarting
Tue Sep 25 21:40:50 2018 SIGUSR1[soft,tls-error] received, process restarting
Ma ktoś jakiś pomysł gdzie szukać przyczyny?
Coś Ci źle poszło z generowaniem certyfikatów. Zobacz https://sourceforge.net/p/openvpn/mailman/message/35117050/
OpenVPN w Mikrotiku to gówno na patyku. Mikrotik potrafil zestawić tunel wyłącznie przez TCP co powoduje, że transfer jest ograniczony. Dopiero w wersji 7 oprogramowania zapowiadają obsługę Mikrotika przez UDP.
Dziękuję za świetny opis, szczególnie, że pułapek przy tej konfiguracji jest co nie miara:) Mam jednak problem z połączeniem się z iPhone’a:
error parsing config private key : PKCS5 – Requested encryption or digest alg not available
Rozwiązanie nawet istnieje, okazuje się że plik z kluczem powinien być zaszyfrowany/zahasłowany(?) algorytmem(?) RSA
https://forums.openvpn.net/viewtopic.php?t=23223#p72298
Przy czym easy-rsa na moim Macu nie działa, bo chyba mamy LibreSSL zamiast OpenSSL i już te przeszkody zaczynają mnie przerastać.
Może jest w MikroTiku jakiś magiczny switch, który wygeneruje klucz tak jak należy? 🙂
O, chyba się rozwiązało. Można było użyć openssl do przekonwertowania pliku. 🙂
Teraz już po prostu jest connection timeout 🙁 Mimo że przez telnet połączyło mnie z portem 1194.
Musisz sprawdzić w logu na MT co dokładnie się dzieje.
Cześć, nie mogę sobie poradzić z błędem
++ Certificate has key usage 00b0, expects 00a0
++ Certificate has key usage 00b0, expects 0088
VERIFY KU ERROR
Zakładam, ze to problem certyfikatu serwera vpn lub klienta, ale którego i czego mu brakuje?
Odpowiem sobie sam, dla potomnych…
W opcjach certyfikatu serwera ustawiłem tylko digital signature, key encipherment and tls server i poszło…
Dodatkowo w moim przypadku konieczne było ustawienie opcji certyfikatu użytkownika:
– digital signature
– key enciphement
– tls client
Miałem to samo , podane zmiany mi pomogły.
Dzięki.
Cześć, fajny artykuł, przydatny – pomógł mi skonfigurować OpenVPN na Mikrotiku. Mam jednak mały problem, wszystko działa jednak nie działa 🙂
Łączy się ale zaraz soft-reset. Nic w logach, po prostu w pętli połączenie i reset. Żadnego błędu. Jak włączyć logowanie openvpn żeby zobaczyć gdzie leży problem?
W logach możesz włączyć opcje debug oraz ovpn. Przejdź do system->logging i znakiem plusa dodaj nowy topic.
Dzień Dobry
Czy jest możliwość ustawienia przypisania adresów IP z ustalonej puli na stałe dla konkretnego klienta zdalnego aby taki sam miał za każdym razem po podłączeniu się ?
“Przygotowanie adresacji dla klientów VPN”
Dziękuję.
A ja mam dziwną zagwozdkę.
Wszystko działa, ale z jakiegoś powodu certyfikaty zachowują się jak by ich ważność była na poziomie kilki – kilkunastu godzin. I to w dwóch różnych routerach/konfiguracjach.
Mogę się podłączyć, ale wieczorem już nie. Wystawiam nowe certyfikaty – śmiga natychmiast.
Cześć.Dzięki za artykuł. Przeprowadziłem konfigurację na mikrotiku wg. Twojego filmu. Dla VPN jest następująca adresacja : 10.0.0.2-10.0.0.40
Na kliencie normalnie nawiązuje połączenie z serwerem VPN.
Niestety nie mam dostępu do komputerów w sieci lokalnej : 192.168.2.0/24
Co muszę wykonać ? Proszę Cię o przedstawienie kroku po kroku 🙂
Poradziłem sobie przez skasowanie w konfiguracji klienta : redirect-gateway def1 i wstawienie route 192.168.2.0 255.255.255.0
Jednak czy jest to bezpieczne rozwiązanie ?
Cześć, Mam pytanko. Zrobiłem wszystko jak opisałeś ale po połączeniu do routera na którym mam server VPN nie mogę pingować w sieci LAN. Nie mam dostępu do innych stacji. Czy mógłbyś mi pomóc?
Hej. Rozwiązanie z certyfikatami generowanymi z mikrotiku mi działa, jednak chciałbym importować certyfikaty z CA mojej domeny, dodatkowo by na mikrotiku sprawdzany był certyfikat stacji – Win10, Zależy mi na łączeniu z VPN większej ilości maszyn by były weryfikowane ich indywidualne certyfikaty stacji.
Witam.
Walczę z mikrotikiem i mam taki problem. Ustawiłem już sobie połączenie VPN. Serwer działa i klient się łączy z nim. Dodałem sobie w kliencie opcje: route 192.168.1.0 255.255.255.0 10.0.0.1
Dzięki temu mogę pingować już mikrotika przez internet. Problem w tym że nie mogę się połączyć z nim przez winboxa. Czy trzeba jakąś regułę dodać w firewallu żeby dało się dostać przez winboxa przez openvpn?
Pierwszy raz w życiu robię mikrotika i nie jest to dla mnie proste.
Udało się komuś połączyć z Androida?? z Windows działa bezproblemowo ale z telefonu nie chce się połączyć
musisz skonwertować klucz (plik *.key) tak, żeby nie potrzebował hasła.
openssl rsa -in user.key -out user-2.key
podajesz hasło (to co podawałeś przy eksporcie certyfikatu serwera) i tyle. Pozostaje poprawienie pliku .ovpn tak, żeby korzystał z nowego klucza.
U mnie w tej konfiguracji musiałem jeszcze zmienić w PPP > Profiles i ręcznie ustawić serwery DNS od usługodawcy – jak był adres routera to nie rozwiązywał nazw.
Jak należy skonfigurować Mikrotika aby było połączenie między komputerem w sieci lan a komputerem w sieci VPN? Chciałbym się połączyć przez uvnc na komputer za vpn aby zdalnie na nim coś zrobić.
Witam, wykonałem wszystko według poradnika niestety przy łączeniu po wpisaniu haseł, brak połączenia. W certyfikatach w common name dałem swoje IP.
https://pastebin.com/E2finbz8. Dodam tylko, że miałem wcześniej skonfigurowane OpenVPN na OpenWrt, więc portów z zewnątrz nie mam zamkniętych (po drodze mam router operatora jeszcze).
Już problem rozwiązany. Port 1194 u operatora był przekierowany nie na to IP.
Niestety nie jest istotne zachowanie zgodności nazwy użytkownika ovpn’a i pola common name certyfikatu użytkownika. Używanie jednego user cert dla wszystkich użytkowników jest mocno słabym pomysłem, ale niestety w RouterOS jako OVPN server nie ma opcji aby wymusić weryfikację: [user name]=[common name] !! (?)
Z tego co się orientuje, to MT ma pod tym kątem spore braki.
…a ponieważ w Mikrotikowej implementacji ovpn nie ma możliwości obligatoryjnego przypisania certyfikatu do użytkownika (zawartość pola [common name] w certyfikatach nie ma znaczenia) zdecydowanie warto (czego nie pokazano powyżej) samo’podpisując CA wprowadzić URL [ca-crl-host] aby móc jakoś szczątkowo panować nad certyfikatami (poprzez revoke).
Zestawiłem połączenie VPN na Mikrotika, co prawda SSTP a nie OpenVPN, ale nie tu problem. Z komputera zdalnego widzę sieć podpiętą lokalnie do Mikrotika, (w bridge ARP zmieniłem na proxy-arp, co pozwoliło widzieć sieć po LAN), mogę z komputera zdalnego pingować wszystkie urządzenia w LAN, natomiast z sieci LAN nie widzę komputera zdalnego, muszę na niego wysyłać pakiety do drukarki fiskalnej a maszyny nie widać. IP maszyny zdalnej na interfejsie VPN jest w tej samej puli co Mikrotik. Co zrobić, by zaczęło być widać zdalny komp?
Witam serdecznie,
chciałbym uruchomić OpenVPNa bez publicznego adresu, wykorzystując jeden z serwisów. Jak to zrobić w takim wypadku?
Kup sobie vps’a i albo postaw ovpn na linuchu, albo wgraj chr’a.
Witam. Czy podpowie ktoś jak skonfigurować OpenVPN na Mikrotiku RBD52G który stoi za Horizonem UPC. Próbowałem coś z tego opisu ale niestety nie działa.
Sprawdź czy UPC przypadkiem nie daje ipv6.
trzeba na Horiznonie UPC przekierowac port 1194 na mikrotika
Panie Grzegorzu ustawiłem OpenVPN wg Pańskiego przewodnika i w zasadzie działa mi prawie wszystko. W zależności od tego czy w pliku konfiguracji klienta dodając route siec_LAN maska na przemian z redirect-gateway def1 mam odpowiednie kierowanie ruchem.
W konfiguracji Mikrotika ustawiłem adres dns w profilu. Po połączeniu klienta Windows po poleceniu ipconfig /all widzę wskazany adres serwera dns jaki jest dla mojej sieci LAN czyli Mikrotik. Problem w tym, że wywołując poleceine nslookup onet.pl dostaję informacje, że zapytania są wysyłane na adres mikrotika czyli 192.168.xxx.1, natomiast dostaję timeouty – czyli DNS nie realizuje zapytań.
Dodałem regułę na firewallu input chain na tcp na interfejsie all ppp dla source address wskazując nazwę listy adresów, którą aktualizuje każde połączenie przez VPN (w profilu mam wskazaną listę adresów).
Gdzie tutaj leży mój błąd konfigutracji dns lub firewalla ?
Znalazłem sam – niech zostanie dla potomnych. Powinienem mieć dwie reguły jedna na TCP druga na UDP.
Niestety nie potrafię zestawić pingu od klienta OVPN do komputerów w sieci lokalnej. Zbudowałem sieć testową MT eth1 WAN 192.168.2.2/24 , switch tam komputer klienta 192.168.2.180 który wdzwania się do 192.168.2.2, na MT BRIDGE eth2-5, masquerade, dhcp 192.168.1.0/24, do eth3 podpięty PC otrzymuje IP192.168.1.199
reguła redirect-gateway def1 nic nie daje. Z MT jest ping do 192.168.1.199(komputer w sieci lokalnej) oraz do 10.0.0.2(wdzwoniony klient ovpn). Natomiast pomiędzy komputerami nie ma pingu.
Przepraszam – jednak jakaś komunikacja jest. Komputer klienta zdalnego o adresie 10.0.0.2 może podłączyć się po RDP do komputera w sieci lokalnej 192.168.199. Ale niestety komputery się nie pingują i nie działa udostępnianie zasobów. Z obu komputerów da się pingować obie bramy 192.168.1.1 i 10.0.0.1.
UPDATE – przyczyną były zapory systemowe. Wszystko gra i pinguje.
Pojawiła się nowa wersja OVPN GUI 2.5.0
Przy łączeniu się wywala na czerwono ostrzeżenie
DEPRECATED OPTION:
–cipher set to ‘AES-256-CBC’ but missing in
–data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore
–cipher for cipher negotiations. Add ‘AES-256-CBC’ to
–data-ciphers or change
–cipher ‘AES-256-CBC’ to
–data-ciphers-fallback ‘AES-256-CBC’ to silence this warning.
Można tą funkcję włączyć lub wyłączyć zgodnie z opisem. Proszę autora o sugestię i opis istotności ustawienia.
Witam Tomek_CYG
Mam ten sam problem, zapory blokują dostep do zasobów. Jakie reguły Pan ustawił że zadziałało?
Probowałem z zajresami Ip (z puli jaka ustawilem na VPN) oraz protokołami i portami , niestety cały czas blokuje.
Wyjątek w zaporze na adresy i IP i porty powinien wystarczyć. Czy nie ma przypadkiem innego oprogramowania, które może sterować firewallem w Windowsie? Jakieś Eset, Avast?
Skonfigurowałem VPN i działa. Dziękuję.
Mam tylko problem z dostępem do urządzeń, które są podpięte pod drugiego mt w sieci. Czy muszę coś dodatkowego ustawić abym miał dostęp np do serwera symfoni.
Dziękuje
Witam, trzykrotnie sprawdzałem czy wykonałem wszystkie kroki poprawnie.
Co może być przyczyną ?
Cannot resolve host address: (……).com:1194 (Nieznany host. )
Could not determine IPv4/IPv6 protocol
Ten host to nazwa dnsowa czy adres IP? Może zablokowane porty? Albo brak rekordu A?
Witam. Skonfigurowałem całość zgodnie z opisem i udaje się połączyć z vpn, w przeglądarce dostaję IP publiczne takie jak na WAN mikrotika. Niestety nie mogę sobie poradzić z routingiem tak, żeby mieć dostęp do zasobów LAN ze świata po połączeniu z VPN. Próbowałem dodać do pliku konfiguracyjnego *.ovpn linijkę route ale kompletnie nie mam pojęcia jak i nic nie działało.
W mikrotiku mam tak:
Mikrotik LAN: 192.168.0.1/24 – interface bridge1
Mikrotik WAN: tu moje publiczne stałe IP – połączenie pppoe
Profil PPP adres: 192.168.10.1
Pula dla open vpn: 192.168.10.2 – 192.168.10.32 – ustawiona w profilu PPP
Na mikrotiku mogę pingować na IP PPP czyli 192.168.10.1
ale już na podłączony zdalnie komputer który dostaje IP 192.168.10.32 nie mogę.
I oczywiście z połączonego komputera mogę pingować mikrotika VPN IP 192.168.10.1
Nie mogę natomiast pingować niczego z sieci LAN 192.168.0.1/24
Jak to wpisać w pliku *.ovpn żeby po połączeniu się z tunelem mieć dostęp do lokalnych zasobów po stronie LAN mikrotika ? Ewentualnie jak ustawić jakiś routing na mikrotiku, tak żeby obie sieci mogły ze sobą gadać ?
Z góry dziękuję za jakiekolwiek podpowiedzi.
Musisz jeszcze w firewallu zezwolić na ruch między sieciami, bo jeżeli masz domyślną regułkę “drop all”, to zablokuje takie połączenia. Na komputerze zdalny zobacz w cmd route print jak masz trase routingu do sieci LAN, powinna być dodana własnie w pliku konfiguracyjnym klienta openvpn.
Mam taki dziwny problem z tą konfiguracją. Konkretnie chodzi o etap konferencji profilu i opcję
“DNS Server: podajemy wewnętrzny adres routera”
Adres mojego routera to 172.16.0.1 i gdy wpiszę go w pole DNS Server to połączenie jest zestawiane (jest w zakładce Active Connections) ale niestety brak jest internetu. Natomiast gdy wpiszę adres DNS Server np. 8.8.8.8 to wszystko działa poprawnie (jest Internet). Skąd może wynikać taka rozbieżność?
Na czyjes pytanie o posiadanie adresu VPN z puli lokalnej odpisales:
> Tak bym tego nie robił. Lepiej dodać routing z podsieci vpn do głównego dhcp.
Dlaczego nie?
Zawsze lepiej stosować separację sieci. Później na firewallu łatwiej jest ograniczać dostęp dla połączeń VPN.
Cześć . Problem…
Mam postawiony serwer openvpn na Ccr1009-7g-1c-1s. Zgodnie w oparciu o twój przedwodnik. Dziś jeden nowy client (laptop) skonfigurowany jak inne urządzenia ( Openvpn w wersji 2.5.2 najnowszej) i niestety nie chce się połączyć. W logu :
connection reset restarting [0]
sigusr1[soft,connection-reset] received
I tak cały czas… w pętli…
Ten sam plik opvn konfiguracyjny wrzucam do innych urządzeń i łączą sie bez problemu 🤔🤔
Co może powodować ten reset…??
Dzięki za wskazówki 🙂
https://pastebin.com/gD8fE3yh
a w logach mam w Logach mam “duplicate packet, dropping”
@Lukasz: U mnie problem rozwiązany przez dodanie opcji data-ciphers-fallback ‘AES-256-CBC’
Zrobiłem wszystko zgodnie z instrukcją.
OpenVpn się łączy, routing działa.
Mogę pingować komputery w sieci, nawet prosty serwis REST działa na zdalnej maszynie.
Ale …
Jak próbuję podpiąć się pod RDP lub VNC całe połączanie umiera. Po kilku zmianach udało mi się doprowadzić do sytuacji, że połączenie udaje się nawiązać, ale po restarcie połączenia wszystko wraca do normy.
Po połączeniu mogę wejść po sambie na zdalną maszynę i widzę pierwszy poziom, ale po próbie wejścia do kolejnych katalogów sytuacja jak wyżej.
Dopiero restart połączenia a czasem całego routera pomaga.
Mikrotik stoi za NATem port 1194 otwarty.
Już mi się pokończyły pomysły.
NAT-T na połączeniu VPN jest włączony?
Nie, zrobione jest wszytko jak w opisie.
Zastanawia mnie, dlaczego zwykły rest wystawiony działa, ale wszystko ciut bardziej skomplikowane przestaje.
jak bawiłem się MTU to za pierwszym razem udało mi się połączyć, ale po restarcie połączenia już nie działało.
Jaka powinna być poprawna konfiguracja, żeby sieć VPN widziała LAN? Bo spotkałem się z kilkoma rozwiązaniami.
Najczęściej proxy-arp na bridge, bypass maskarady
Witam
Dla innych kolegów mam wiadomość :
Podczas generowania drugiego (i zapewnie następnego ) certyfikatu klienta uzyskałem i podpisałem certyfikaty ale eksport się nie wykonywał (brak błędów). Aby pomyślnie zrealizować export w/wym. należy skorzystać z terminala : /certyficate export-certificate user-Cert export-passhase=hasło gdzie: user-Cert to podstaw swój user, hasło to jego hasło
Jeśli dla takiego usera chcemy przypisać ograniczenia to należy dodatkowo w PPP->Secrets->Remote Addres wpisać mu adres poza pulą pool-openvpn a w Firewall utworzyć reguły accept i drop dla Src.Address i Dst Address. Np. jeśli pool-openvpn 10.10.10.2- 10.10.10.30 to dajemy mu adres np. 10.10.10.100 i checmy go ograniczyć tylko do hosta 192.168.0.21 w bridge to drop Src Addres =10.10.10.100 Dst. Addres = !192.168.0.21 forward a poniżej accept Src. Address 10.10.10.0./24 forward. Jeśli zaś chcemy dostać się open-vpn do innego MT w naszej sieci to z jego Quick SEt ->VPN Address: kopiujemy zawartość (nazwijmy ją adrp) i używamy wszędzie tam jak w opisie wyżej zastępując string :grzegorzkowalik.com tą skopiowaną zawartością (adrp) i dodatakowo wszędize należy zastąpić port 1194 innym np. 1195 pamiętając o odpowiednich przekierowaniach na bramie do internetu.
Przepraszam za błąd w w/wym. wypowiedzi nie chodzi oczywiście w ostatnim zdaniu o przekierowanie portu a o otwarcie portu 1195 po drodze do do drugiego MT
Proszę zauważyć, że posługując się jak w opisie wyżej skopiowanym stringiem (adrp) zamiast adresu zewnętrzego IP stałego – możemy korzystać również ze zmiennych adresów IP byle były by to adresy zewnętrzne IPV4
Odniosę się do pierwszego komentarza, ze względu że jest enigmatyczny. Ja to tak rozumiem, że jeżeli chcemy wygenerować tylko jeden certyfikat użytkownika a jednocześnie chcemy kontrolować / selektywnie dopuszczać do zasobów LAN poszczególnych użytkowników ( lub grup) to tworzymy każdego nowego usera z utworzonego wcześniej user najprościej przez kopiowanie i modyfikację. Kopiujemy w PPP->Secrets nowego usera nadając mu inną nazwę, hasło i Remote Address z puli po za pool- vpn ale z tej samej sieci co pool-vpn. Tak utworzonych nowych userów kontrolujemy w Firewall używając ich Src. Address (odpowiada to nadanym Remotre Address ) odpowiednimi regułami zezwalającymi lub zabraniającymi.
Przykład pool-openvpn 10.10.10.2- 10.10.10.30, sieć 10.0.0.0/24
W PPP-> Secrets tworzymy kolejnego usera o nazwie: darek dajemy mu hasło: “haslodarka”, Remote Address adres np. 10.10.10.100
i chcemy go ograniczyć: przyznać mu dostęp tylko do hosta 192.168.0.21
to w Firewal ->Fiter Rules: drop Src Addres =10.10.10.100 Dst. Addres = !192.168.0.21 forward
a poniżej accept Src. Address 10.10.10.0./24 forward.
i.t.d. tworzymy kolejnych userów lub grup userów.
Cześć. Konfiguruje OpenVPN na Mikrotiku i mam problem z połączeniem. Mianowicie – konfiguracja sieci u mnie wygląda następująco:
– Router światłowodowy jako ETH1 (192.168.10.1) – główny
– Router LTE jako ETH2 (192.168.20.1) – awaryjny
między nimi jest failover skonfigurowany na Mikrotiku który ma adres 10.10.1.1. Jak w tym wypadku skonfigurować OpenVPN na Mikrotiku aby łączyć się przez jeden lub przez drugi router?
Jeszcze jedna rzecz do uzupełnienia informacji – w poradniku podał Pan Common Name: *.grzegorzkowalik.com – rozumiem że ta domena musi być zarejestrowana i w strefie DNS musi być podane przekierowanie na zewnętrzny adres IP routera?
A jak jest z certyfikatami? Tak pole Common Name powinno wskazywać na domenę z rekordem A na ip routera. Ewentualnie w polu CN można podać ip routera. Teoretycznie jeżeli zadziała failover i są certyfikaty, to powinno wszystko zadziałać.
W rekordzie A jaki adres IP routera podać biorąc pod uwagę, że są dwa adresy routerów w moim przypadku? Czy podać w tym wypadku adres Microtik’a tj. 10.10.1.1? Mówimy tu o lokalnym adresie – nie zewnętrznym? Przepraszam za ilość pytań ale ciężko mi gdziekolwiek znaleźć informacje na ten temat
To musi być publiczny adres IP, w innym przypadku serwer nie będzie osiągalny z Internetu.
Ok, w porządku, czyli żeby dostać się przez router główny muszę stworzyć certyfikaty do OpenVPN dla routera głównego, a jeśli będzie nieosiągalny i będę chciał połączyć się przez router awaryjny (LTE) to muszę mieć oddzielne certyfikaty dla drugiego routera (oddzielny profil połączenia dla OpenVPN)? Dobrze rozumiem?
Najlepiej jakby router miały taka są konfiguracje. Niestety MT nie ma HA, i ciężko czasami jest kopiować konfig 1:1. Postaraj się, aby konfiguracją od OpenVPN była identyczna na dwóch urządzeniach, wtedy po awarii jednego nic nie będziesz musiał robić. Poczytaj jeszcze o rekordzie CNAME i A w dnsach, bo dużym problemem po przełączeniu będzie publiczny adres IP. Ewentualnie jakiś DDNS.
Witam,
wykonałem procedurę zgodnie z instrukcją i połączenie przez OpenVPN następuje, jednak nie mam połączenia z innymi urządzeniami które są w tej sieci. Na pingi odpowiada mi tylko sam mikrotik.
Trasa routingu do podsieci wewnętrznej jest dodana?
Czy można prosić o aktualny konfig?
W związku z update systemu jest dość dużo nowych opcji do zaznaczenia, i niestety pojawiają się problemy 🙁
Pozdrawiam
Muszę przygotować nową wersje. Niedługo pojawi się aktualizacja.
THX 😉
po przywróceniu backup z zeszłego roku niestety VPN nie wstaje 🙁
z Tika:
disconnected
z Androida na którym wszytko dizałało:
Client exception in transport_recv_excode: OpenSSLContext::SSL::read_cleartext: BIO_read failed, cap=2576 status=-1: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca
działa dopiero po odznaczeniu “require-client-certificate”
Mialbym pytanie:
W zwiazku z tym iz np UPC daje stele IP tylko dla kilientow biznesowych- jest mozliwosc zrobienia tutka w oparciu o clouda ddns?
Bo z tego co widze wszytkie opieraja sie o autoryzacje certyfikatu CA o adres 😐
A niestety nie kazdy ma taka mozliwosc 😐
OK, postaram się dodać także i taką konfigurację. Ponieważ planuje nowy materiał na RouterOS 7.x
Świetny tekst, szczególnie dla osób zaczynających “zabawę” z MT. Proszę o komentarz do problemu: VPN serwer na cele prywatne (klientów do 10), głównie urządzenia mobilne;
Czy OpenVPN jest właściwym rozwiązaniem czy należy rozważyć inny serwer?
Jak wygląda problem “inverse split tunneling”? Ktoś ma doświadczenie albo porady?
Z góry dziękuję za podzielenie się wiedzą
Pozdrawiam,
MiKa
Weź pod uwagę zastosowanie Wireguard’a zamiast OpenVPN’a.
Dziękuję za podpowiedź. Nie mogę znaleźć RouterOS ver. 7 w wersjach stabilnych. Czy mogę znaleźć odpowiedni pakiet dla 6.xx?
Pozdrawiam
Jaki masz model router? Pobierz RouterOS’a w wersji 7.x ze strony mikrotik.com i wgraj do Files na routerze. Restart i będziesz miał już ROS v7.x
Witam, walczę według Twojego poradnika…spróbowałem zarówno na RB2011 oraz CCR1009-7G-1C-1S+… W obu przypadkach po próbie połączenia w logu mam duplicate packing, dropping… Nie mam pojęcia co robić
Zobacz ten wątek: https://forum.mikrotik.com/viewtopic.php?t=100449
Sprobuj sciagnac starsza wersje open vpn.
Mnie pomoglo chyba .5.7 – z maja zeslego roku. Byl roblem z certyfikatami, nie chcial przyjac poswiadczenia na biezacym – lutowym OS.
Po sciagnieciu starej wersji problem znikl jak ręką odjol…
U mnie do wersji OpenVPN 2.5.9 następuje połączenie do serwera mikrotik.
Natomiast mam problem bo nie pobiera mi Default Gateway. Gdzie popełniłem błąd?
Brama domyślna powinna być dodana w pliku konfiguracyjnym klienta. Jak możesz, to pokaż jak wygląda config.
Dzień dobry,
mam problem ponieważ po zestawieniu połączenia client to site za pomocą OVPN
nie mogę się dostać do sieci która znajduje się na końcu tunelu IPSEC z innym routerem
Jak wygląda routing? Trasy są dodane?
Witam,
Skonfigurowałem połączenie wg artykułu i klient łączy się z serwerem, ale nie mam dostępu do zdalnej sieci lokalnej, a także na kliencie nie mam dostępu do Internetu. Adresacja zdalnej sieci LAN to 192.168.0.0/24, adresacja dla VPN 10.11.12.0/24. Na obu adresacjach ustawiłem maskaradę. Co ciekawe połączenie L2TP nawet na tej samej adresacji VPN działa poprawnie.
prosze o usuniecie mojego komentarza powyżej
ok:)
witam
udało mi się połączyć po openVPN ale nie mam dostępu do sieci lokalnej ani do mikrotika z zewnątrz moja adresacja sieci lokalnej to 192.168.0.1 a adresacja openVPN 10.9.10.1 w czym może leżeć problem?