Přidat článek mezi oblíbenéZasílat nové komentáře e-mailem Mikrotik router 9 - WireGuard VPN

Čas pokročil a ROS 7 přinesl možnost Wireguard VPN. Tak se podíváme, jak ji nastavit

Proč WireGuard VPN, když tu máme OpenVPN? Protože je rychlejší (doba připojení i přenosová rychlost) a z mého pohledu jednodušeji nastavitelná. Existuje klient pro Window, Android, Apple. Po připojení pak v domácí síti přistupujeme na adresy jak jsme zvyklí, prostě jako bychom byli doma.

Princip:

WireGuard tunel funguje na principu šifrování, kdy obě strany (server i klient) obsahují soukromou část klíče a sdílí vzájemně veřejnou část klíče. Tohle je třeba si uvědomit - na serveru (routeru) nastavujeme záznam pro každého klienta, do kterého vkládáme veřejnou část klíče klienta a naopak na klientovi vkládáme veřejnou část klíče serveru. Odpadá nutnost generovat certifikáty jako v případě OpenVPN.

Předpoklady:

Vnitřní síť doma: 192.168.110.xxx (upravte dle sebe)
Rozsah pro tunel (přidělované adresy WireGuardem): 192.168.155.xxx (upravte dle sebe)
Veřejná IP adresa vašeho internetového připojení: 111.222.333.444 (upravte dle sebe)
Port necháme standardní 13231 pro WireGuard
Veřejný DNS server - použijeme 1.1.1.1

1. Vytvoření serverové části na Mikrotiku

V menu vybereme Wireguard a přes tlačítko [+] přidáme nový interface. Jediné, co vyplňujeme je jméno a uložíme, pokud nejsou speciální požadavky třeba na změnu portu. Po uložení se vygeneruje soukromá a veřejná část klíče, což uvidíme po opětovném rozkliknutí. Veřejnou část budeme potřebovat pro klienta.

[97282-wireguard01-png]

Ve druhém kroku nadefinujeme rozsah IP adres, který bude WireGuard přidělovat klientům - IP / Addresses

[97283-wireguard02-png]

Je třeba zvolit rozsah, který nebude kolidovat s vaší vnitřní adresou, a nejlépe ani s adresami ze sítě, odkud budete WireGuard spouštět. pro náš případ to bude rozsah 192.168.155.xxx. Adresu 192.168.155.1 má vlastní interface WireGuardu.

Ještě potřebujeme zkontrolovat pravidlo pro firewall, měli bychom mít povolený UDP port 13231 (IP / Firewall) a této chvíli máme nastavený server.

2. Nastavení klienta

Půjdeme na nastavení klienta, toho si stáhneme ze stránek WireGuard a následně nainstalujeme.
Po spuštění je třeba přidat "tunel", buď rozkliknutím volby a následně volbou přidat prázdný tunel nebo Ctrl+N. Jako výchozí akce tlačítka je import nastavení, ale teď nemáme odkud importovat.
V podstatě můžete klienta využít jako konfigurační prostředí pro další klienty (třeba mobil) a odsud následně exportovat konfigurace.

Otevře se nové okno, kde zadáváme jméno připojení a vidíme veřejnou a soukromou část klíče. Veřejnou část budeme potřebovat, až budeme vytvářet klienta (Peer) na serveru (Mikrotiku). Bude třeba konfiguraci "dopsat", protože klient nemá klikací rozhraní.

Já sem vložím celou konfiguraci s vysvětlením jednotlivých položek

[Interface]
PrivateKey = CMQ5YQI3oPj65Sm52hsNpaOT0gJtZm+2mn8lxAL86XE=
Address = 192.168.155.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = eIvbe1CBrgQ3dwk8AXu1vwDUWNvhP8heS3GtCQojkjk=
AllowedIPs = 192.168.110.0/24
Endpoint = 111.222.333.444:13231
Část interface:

