WIreguard, novi igrač na VPN sceni. Iako je relativno nov, kažu za njega da je najbrži, najjači u kriptiranju i sigurnosti. Mikrotik ga je uveo i u svoje redove, stoga ćemo ovdje vidjeti kako konfigurirati Wireguard na Mikrotiku kao serveru te na Windows i Android uređajima kao klijentima.
No prvo ipak moramo proći kroz malo teorije, da znamo što je što i zašto slažemo na određen način.

Upoznaj Wireguard
Svoje prve korake napravio je 2016. godine, no tek je 2020. krenuo u širu primjenu kada ga je Linux ubacio kao podršku u svoj kernel. Od tada se proširio na sve ostale platforme, tako da se danas može koristiti na Linux, Windows, Android, macOS i iOS.
Po pitanju enkripcije, Wireguard koristi trenutno najjače kriptografije, a prema riječima autora protokola kažu da ako se za neku kriptografiju ustanovi da je slaba i da se može razbiti, da će je automatski zamijeniti s nekom jačom.
Zato prilikom konfiguracije Wireguard VPN-a uopće nemate mogućnost odabira koji tip enkripcije želite koristiti. U usporedbi s IKEv2/IPsec VPN protokolom o kojem sam pisao ranije, Wireguard će uvijek imati jaku enkripciju te ako je krivo složen – jednostavno neće raditi.
Kad gledamo IKEv2/IPsec VPN protokol, on je nešto kompliciraniji za složiti i može biti najjači protokol na svijetu po pitanju enkripcije i sigurnosti – ako ga se tako složi. Jer ako ste se bavili time, sigurno ste vidjeli da u njemu ima desetke raznih postavki za posložiti enkripciju. I koji god tip enkripcije odabrali, IKEv2/IPsec VPN će raditi, no da li će biti siguran? – Jer možete odabrati neki slabiji tip enkripcije koji se danas smatra probijen, a vi ćete misliti da ste sigurni. Isto tako, ne podržavaju sve platforme jaku enkripciju za IKEv2/IPsec (na primjer, kod Windows treba dodatno konfigurirati Registry da bi podržao jaču enkripciju).
Wireguard je već tu u prednosti.
Koncept rada
Detaljan opis Wireguard protokola i njegove enkripcije je naveden na službenoj stranici, stoga neću ulazit preduboko ovdje jer bih se samo ponavljao.
Ali ćemo kratko proći kroz rad, da znamo što trebamo konfigurirati.
Wireguard koristi privatne i javne ključeve za osiguravanje enkripcije u tunelu, a sve to zapakira u UDP paket.
Elementi od kojih se Wireguard sastoji su network interface i peers. Svaka strana koja sudjeluje u kreiranju Wireguard tunela mora imati ove dvije obje postavke složene kod sebe.
- Network interface – služi da se na serveru generira privatni i javni ključ, te da poveže Peers koji će moći komunicirati s njim
- Peers – služi da se u konfiguraciju dodaju uređaji koji se smiju spajati na taj server. Na Peers gledajte kao na klijente koji imaju dozvolu spajanja na Wireguard server
Dakle, svaka strana koja sudjeluje u kreiranju Wireguard tunela mora imati svoje network interface postavke i svoje peer postavke. Zato jer time svaka strana generira svoj privatni i javni ključ čime stvaraju sigurnu vezu za razmjenu prometa.
Javni ključ služi za kriptiranje prometa i pošto je javni, može ga vidjeti bilo tko na mreži. Privatnim ključem se taj promet dekriptira, zato je vrlo važno da privatni ključ ostane tajan i da ga vidi samo jedna strana.
Primjer rada
Recimo da imamo Server i Klijent u igri.
Kada Klijent šalje nešto Serveru, tada koristi javni ključ od servera (kojeg ima navedeno u svojoj konfiguracija) za kriptiranje podataka.
Server dobije te podatke i korištenjem svog vlastitog privatnog ključa (kojeg samo on zna) radi dekripciju prometa jer je došlo korištenjem njegovog javnog ključa.
Kada Server šalje nešto Klijentu, tada koristi javni ključ od klijenta (koji je naveden u konfiguraciji kao Peer) za kriptiranje podataka.
Klijent prima te podatke i korištenjem svog privatnog ključa (kojeg samo on zna) radi dekripciju prometa jer je došlo korištenjem njegovog javnog ključa.
Svakoj strani (network interface i peers) unutar Wireguard tunela treba dodijeliti neku IP adresu, jer će se po tome znati da li se peer smije spojiti na Wireguard server ili ne. Te IP adrese služe samo za Wireguard tunel i ne bi trebale biti raspoložive za routing izvan tog tunela.
Ako klijent (peer) ima IP adresu koja nije definirana pod Peers na Wireguard serveru, tada se VPN konekcija neće uopće ostvariti. Ovo je ujedno i jedan sloj sigurnosti, zato jer Wireguard uopće ne odgovara na upite koji dolaze s IP adresa koje nisu definirane u njegovoj konfiguraciji. Ovime napadač neće moći znati da li se Wireguard vrti na serveru ili ne.
Uz IP adresu s koje se klijent smije spajati te pripadajući javni ključ od klijenta se osigurava sigurna veza između dvije strane.
Wireguard nema klasičnu podjelu na “server” i “klijent” gdje su jedne postavke za server, druge postavke za klijenta. Već obje strane imaju iste postavke, a način na koji su te postavke složene određuje koja strana će biti server a koja klijent.
Dosta sad o teoriji, idemo vidjeti kako to sve složiti da radi …
Oprema koja je korištena u ovom članku
- Mikrotik RB4011iGS+5HacQ2HnD-IN
- RouterOS: 7.3.1
- Winbox 3.36
- Windows 11 22H2
- Android 12
Konfiguracija – Mikrotik
Mikrotik je uveo podršku za Wireguard u RouterOS od verzije 7.1, stoga provjerite da li imate tu verziju ili noviju kako bi mogli nastaviti dalje.
1. Wireguard
- Otići lijevo u meniju na Wireguard
- U tabu Wireguard kliknuti na znak “+” da se napravi novi interface
- U tom prozoru navesti ime i neki Listen Port (Mikrotik default je 13231).
Ovdje se može navesti bilo koji port, samo da bude visok.
Tako ću i napraviti, stavit ću neki svoj čisto da nije default vrijednost kako netko ne bi nešto pokušavao. Za primjer ovog članka, stavit ću da port bude 45221. - Klikom na Apply ili OK privatni i javni ključ će se automatski generirati

