Come configurare WireGuard VPN Server in pfSense

Server VPN WireGuard in pfSense

Gabbia di protezione VPN è un nuovo protocollo robusto e molto veloce per la creazione di reti private virtuali, in questo articolo abbiamo visto come sia in grado di raddoppiare e persino triplicare OpenVPN o IPsec in velocità. Questo nuovo protocollo VPN è ideale per le configurazioni di accesso remoto con client mobili, siano essi smartphone, tablet o laptop, poiché consuma pochissime risorse e la connessione è davvero veloce. Il sistema operativo pfSense nella versione 2.5.0 ha ufficialmente incorporato questa nuova VPN, insieme a IPsec, L2TP e anche OpenVPN. Oggi ti mostreremo come configurare la VPN WireGuard da zero in pfSense 2.5.0 per connetterti da remoto.

Funzionalità VPN WireGuard

WireguardVPN è un software molto leggero che ci permetterà di configurare rapidamente e facilmente un tunnel VPN, per impostazione predefinita, utilizza la crittografia più moderna, senza la necessità di scegliere diversi algoritmi di crittografia asimmetrici, asimmetrici o hash, per impostazione predefinita abbiamo un suite per impostazione predefinita, a differenza di altri protocolli VPN. L'obiettivo di WireGuard è diventare la migliore VPN sia per utenti domestici che aziendali, e sta avendo successo perché è già stato integrato nel Linux Kernel per fornirci le migliori prestazioni possibili.

Per quanto riguarda la crittografia utilizzata, abbiamo ChaCha20 per crittografia simmetrica, autenticato con Poly1305 , quindi abbiamo AEAD. Fa anche uso di Curve25519 per ECDH, BLAKE2 per hashing, SipHash24 per chiavi hashtable e HKDF per la derivazione della chiave. Come hai visto, abbiamo i più moderni algoritmi crittografici utilizzati di default, e non possiamo cambiarli per altri al momento, devono essere questi sì o sì.

Con questa nuova VPN non avremo bisogno di gestire le connessioni o fare configurazioni difficili, funziona solo in modalità tunneling perché è una VPN L3, e utilizza il protocollo UDP come livello di trasporto e non permette di selezionare TCP, cosa possiamo fare è modificare la porta di ascolto per chi vogliamo. Naturalmente, il server WireGuard può essere dietro il NAT senza problemi, dovrebbe essere fatto solo un port forwarding. Altre caratteristiche interessanti sono che consente il roaming tra le reti in modo rapido e semplice, per essere sempre connesso da qualsiasi WiFi o rete 4G / LTE senza interrompere la connessione. Inoltre, possiamo anche abilitare il Kill-Switch per prevenire fughe di dati in caso di interruzione della VPN.

Infine, questa nuova VPN è compatibile con più sistemi operativi come Windows, Linux, Mac OS, FreeBSD, Android, e anche iOS . Ora il team di sviluppo di pfSense 2.5.0 ha incorporato WireGuard nel proprio sistema per impostazione predefinita, anche se in precedenza potevamo anche installarlo, ma non avevamo il supporto ufficiale.

Configurazione del server VPN WireGuard

Prima del rilascio di pfSense 2.5.0, se volevamo avere WireGuard su questo completo firewall, abbiamo dovuto installarlo manualmente sul sistema scaricando alcuni pacchetti compatibili con FreeBSD. Grazie al team di sviluppo di pfSense, a partire dalla versione 2.5.0 è già integrato di default nell'interfaccia grafica utente.

La prima cosa che dobbiamo fare è andare al " VPN/WireGuard "Sezione per accedere alla configurazione di questo nuovo protocollo VPN. Non appena entriamo nel menu, facciamo clic su «Aggiungi tunnel».

Nella configurazione del tunnel, dobbiamo abilitare il tunnel, dargli una descrizione e inserire quanto segue:

  • Indirizzo: indirizzo IPv4 o IPv6 del server VPN per l'interfaccia del tunnel.
  • Porta: per impostazione predefinita è 51820 UDP, ma possiamo passare a qualsiasi porta UDP.

