Configura il server OpenVPN in pfSense con la migliore sicurezza

Il sistema operativo pfSense, che è orientato a firewall e router, ne ha diversi VPN protocolli per interconnettere i siti tramite Site-to-Site VPN e possiamo anche configurare l'accesso remoto VPN per interconnettere tra loro diversi client mobili e in modo che tutto il traffico Internet passi attraverso il sistema operativo stesso. OpenVPN è uno dei software più utilizzati per creare reti private virtuali, grazie alla sua sicurezza, flessibilità e buon funzionamento. Oggi in questo articolo spiegheremo passo passo come configurare il server OpenVPN che si trova all'interno di pfSense.

Configura il server OpenVPN in pfSense

Che cos'è ea cosa serve OpenVPN integrato in pfSense?

OpenVPN è un software che ci permette di costruire reti private virtuali, avremo un canale di controllo dove sarà gestito il sollevamento del tunnel e la negoziazione dei protocolli di crittografia, e avremo un canale dati dove sarà tutto il traffico del tunnel punto a punto crittografato. Uno dei punti di forza di OpenVPN in pfSense è che la stragrande maggioranza delle opzioni disponibili è disponibile attraverso un'interfaccia utente grafica molto intuitiva, questo ci permetterà di configurarlo senza la necessità di incorporare manualmente alcuna direttiva nel campo "opzioni". Avanzate. Il software OpenVPN che abbiamo integrato in pfSense ci permetterà di creare e configurare due tipi di architetture:

  • VPN di accesso remoto - Remoto i client si connetteranno al server VPN pfSense e usciranno su Internet tramite noi. Potranno anche accedere alle sottoreti che indichiamo. Questo tipo di VPN è rivolto a telelavoratori, tecnici di rete e di sistema, ecc.
  • VPN da sito a sito : questa architettura ci permette di intercomunicare un sito con un altro, di intercomunicare diversi siti attraverso Internet e che tutto il traffico è protetto punto a punto. Ad esempio, con questo tipo di VPN possiamo comunicare uffici, sedi aziendali, ecc.

OpenVPN supporta dozzine di configurazioni diverse, sia per migliorare le prestazioni che la sicurezza. pfSense consente diversi tipi di autenticazione, ma il più consigliato è basato su certificati SSL / TLS per garantire autenticità, riservatezza e integrità e non è consigliabile utilizzare chiavi precondivise. Oltre a incorporare l'autenticazione basata su certificati SSL / TLS, potremmo anche incorporare un'autenticazione aggiuntiva con nome utente / password, per avere un sistema più robusto. pfSense permette di esportare la chiave privata dei certificati con una password, in questo modo, per poter utilizzare questi certificati dovremmo incorporare anche una password aggiuntiva, altrimenti non funzionerebbe.

Il server OpenVPN integrato in pfSense ci consentirà di connetterci a casa nostra o di lavorare da remoto, in modo rapido e sicuro, indipendentemente dal fatto che la rete sia cablata o WiFi. Tutto il traffico sarà crittografato end-to-end dal nostro client OpenVPN (installato su un computer, smartphone o tablet) al server pfSense OpenVPN. Un dettaglio molto importante è che il server OpenVPN deve essere installato in una connessione Internet al di fuori di CG-NAT e con le regole nel firewall aperte per consentire la connessione, altrimenti non saremo in grado di connetterci tramite Internet.

Ovviamente, sul server possiamo aggiungere diverse sottoreti per instradare il traffico attraverso le diverse sottoreti che abbiamo in pfSense e possiamo persino configurare nel firewall se vogliamo o meno consentire quegli accessi da uno specifico indirizzo IP del server OpenVPN. Con OpenVPN abbiamo due modi per gestire i pacchetti e come funzionano a livello di livello di trasporto:

  • TUN : questa modalità operativa consente l'incapsulamento di tutti i pacchetti che vengono trasportati attraverso di essa come segmenti TCP o datagrammi UDP. A tutti i client verrà fornita una nuova sottorete specifica, per impostazione predefinita la sottorete di OpenVPN è 10.8.0.0/24 ma possiamo configurare quella che vogliamo.
  • TAP : questa modalità operativa simula un'interfaccia di rete Ethernet, è anche nota come bridge e ciò che fa questo tunnel virtuale è incapsulare direttamente i pacchetti Ethernet. La modalità di funzionamento bridge è utile per intercomunicare facilmente gli utenti remoti, ma se la rete privata di origine corrisponde a quella di destinazione, avremo un problema di routing e la comunicazione non funzionerà.