2. Network interface address
Da bi Wireguard mogao ispravno raditi, njegov interface mora imati neku IP adresu.
IP adresa može biti bilo koja, ali svakako neka bude neka koja se neće nigdje drugdje koristiti u routanju.
Najbolje bi bilo uzimati adrese s maskom /30, jer se tada koriste samo dvije (host) IP adrese iz mrežnog segmenta.
Jedan Wireguard interface može imati više peer-ova, ali da bi se istodobno moglo spojiti više klijenata (peerova), potrebno je da svaka veza između server interface-a i klijent peer-a ima svoju IP adresu. Što je i logično, jer kad se jedan peer (klijent) spoji na jedan interface na serveru, drugi klijent se ne može spojiti na isti taj interface jer je taj interface već zauzet.
- Otići na IP > Addresses i kliknuti na znak „+“ za dodavanje nove adrese
- Dodati IP adresu koja će biti na Wireguard interface-u
Pošto smo rekli da koristimo subnet masku /30, interface adresa će biti 192.168.30.9/30, što automatski znači da će adresa za taj peer biti 192.168.30.10/30.
Dalje pod Interface odabrati ime Wireguard interface-a kojeg smo kreirali u gore u prvom koraku.
S obzirom da ću raditi i spajanje pametnim mobitelom, odmah ću kreirati i drugi set IP adresa za isti taj Wireguard interface.
Primjer kako to na kraju izgleda

3. Peers
Pod tabom “Peers” se dodavaju klijenti koji će se spajati preko Wireguard-a.
- Klik na znak “+” da se otvori novo dodavanje
- Interface: odabir Wireguard interface-a
- Public Key: ovdje navesti public key od klijenta koji će se spajati. Public key će se generirati na klijentu, treba ga samo kopirati i zalijepiti ovdje
- Endpoint: služi za navesti javnu adresu na koju će se spajati, no kako je ovdje Mikrotik taj na koji se drugi spajaju, ovo treba ostaviti prazno
- Enpoint Port: služi za navesti port od vanjske adrese, ali isto kao gore, treba ostaviti prazno jer se Mikrotik neće spajati na ništa
- Allowed Address: ovdje treba navesti IP adresu koja će ujedno biti postavljena i na klijentu. To je druga adresa od Wireguard tunela (prva je na Wireguard interface-u).
- Preshared Key: može se navesti neka dodatna lozinka koju treba postaviti na oba uređaja, ali kako je ovo vidljiv podatak a ne dobije se nikakva veća sigurnost, stoga ovo nije potrebno postavljati
- Persistent Keepalive: služi da Wireguard u navedenom broju sekundi šalje paket, da održi vezu aktivnom. Ovdje to nije potrebno konfigurirati jer Mikrotik je u ulozi servera, ne klijenta.

4. Firewall
Potrebno je propustiti Listen Port u firewall-u da bi Wireguard mogao raditi:
/ip firewall filter add action=accept chain=input comment="Wireguard Listen Port" dst-port=45221 protocol=udp
Ovime je konfiguracija na Mikrotiku riješena.
Sad ostaje još posložiti stranu od klijenata.
Konfiguracija – Windows
Windows konfiguracija kao klijenta je dosta jednostavna a sve se radi u Wireguard aplikaciji.
- Sa službene stranice skinuti Windows client i instalirati
- Kad se pokrene, treba ići na Add tunnel > Add empty tunnel
- Otvorit će se nova konfiguracija s generiranim javnim i privatnim ključem.
Taj javni ključ treba staviti u Mikrotik pod Peers za tog klijenta (prikazano na prethodnoj slici) - U default konfiguraciju treba još ubacit neke stvari jer je prazna
Ovo je gotova konfiguracija za naš primjer