pfSense incorpora un generatore di chiavi pubbliche / private per il server VPN con WireGuard, la nostra raccomandazione è di generare alcune chiavi per il client VPN e di fare nuovamente clic su "Genera" in modo che le seconde che vengono generate siano quelle della VPN server. Ad esempio, le seguenti chiavi sono quelle che utilizzeremo in seguito nel client VPN. Puoi aiutarti con un blocco note o un blocco note ++ per registrare la configurazione.

Per facilitare la configurazione di WireGuard con chiavi pubbliche e private, puoi anche utilizzare il strumento wireguardconfig che ci permetterà di generare automaticamente sia il server che i client, per poi adattarlo a pfSense.

E i secondi generati sono quelli del server VPN stesso con WireGuard.

Una volta che abbiamo le chiavi, dobbiamo cliccare su "Salva" e avremo creato il server VPN con la configurazione precedente:

Una volta che lo abbiamo, ora dobbiamo registrare i "peer", cioè i client VPN. Torniamo alla configurazione del server WireGuard e facciamo clic su "Aggiungi peer" che è in verde. Qui dovremo compilare alcune impostazioni, ma non è necessario riempirle tutte.

Ora spiegheremo a cosa servono ciascuna delle opzioni:

  • Descrizione: mettiamo una descrizione a questo cliente, ad esempio il nostro nome.
  • Endpoint: inseriamo l'indirizzo IP pubblico del client VPN.
  • Porta endpoint: mettiamo la porta del client VPN.

Se stai per configurare un client VPN, dove cambiano l'IP pubblico e la porta del client, allora dobbiamo lasciare vuote le opzioni "Endpoint" e "Endpoint Port" . Queste opzioni devono essere compilate se vogliamo configurare una VPN da sito a sito, ma in accesso remoto (Roadwarrior) non è necessario compilarle.

  • Keep alive: un valore in secondi, ogni tanto verifica che il tunnel sia ancora attivo, di default è disabilitato.

Ora vengono le impostazioni più importanti:

  • Chiave pubblica: dobbiamo mettere la chiave pubblica del client VPN, in precedenza hai visto come viene generata per il client, perché qui metteremo la chiave pubblica.
  • IP consentiti: se vogliamo che ci sia il reindirizzamento Internet e l'accesso a tutte le reti, mettiamo 0.0.0.0/0. La cosa più normale è che i client VPN di accesso remoto accedano a Internet tramite la VPN stessa, ma qui possiamo configurare l'accesso specifico a reti diverse.
  • Indirizzo Peer WireGuard: l'indirizzo IP del peer registrato.
  • Chiave precondivisa: opzionale, è possibile aggiungere una chiave precondivisa per migliorare ulteriormente la sicurezza.

Nel nostro caso, non abbiamo messo una chiave precondivisa, ma se la metti, sia nel pfSense che nel client VPN deve essere esattamente la stessa, e dobbiamo generare questa chiave con il pulsante blu che si trova nel pfSense. Non possiamo mettere la chiave precondivisa "12345678", ad esempio, dobbiamo usare il generatore pfSense.

Una volta configurato correttamente il server VPN WireGuard in pfSense 2.5.0, andremo a configurare la parte firewall, perché per impostazione predefinita è sempre in modalità blocco tutto.

Configurazione del firewall su WAN e WireGuard

