pfSense, firewall e VPN tutto in uno: come provarli con Virtualbox

Come configurare un router firewall con funzionalità di server OpenVPN con pfSense. Partire da una configurazione su Virtualbox per poi usare l'immagine, ad esempio, su server cloud.

pfSense è una nota (e molto utilizzata) distribuzione FreeBSD che funge da firewall e router. Installando pfSense è possibile configurare un potente, completo, versatile e flessibile firewall che consente di proteggere tutti i dispositivi collegati della LAN collegati a valle. Basta disporre di un dispositivo con due schede di rete (fisiche o virtuali): la prima scheda si affaccerà sulla rete WAN (e potrà ad esempio usare un indirizzo IP pubblico); la seconda verrà usata per collegare tutti i dispositivi della rete privata che devono essere protetti. Il collegamento può avvenire, al dispositivo pfSense, usando un semplice switch di rete.

Alcune aziende producono e commercializzano dispositivi espressamente progettati per funzionare su versioni di pfSense preinstallate ma è possibile usare la Community Edition a costo zero per installare il firewall all’interno di qualsiasi infrastruttura, anche in ambienti professionali e spiccatamente business.
La licenza della Community Edition, infatti, non impedisce gli utilizzi commerciali: piuttosto, vieta che in questa particolare edizione pfSense possa essere venduto (anche come parte integranti di dispositivi hardware).
La Community Edition di pfSense può essere addirittura utilizzata, quindi, sul cloud per proteggere interi data center virtuali.

Come funziona il firewall pfSense: come provarlo con Virtualbox

Per acquisire dimestichezza con pfSense e tutti i suoi componenti, si può scaricare la Community Edition da questa pagina quindi installarla in un sistema che non si utilizza per scopi produttivi oppure, in alternativa, eseguirla da una macchina virtuale Virtualbox, VMware e così via.

Per configurare pfSense in Virtualbox basta avviare la soluzione per la virtualizzazione, cliccare sul pulsante Nuova per creare una nuova macchina virtuale quindi impostare la finestra Crea macchina virtuale come in figura.

Cliccando su Crea, si dovrà quindi scegliere VDI come formato del disco fisso virtuale se si prevedesse di usare pfSense solo in locale con Virtualbox.
A questo proposito va tenuto presente, infatti, che alcune soluzioni cloud accettano solamente immagini in formato VMDK: con Virtualbox si può quindi configurare pfSense per poi trasferire il file d’immagine sul cloud e proteggere tutti i sistemi cloud collegati a valle.

In ogni caso, se si avesse un file VDI e si volesse trasformarlo in VMDK, basterà usare la sintassi seguente da prompt dei comandi:

"%programfiles%\Oracle\VirtualBox\VBoxManage.exe" clonehd "D:\VM\pfSense.vdi" C:\TEMP\pfSense.vmdk --format vmdk

In questo caso si richiede di convertire l’immagine VDI di Virtualbox contenente l’installazione di pfSense (salvata in D:\VM col nome di pfSense.vdi) in un file VMware creato nella cartella C:\TEMP con il nome di pfSense.vmdk.

Nel riquadro Archiviazione su disco fisso, si consiglia di selezionare l’opzione Allocato dinamicamente.
Con un clic su Impostazioni quindi su Rete, bisognerà configurare le due schede di rete virtuali che pfSense utilizzerà. La prima può essere impostata come Scheda con bridge (Scheda 1).

Portandosi in Scheda 2, si dovrà spuntare Abilita scheda di rete quindi scegliere Rete interna in corrispondenza di Connessa a.

A questo punto, dopo aver fatto clic su OK, alla pressione del pulsante Avvia, nella finestra Seleziona il disco di avvio bisognerà aver cura di indicare la ISO di pfSense scaricata dal sito web ufficiale.

Virtualbox effettuerà il boot dal file ISO del supporto d’installazione di pfSense. Al termine della procedura si dovrà premere il tasto Invio in corrispondenza di Accept quindi scegliere Install.

Nelle successive schermate, si potrà scegliere Italian, Continue with it.kbd keymap, quindi Auto.

Alla comparsa dell’ultima richiesta, si potrà selezionare No per evitare di applicare ulteriori modifiche e scegliere Reboot. Togliere quindi immediatamente il segno di spunta dal supporto d’installazione di pfSense nel menu Dispositivi, Lettori ottici (cliccare eventualmente su Forza la rimozione). Se pfSense dovesse nuovamente mostrare la schermata Accept, cliccare su Macchina, Reset.

Non appena verrà mostrato quanto riprodotto nell’immagine successiva, il consiglio è quello di passare alla configurazione delle schede di rete virtuali premendo 1 (Assign interfaces) quindi Invio.

Alla domanda Should VLANs be set up now per adesso si può rispondere “n” e premere Invio.
Alla richiesta Enter the WAN interface name… si può inserire em0 quindi, in corrispondenza di Enter the LAN interface name… digitare em1.

Così facendo la prima scheda virtuale di Virtualbox sarà usata come interfaccia WAN, la seconda come interfaccia LAN. Premere quindi “y” per confermare.

Come ulteriore passo, si può digitare il tasto 2 e premere Invio per assegnare gli IP (Set interface(s) IP address) che le due interfacce debbono usare.
Digitando 1, si può stabilire la modalità con cui l’interfaccia WAN riceve l’IP. Rispondere poi “y” al quesito Do you want to revert to HTTP as the webConfigurator protocol?

