In questo capitolo della serie “Diventare Sistemista”, vedremo come installare e configurare pfSense, uno dei firewall/router open source più potenti e versatili, all’interno di una macchina virtuale (VM). L’obiettivo è costruire un laboratorio virtuale realistico e professionale, utile per ambienti di test o produzione.
Cos’è pfSense?
pfSense è una distribuzione open source basata su FreeBSD che trasforma un server fisico o virtuale in un potente router/firewall. Include funzionalità avanzate come:
- NAT, DHCP, DNS
- VPN (IPsec, OpenVPN, WireGuard)
- VLAN
- Traffic shaping e firewall stateful
- Interfaccia web intuitiva
È perfetto per ambienti aziendali, laboratori e anche per uso domestico avanzato.
Prerequisiti
pfSense può essere installato in diversi contesti:
- Su una macchina virtuale (VM), ideale per ambienti di laboratorio, test o infrastrutture cloud
- Su una macchina fisica generica, dotata di almeno due schede di rete (una per la WAN, una per la LAN)
- Su hardware dedicato (es. appliance Netgate o mini-PC fanless), pensato per installazioni permanenti, compatto e a basso consumo
In tutti i casi, il comportamento del sistema e la logica di configurazione rimane la stessa, cambiando solo il supporto hardware di base.
- Un hypervisor (es. Proxmox, VMware ESXi, VirtualBox o Hyper-V)
- ISO ufficiale di pfSense: https://www.pfsense.org/download/
- Almeno 2 interfacce di rete virtuali (LAN + WAN)
- Rete virtuale o bridge configurati nell’hypervisor
Configurazione su una VM
Comprendere WAN e LAN (e VLAN) in pfSense
- WAN (Wide Area Network): è l’interfaccia di rete che collega pfSense verso l’esterno, ad esempio verso Internet o un altro router. Tutto il traffico in uscita e in ingresso da/verso l’esterno passa da qui.
- In ambienti on-premise, la WAN di pfSense può essere collegata direttamente a un modem/router (es. modem fibra) tramite porta bridged, e ricevere un IP statico o tramite DHCP, fornito dal provider o assegnato manualmente (es. 192.168.0.2/24 con gateway 192.168.0.1).
- In ambienti cloud (es. Proxmox in data center o vSphere in housing), la WAN è spesso una rete pubblica o privata con IP statico già assegnato dal provider. In tal caso, va configurata manualmente con:
- IP assegnato (es. 185.45.22.10/24)
- Gateway del provider (es. 185.45.22.1)
- DNS (es. 8.8.8.8, 1.1.1.1)
⚠️ Nota importante: sia in ambienti cloud che on-premise, è fondamentale configurare correttamente i DNS all’interno di pfSense. Questo avviene nel setup iniziale o successivamente in:
System → General Setup
, dove puoi inserire i DNS desiderati (pubblici o forniti dal provider).- Per ambienti cloud, i DNS spesso devono essere configurati manualmente con IP statici assegnati dal provider.
- Per ambienti on-premise con modem/router, puoi usare DNS pubblici (es. 8.8.8.8, 1.1.1.1) oppure i DNS del provider Internet.
Assicurati anche di disabilitare l’opzione “Allow DNS server list to be overridden by DHCP/PPP on WAN” se non vuoi che pfSense sovrascriva i DNS con quelli ricevuti automaticamente via DHCP.
- È importante che la rete bridged o il bridge dell’hypervisor sia correttamente collegato a una rete fisica/virtuale abilitata al traffico esterno.
- LAN (Local Area Network): è la rete interna protetta da pfSense. Qui si trovano client, server, stampanti, e altre risorse aziendali.
- pfSense assegna di default un IP statico alla LAN (es. 192.168.1.1) e può agire da server DHCP, DNS e gateway per tutti i dispositivi.
- VLAN (Virtual LAN): possono essere create per segmentare logicamente la rete. pfSense gestisce VLAN tramite interfacce virtuali, utile per separare traffico tra reparti, dispositivi o servizi.
- Esempio: VLAN 10 per l’amministrazione, VLAN 20 per l’IT, VLAN 30 per dispositivi guest.
Una configurazione base in VM prevede almeno due schede di rete:
- Una associata alla WAN (accesso a Internet o a una rete esterna)
- Una associata alla LAN, da cui gestire l’accesso locale, creare VLAN e gestire il traffico interno
Esempio su Proxmox (vale anche per ambienti VMware vSphere on-premise o cloud):
In ambienti VMware vSphere, la creazione della VM avviene tramite vCenter. Le impostazioni consigliate sono analoghe:
- CPU e RAM secondo le risorse disponibili
- Disco da almeno 10 GB su datastore condiviso o locale
- Due schede di rete virtuali (WAN e LAN), collegate a due vSwitch distinti
- Avvio da ISO pfSense caricata nella libreria
- Crea una nuova VM
- CPU: almeno 1 core
- RAM: 1 GB o più
- Disco: 10 GB (IDE o SATA)
- ISO boot da pfSense
- Aggiungi due schede di rete:
vmbr0
(WAN)vmbr1
(LAN, può essere isolata per test)- Avvia la VM e segui la procedura guidata di installazione di pfSense
- Dopo il reboot, accedi alla console pfSense (via terminale) per configurare:
- WAN → DHCP o IP statico
- LAN → IP statico (es. 192.168.1.1/24)
Accesso all’interfaccia Web
Collegati a: https://192.168.1.1
dalla rete LAN configurata →
- User:
admin
- Password:
pfsense
Segui il setup iniziale guidato:
- Hostname, DNS, fuso orario
- Password di amministrazione
- Configurazione interfacce
Prime configurazioni consigliate
Esempio di regole firewall per LAN/VLAN con traffico in uscita permesso e accessi esterni bloccati
Un caso molto comune in ambito aziendale è:
- I client e server devono poter uscire verso Internet (HTTP, HTTPS, DNS ecc.)
- Non devono essere raggiungibili dall’esterno, se non tramite VPN (es. OpenVPN)
1. Regole LAN (o VLAN)
- Consenti tutto il traffico in uscita dalla rete LAN verso qualsiasi destinazione:
Action
: PassInterface
: LANSource
: LAN netDestination
: anyProtocol
: any
2. Regole WAN (default deny)
- pfSense per impostazione predefinita blocca tutte le connessioni in ingresso dalla WAN, quindi i server e client non saranno esposti pubblicamente.
3. Consentire solo accesso VPN (OpenVPN)
- Configura OpenVPN come indicato nella sezione precedente
- Crea una regola su
Interface: OpenVPN
che permetta:- Accesso alla LAN o VLAN desiderata
- Solo da indirizzi IP del tunnel VPN (es. 10.8.0.0/24)
4. Suggerimento di sicurezza:
- Usa gli alias per gruppi di IP (es.
LAN_SERVERS
) per semplificare le regole - Aggiungi logging alle regole di blocco per monitoraggio e auditing
Questo approccio garantisce che tutta la rete interna sia invisibile dall’esterno, ma completamente operativa verso l’esterno, accessibile solo da remoto tramite VPN sicura.
- Aggiorna pfSense: System → Update
- Imposta regole firewall LAN → WAN
- Configura il NAT (automatico in genere)
- Attiva DHCP sulla LAN (se necessario)
- Crea alias per facilitare le regole
- Aggiungi una VLAN: Interfaces → Assignments → VLANs
Configurare una VPN (es. OpenVPN)
Metodo 1 – Con il Wizard (semplificato)
- Usa l’OpenVPN Wizard
- Crea una CA e certificato server
- Definisci pool IP VPN (es. 10.8.0.0/24)
- Scarica i profili client
.ovpn
Metodo 2 – Configurazione manuale (senza Wizard)
1. Crea una CA (Certificate Authority): Vai su System → Cert. Manager → CAs
- Nome:
OpenVPN-CA
- Type: Internal CA
- Key length: 2048 o 4096
- Digest: SHA256
2. Crea un certificato server: Vai su System → Cert. Manager → Certificates
- Nome:
OpenVPN-Server-Cert
- Type: Server Certificate
- CA:
OpenVPN-CA
3. Crea un server OpenVPN: Vai su VPN → OpenVPN → Servers → Add
- Protocol: UDP (es. porta 1194)
- Interface: WAN
- Server mode: Remote Access (SSL/TLS)
- Certificate:
OpenVPN-Server-Cert
- Tunnel Network:
10.8.0.0/24
- Local Network:
192.168.1.0/24
- Compression, Encryption: default o AES-256-GCM
4. Crea utente e certificato client: Vai su System → User Manager → Add
- Username:
vpnuser
- Assegna certificato (Create certificate)
5. Esporta configurazione client: Installa il pacchetto openvpn-client-export
da System → Package Manager
Poi vai su VPN → OpenVPN → Client Export
e scarica il file .ovpn
6. Regole firewall:
- WAN: permetti traffico in ingresso sulla porta 1194/UDP
- OpenVPN: permetti traffico da
10.8.0.0/24
versoLAN net
Con questa configurazione manuale puoi gestire in modo più preciso certificati, utenti, sicurezza e logica di accesso.
- Usa l’OpenVPN Wizard
- Crea una CA e certificato server
- Definisci pool IP VPN (es. 10.8.0.0/24)
- Scarica i profili client
.ovpn
Questo ti consente di accedere da remoto alla rete LAN in modo sicuro.
Utilizzo in laboratorio virtuale
Con pfSense in VM puoi simulare:
- Firewall per ambienti di test
- Gateway per altre VM
- Scenari di sicurezza con IDS/IPS (es. Suricata)
- Segmentazione VLAN
- Accesso remoto via VPN
Puoi anche clonare o snapshot la VM per testare aggiornamenti o nuove regole senza rischi.
Conclusione
Installare pfSense in una macchina virtuale ti consente di sperimentare la configurazione di un router/firewall professionale direttamente su un hypervisor, creando un laboratorio perfetto per esercitazioni, simulazioni e implementazioni aziendali reali.
Nel prossimo articolo approfondiremo la gestione dei sistemi operativi server, con focus su Linux e Windows Server.