OpenVPN na routerech MikroTik

OpenVPN na routerech MikroTik

Připojte se k MikroTiku přes webové rozhraní. Můžete použít webové rozhraní Router OS, ze kterého jsou i následující screeny, nebo aplikaci Winbox. Výchozí port pro OpenVPN je 1194. Můžete jej jakkoliv změnit, ale nezapomeňte jej povolit na firewallu. V sekci IP-> Firewall přidejte následující řadek:

Firewall

MIkroTik - firewall VPN

Chain: input

Protocol: (6) tcp

Dst.Port: 1194

Action: accept

 

1) Certifikáty

Nejdříve si vytvoříme certifikáty  ca, server a client (můžete použit libovolné názvy). V System -> Certificates, klikněte na Add new a po vyplnění polí jej hned podepište pomocí volby Sign.

 

CA

Mikrotik - add CA certificate Mikrotik - add CA certificate

Server

Mikrotik - add server certificate Mikrotik - add server certificate

Client

Mikrotik - add client certificate Mikrotik - add client certificate

 

Celé by to mělo vypadat nějak takhle:

OpenVPN Mikrotik - Certifikáty

Po rozkliknutí jednotlivých certifikátu máte možnost provést Export. Tím se certifikáty uloží do souboru a naleznete je pod záložkou Files.

Tip: Pro vygenerování client.key souboru (pokud chcete chránít client.key + heslo uživatele, je nutné u exportu zadat heslo dlouhé minimálně 8 znaků. Tím se spolu s *.crt vygeneruje i *.key soubor. 

Certifikáty si stáhněte do počítače v sekci Files.

MikroTik - stažení certifikátu

 

2) Rozsah adres

Pro VPN si vytvoříme vlastní rozsah adres. Pokud máte primární rozsah "Pool", například 192.168.1.1-100, můžete si vytvořit jiný nebo použít nějakou část stávajícího rozsahu, např. 192.168.1.201-230 atp. Nastavení se provádí v IP -> Pool

MikroTik - rozsah pro VPN

 

3) Vytvoření profilu a spuštění VPN služby

V PPP -> Profiles  vytvořte nový profil pomocí "Add new". Vyplňte libovolný název a nastavte Local Address na adresu, která není obsazena a není ani v žádném rozsahu. V tomto příkladu je použitá adresa 192.168.1.200. V Remote address vyberte rozsah (pool) z předešlého bodu.

MikroTik - VPN Profile

Pak v záložce PPP -> Interface -> OVPN server zaklikněte "Enabled", zvolte si port (na obrázku default) a

vyberte VPN profil a server certifikát.  Auth a Ciper zvolte dle obrázku.

MikroTik - Enable OpenVPN

 

4) Účty pro VPN

V záložce PPP -> Secrets přidejte pomocí "Add new" nového uživatele. V tomto příkladu vidíme, jak by mohl vypadat účet pro Pavla. Nezapomeňte zvolit heslo, vybrat službu a profil.

MikroTik - uživatelský účet pro VPN přístup

To je vše!!!

Tip:  Aby mohli uživatelé připojení přes VPN přistupovat do vašeho primárního rozsahu, kde máte například smart home, NAS atp., musíte ještě udělat jedno nastavení, a to v Interfaces na "bridge" nastavit v sekci ARP - proxy-ARP

MikroTik - Proxy ARP

 

5) Konfigurační soubor

Aby uživatelé, kterým dáte přístup, to měli co nejsnazší, vytvořte konfigurační soubor, např. VPN.ovpn, kde budou následující údaje. Oranžové údaje nahraďte svoji vnější adresou a svými obsahy certifikátů vygenerovanými na MikroTiku.

 

client
remote VerejnaAdresaVpnServeru 1194
auth-user-pass
cipher AES-256-CBC
dev tun
proto tcp
nobind
auth-nocache
script-security 2
persist-key
persist-tun

redirect-gateway autolocal def1
redirect-gateway def1

<ca>
-----BEGIN CERTIFICATE-----
//zde vlozte certifikat
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
//zde vlozte certifikat
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
//zde vlozte certifikat
-----END ENCRYPTED PRIVATE KEY-----
</key>