Premendo ancora 2 e poi di nuovo 2, si potrà configurare l’interfaccia LAN di pfSense.
Nell’esempio viene utilizzato l’IP 192.168.0.1 per pfSense ma è ovviamente possibile scegliere altri IP privati. Indicando 24, verrà impostata la subnet mask 255.255.255.0 (vedere Subnet mask, cos’è e a che cosa serve).

pfSense può fungere anche da server DHCP per l’assegnazione automatica degli indirizzi IP ai dispositivi collegati alla LAN (Do you want to enable the DHCP server on LAN?).
pfSense chiederà poi l’intervallo per l’assegnazione degli IP privati: indicando ad esempio 192.168.0.2 come indirizzo di partenza e 192.168.0.60 come indirizzo finale, verranno assegnati gli indirizzi all’interno di tale range.

A questo punto si potranno creare una o più macchine virtuali Virtualbox dotate di un’unica scheda di rete (selezionando Rete interna in corrispondenza di Connessa a.

A questo punto, digitando http://192.168.0.1 nella barra del browser di una delle macchine virtuali Virtualbox, si potrà accedere al pannello di configurazione di pfSense, impostare il nome del server, scegliere i DNS da usare e così via.

Di seguito si potranno impostare i criteri per l’assegnazione degli IP alle interfacce.

Come accennato in precedenza, l’immagine pfSense creata, può essere utilizzata come base per la configurazione di un server cloud che funga da firewall e sistema per la gestione di VPN. Basta ovviamente configurare in modo corretto l’interfaccia WAN e collegare un virtual switch a valle dell’interfaccia LAN di pfSense.

Attivare una VPN con pfSense

Per collegarsi da remoto in modalità assolutamente sicura usando il protocollo OpenVPN, è possibile usare pfSense non soltanto come firewall ma anche come server VPN.

Per configurare il server VPN con pfSense, si possono seguire alcuni passaggi tutto sommato abbastanza intuitivi:

1) Dal pannello di amministrazione di pfSense scegliere System, Package Manager, Available Packages quindi scrivere openvpn-client-export nell’apposita casella.

Cliccare sul pulsante Install quindi su Confirm lasciando che l’installazione venga portata a conclusione.

In questo modo si sarà installata una speciale routine che permetterà di esportare facilmente i certificati per la connessione dei client, di qualunque tipo essi siano, al server OpenVPN di pfSense.

2) Con un clic sul menu VPN, OpenVPN si dovrà quindi scegliere Wizards, lasciare selezionata l’opzione Local User Access quindi fare clic su Next.

Nella pagina Certificate Authority (CA) Certificate si può assegnare un nome descrittivo nel campo Descriptive Name (ad esempio MYVPN) scrivendo IT in Country code, State or Province e City.
In corrispondenza di Organization, si può introdurre il nome della propria azienda. Cliccare infine su Add new CA.

3) Inserire un’altra descrizione nel campo Create New Certificate (ad esempio sempre MYVPN) specificando IT in Country code, State or Province e City.
In corrispondenza di Organization si deve introdurre il nome della propria azienda o comunque il dato specificato al passo precedente.

4) Dopo aver fatto clic sul pulsante Create new certificate, si dovrà indicare su quale porta deve essere attivo il servizio OpenVPN. Ovviamente si dovrà indicare l’interfaccia WAN. Come porta si può lasciare 1194 lasciando UPD on IPv4 only. Nel campo Description si può inserire VPN o simile.

Poco più sotto, le caselle TLS Authentication e Generate TLS Key dovranno essere attivate.

5) Nel campo Tunnel network si può indicare 10.1.1.0/24 mentre nella sottostante Local Network 192.168.0.0/24, sempre che al firewall pfSense si sia attribuito l’IP privato 192.168.0.1 come nel nostro esempio. La casella Inter-Client Communication dovrà essere attivata per consentire le comunicazioni tra i sistemi connessi alla rete LAN (interfaccia LAN di pfSense).

6) Cliccando su Next, si dovranno spuntare le caselle Firewall Rule e OpenVPN rule per poi premere ancora Next e infine Finish. La configurazione del server OpenVPN si può considerare completata.

7) Per configurare i client OpenVPN si dovrà innanzi tutto installare in locale un’applicazione client compatibile (vedere questa pagina per il download).

8) Dal pannello di amministrazione di pfSense basta portarsi su System, User Manager quindi cliccare su Add per aggiungere uno o più utenti autorizzati a collegarsi via VPN. Nella parte inferiore della stessa pagina, è indispensabile spuntare la casella Click to create a user certificate.

Più in basso, si dovrà assegnare un nome al certificato client. Lasciare vuoti i riquadri Keys quindi fare clic su Save.

9) Tornando nel menu VPN, OpenVPN quindi cliccando sulla scheda Client Export si potranno finalmente esportare i certificati necessari per consentire il collegamento dei client.

Il pulsante Most Clients in fondo alla pagina consente di ottenere un file .ovpn che permetterà di stabilire la connessione VPN da un sistema client.

Per usarlo con il client OpenVPN GUI per Windows, bisognerà copiare il file .ovpn nella cartella %programfiles%\OpenVPN\config.

Cliccando con il tasto destro sull’icona di OpenVPN GUI nella traybar di Windows, selezionando il profilo .ovpn appena aggiunto, infine cliccando su Connetti, il sistema verrà connesso alla rete privata remota via VPN. Per stabilire la connessione a distanza si dovranno introdurre le credenziali dell’account utente creato in precedenza nel pannello di pfSense.

A questo punto si potrà accedere da remoto a tutti i sistemi connessi con l’interfaccia LAN della macchina pfSense e servirsi delle risorse condivise in rete locale.

Ti consigliamo anche

Link copiato negli appunti