Oggi vedremo come creare una VPN Point-to-Point (PtP) tra due dispositivi Mikrotik e come configurare il routing tra le due reti interne.
Inoltre, esploreremo la configurazione di WireGuard su MikroTik per garantire una connessione sicura e performante.
Analizzeremo due varianti di configurazione:
nella prima, entrambi i peers contatteranno l’endpoint remoto, mentre nella seconda solo il Mikrotik R2 chiamerà il Mikrotik R1.
Infatti, non è necessario configurare l’endpoint remoto su entrambi i dispositivi; ne basta uno solo.
In questo modo, è possibile stabilire una VPN anche se una delle due connessioni è dietro NAT.
Se l’IP pubblico è dinamico, basterà abilitare il servizio DDNS già presente su Mikrotik e inserire l’indirizzo fornito.
Ma che cos’è WireGuard?
WireGuard è una VPN leggera, compatibile con tutti i sistemi operativi (road warrior) e facile da configurare.
“Perdonami se tiro in ballo le criptovalute e Bitcoin, ma essendo legato anche a questo mondo mi piace fare paragoni in quel contesto”.
WireGuard funziona utilizzando un sistema di chiavi pubbliche e private, simile a quello dei wallet Bitcoin.
Ogni dispositivo che utilizza WireGuard ha una chiave privata (che rimane segreta) e una chiave pubblica (che viene condivisa con l’altro dispositivo).
La chiave privata è come la tua password segreta per il wallet, mentre la chiave pubblica è come l’indirizzo che dai a chi ti vuole inviare Bitcoin.
Per far comunicare due dispositivi tramite WireGuard, si crea un’interfaccia VPN su ciascun dispositivo, dove vengono configurate queste chiavi.
Una volta impostata l’interfaccia, si aggiunge un peer, indicando l’eventuale endpoint remoto, la porta di collegamento e gli indirizzi IP che devono passare attraverso il tunnel VPN.
Un dettaglio non trascurabile è che WireGuard non soffre di attacchi Man-in-the-Middle (MITM).
Ogni pacchetto è firmato e crittografato con chiavi che solo i dispositivi autorizzati possiedono, impedendo a eventuali hacker di intercettare o modificare la comunicazione.
La cosa interessante di WireGuard è che, una volta configurata, non richiede praticamente manutenzione. Inoltre, utilizza una sola porta UDP, quindi funziona perfettamente anche se uno dei dispositivi è dietro NAT o ci sono firewall.
È veloce, sicura e, grazie al supporto integrato su Mikrotik, si configura in pochi semplici passaggi.
Ma ora vediamo le configurazioni!
Configurazione Router R1 con chiamata all’endpoint remoto:
Iniziamo la configurazione di WireGuard su MikroTik partendo dal router R1, che gestirà la connessione Point-to-Point con l’endpoint remoto.
qua viene creata l’interfaccia wireguard, di default si mette in ascolto sulla porta 13231 UDP ma è possibile cambiarla con una porta a vostra scelta.
In automatico crea una private Key legata all’interfaccia e viene a sua volta generata anche la public Key.
Ovvio che dalla public Key non è possibile risalire alla private Key ma solo al contrario.
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard private-key=”YBkCFRm+RHh3TYxb6S4k7zCh42b6h5fp2PrulD3rvlI=”
public-key=”2NnQ8TOL+BS9+wbfj99bhkZDAgALv8CmQuOM8Tc4QnQ=”
qua si va a creare il peer cioè la chiamata (associazione al client remoto)
Interface: bisogna selezionare l’interfaccia wireguard desiderata visto che possono esserci più interfacce sullo stesso dispositivo.
Allowed Address: si mettono le classi di rete/ip remoti che possono passare.
Endopint Address: si mette l’indirizzo dell’altro dispositivo remoto.
Endpoint port: la porta di connessione del client remoto.
Public Key: La chiave pubblica della interfaccia wireguard remota
persistent keepalive: se è una VPN punto punto
/interface wireguard peers
add allowed-address=10.10.1.2/32,192.168.150.0/24 endpoint-address=IP_REMOTO endpoint-port=13231 interface=wireguard persistent-keepalive=30s public-key=”z1GaqMDcmGhGp6lMzx6ovDVAJ8+MtksqlAMA2qR1L1I=”
Qua sono configurati gli IP della LAN e dell’interfaccia wireguard
/ip address
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=10.10.1.1/30 interface=wireguard network=10.10.1.0
Abilitato il DHCP Client sulla WAN, qua in base alla connessione si configura un IP Statico, PPPoE ecc.
/ip dhcp-client
add interface=ether1
Le regole di Firewall Base.
In In-Interface bisogna mettere ovviamente l’interfaccia della connessionne, se è esempio una PPPoE dovrai selezionare il nome della PPPoE anche se è associata alla ether1.
Deve esserci anche la regola per accettare le richieste UDP 13231 della wireguard.
/ip firewall filter
add action=drop chain=input connection-state=invalid in-interface=ether1
add action=accept chain=input connection-state=established,related in-interface=ether1
add action=accept chain=input dst-port=13231 in-interface=ether1 protocol=udp
add action=drop chain=input in-interface=ether1
add action=drop chain=forward connection-state=invalid in-interface=ether1
add action=accept chain=forward connection-state=established,related in-interface=ether1
add action=drop chain=forward in-interface=ether1
Rotta statica per raggiungere la classe di rete remota dell’R2
/ip route
add disabled=no dst-address=192.168.150.0/24 gateway=10.10.1.2 routing-table=main
Nome del router
/system identity
set name=R1
Configurazione Router R1 SENZA chiamata all’endpoint remoto:
Replichiamo la configurazione vista prima
add listen-port=13231 mtu=1420 name=wireguard private-key=”YBkCFRm+RHh3TYxb6S4k7zCh42b6h5fp2PrulD3rvlI=”
public-key=”2NnQ8TOL+BS9+wbfj99bhkZDAgALv8CmQuOM8Tc4QnQ=”
Replichiamo la configurazione vista prima ma in questo caso manca l’endpoint address ed endpoint port!
/interface wireguard peers
add allowed-address=10.10.1.2/32,192.168.150.0/24 interface=wireguard persistent-keepalive=30s public-key=”z1GaqMDcmGhGp6lMzx6ovDVAJ8+MtksqlAMA2qR1L1I=”
Come sopra!
/ip address
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=10.10.1.1/30 interface=wireguard network=10.10.1.0
Come sopra!
/ip dhcp-client
add interface=ether1
Stessa configurazione precedente
/ip firewall filter
add action=drop chain=input connection-state=invalid in-interface=ether1
add action=accept chain=input connection-state=established,related in-interface=ether1
add action=accept chain=input dst-port=13231 in-interface=ether1 protocol=udp
add action=drop chain=input in-interface=ether1
add action=drop chain=forward connection-state=invalid in-interface=ether1
add action=accept chain=forward connection-state=established,related in-interface=ether1
add action=drop chain=forward in-interface=ether1
Come sopra!
/ip route
add disabled=no dst-address=192.168.150.0/24 gateway=10.10.1.2 routing-table=main
Come sopra!
/system identity
set name=R1
Configurazione Router R2
Ora vedremo la configurazione di WireGuard su MikroTik per il router R2, che completerà la connessione VPN Point-to-Point con R1.
Anche sull’R2 la configurazione è identica all’R1, ovviamene la chiave pubblica del peer dovrà essere quelle dell’R1.
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard private-key=”aJ4K/h5ee+9WL07OINp0Pw6RAr8Z7JLakhW78kiLfGk=”
public-key=”z1GaqMDcmGhGp6lMzx6ovDVAJ8+MtksqlAMA2qR1L1I=”
/interface wireguard peers
add allowed-address=10.10.1.1/32,192.168.100.0/24 endpoint-address=192.168.84.137 endpoint-port=13231 interface=wireguard persistent-keepalive=30s public-key=”2NnQ8TOL+BS9+wbfj99bhkZDAgALv8CmQuOM8Tc4QnQ=”
/ip address
add address=192.168.150.1/24 interface=ether2 network=192.168.150.0
add address=10.10.1.2/30 interface=wireguard network=10.10.1.0
/ip dhcp-client
add interface=ether1
nel caso della configurazione dell’R1 in peer senza enpoint address la regola della porta 13231 non è necessaria!
/ip firewall filter
add action=drop chain=input connection-state=invalid in-interface=ether1
add action=accept chain=input connection-state=established,related in-interface=ether1
add action=accept chain=input dst-port=13231 in-interface=ether1 protocol=udp
add action=drop chain=input in-interface=ether1
add action=drop chain=forward connection-state=invalid in-interface=ether1
add action=accept chain=forward connection-state=established,related in-interface=ether1
add action=drop chain=forward in-interface=ether1
/ip route
add disabled=no dst-address=192.168.100.0/24 gateway=10.10.1.1 routing-table=main
/system identity
set name=R2
In conclusione, la configurazione di WireGuard su MikroTik offre una soluzione semplice e sicura per gestire le connessioni VPN Point-to-Point.
Se ti appassiona il mondo Mikrotik, ho anche creato un corso completo dove tratto molte configurazioni pratiche! Lo trovi su Udemy a questo indirizzo.
Hai un’azienda ed hai bisogno di supporto o assistenza? Contattami direttamente! 🚀
Lascia un commento