Tip: V komentářích pro OpenVPN Community klienta pro Windows doporučují přidat pro správnou funkci ještě tyto parametry:

data-ciphers AES-256-CBC
remote-cert-tls server
tls-client

Soubor pošlete emailem uživateli a sdělte mu také uživatelské jméno a heslo. Nejlépe separátně přes SMS. Postup pro nastavení přístupu do VPN sítě na Androidu i iOS najdete na tomto blogu také.

Hodnocení článku:

Průměr: 4.9 (12 hlasů)

Podpořte nás:

Přidat komentář:

Komentáře

Your profile picture

diky. jen jsem mel trochu potiz s exportem client.key, ale podarilo se a uz to fici.

Your profile picture

Ahoj. Mužeš mi prosímtě vysvětlit, jak jsi vyexportoval (vytvořil) client.key?S nastavením VPN na Mikrotiku se setkávám porvé a vůbec mi to není jasné. Vygenerované certifikáty CA, client a server, jsem si vyexportoval do "files" a tam je mám všechny se stejnými názvy, s příponou .crt. Absolutně nemám ponětí, jak vygenerovat (vyexportovat) client.key.Díky za radu.

Your profile picture

Ahoj. Mužeš mi prosímtě vysvětlit, jak jsi vyexportoval (vytvořil) client.key?S nastavením VPN na Mikrotiku se setkávám porvé a vůbec mi to není jasné. Vygenerované certifikáty CA, client a server, jsem si vyexportoval do "files" a tam je mám všecny se stejnými názvy, s příponou .crt.Absoilutně nemám ponětí, jak vygenerovat (vyexportovat) client.key.Díky za radu.

Your profile picture

Zdravím,
při tom kliknutí na Export u client certifikátu je pro vygenerování client key nutné zadat heslo s minimalne 8 znaky. Pak se vygeneruje i *.key soubor.

Your profile picture

Ahoj, jen dávám tip, že musí být ještě povolený port 1194 na firewallu. Jinak se na Mikrotik zvenku nejde dostat ve výchozím nastavení

Your profile picture

Ahoj, super navod funguje i pro me ktery se do konfigurace podiva jednou za rok a staci to vsechno opet zapomennout. Dekuji.
Jen poznamka ke konfiguraci v souboru *.ovpn, odmazat radky "user nobody" a "group nobody". Je to pry pro pripojeni VPNky k linuxu. Pri pripojovani to do logu psalo cervene chybu.
Jeste jednou Diky Jirka

Your profile picture

Díky za poznámku. Upraveno.

Your profile picture

Kde prosím vezmu certifikát <cert> a <key> do konfiguračního souboru? Mám CA, Client a Server.

Your profile picture

Zdravím, viz poslední obrázek v sekci 1) Certifikáty. Pokud se postupuje podle navodu měli by byt ke stažení všechny tři jako na obrázku.

CA je jasný, cert je certifikat clienta  a key je key clienta.

Your profile picture

Děkuji, vše mi už funguje. Pro nezkušené uživatele je dobré to popsat lépe, kde mají co vzít :-)

Your profile picture

Nastavil jsem vše dle návodu, vše snad 10x zkontrolováno a když se chci připojit k VPN, tak se to stále točí v connecting -> resumming -> retry (server poll timeout). Nevíte. kde by mohl být problém? 
Jednou jsem v logu viděl chybu "cant assign requested address". 

Your profile picture

Mám "podobný" problém. Nastavil jsem to doma přes noťas, kde VPN funguje když jsem připojený do LAN i když se připojím na mobil přes hotspot "zvenku".
Přijdu do práce, kde mám stolní počítač a noťas a už se na VPN domů nepřipojím ani z jednoho s chybou "Server poll timeout, trying next remote entry...". Někde jsem četl, že je potřeba OpenVPN spustit jako admin, ale to mi nepomohlo...

Your profile picture