In questo tutorial per configurare OpenVPN in pfSense useremo un file sottorete virtuale 10.8.0.0/24 dove avremo tutti i client VPN quando si connetteranno, sarà molto facile identificare i diversi client VPN che abbiamo connesso alla rete, inoltre, possiamo "forzare" in modo che ogni client con un certificato specifico abbia sempre il stesso indirizzo IP privato del tunnel VPN.

In questo manuale ti mostreremo come realizzare una configurazione OpenVPN molto sicura in pfSense, personalizzando gli algoritmi di crittografia simmetrica, asimmetrica e hash. In questo modo, possiamo avere la migliore crittografia possibile delle comunicazioni.

Riepilogo della crittografia da utilizzare

  • Certificati digitali : OpenVPN consente l'uso di certificati digitali basati su RSA o anche EC (curve ellittiche) , utilizzeremo l'algoritmo EC secp521r1, sebbene ne abbiamo molti altri disponibili tramite la gestione dei certificati pfSense. L'algoritmo hash che useremo sarà SHA512 , uno dei più sicuri che possiamo attualmente utilizzare. Tutti i client VPN dalla versione 2.4 dovrebbero essere compatibili con questa configurazione, nel nostro caso, sia il server che i client utilizzano OpenVPN 2.5 o versioni successive, quindi non dovrebbero esserci problemi.
  • Canale di controllo OpenVPN : useremo TLS 1.3 per la massima sicurezza e sempre utilizzando PFS (Perfect Forward Secrecy). Utilizzeremo le tre suite crittografiche di TLS 1.3 per stabilire la comunicazione: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 e TLS_AES_128_GCM_SHA256. Se vuoi controllare se il tuo server o client supporta questo tipo di crittografia, devi mettere "openvpn –show-tls" nella console.
  • Canale dati OpenVPN : utilizzeremo l'algoritmo di crittografia simmetrica AES-256-GCM, uno dei più sicuri attualmente e che è stato incorporato in OpenVPN 2.4 e versioni successive. Tuttavia, utilizzeremo anche CHACHA20-POLY1305 e AES-128-GCM affinché il client VPN scelga quello che desidera, dando priorità al primo. Se vuoi controllare se il tuo server o client supporta questi tipi di crittografia, devi inserire nella console "openvpn –show-ciphers".

Per definire nel canale dati che vogliamo utilizzare con TLS 1.3, dovremo usare la direttiva “tls-ciphersuites” invece del tipico “tls-cipher” come abbiamo sempre usato. Sarebbe il seguente:

tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

Oltre a queste misure di sicurezza, includeremo una firma HMAC per la prima negoziazione TLS, questo ci consentirà di proteggere il server OpenVPN da possibili attacchi DoS. Se il client non dispone della firma HMAC corretta, viene automaticamente bloccato e non procederà alla verifica dei certificati digitali. Useremo tls-crypt che è disponibile da OpenVPN 2.4 e versioni successive, per avere la massima sicurezza perché ci consente di autenticare e crittografare il canale in modo che nessuno sia in grado di catturare questa chiave precondivisa.

Infine, utilizzeremo il protocollo UDP al posto del TCP, poiché è più forte contro gli attacchi denial of service, dobbiamo ricordare che UDP è non connettivo, inaffidabile e orientato alla connessione. Tuttavia, possiamo utilizzare TCP senza alcun problema per fornire alla VPN tutti i vantaggi di questo protocollo.

Installa il plugin OpenVPN Client per generare la configurazione

Sebbene OpenVPN sia installato di default in pfSense, sia in modalità server che client, non abbiamo un pacchetto preinstallato che ci consenta di generare automaticamente la configurazione per i client. Se andiamo al gestore dei pacchetti in «System / Package Manager» e andiamo alla scheda «Pacchetti disponibili» possiamo installare il pacchetto «OpenVPN-client-export» che ci permetterà di svolgere proprio questa azione, per facilitare notevolmente la configurazione dei client, importando la configurazione del server con i relativi certificati digitali.