Private key - vygeneroval se při vytváření klienta. Jeho změnou se mění veřejný klíč, který přijde později na server (Mikrotik) do části Peer
Address - adresa, která bude přidělena pro tunel z rozsahu IP adres, kterou jsme nastavovali na Mikrotiku v IP / Addresses. Každý klient má svou, takže další klienty postupně číslujeme 192.168.155.3/32, 192.168.155.4/32
DNS - adresa nějakého veřejného DNS serveru, takže 1.1.1.1, 1.1.0.0, 8.8.8.8 apod.

Část Peer:

PublicKey - veřejný klíč z WireGuard na Mikrotiku
AllowedIPs - rozsah adres, na které se po připojení dostaneme. Zde by měl být rozsah vaší vnitřní sítě, takže 192.168.110.0/24
EndPoint - vaše veřejná internetová adresa a port, takže 111.222.333.444:13231

Nastavení klienta WireGuard na Mikrotiku (WireGuard / Peers / Add)

[97284-wireguard03-png]

Nastavujeme:
Public Key - zkopírujeme veřejnou část klíče z klienta
Interface - zde vybereme WireGuard interface
Allowed address - zde je adresa z klienta 192.168.155.2/32 (Address z části interface)

To je celé nastavení. Pokud chceme přidat dalšího klienta, postupujeme od bodu 2.
Jak jsem psal dříve, můžeme klienta použít k vytvoření dalších připojení a ty pak vyexportovat a na nové zařízení jen naimportovat. Pak to znamená jen vzít z existujícího klienta následující část a vložit pod vygenerovanou část nového klienta.
Následně upravit adresu a zkopírovat veřejný klíč klienta (nahoře) pro nastavení Peer na Mikrotiku.

Address = 192.168.155.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = eIvbe1CBrgQ3dwk8AXu1vwDUWNvhP8heS3GtCQojkjk=
AllowedIPs = 192.168.110.0/24
Endpoint = 111.222.333.444:13231

Na Mikrotiku nový Peer, vložit veřejnou část klíče, upravit adresu a připojení je hotové.
Export (nebo soubor pro import) není nic jiného než textový soubor s příponou .CONF, který se jmenuje podle připojení a obsahuje sekce [Interface] a [Peer] s hodnotami, které jsme si popsali.

Existují i generátory konfigurace:
https://dbca-wa.github.io/wg-webcfg/wg-webcfg.html
Potřebujete pouze veřejný klíč Wireguard serveru z MT, přednastavit hodnoty a zadat počet klientů (peerů)

A jak dostat několik peerů na MT? Můžeme použít třeba terminál:

/interface wireguard peers
add allowed-address=192.168.155.2/32 comment=peerA endpoint-address="" interface=wireguard1 public-key="eIvbe1CBrgQ3dwk8AXu1vwDUWNvhP8heS3GtCQojkjk="
add allowed-address=192.168.155.3/32 comment=peerB endpoint-address="" interface=wireguard1 public-key="{public key 2}"
...
Předchozí kapitola

Mikrotik router 8 - hlídání zařízení s informačním mailem