Zdravím,
"Server poll timeout" značí, že pravděpodobně nedostávate odpověď od serveru. Problému může být více. Ověřte danou IP adresu a hlavně port. Můžete mít například v práci blokován port 1194 což je výchozí OpenVPN port. Velmi často se nejde takto připojovat s veřejných hotspotů nebo korporátu kde je dost porů zablokovaných. Zkoušel bych to metodou pokus omyl. Pokud vám funguje připojení z mobilního internetu, zkuste si nasdílet WiFi mobilu do ntb a připojit se. Pokud to projde, je problém v blokovaných portech v práci. Pokud ne tak je problém v klientovi na ntb.

Your profile picture

Dobrý den,
Jak poznám ca,cert a key když mám vygenerované ca.crt, client.crt,server.crt

<ca>-----BEGIN CERTIFICATE-----//zde vlozte certifikat-----END CERTIFICATE-----</ca>
<cert>-----BEGIN CERTIFICATE-----//zde vlozte certifikat-----END CERTIFICATE-----</cert>
<key>-----BEGIN ENCRYPTED PRIVATE KEY-----//zde vlozte certifikat-----END ENCRYPTED PRIVATE KEY-----</key>

 

Your profile picture

Zdravím,
CA je jasné, cert je client.crt a key je client.key.  Pokud jste nezadali heslo při exportu client.crt tak key nemate a nepotřebujete.

Your profile picture

zdravím,super návod. chci se do toho pustit v MikroTik RouterOS 6.49.2. rád bych se zeptal, zda je toto funkční, ikdyž nemám od internetového providera přidělenou veřejnou IP adresu? pokud ne, jak v totmo případě postupovat bez veřejné IPny?s pozdravem. Brouk

Your profile picture

Bez veřejné IP vám tento návod stačit nebude. Postup je identický ale za
remote VerejnaAdresaVpnServeru 1194
musíte dosadit veřejnou adresu. Já to řeším vytunelováním pomocí autossh na veřejnou VPS. Pokud nemáte server s veřejnou adresou, dá se použít nějaké raspberry uvnitř domu a na něm rozchodit přesměrování přes ngrok.
Nějaký návod je zde s tím, že tady je OpenVPN přímo na tom raspberry https://bit.ly/3spZu1l OpenVPN server lze nechat na mikrotiku a z raspberry jenom udělat přesměrování na ten mikrotik. Bohužel druhou variantu jsem nedělal takže více poradit neumím.

Your profile picture

Dobrý den, děkuji za návod. Chtěl bych se zeptat, jak mohu posílat skrze tento VPN tunnel veškerý provoz? 

Your profile picture

Jenom pro doplnění, když se připojím k VPN z jiné sítě, jako je moje školní síť, veškerý provoz nejde do VPN. V důsledku toho nemohu používat některé zakázané služby jako ftp, ssh, protože provoz je blokován školním firewallem. PS: push "redirect-gateway autolocal def1" pusH "redirect-gateway def1" Mi v configu clienta nefungují

Your profile picture

Zdravím, bohužel tady neumím poradit. Nic jiného než "redirect-gateway def1" mě nenapadá. Ještě můžete zkusit alternativu k OpenVPN, pro MikroTik od RouterOS 7 je zabudována podpora pro WireGuard.

Your profile picture

Dobrý den, v obsahu souboru .ovpn je chyba, která způsobuje nefunkčnost routování. Jedná se o tyto řádky:
push "redirect-gateway autolocal def1"push "redirect-gateway def1"
Direktivy "push" jsou určené pro serverovou stranu, kde server "tlačí" konfiguraci ke klientovi.
Pro nastavení na straně klientského .ovpn souboru to správně má být bez push, viz:
redirect-gateway autolocal def1redirect-gateway def1
S touto konfigurací již routování do lokální sítě funguje. 

Your profile picture

Vidím, že mi editor zmrvil komentář, tak znovu:

Dobrý den, v obsahu souboru .ovpn je chyba, která způsobuje nefunkčnost routování. Jedná se o tyto řádky:

