Wireguard Mikrotik Pfsense

Wireguard site-to-site Mikrotik Pfsense
0
(0)

Vediamo come configurare una VPN site-to-site usando Wireguard tra Mikrotik e Pfsense.

Nello scenario che andremo a vedere entrambe le sedi, che chiameremo SEDE A e SEDE B, hanno IP Pubblico dinamico.

Premessa

  • Sul router Mikrotik deve esserci un servizio DDNS configurato e funzionante(scopri come fare by foisfabio.it)
  • Sul firewall Pfsense deve esserci un servizio DDNS configurato e funzionante(leggi questo articolo per configurarlo)
  • Il router Mikrotik deve avere RouterOS versione 7

Dispositivi utilizzati

  • Mikrotik CHR
  • Pfsense

Diagramma di rete Wireguard site-to-site Mikrotik Pfsense

Sede A – Configurazione Wireguard Mikrotik

Creazione interfaccia

  1. Entriamo nel nostro Mikrotik tramite Winbox e rechiamoci nella sezione Wireguard
  2. Clicchiamo su +(Add) per aggiungere una nuova interfaccia Wireguard
  3. Configuriamo l’interfaccia:
    • Name – wg-pfsense
    • Listen Port – 42323
    • Clicchiamo su Apply e salviamoci la Public Key che verrà generata, ci servirà nella configurazione del Pfsense
    • Clicchiamo su OK

Assegnazione indirizzo IP interfaccia Wireguard

  1. Andiamo nel menù IP –> Addresses
  2. Clicchiamo su +(Add)
  3. Configuriamo l’indirizzo IP dell’interfaccia:
    • Address – 172.16.16.1/30
    • Interface – wg-pfsense
    • Clicchiamo su Apply e poi su OK

Sede B- Configurazione Wireguard Pfsense

Installazione package

Se sul Pfsense non hai già installato il package Wireguard, puoi seguire la parte iniziale di questo articolo.

Creazione tunnel

Andiamo nel menù VPN e clicchiamo su WireGuard

Ci troveremo nella pagina dei tunnel Wireguard e procediamo a creare un nuovo tunnel cliccando sulla voce +Add Tunnel.

Procediamo alla configurazione del tunnel:

  1. Abilita – Verifichiamo che il tunnel sia abilitato
  2. Descrizione – Inseriamo una descrizione, es. wg-mikrotik
  3. Listen port – Inseriamo una porta sulla quale sarà di ascolto il tunnel, es. 42323
  4. Clicchiamo su Generate per generare una coppia di chiavi pubblica/privata. Annotiamoci la chiave pubblica da qualche parte, ci servirà successivamente.
  5. Interface Addresses – Assegniamo un indirizzo all’interfaccia di Wireguard, es. 172.16.16.2/30
  6. Clicchiamo su Save Tunnel

Abilitazione servizio

Andiamo sulla voce Impostazioni e procediamo con:

  • Abilitare il servizio Wireguard
  • Interface Group Membership – Only unassigned Tunnels
  • Deseleziona le voci Hide Secrets e Hide Peers
  • Clicchiamo su Salva
  • Clicchiamo su Applica le modifiche

Assegnazione interfaccia Pfsense

Andiamo nel menù Interfacce –> Assegnazioni

Ci troveremo nelle porte di rete disponibili una situazione simile con un’interfaccia da assegnare. Nel mio caso viene chiamata tun_wg0

Clicchiamo su +Aggiungi

Una volta aggiunta clicchiamo sul nome dell’interfaccia che nel mio caso si chiama OPT1 e procediamo a configurarla come da esempio sotto.

Abilitiamo l’interfaccia ed assegniamo lo stesso indirizzo IP che abbiamo dichiarato prima nella creazione del Tunnel Wireguard

Rinominiamo anche l’interfaccia OPT1 con un nome che ci permette di identificarla più facilmente

Infine clicchiamo su Salva e poi su Applica le modifiche

Sede A – Aggiunta peer Mikrotik

Aggiungiamo ora il peer(client) sul Mikrotik andando nella sezione Wireguard –> Peers

Clicchiamo su +(Add) e procediamo alla configurazione del peer:

  1. Interface – scegliamo l’interfaccia creata prima wg-pfsense
  2. Public key – inseriamo la public key che abbiamo salvato prima, relativa all’interfaccia Wireguard di Pfsense
  3. Endpoint – inseriamo il DDNS della SEDE B, pfsense.duckdns.org
  4. Endpoint port – inseriamo la porta di ascolto che abbiamo impostato su Pfsense, 42323
  5. Allowed Address – inseriamo l’IP dell’interfaccia remota del tunnel Wireguard 172.16.16.2 ed inseriamo la network della LAN remota che si trova dietro Pfsense, 192.168.140.0/24
  6. Preshared Key – impostiamo su Auto
  7. Persistent Keepalive – impostiamo 25sec, 00:00:25
  8. Clicchiamo su Apply
  9. Dopo aver cliccato su Apply, nel campo Preshared Key verrà generata le chiave pre-condivisa. Salviamoci da qualche parte la preshared key perchè ci servirà quando configureremo il peer su Pfsense
  10. Clicchiamo su OK