Předmět Autor Datum
Díky za pěkný článek, WG je dost hustá a pekelně rychlá věc a postupně na něj migruju všechny své kl…
touchwood 29.06.2023 16:44
touchwood
Protože jsem to zrovna nastavoval, tak jsem se to snažil napsat co nejsrozumitelnejsi a nejpřímější…
Jan Fiala 29.06.2023 18:39
Jan Fiala
Mozno si mal zdoraznit, ze WG je dobra volba aj preto, ze ma na rozdiel od OpenVPN dobreho a intuiti…
fleg 29.06.2023 18:45
fleg
no... WG pro neadmin usery je trochu vopruz, zejména pokud jim nechceš dát klíč k volnému použití, a…
touchwood 30.06.2023 07:17
touchwood
Uživatelům můžeš generovat konfiguraci a ti si ji jen naimportují.
Jan Fiala 30.06.2023 10:00
Jan Fiala
Ano, ale to taky znamená, že si mohou do firmy připojit jakýkoli PC. A to není v dnešní době zrovna…
touchwood 30.06.2023 15:20
touchwood
Tomuto nezabráníš, i kdyby sis nechal od uživatele poslat jeho veřejný klíč. Nezabrání to, aby si on…
Jan Fiala 30.06.2023 19:21
Jan Fiala
Právě že zabráníš, když nemá admin práva a wg spouštíš jako službu, ke které mu jen udělíš práva run…
touchwood 21.07.2023 16:59
touchwood
Existuje nejaky overeny generator konfiguracie (txt, qr kod) ci uz na win alebo android, lebo prenas…
truhlik 06.07.2023 21:28
truhlik
Koukni treva sem: https://www.wireguardconfig.com/ Nebo https://dbca-wa.github.io/wg-webcfg/wg-webcf…
Jan Fiala 06.07.2023 22:16
Jan Fiala
Ad 1. Vygeneruje mi pre server aj verejny kluc, ten ako zapisem do MT ? Do pola Public key sa neda z…
truhlik 06.07.2023 23:11
truhlik
Ad 2) Privatni klic serveru tam zapisovat nemusis, tu konfiguraci na serveru uz mas. A privatni klic…
Jan Fiala 07.07.2023 04:57
Jan Fiala
Diky, uz som si vsimol, ze mi vygeneruje aj bez
truhlik 07.07.2023 08:05
truhlik
Doplnil jsem do článku
Jan Fiala 11.07.2023 06:13
Jan Fiala
Pokud potřebuješ i privatni serverový klíč, pak New terminal Window a příkaz: interface/wireguard/e…
Jan Fiala 07.07.2023 07:20
Jan Fiala
klient sám umí generovat keypair, a to jak na win, tak lin. QR kód si přece můžeš z konfigu vygenero…
touchwood 21.07.2023 17:01
touchwood
takze nakonfiguroval som na mkt wireguard. Tiahol som si appku na android, nakonfiguroval. Po spuste…
truhlik 04.08.2023 10:55
truhlik
To, že se spojeni nadvaze jeste neznamena, ze je tunel propojeny. Obvykle je chyba v IP adresach, kl…
Jan Fiala 04.08.2023 11:06
Jan Fiala
:-) Nieco na tom asi bude Zmazana cela konfiguracia na nt, a zacate odznova, vyzera to funkcne. poslední
truhlik 04.08.2023 11:19
truhlik

no... WG pro neadmin usery je trochu vopruz, zejména pokud jim nechceš dát klíč k volnému použití, ale zároveň právě tato schopnost je klíčový argument proč nasadit WG namísto OVPN.

edit: ale hlavně je WG dobrý proto, že má malý footprint, není postavený na chronicky děravém OpenSSL a má moderní ciphersuite.

Existuje nejaky overeny generator konfiguracie (txt, qr kod) ci uz na win alebo android, lebo prenasat kluce medzi zariadeniami nieje moc pohodlne . . . aj ked sa to musi len raz, ale na cudzom zariadeni je lepsie nacitat qr kod ako nastatvovat klienta tukanim a prenosom klucov medzi win/android a iphonom . . .

Ad 1. Vygeneruje mi pre server aj verejny kluc, ten ako zapisem do MT ? Do pola Public key sa neda zapisovat . . .
Ad 2. Ako zapisem do toho generatora privatny kluc servera? skopirujem sice "*", ale nakopiruje mi nieco stare zo schranky . . .
Ale mozno nieco prehliadam, teplo je :-)

takze nakonfiguroval som na mkt wireguard.
Tiahol som si appku na android, nakonfiguroval.
Po spusteni pekne vidim napr v mojaip moju domacu IP , v peers pekne nabiehaju Tx/Rx aj v queue (podla IP) vidim pripojenie a prenos jak pakety, tak total MB.
Ale ked toto nadefinujem do ntb (skontrolovane s konfig. z tel, dokonca som neskor dal vsetko rovnako, aj IP, okrem kluca), a dam aktivovat wireguard , tak sice vidim ze spojenie nadviazane, vidim data ako posledne spojenie a prenos, ale ten je len v radovo bajtoch, na mkt v peers tiez len obcas pribudnu bity, a v queue ziaden prenos , ani paket . . . v mojaip zostava stale rovnaka ip operatora
ntb som pripojil na mobilny bod z tlf (data operatora)

kde moze byt problem, ked cez tlf ok, a ntb nie a nie?

Zpět na články Přidat komentář k článku Nahoru