push "redirect-gateway autolocal def1"
push "redirect-gateway def1"
Direktivy "push" jsou určené pro serverovou stranu, kde server "tlačí" konfiguraci ke klientovi.
Pro nastavení na straně klientského .ovpn souboru to správně má být bez push, viz:

redirect-gateway autolocal def1
redirect-gateway def1

S touto konfigurací již routování do lokální sítě funguje. 

Your profile picture

Lokální sítí myslím LAN do které se přes VPN připojujeme.

Your profile picture

Moc díky za zpětnou vazbu! Konfigurační soubor je opraven. 

Your profile picture

Děkuji, nemohl jsem najít, kde je chyba. Tohle pomohlo. Mám docela štěstí, řeším to od včerejška :)

Your profile picture

Dobrý den, nemohl jsem přijít proč mi to stále nefunguje a pak jsem posunul pravidlo na port 1194 ve Firewallu, nad "drop all not coming from LAN" a připojení začalo fungovat.
U mě spíše nahoda pokus omyl, povolanější asi ví.

Your profile picture

Taky až po posunutí nahoru to začalo fungovat. měl jsem to stejně

Your profile picture

Zdravim,
vytvarel jsem si VPNku pomoci tohoto navodu a super funguje, take jsem mel v config souboru pro klienta:
push "redirect-gateway autolocal def1"
push "redirect-gateway def1"
A nemohl jsem rozchodit komunikaci jen pres VPNku, ted jsem se pri prochazeni netu docetl nejake info a odmazal z toho ta slova pusch a nakonec jsem se dostal opet v ramci hledani na tuto stranku, kde se o tom pise ze by ten text pusch nemel v klientu byt.
Po odebrani uvozovek a slova push se mi komunikace rozjele smerem do VPNky. Chtel bych se optat, jaky rozdil je v tom prvnim prikazu s textem "autolocal" a bez tohoto textu?
Diky za info. Jirka

Your profile picture

Zdravím, dokumentaci k parametrum local, autolocal naleznete na tomto odkazu.  "push" se používa na straně serveru, pak klienti přesměrovávají veškerý provoz přes VPN.

Your profile picture

Díky za návod. Nepodařilo se mi rozchodit OpenVPN 2.6 proti RouterOS 6, zkoušel jsem různé alg na klientovi a pořád byly v Mikrotiku chyby:disconnected <unkown cipher alg or key size> nebo disconnected <unsupported auth digest>.Nicméně na starší verzi 2.5.6 to funguje dobře.
Na sta

Your profile picture

Také mám tento problém, poslední verze klienta openVPN bez ohledu na aktualizace Mikrotiku je funkční 2.5.9, s tím, že akt. v routeru je už verze 7.9.2

Your profile picture

Návod mi funguje. Díky moc.

Your profile picture

do configu clienta treba ešte doplnik: tls-client  a rozbehlo sa mi to

Your profile picture

Můj dobrodinče, čtvrtý návod a konečně funguje. Fakt moc děkuju. Hraju si s touhle záležitostí asi tejden. Potřebuji vyřešit Androidí konektivitu. Firemní  firewall umí proprietární tunel a samozřejmě L2TP. Tož mě napajdlo zkusil OVPN. Zatím mi mto jede na widlích dál uvidíme... Díky moc. JaP

Your profile picture

Zdravím.
Postupaval jsem dle návodu (doufám), ale nedaří se. Open VPN klient na Windows mi píše chyby:
VERIFY ERROR: depth=0, error=self-signed certificate: CN=CA,
WARNING: No server certificate verification method has been enabled.
OpenSSL: error:0A000086:SSL routines::certificate verify failed
A spoustu dalších, které se od toho nejspíše odvíjí.
Už nějak netuším co s tím.

Your profile picture

Zdravím, netuším Windows klienta nepoužívám, ale zkuste stáhnout starší verzi klienta pro Windows, vyse v komentarich psali,ze jim funguje 2.5.x klient ale nikoliv novy.

Your profile picture

Nakonec jsem se propracoval až k chybě:
OpenSSL: error:1C800064:Provider routines::bad decrypt
OpenSSL: error:11800074:PKCS12 routines::pkcs12 cipherfinal error
Ale stejně to jede.