Una volta installati, saremo pronti per passare alla fase successiva, creando i certificati digitali.

Crea certificati digitali in pfSense stesso

Per configurare un server OpenVPN con autenticazione "Accesso remoto SSL / TLS", dobbiamo utilizzare certificati digitali. Dovremo creare un'autorità di certificazione (CA) con cui firmare i diversi certificati, dobbiamo creare un certificato specifico per il server OpenVPN e il tipo di server, nonché tutti i certificati digitali dei client VPN che vogliamo registrare .

Possiamo anche creare un elenco di revoche di certificati, se un certificato è compromesso perché lo abbiamo perso, possiamo cancellarlo direttamente in modo che non sia valido. Nel caso in cui un utente illegittimo lo utilizzi, non sarai in grado di connetterti al nostro server VPN in alcun modo.

Crea la CA (Autorità di certificazione)

Nella sezione "CA" è dove dobbiamo cliccare su "Aggiungi" per creare una nuova autorità di certificazione, fare ciò è essenziale per far funzionare correttamente tutti i certificati digitali, sia il server che quelli dei client VPN che verranno utilizzati . Collegare. In questo menu dobbiamo scegliere le seguenti opzioni:

  • Crea / Modifica CA
    • Nome descrittivo: mettiamo un nome descrittivo a questa CA, qualunque cosa vogliamo.
    • Metodo: creare un'autorità di certificazione interna.
  • Autorità di certificazione interna
    • Tipo di chiave: ECDSA con secp521r1 compatibile con OpenVPN.
    • Algoritmo di digest: sha512
    • Lifetime Days: 3650 (10 anni)
    • Nome comune: il CN deve essere un nome descrittivo, che descrive in modo univoco questa CA. Nel nostro caso abbiamo solo una CA per OpenVPN, quindi abbiamo semplicemente messo "openvpn-ca"
    • Codice Paese: nessuno. Non è più necessario compilare i nuovi certificati OpenVPN.

La configurazione della CA sarebbe la seguente:

Nei diversi menù possiamo scegliere altre opzioni di configurazione, come importare una CA che abbiamo già creato, oppure creare una CA intermedia, creeremo una CA e poi i certificati, senza utilizzare alcuna CA intermedia.

Saremo anche in grado di scegliere tra RSA o ECDSA e persino utilizzare diverse lunghezze di chiave RSA e diversi algoritmi EC per creare la CA. In "Digest algoritmo" possiamo scegliere diversi algoritmi di hash, i più consigliati sono sha256, sha384 e sha512, non dovresti mai usare sha1 per sicurezza.

Una volta creata la CA, apparirà nell'elenco delle CA come puoi vedere qui:

In questo menu possiamo vedere il numero di certificati ad esso associati, il CN, la validità del certificato e se attualmente abbiamo questa CA in uso. Quando abbiamo una CA o un certificato in uso, non saremo in grado di rimuoverlo. Nella sezione «Azioni» possiamo modificare la descrizione del certificato, esportare la chiave pubblica della CA, la chiave privata, rinnovare la CA e persino eliminare la CA che abbiamo appena creato.

Crea il certificato del server OpenVPN

Ora dobbiamo creare il certificato che utilizzerà il server OpenVPN integrato in pfSense. Andiamo nella sezione “Certificati” e clicchiamo su “Aggiungi / Firma”, avremo sempre un certificato preconfigurato in pfSense perché il protocollo HTTPS lo usa per connettersi, altrimenti non potrebbe funzionare. Questo certificato viene creato automaticamente quando si installa il sistema operativo.

Il menu di creazione del certificato è molto simile al precedente, dovremo scegliere tra tre opzioni:

  • Metodo:
    • Crea un certificato interno.
    • Importa un certificato esistente.
    • Crea una richiesta di firma del certificato.
    • Firma una richiesta di firma del certificato.

Selezioneremo la prima opzione, creare un certificato interno.