Interface postavke
- Address: IP adresa za klijenta. Ova IP adresa treba također biti navedena u Mikrotiku za taj Peer (prikazano na prethodnoj slici iznad)
- DNS: stavit neki javni DNS server ili DNS od Mikrotika ako je Mikrotik složen da odgovara na vanjske DNS upite
Peer postavke
- PublicKey: javni ključ od Mikrotik Wireguard interface-a kojeg smo generirali gore u prvom koraku, navesti ga ovdje
- AllowedIPs: IP adrese koje će biti kriptirane i prolaziti kroz Wireguard tunel.
Ako se želi da sav promet prolazi kroz tunel i bude kriptiran, onda staviti adresu 0.0.0.0/0,
a ako je potrebno kriptirati samo određeni promet onda navesti samo tu mrežu.
Primjer: ako želim da mi se kriptira promet samo kad pristup nečemu iz mreže 192.168.1.0/24, tada navedem tu mrežu. To sad znači da kad pristupam nekom uređaju iz te mreže, taj promet će biti kriptiran i prolaziti kroz Wireguard tunel, dok će sav ostali promet putovati normalno preko Interneta.
- Endpoint: navesti javnu IP adresu od Mikrotika i Listen Port koji je konfiguriran na Wireguard interface-u. Ako nemate stalnu IP adresu, najbolje bi bilo složiti vlastitu DDNS adresu za pristup Mikrotiku izvana.
- Persistent Keepalive: služi da održava vezu aktivnom ako se uređaj nalazi iza NAT i Firewall. Jer Wireguard inače nije aktivna veza, odnosno tunel je aktivan dok nešto od paketa putuje kroz njega. Kad promet prestane putovati, Firewall bi mogao odrezati vezu. Stoga ova opcija omogućava da se periodično pošalje paket i time javlja da je veza i dalje aktivna.
Opcija se navodi u sekundama. - Block untunneled traffic: sav promet koji ne prolazi kroz tunel će biti odbačen. Ako imate neke servise ili uređaje koji bi trebali ići mimo tunela, pazite onda na ovu opciju. U našem primjeru ostaje kvačica označena.
Za kraj kliknuti na Save da se postavke spreme.
Ako je sve dobro postavljeno, klikom na Activate bi se Wireguard tunel trebao uspješno uspostaviti.
Jedna laka provjera da li sve radi ispravno je ta da kad ste spojeni u Wireguard VPN, odlaskom na web stranicu https://whatismyipaddress.com/ bi se trebala pokazati javna IP adresa od Mikrotika (jer ste sad povezani na njega). Ako nije prikazana, odnosno i dalje se vidi javna IP adresa od uređaja s kojeg se pokušavate spojiti, znači da nešto nije složeno do kraja kako treba. Ovo vrijedi pod uvjetom da sav promet ide preko Wireguard tunela (AllowedIPs = 0.0.0.0/0).
Wireguard aplikacija ima opciju za Export, čime je znatno olakšano ubacivanje istih postavki negdje drugdje, da se ne mora tipkati ponovo sve od nule.
Konfiguracija – Android
Za Android je potrebno preuzeti i instalirati službenu Wireguard aplikaciju.
Unos postavki je isti kao i za Windows kako smo slagali gore;
- potrebno je navesti javni ključ od Mikrotik Wireguard interface-a
- navesti adresu koja se smije spajati u Wireguard tunel. Adresa mora biti jedinstvena, ako ste koristili subnet masku /30 onda drugu adresu iz tog segmenta
- navesti javnu IP adresu od Mikrotika pod Endpoint uz Listen Port
- Kopirati javni ključ od Androida u Mikrotik pod Peers
Pro Tip
U procesu postavljanja obiju strana vjerojatno ćete naletiti na problem kako unositi javne ključeve s jednog uređaja na drugi i obrnuto, a da nije ručno utipkavanje?
Ovdje može pomoći ako koristite neki cloud servis poput OneDrive, DropBox ili bilo koji drugi servis koji imate na više uređaja i koji se sinkronizira.
Tako možete kopirati javni ključ s jednog uređaja, staviti npr. na OneDrive, a onda s drugog uređaja otići na isti taj OneDrive i uzeti taj javni ključ da bi ga unijeli u Wireguard aplikaciju.
Zaključna riječ
Ovime smo pokrili cijelu Wireguard VPN konfiguraciju na Mikrotik routeru i kao što možete vidjeti, dosta je jednostavna.
No imajte na umu da dalje morate u svom firewall-u omogućiti kamo će dalje klijenti iz tunela ići po mreži.
Zbog svoje jednostavnosti konfiguriranja, daleko jednostavnije nego kod slaganja IKEv2/IPsec, jake enkripcije i činjenice da radi na svim platformama, ovime će Wireguard sigurno steći veliku popularnost među korisnicima. Dok mnogi drugi VPN protokoli traže ipak nešto znanja da se postave, a neki čak i ne rade na svim sustavima (npr. SSTP radi samo na Windows jer je to njihov protokol), Wireguard jednostavno radi.