Your profile picture

Do konfiguračního souboru jsem musel doplnit řádek tsl-client a nainstalovat starší verzi OpenVPN  2.5 RC1 I601 (s ver 2.6 nefungovalo). Na Mikrtotiku mám 6.49.8.  Už vše funguje. Děkuji.

Your profile picture

Prosim ake upravy by boli nutne pokial ma router len ipv6 dynamicku verejnu adresu?

Your profile picture

Dobrý den, děkuji za krásný návod, na macOS v Tunnelblicku funguje hned, na WIn s OpenVPN community klientem funguje i s aktuální verzí 2.6.8 po přidání těchto parametrů:
data-ciphers AES-256-CBC
remote-cert-tls server
tls-client

Your profile picture

Díky za feedback! Přidám do návodu.

Your profile picture

Díky moc za návod :), mikrotik je semtam sraní.., vytáhl sem ze skříně starej RB2011UiAS-2HnD a snažil jsem se rozchodit L2TP-IPsec, jednou fungovalo, pak zase ne.., tak jsem testnul tohle...Připojuju se z macu skz Tunnelblick Udělal jsem to všechno cajk a pak jsem dostával duplicate packet error. Googlil jsem a je to tím, že starší verze routerboardu (já mam 6.49.15) má novější compat-mode a nefunguje tímádem cipher...
Tady je můj cfg - funguje to parádně! clientremote 111.111.111.111 1194auth-user-passcipher AES-256-CBCcompat-mode 2.4.0     <------ TOTO stačí přidat!! dev tunproto tcpnobindauth-nocachescript-security 2persist-keypersist-tundata-ciphers AES-256-CBCremote-cert-tls clienttls-client
redirect-gateway autolocal def1redirect-gateway def1
Zde je link, kde se dozvíte víc! :) https://github.com/OpenVPN/openvpn/issues/253 Pořád o ranec snadnější, než nastavit L2TP-IPsec na tomhle starym krámu..a ještě s cerif a ne s shared pwd :).
Takže super a děkuji! :) Jenom ještě trochu zmatek, protože jsem si vyexportoval všechny klíče.., neni potřeba..CA otevřít .crt Cert otevřít taky .crt   (client!) Key tak to otevřít client.key! 
Vůbec se nemusí teda exportovat server crt, key. Taky jsem zjistil, že v nastavení OVPN serveru je celkem buřt, co si vygenerujem, ale musí se to pak změnit v configu vpn.ovpn :)
Jinak ještě malá drobnost, kdo neví jak..a nikdy nedělal file..tak v Mikrotiku download ty files, otevřít, pak otevřít notepad, tam to napráskat, zvolit všechny přípony a jako koncovku dát .ovpn   Pak to přetáhnout kam člověk chce, já si to třeba poslal na whats, kterej mam na obou zařízeních, protože Winbox pro Mac bohužel neni :D (je ale webcfg..)
Ještě jednou díky :) a snad by mohli vydat na tohle nějakej update i když je to starší zařízení.. Za ten čas kterej se s tim člověk sere(obecně celej Mikrosh1t envir. - mam ještě servery, DNS beru z Centosu atp.. atp..) tak mám nastavený celý cisco a fortigate... :D
Kudos! :) Dobrej návod, totál lajk to asi nedá, ale kdo si k tomu pogooglí, tak to pořeší. Savioro! :)

Your profile picture

Hmm, tak formátování neprošlo moc dobře :)) Ještě jednou...jako obrázek, normálně nepíšu ani na git, stack atp.., ale tohle je fajne :)

Přidat komentář

Nejnovější články v blogu

Linux Live Distribution Persistent USB
Vytvoření Persistent Live USBHodnocení: 
20%

Jak si vyzkoušet Linux? Přímo na vašem notebooku nebo počítači nabootováním z USB flash disku, nebo ještě lépe z externího SSD. Pokud se vám to zalíbí, v tomto návodu naleznete postup, jak vytvořit persistentní live distribuci, což znamená, že všechny změny, které v Linuxu uložíte, tam zůstanou. Můžete si tedy nainstalovat aplikace, ukládat dokumenty atd. Prostě takový přenositelný Linux v kapse, který lze spustit na jakémkoliv podporovaném počítači nebo notebooku.