Successivamente, dovremo dargli un nome descrittivo, qualunque cosa vogliamo, e la configurazione deve essere la seguente:

  • Aggiungi / Firma un nuovo certificato
    • Metodo: creare un'autorità di certificazione interna.
    • Nome descrittivo: mettiamo un nome descrittivo a questo certificato, qualunque cosa vogliamo.
  • Certificato interno
    • Autorità di certificazione: dobbiamo scegliere la CA precedente che abbiamo appena creato nel passaggio precedente.
    • Tipo di chiave: ECDSA con secp521r1 compatibile con OpenVPN. Lo stesso della CA.
    • Algoritmo di digest: sha512
    • Lifetime Days: 3650 (10 anni)
    • Nome comune: il CN deve essere un nome descrittivo, che descrive in modo univoco questo certificato del server. Nel nostro caso abbiamo solo un certificato del server, quindi abbiamo semplicemente indicato openvpn-server.
    • Codice Paese: nessuno. Non è più necessario compilare i nuovi certificati OpenVPN.

Se abbiamo un certificato con una durata superiore a 398 giorni, è possibile che ci dia errori su alcune piattaforme, questo è in generale, ma non per OpenVPN. Pertanto, possiamo mettere la durata che vogliamo senza problemi, non ci darà un fallimento.

In fondo, dobbiamo scegliere le seguenti opzioni:

  • Attributi del certificato:
    • Tipo di certificato: certificato del server
    • Nome alternativo: possiamo lasciarlo senza niente, completamente vuoto.

Dobbiamo tenere presente che in questo momento stiamo configurando il certificato digitale per il server OpenVPN, quindi, dobbiamo scegliere "Certificato server".

La sezione "Nome alternativo" è comunemente usata per i certificati IPsec, ma non la useremo in OpenVPN.

Una volta creato, lo vedremo nell'elenco dei certificati, inoltre, possiamo anche vedere la CA con cui abbiamo firmato il certificato e se è di tipo server.

Questo certificato digitale per il server è quello che dovremo mettere durante la configurazione del server OpenVPN in pfSense, dobbiamo ricordare molto bene il nome che gli abbiamo dato, perché in seguito ci porterà un elenco con tutti i certificati.

Crea certificati per tutti i client

Per creare uno o più certificati digitali per i client, dobbiamo eseguire esattamente la stessa procedura del certificato del server.

  • Aggiungi / Firma un nuovo certificato
    • Metodo: creare un'autorità di certificazione interna.
    • Nome descrittivo: mettiamo un nome descrittivo a questo certificato client.
  • Certificato interno
    • Autorità di certificazione: dobbiamo scegliere la CA precedente che abbiamo creato nel primo passaggio.
    • Tipo di chiave: ECDSA con secp521r1 compatibile con OpenVPN. Lo stesso della CA.
    • Algoritmo di digest: sha512
    • Lifetime Days: 3650 (10 anni)
    • Nome comune: il CN deve essere un nome descrittivo, che descrive in modo univoco questo certificato client. Nel nostro caso abbiamo solo un certificato client, quindi abbiamo semplicemente indicato openvpn-client1.
    • Codice Paese: nessuno. Non è più necessario compilare i nuovi certificati OpenVPN.

Nella sezione "Attributi del certificato" dovremo configurarlo come segue:

  • Attributi del certificato:
    • Tipo di certificato: certificato utente
    • Nome alternativo: possiamo lasciarlo senza niente, completamente vuoto.

Una volta creato, possiamo vedere il nuovo elenco di certificati creati in pfSense.

Se clicchiamo su modifica, l'unica cosa che possiamo fare è modificare il nome descrittivo, ma possiamo anche esportare la chiave privata con una passphrase, se mettiamo una password, la chiave privata stessa verrà crittografata con AES-256-CBC per proteggerne il contenuto e, quindi, evitare che se cade nelle mani sbagliate possano leggerlo e utilizzarlo. Questo è ciò che abbiamo utilizzato per esportare il certificato dei clienti, come ti mostreremo in seguito.

Se vogliamo creare più certificati cliente possiamo farlo allo stesso modo, tutto quello che dobbiamo fare è inserire una diversa descrizione e anche un diverso CN.