Prima di connettere il primo client VPN, dobbiamo andare su "Firewall / Regole" e aggiungere una nuova regola sull'interfaccia WAN Internet. Aggiungiamo una nuova regola con le seguenti informazioni:

  • Azione: passaggio
  • Interfaccia: WAN
  • Famiglia di indirizzi: IPv4, IPv6 o entrambi
  • Protocollo: UDP
  • Fonte: qualsiasi (se hai intenzione di configurare un sito a sito con WireGuard, puoi inserire qui l'IP pubblico di origine per migliorare la sicurezza).
  • Destinazione: indirizzo WAN sulla porta 51820

Una volta configurata, facciamo clic su «Salva» per salvare questa regola e applicare le modifiche, come sempre quando aggiungiamo una nuova regola al firewall.

Una volta fatto ciò, dobbiamo ora andare al Interfaccia «WireGuard» che è stato creato automaticamente nel « Firewall / Regole «, Qui dovremo consentire tutte le comunicazioni una volta che è stato connesso, o solo quello che vogliamo, proprio come OpenVPN o IPsec.

Nella seguente configurazione, puoi vedere che abbiamo una regola con la seguente configurazione:

  • Azione: passaggio
  • Interfaccia: WireGuard
  • Famiglia di indirizzi: IPv4, IPv6 o entrambi
  • Protocollo: qualsiasi
  • Fonte: qualsiasi
  • Destinazione: qualsiasi

Facciamo clic su "Salva" e applichiamo le modifiche, come al solito. A questo punto siamo pronti per configurare i client VPN con WireGuard.

Configura i client VPN WireGuard e connettiti a pfSense

La configurazione dei client VPN con WireGuard è la stessa su tutte le piattaforme, avremo bisogno esattamente delle stesse informazioni. Nel nostro caso, abbiamo utilizzato uno smartphone Android, puoi scaricare l'app WireGuard ufficiale per Android e iOS di seguito:

Ma lo abbiamo anche per altri sistemi operativi come Windows, direttamente dal sito ufficiale di questo protocollo VPN. Una volta installato, potremo configurare facilmente il client.

Come abbiamo detto prima, la nostra raccomandazione è che, quando si generano le chiavi in ​​pfSense, si copino queste chiavi in ​​un blocco note, sia la chiave pubblica che la chiave privata. Inoltre, devi anche copiare la chiave pubblica del server. Fatto ciò, apriamo WireGuard e procediamo ad aggiungere un nuovo tunnel VPN, abbiamo tre opzioni:

  • Importa tutta la configurazione da file, se intendi configurare più client come Windows, Linux ecc., È normale avere un template con le diverse configurazioni.
  • Scansiona da codice QR: se utilizziamo lo strumento WireGuardConfig possiamo farlo facilmente.
  • Crea da zero: questa è l'opzione che abbiamo scelto.

Quando si aggiunge una nuova VPN, dobbiamo inserire tutte o quasi tutte le informazioni che ci chiede, è il client VPN:

  • Nome: metteremo una descrizione al tunnel VPN, un nome descrittivo nel caso ne abbiamo diversi.
  • Chiave privata: inseriamo la chiave privata che abbiamo precedentemente copiato dal blocco note.
  • Chiave pubblica: quando si immette la chiave privata, la genera automaticamente
  • Indirizzi: IPv4 o IPv6 del client, in questo caso abbiamo precedentemente configurato 10.9.0.2/32, mettiamo questo.
  • Porto: lo lasciamo vuoto
  • Server DNS: possiamo mettere un server DNS specifico, o direttamente che risolve il tunnel.
  • MTU: lo lasciamo vuoto.

Ora facciamo clic su aggiungi coppia e verranno visualizzate più configurazioni, queste configurazioni sono quelle del server VPN.

  • Peer: la chiave pubblica del server VPN.
  • Chiave precondivisa: se non l'abbiamo configurata la lasciamo vuota, se l'abbiamo configurata la copiamo esattamente allo stesso modo.
  • Mantenimento persistente: mantenere in vita, si consiglia di lasciarlo vuoto.
  • Ultimo punto: dobbiamo mettere la sintassi "IP: port", quindi, possiamo mettere: "vpn.redeszone.net:51820".
  • IP consentiti: se vogliamo metterli tutti, mettiamo 0.0.0.0/0. Abbiamo anche un pulsante per escludere gli IP privati.

Una volta fatto, clicchiamo su salva e potremo vedere tutte le impostazioni effettuate.

Una volta aggiunto e verificato che tutto sia corretto, procediamo alla connessione e vedremo che c'è scambio di traffico e che la VPN funziona perfettamente.

Se non abbiamo ricevuto pacchetti, significa che c'è qualcosa che non va e il tunnel VPN WireGuard non è stato stabilito correttamente. Se questo accade a te, dovrai rivedere tutta la configurazione effettuata e rivedere i log di pfSense per vedere cosa sta succedendo.

Speriamo che con questo tutorial tu sia stato in grado di configurare il server VPN WireGuard nel tuo magnifico pfSense 2.5.0