SmartHome WhatsApp notifikace OpenHAB, Home Assistant
WhatsApp - notifikace zdarmaHodnocení: 
0%

Rádi byste dostávali notifikace z chytré domácnosti formou zpráv do WhatsApp messengeru? Ačkoliv z tohoto messengeru nejsme nadšení, mnoho lidí jej používá a je zbytečné instalovat jiný pouze kvůli chytrému domu. Pro daný kontakt je pak možné nastavit specifické zvonění, takže budete hned vědět, že zpráva přišla z vašeho domu. Našli jsme možnost, jak toto využívat bez poplatku. Jmenuje se CallMeBot...

Tailscale - VPN bez veřejné IP
Tailscale - přístup bez veřejné IP adresyHodnocení: 
100%

Služba Tailscale řeší přístup mezi jednotlivými zařízeními, pokud nemáte možnost veřejné IP adresy. Pro jednoho uživatele je zdarma s podporou max 100 zařízení. Ukážeme si jak Tailscale nainstalovat na Raspberry Pi, které budeme mít někde doma a do klienta (Android, iPhone) ze kterého budeme chtít přistupovat k domácímu Raspberry Pi. Náším příkladem bude vzdálený přístup k OpenHAB běžícím na Raspberry Pi. Nicméně stejné nastavení platí pro spoustu jiných aplikací - domácí NAS, PiHole, Home Assistant, Domoticz, NextCloud a jiné.

Shelly MQTT implementace
Shelly a OpenHABHodnocení: 
100%

Značka Shelly je známa svými produkty komunikujicími hlavně přes WiFi a zahrnujicími ovládané zásuvky, relé pod vypínače, relé pro ovládaní žaluzíí a mnoho dalších produktů. Jedna z výhod pro nasazení je možnost načítat a taky ovládat tyto zařízení pomocí univerzálního protokolu MQTT. Napříč existujícímu addonu pro OpenHAB i Home Assistant si ukážeme jak používat Shelly zařízení bez instalace jakéhokoliv rozšíření.

Victron & OpenHAB
Victron a chytrý důmHodnocení: 
100%

V tomto příspěvku si ukážeme jak načítat informace z fotovoltaické elektrárny od firmy Victron. Propojíme se s jednotkou Cerbo přes MQTT. Na základě těchto hodnot pak můžeme spínat různé spotřebiče (topení, bojler atp.) a předejít plýtvání baterie pro velké spotřebiče v době, kdy nemusí běžet atp.

GoodWe a chytrá domácnost
Smart Home a GoodWeHodnocení: 
100%

V příspěvku ukážeme krok po kroku jak komunikovat chytrou domácnosti přímo se střídačem Goodwe a dostávát aktuální informace (narozdíl od SEMS portálu). Tyto informace jsou nezbytné pokud chceme v chytrém domě nějak reagovat na aktuální parametry např. spínání dodatečného chlazení nebo spínání zásuvky se zátěží.

Ovládání domu hlasem
Hlasové ovládání domu AlexouHodnocení: 
100%

V tomto článku propojíme hlasového asistenta Amazon Echo Dot s open source domácí automatizací. Nepoužíváme OpenHAB Cloud, tz. vše běží lokálně. V tomto případě je nutných pár nastavení navíc, nicméně výsledek stojí za to!

NFC Tag Chytrý dům
NFC tagy v chytrém doměHodnocení: 
100%

NFC (Near Field Communication) tagy jsou malé plastové nebo papírové nálepky, které mohou být použity k automatizaci různých funkcí v domácnosti. V čláku vám ukážeme příklady použití a návod jak zapsat akci na NFC tag pomocí mobilního telefonu.

WireGuard iOS
Nastavení WireGuard připojení v iOSHodnocení: 
0%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z iOS.

WireGuard z Androidu
Nastavení WireGuard připojení v AndroiduHodnocení: 
100%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z Androidu.