Nella seguente guida, ti illustrerò come configurare un protocollo VPN WireGuard su un router MikroTik e un client su OpenWrt.
Cos’è Wireguard?
Wireguard è un protocollo VPN in grado di farvi accedere con maggiore velocità di connessione alla rete internet. Wireguard è molto utile se si vuole sostituire il protocollo OPENVPN che a livello di velocità è meno performante. Inoltre come lo configuriamo noi in questa guida riusciamo a utilizzare anche fuori dal nostro appartamento i dispositivi di casa.
Cos’è OpenWrt?
OpenWrt è un firmware completamente OpenSource basato su Linux, questo firmware (sistema operativo per router), è in grado di darci molte funzionalità aggiuntive per i router compatibili.
Preparazione configurazione:
Se avete il router impostato di Default, bisogna accedere alla pagina o dal software winbox, oppure all’indirizzo: 192.168.88.1. Nel mio caso l’ip è stato sostituito con è 192.168.1.116. Per utilizzare questa tecnica fuori dalla rete LAN ovvero in WAN, occorre aprire la porta 13231 sul router principale che nel mio caso è un Router 5G con sim DENAT cioè Sim con IP Pubblico. Potete fare la stessa cosa anche con una rete di casa FFTC o FFTH. Basta entrare nelle impostazioni del router e aprire la porta descritta all’indirizzo LAN del router Wireguard Server Mikrotik che nel mio caso è 192.168.1.116, il vostro potrebbe essere 192.168.88.1 o quello che scegliete. Io ho usato la tecnica via modalità bridge anziché router ma la procedura è la stessa.
<<ATTENZIONE QUESTO SISTEMA WIREGUARD È UTILIZZABILE SUI DIPOSITIVI MIKROTIK A PARTIRE DALLA VERSIONE DEL FIRMWARE 7.1.>>
Configurazione Router Server:
Come primo obbiettivo, abbiamo bisogno di recarci sull’ip di appartenenza del router Mikrotik e accedere a 192.168.1.116 (nel mio caso). Io utilizzo Winbox per la procedura da utilizzare.
Iniziamo come prima regola a creare un interfaccia Wireguard, aprendo il terminale e con il seguente comando importare l’interfaccia:
/interface/wireguard add listen-port=13231 name=wireguard1
Ora abbiamo bisogno di importare il comando per dare l’indirizzo ip all’interfaccia wireguard:
/ip address add address=192.168.100.1/24 interface=wireguard1
Per evitare le scambi di chiavi e rischiando di essere intercettate vi consiglio di usare Wireguard su windows e creare la configurazione per il nostro router openwrt client. Quindi ora apriamo Wireguard su PC (solo per tenerci nota delle configurazioni client), e clicchiamo su <<Aggiungi nuovo tunnel vuoto>>.
Non resta che dare un nome alla nostra configurazione e poi copiare la chiave pubblica in questo comando che vedete:
[Interface]
PrivateKey = gNnEeXoG8pPGhbkeH9kmyaGEOXBqgKJPMZozBfpiyGE=
Address = 192.168.100.2/32
ListenPort= 13231
DNS = 8.8.8.8
[Peer]
PublicKey = KPLCJuSADFcaO7ORX5BuPDCFFGECwpWHlChY1KzQNFQ= (esempio dell'immagine superiore)
AllowedIPs = 0.0.0.0/0
Endpoint = ip pubblic:13231
Premete su Salva per salvare la modifica apportata.
Copiate il seguente comando per creare un IP client, con la relativa chiave pubblica di Wireguard su PC nel mio caso:
KPLCJuSADFcaO7ORX5BuPDCFFGECwpWHlChY1KzQNFQ=
/interface wireguard peers add allowed-address=192.168.100.2/32 interface=wireguard1 public-key="<paste public key from remote device here>"
Nel mio caso:
/interface wireguard peers add allowed-address=192.168.100.2/32 interface=wireguard1 public-key="KPLCJuSADFcaO7ORX5BuPDCFFGECwpWHlChY1KzQNFQ="
In questi campi dobbiamo inserire nel campo Peer su Wireguard windows, la chiave pubblica generata da Wireguard per vederla occorre andare in Winbox o Browser web, nel campo Wireguard nell’interfaccia facciamo doppio click e copiamo la chiave pubblica come in figura:
Adesso nella sezione Wireguard di Winbox oppure del WebBrowser clicchiamo su <<Peer>> nei campi richiesti:
EndPoint: IP pubblico (pubblic ip)
EndPoint Port: 13231
Configurazione Wireguard Client OpenWrt:
Se avete OpenWrt impostato di Default, bisogna accedere alla pagina del router OPENWRT all’indirizzo: 192.168.1.1. Io nel mio caso avendo già la classe ip 1.1. OpenWrt Wireguard Client ho lasciato la wan attiva ottenendo comunque i risultati che volevo, ovvero accedere a i miei dispositivi nella LAN da remoto.
Come primo obbiettivo, abbiamo bisogno di recarci sull’ip di appartenenza del router OpenWrt e accedere a 192.168.2.1. Appena entrati bisogna installare sul router il pacchetto luci-app-wireguard, per farlo occorre andare su <<System>> poi su <<Software>> infine premere su <<Update List>>.
Attendere l’aggiornamento del repository, e infine vedrete scritto <<Signature check passed>>, se per caso vi mostra error 6: occorre andare in <<Interface>> poi sull’interfaccia <<LAN>> premere EDIT, successivamente premere su <<Advance Setting>> e infine impostare i DNS vi consiglio quelli di Google ovvero 8.8.8.8 e 8.8.4.4 premete poi <<Save>> poi <<Save & Apply>>, se vi mostra ancora l’errore basta cliccare sull’interfaccia <<LAN>> il tasto <<Restart>> e riprovare.
Ora cerchiamo nel campo di ricerca <<luci-app-wireguard>> e premiamo sul tasto Install per installare i pacchetti che servono. A questo punto riavviate il router per fare installare correttamente l’installazione.
Rechiamoci ora in <<Network>> —> <<Interface>> e premiamo su <<Add interface>>.
Scriviamo ora nel campo nella nuova interfaccia quello che vogliamo io la chiamo con il nome Wireguard e protocollo mi raccomando impostate <<Wireguard VPN>>. Premete su <<Create interface>>.
I campi che sono evidenziati sono quelli da modificare, quindi, in Protocol impostate <<Wireguard VPN>>. Successivamente dobbiamo importare i dati creato prima su PC dal programma Wireguard. Ora cliccate su <<Load Configuration>> nel campo vuoto di testo inserite la prima parte dell’interface ovvero dell’interfaccia di Wireguard, poi premere su <<Import setting>>.
Ora spostatevi su <<Firewall Settings>> e selezionate wan come interfaccia (colore rosso).
[Interface]
PrivateKey = gNnEeXoG8pPGhbkeH9kmyaGEOXBqgKJPMZozBfpiyGE=
Address = 192.168.100.2/32
ListenPort= 13231
DNS = 8.8.8.8
Ora per importare i Peers occorre spostarsi sulla sezione <<Peers>> cliccare su <<Add Peer>> e importare i dati a mano come nella mia foto. Non utilizzate l’opzione per caricare perché vi chiede la chiave privata che a noi non serve in questo caso inserirla.
Compilate come vedrete in foto il resto dei dati <<Peer>> rimasti sull’interfaccia Wireguard su Windows, in pratica questi campi:
[Peer]
PublicKey = KPLCJuSADFcaO7ORX5BuPDCFFGECwpWHlChY1KzQNFQ= (esempio dell'immagine superiore)
AllowedIPs = 0.0.0.0/0 Route Allowed IP's= Abilitato
Endpoint = ip pubblic:13231 (qui ip pubblico della vostra connessione)
Configurazione Firewall:
Ora dobbiamo configurare il settaggio del firewall per consentire che la richiesta in uscita vada eseguita correttamente per farlo occorre digitare i seguenti comandi:
/ip firewall filter add action=accept chain=input comment="allow WireGuard" dst-port=13231 protocol=udp
/ip firewall filter add action=accept chain=input comment="allow WireGuard traffic" src-address=192.168.100.0/24/interface list member add interface=wireguard1 list=LAN
Ora dobbiamo impostare il NAT per fare uscire la connessione LAN dalla WAN per farlo occorre andare in <<IP>> poi su <<Firewall> selezionare <<NAT>, e poi sul tasto +. A questo punto occorre inserire i campi richiesti.
Spostatevi su <<Action>> e selezionate <<src-nat>> poi in <<To Address>> mettere l’ip del router che nel mio caso è 192.168.1.116. Premiamo su Applica e ok per confermare.
A questo punto, la configurazione è terminata. Basta collegare questo router OpenWrt a una seconda rete al di fuori di questo indirizzo IP, e la configurazione sarà completa. Ecco il mio risultato con la connessione in Wi-Fi esteso tramite l’Hotspot del telefono: vedo i miei dispositivi sotto una rete hotspot e riesco a collegarmi allo stesso indirizzo IP di casa.
ECCO IL RISULTATO:
Riesco ad accedere al mio router mikrotik con l’hotspot in wifi-extended in questa modalità del router supportando Wireguard.