Come configurare IPsec VPN su PfSense Firewall
Questo articolo riguarda la protezione del livello IP utilizzando la rete privata virtuale (VPN), nota anche come IPsec (Internet Protocol Security) sul noto firewall open source PfSense. Due componenti del protocollo IPsec sono Authentication Header (AH) e Encapsulating Security Payload (ESP) per fornire funzionalità di integrità dei pacchetti, autenticazione e sicurezza della privacy. I meccanismi di sicurezza crittografica vengono utilizzati in IPsec per proteggere le comunicazioni sul livello IP. Il protocollo IPSec consente la crittografia e l’autenticazione di tutto il traffico del livello IP tra la posizione locale e quella remota.
PfSense Firewall utilizza uno strumento Strongswan open source che fornisce funzionalità VPN IPsec. Entrambe le fasi di IPsec (condivisione delle chiavi e crittografia) sono implementate dallo strumento Strongswan su piattaforme Linux/Unix. Fornisce Internet Key Exchange (IKE) o la condivisione automatica delle chiavi tra nodi o gateway VPN IPsec e quindi utilizza l’implementazione del kernel Linux/Unix di Autenticazione (AH) e Crittografia (ESP). Stongswan utilizza l’implementazione OpenSSL di algoritmi crittografici (come AES128/256, MD5/SHA1 ecc.) nella prima fase (fase IKE) della VPN IPsec. L’Encapsulated Security Payload (ESP) di IPsec VPN è disponibile nei kernel Linux/Unix, utilizzato da Strongswan nella seconda fase della VPN.
Requisiti
Per continuare questo articolo, presumo che tu abbia già installato PfSense sulla tua VM. In questa configurazione, ogni VM ha due interfacce (WAN e LAN) e anche indirizzi IP configurati. Le figure seguenti mostrano l’interfaccia e l’assegnazione dell’indirizzo IP per le macchine virtuali dispositivo-a e dispositivo-b.
interfaccia device-o e impostazioni ip

interfaccia dispositivo-b e impostazioni ip

Il pacchetto Strongswan è già installato nella nuova installazione di PfSense ed è disponibile sull’interfaccia web nel menu VPN. Tuttavia, l’installazione di Strongswan su piattaforma Linux è disponibile anche nell’articolo precedente.
Configurazione VPN IPsec
Per impostazione predefinita, tutto è bloccato sull’interfaccia WAN di PFsense, quindi prima consenti le porte UDP 4500 ((IPsec NAT-T) e 500 (ISAKMP) per IPsec VPN. Tuttavia, ho consentito a ciascuna cosa (non consigliata per l’ambiente di produzione) di stabilire IPsec tra due VM.
Come mostrato di seguito, una regola è configurata per l’interfaccia WAN a PfSense nel menu del firewall.

La regola IPsec è configurata anche nel firewall per far passare il traffico attraverso la VPN stabilita.

È anche importante assicurarsi che il dispositivo remoto sia disponibile per IPsec VPN. L’istantanea seguente mostra che il dispositivo remoto è acceso e risponde.

Dopo aver garantito la connettività da gateway a gateway, il passaggio successivo consiste nel configurare la VPN (fase 1 e fase 2) nelle macchine virtuali. Nella prima fase, viene configurato IKE e viene selezionato l’algoritmo di crittografia/autenticazione. La seconda fase di IPsec consiste nell’impostare parametri ESP come crittografia/autenticazione su entrambe le macchine virtuali. Impostazioni come IP locale/remoto, reti locali/remote, algoritmi di crittografia/autenticazione) della VPN IPsec su entrambe le VM dovrebbero essere corrette per stabilire il tunnel tra le VM.
Il firewall PfSense è configurato utilizzando l’interfaccia web, quindi la seguente finestra si apre dopo aver fatto clic sul sottomenu IPsec in VPN.

Controlla Abilita IPSec opzione per creare un tunnel su PfSense. Clicca su il pulsante più per aggiungere un nuovo criterio tunnel IPsec sul lato locale (lato a in questo caso). Gli snapshot seguenti mostrano l’impostazione per la fase IKE (prima fase) di IPsec.
Due modalità di fase IKE o versione di scambio di chiavi sono v1 e v2. Tuttavia, l’opzione automatica è selezionata nella versione per lo scambio di chiavi. L’interfaccia WAN viene selezionata per stabilire il tunnel e l’indirizzo IP del dispositivo remoto (parte b in questo caso) viene fornito nel campo gateway remoto.
Impostazione della fase 1 sul lato a

Regolazione della fase 1 sul lato b

Lo snapshot seguente mostra la selezione del meccanismo di autenticazione per la prima fase. In questa esercitazione viene selezionato PSK reciproco o segreto condiviso per l’autenticazione reciproca di entrambe le macchine virtuali. La modalità principale è selezionata perché è più sicura della modalità aggressiva. La chiave precondivisa o il segreto condiviso per entrambi i dispositivi è “test12345” . Lo snapshot seguente mostra anche l’impostazione di crittografia per la prima fase. La selezione predefinita dell’algoritmo di crittografia è AES256 e SHA1 per l’algoritmo di hashing.

Il attraversamento NAT è impostata anche l’opzione auto per i client protetti da firewall. Un’altra caratteristica di IPsec è il Dead Peer Detection (DPD), anch’esso abilitato.

Lo screenshot seguente mostra che l’impostazione precedente della fase 1 è stata salvata sul dispositivo-a.

Clicca su il pulsante più per aggiungere il criterio di fase 2 sul firewall PfSense. Nello snapshot successivo, la rete locale e remota sono incluse nel criterio.

I parametri selezionati per la fase 2 (la proposta ESP) sono presentati di seguito.

Lo snapshot seguente mostra che il criterio VPN è stato creato correttamente sul dispositivo PfSense -a.

Altre impostazioni (come l’abilitazione/disabilitazione dei livelli di registrazione) di Strongswan IPsec sono fornite nella scheda Impostazioni avanzate.

Fare clic su IPsec dal menu Stato per ottenere maggiori dettagli sulla VPN configurata.

Lo screenshot seguente mostra la panoramica della VPN configurata sul dispositivo-a. Come mostrato di seguito, lo stato attuale della VPN è disconnesso. Clicca su in linea pulsante per avviare la negoziazione con il dispositivo remoto.

La negoziazione riuscita tra due dispositivi è mostrata nelle figure seguenti.
dispositivo: uno stato VPN

stato VPN dispositivo-b

Di seguito sono mostrati il Security Association Database (SAD) e il Security Policy Database (SPD).
SAD per dispositivo-a

SPD per dispositivo-a

Clicca su Registri per visualizzare i registri IPsec dettagliati a scopo di risoluzione dei problemi.

Anche lo stato della VPN viene verificato utilizzando utilità della riga di comando come setkey e il comando ipsec status.
setkey -D uscita

Output ipsec statusall

Conclusione
Questo articolo riguarda l’utilizzo della VPN IPsec sul firewall PfSense per proteggere il livello di rete dagli aggressori. Strongswan è un’implementazione open source di IPsec disponibile nella maggior parte dei firewall open source. Una VPN IPsec basata su segreto condiviso viene stabilita tra due macchine virtuali per proteggere la comunicazione.