Una volta terminata la creazione di tutti i certificati dei client che si collegheranno al server OpenVPN, procediamo passo passo alla configurazione del server.

Configura il server OpenVPN con tutte le opzioni spiegate

Per configurare il server OpenVPN, tutto quello che dobbiamo fare è andare nel menu principale di pfSense, cliccare sulla sezione "VPN" e selezionare " OpenVPN ".

Nella sezione "OpenVPN" dobbiamo fare clic su "Server" e fare clic su "Aggiungi" per aggiungere un nuovo server OpenVPN.

All'interno della configurazione del server OpenVPN, dobbiamo scegliere le seguenti opzioni:

  • Informazioni generali:
    • Modalità server: accesso remoto (SSL / TLS)
    • Protocollo: UDP
    • Modalità dispositivo: tun
    • Interfaccia WAN
    • Porta locale: 1194, per impostazione predefinita è questa porta, si consiglia di cambiarla.
    • Descrizione: mettiamo una descrizione di questo server OpenVPN, perché possiamo crearne diversi.

Nella sezione "Protocollo" abbiamo diverse opzioni di configurazione, per impostazione predefinita è "solo UDP su IPv4", poiché possiamo anche usare TCP, e anche TCP e UDP, e anche per reti IPv6, se usiamo questo protocollo. netto. Nella sezione "Device Mode" possiamo scegliere tun o tap, come abbiamo spiegato in precedenza, tun è al livello del layer 3 e tap è al livello del layer 2, con i suoi punti di forza e di debolezza. Nella sezione "Interfaccia", la cosa più normale è usare la WAN, ma possiamo essere in ascolto con questo server OpenVPN su tutte le interfacce. Infine in “Local port” possiamo modificare la porta TCP e / o UDP che vogliamo, si consiglia di non utilizzare la porta di default che è la 1194.

Nel " Impostazioni crittografiche "Possiamo configurare tutto ciò che riguarda i certificati digitali SSL / TLS, quindi spieghiamo tutte le opzioni:

  • Impostazioni crittografiche
    • Configurazione TLS: abilitiamo l'utilizzo di una chiave TLS, per utilizzare la tls-crypt, clicchiamo sulla generazione automatica della chiave TLS. Quando si salvano le modifiche, verrà visualizzato se si desidera utilizzare "Autenticazione" o anche "Crittografia", quest'ultima è consigliata per utilizzare il nuovo tls-crypt invece di tls-auth che avevamo in precedenza.
    • Autorità di certificazione peer: selezioniamo la CA che abbiamo creato nello stesso pfSense per questo server OpenVPN.
    • Elenco di revoche di certificati peer: se creiamo un elenco di revoche di certificati, lo creiamo nella sezione “System> Cert.Manager” e selezioniamo qui l'elenco che abbiamo creato in precedenza.
    • Certificato del server: scegliamo il server OpenVPN, nel nostro caso è "OpenVPN_ServidorOVPN (Server: Sì)"
    • Lunghezza parametro DH: solo ECDH
    • Curva ECDH: scegliamo secp521r1

Nella sezione “Data crittografia Nella sezione Negoziazione "lo abilitiamo e scegliamo i cifrari simmetrici che vogliamo utilizzare per il canale dati. Nel nostro caso, abbiamo scelto un totale di 3: AES-256-GCM, AES-128-GCM e anche il nuovo CHACHA20-POLY1305 che hanno recentemente incorporato. Dobbiamo anche scegliere un algoritmo «Fallback» nel caso in cui il client OpenVPN non sia compatibile, in questo caso scegliamo AES-256-CBC, ma se vuoi la massima sicurezza, ti consigliamo di scegliere AES-256-GCM per forzarlo a non connettersi Se non usiamo una crittografia forte, niente da usare AES-256-CBC, se ci sono vecchi client dobbiamo aggiornarli.

In "Auth Digest Algorithm" sceglieremo SHA256 o SHA512, funzioni hash sempre sicure.

Nella sezione “Hardware Crypto”: se abbiamo l'accelerazione della crittografia hardware, la sceglieremo qui in modo che la connessione alla VPN funzioni più velocemente, se non la abbiamo o non vogliamo abilitarla, lasciamo il valore di default.

In «Certificate Depth» selezioniamo «One (Client + Server)».

Nella sezione «Impostazioni Tunnel» dovremo configurare le seguenti opzioni:

  • Rete Tunnel IPv4: metteremo la sottorete specifica per i client OpenVPN, deve essere una sottorete libera che non abbiamo utilizzato in precedenza. Nel nostro caso abbiamo scelto 10.8.0.0/24 che è l'impostazione predefinita in questo software, ma possiamo usare qualsiasi sottorete.
  • Rete tunnel IPv6: uguale a IPv4, ma se utilizzi reti IPv6.
  • Reindirizza gateway IPv4 e IPv6: se abilitiamo questa opzione, tutto il traffico dai client OpenVPN passerà attraverso il server OpenVPN e avrà accesso a tutte le sottoreti del sistema operativo, possiamo bloccare l'accesso a determinate sottoreti tramite le opzioni di configurazione del firewall, ma i client riceverà il percorso per raggiungere tutte le sottoreti. Se stiamo per fare Full-Tunnel VPN, attiviamo questa opzione, se useremo Split-Tunnel, lo disabiliteremo e dovremo inserire le sottoreti a cui vogliamo che abbiano accesso di seguito.
  • Connessioni simultanee: 10, è il numero massimo di client connessi simultaneamente, questo dipenderà dalle tue esigenze.
  • Consenti compressione: Rifiuta, non vogliamo la compressione per evitare gli attacchi.
  • Compressione push: saremo in grado di fornire questa opzione di compressione (nessuna compressione) ai client.
  • Comunicazione tra client: possiamo consentire o negare che i client OpenVPN possano comunicare tra loro, per sicurezza è consigliabile disabilitarlo, ma in alcuni casi è necessario e addirittura consigliato che ci sia comunicazione, questo dipenderà dalle vostre esigenze.
  • Connessione duplicata: questa opzione dovrebbe normalmente essere disabilitata, ogni client OpenVPN dovrebbe avere le proprie credenziali e non utilizzare lo stesso client con lo stesso certificato per connettersi. Questa opzione è utile se vogliamo utilizzare gli stessi certificati sul nostro smartphone, computer e tablet (3 dispositivi) e ci collegheremo contemporaneamente. La nostra raccomandazione è di rilasciare un certificato per ogni dispositivo.

In "Impostazioni client" possiamo fornire ai client un IP dinamico, quindi possiamo specificare che ogni client ha un IP dell'intervallo specifico 10.8.0.0/24. In "Topology" scegliamo "subnet" che è molto più efficiente di net30 che è il vecchio modo.

In «Impostazioni ping» possiamo configurare i ping per vedere se un client è ancora connesso o ha perso la connettività.

In "Impostazioni client avanzate" possiamo configurare il file DNS server, server DNS esterni come il popolare 8.8.8.8 o un server DNS locale dallo stesso pfSense. Possiamo anche selezionare l'opzione "Blocca l'accesso ai server DNS" tranne quelli del tunnel VPN per migliorare la sicurezza.

Nella sezione "Configurazione avanzata" possiamo aggiungere ulteriori regole avanzate che non abbiamo nell'interfaccia grafica utente, ad esempio, siamo interessati a negoziare sempre almeno con TLS 1.3, se un client non è compatibile non si connetterà, perché non abiliteremo TLS 1.2.

Come abbiamo spiegato prima, quando salviamo per la prima volta la configurazione del server OpenVPN, nella sezione "Chiave TLS" vedremo la chiave TLS generata automaticamente da pfSense, e dobbiamo scegliere "Crittografia e autenticazione TLS".

Una volta configurato, possiamo vedere il riepilogo della configurazione di seguito:

Un'altra configurazione che possiamo fare riguardo alle rotte è che, invece di obbligare tutti i client a inviare tutto il traffico attraverso il tunnel VPN, possiamo definire che possiamo accedere solo a determinate reti, quelle che vogliamo, e automaticamente i client che riceveranno il rotte verso queste reti.

Una volta configurato il server OpenVPN, configureremo il firewall per consentire le connessioni in entrata.

Configurare le regole sul firewall per consentire l'accesso

Nella sezione "Firewall / Regole" facciamo clic su WAN e creiamo una regola con i seguenti valori:

  • Azione: PASS
  • Interfaccia: WAN
  • Famiglia di indirizzi: IPv4
  • Protocollo: UDP
  • Fonte: qualsiasi, qualsiasi origine poiché non sempre sappiamo quale IP pubblico avremo
  • Destinazione: indirizzo WAN nella porta OpenVPN 1194 o nella porta che abbiamo configurato sul server.

Salviamo e avremo la regola creata nella WAN Internet.

Ora dobbiamo andare alla sezione “Firewall / Regole / OpenVPN”, in questa sezione andremo a definire gli accessi dei client OpenVPN. Se vogliamo consentire ai client OpenVPN di accedere a qualsiasi sottorete pfSense e anche a Internet, dovremo creare una regola "Passa tutto", definendo quanto segue:

  • Azione: PASS
  • Interfaccia: OpenVPN
  • Famiglia di indirizzi: IPv4
  • Protocollo: qualsiasi
  • Fonte: qualsiasi
  • Destinazione: qualsiasi

Se vogliamo creare regole specifiche per negare il traffico a determinate sottoreti, dovremo creare regole che soddisfino questa condizione.

Una volta che avremo accesso da Internet WAN, e anche a qualsiasi sottorete del sistema operativo e reindirizzamento a Internet, esporteremo il file di configurazione di OpenVPN per i client.

Esporta il file di configurazione di OpenVPN per i client

Andiamo alla sezione "VPN / OpenVPN / Client Export", qui configureremo l'estensione per generare la configurazione automatica per i client:

  • Remote Access Server: sceglieremo il server VPN che abbiamo configurato, potremo averne diversi, quindi sceglieremo quello che ci interessa.
  • Risoluzione del nome host: il dominio DDNS che abbiamo configurato in pfSense, o l'indirizzo IP della WAN, avremo diverse possibilità.
  • Verifica server CN: Automatico: utilizza verifica-x509-nome
  • Blocca al di fuori del DNS: abilitiamo questa opzione.
  • Usa porta locale casuale: abilitiamo questa opzione.

Una volta che tutto quanto sopra è stato configurato, dobbiamo fare clic sui client da esportare, la cosa più normale è selezionare "Configurazioni in linea: la maggior parte dei clienti" ed esporterà la CA, la chiave pubblica e privata del certificato del cliente, e tutta la configurazione.

La nostra raccomandazione è di scegliere questa opzione da «Configurazioni in linea: la maggior parte dei client», ma aggiungendo la chiave privata del client crittografato, in modo che se questo file di configurazione cade nelle mani sbagliate, non può accedere al nostro server VPN. Per esportare la chiave privata crittografata, dobbiamo andare nella sezione "System / Cert Manager" e andare su "Modifica" il certificato del client, inserire una passphrase e fare clic su "Esporta chiave privata":

Ora con un editor di testo, apriamo questa chiave crittografata e il file di configurazione appena scaricato:

  • Nel file di configurazione completo di OpenVPN cancelliamo tutto ciò che è all'interno « »
  • Copiamo il contenuto completo della chiave privata esportata all'interno « »E salva le modifiche.

Ora, quando si utilizza la chiave privata per connettersi al server, dovremo inserire questa password che protegge il certificato. Ora controlleremo che il servizio sia attivo e ci collegheremo con il primo client.

Controlla lo stato del servizio e dei client connessi

Nella sezione “Stato / OpenVPN” possiamo vedere se è attivato o meno, lo attiviamo e colleghiamo il primo client senza alcun problema.

Un ulteriore consiglio che puoi fare con pfSense è quello di fornire lo stesso client VPN che utilizza un certificato specifico con lo stesso indirizzo IP sempre. Per fare questo, dobbiamo semplicemente entrare in «Client Specific Overrides», aggiungerne uno nuovo, scegliere il server e il CN del client specifico e nella sezione «Advanced» mettiamo:

ifconfig-push 10.8.0.2 255.255.255.0;

E questo client VPN con quel determinato CN avrà sempre questo indirizzo IP privato all'interno del tunnel VPN.