Sede B – Aggiunta peer Pfsense

Rechiamoci su Pfsense nella sezione VPN –> Wireguard ed poi clicchiamo su Peers

Clicchiamo su +Add Peer e configuriamolo come segue:

  1. Abilita – Spuntiamo la casella Enable Peer
  2. Tunnel – selezioniamo il tunnel creato precedentemente, tun_wg0 (wg-mikrotik)
  3. Dynamic Endpoint – Deselezioniamo la checkbox
  4. Endpoint – inseriamo il DDNS della SEDE A, mikrotik.duckdns.org e la porta di ascolto 42323
  5. Keep Alive – impostiamolo a 25 secondi
  6. Public Key – inseriamo la public key che abbiamo salvato prima, relativa all’interfaccia Wireguard del Mikrotik
  7. Pre-shared Key – inseriamo la preshared key che abbiamo generato precedentemente sul Mikrotik
  8. Allowed IPs – inseriamo l’IP dell’interfaccia remota del tunnel Wireguard 172.16.16.1
  9. Clicchiamo su +Add Allowed IP
  10. Aggiungiamo la network della LAN remota che si trova dietro il Mikrotik, 192.168.150.0/24
  11. Clicchiamo su Save Peer
  12. Clicchiamo su Applica le modifiche

Regole Firewall Mikrotik

Configuriamo ora la regola firewall per accettare le connessioni in ingresso per il tunnel Wireguard.

  1. Andiamo in IP –> Firewall
  2. Filter Rules
  3. Clicchiamo su + (Add)
  4. Configuriamo una rule nella chain di input che accetti il traffico in ingresso proveniente dall’interfaccia WAN(nell’esempio sotto è la pppoe-out1):
    • Chain – input
    • Protocol – UDP
    • Dst. port – 42323
    • In.interface – pppoe-out1
    • Action – Accept
  5. Inseriamo un commento per una più facile identificazione della regola cliccando su Comment ed inseriamo un commento tipo: Accetta connessioni Wireguard
  6. Cliccare su OK
  7. Cliccare su Apply e poi su OK

Una volta creata la regola assicuriamoci che non sia preceduta da un eventuale regola di DROP come nell’esempio sotto

Selezioniamo la nostra regola di Accept e trasciniamola sopra a quella di DOP

Regole Firewall Pfsense

Andiamo in Firewall –> Regole e selezioniamo l’interfaccia del tunnel Wireguard WG_MIKROTIK

Clicchiamo su Aggiungi(freccia verso l’alto) e creiamo una regola come sotto:

  • Azione – Consenti
  • Interfaccia – WG_MIKROTIK
  • Protocollo – Qualsiasi
  • Origine – Qualsiasi
  • Destinazione – Qualsiasi

Clicchiamo su Salva e poi su Applica le modifiche

Aggiunta Gateway Pfsense

Per permettere alla LAN 192.168.140.0/24 di raggiungere la network remota 192.168.150.0/24 dobbiamo creare un Gateway per l’interfaccia Wireguard e successivamente creare una rotta statica

Andiamo in Sistema –> Routing –> Gateways e clicchiamo su Aggiungi

Configuriamo il nuovo gateway in questo modo:

  • Disabilitato – Eliminiamo eventuale spunta
  • Interfaccia – WG_MIKROTIK
  • Nome – WG_Gateway
  • Gateway – 172.16.16.1
  • Clicchiamo su Salva e poi su Applica le modifiche

Aggiunta Rotta statica Pfsense

Sistema –> Routing –> Percorsi statici e clicchiamo su Aggiungi

Configuriamo la rotta statica come segue:

  • Rete di destinazione – 192.168.150.0/24
  • Gateway – WG_Gateway – 172.16.16.1
  • Clicchiamo su Salva e poi su Applica le modifiche

Aggiunta Rotta statica Mikrotik

Nel Mikrotik andiamo in IP –> Routes e clicchiamo su +(Add)

Configuriamo la rotta statica così:

  • Dst. Address – 192.168.140.0/24
  • Gateway – 172.16.16.2
  • Clicchiamo su Apply e poi su OK

Test di raggiungibilità tra le due sedi

Verifichiamo ora la raggiungibilità dal Mikrotik verso la SEDE B

Dal terminale del Mikrotik eseguiamo i comandi come da immagini sotto:

Verifichiamo ora la raggiungibilità dal Pfsense verso la SEDE A

Sul Pfsense andiamo in Diagnostica –> Ping ed eseguiamo i comandi come da immagini sotto:

Per ultimo verifichiamo la raggiungibilità tra due host delle due sedi:


Se l’articolo è stato di tuo gradimento esprimi il tuo voto

Per non perderti i nuovi post entra nel canale Telegram e WhatsApp

Se riscontri errori nell’articolo segnalalo tramite il modulo Contatti

Ti è stato utile questo post?

Clicca sulla stella per votare!

Voto medio 0 / 5. Numero voti: 0

Nessun voto finora! Sii il primo a valutare questo post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *