Diventare Sistemista – Parte 4: Installare e Configurare pfSense in una Macchina Virtuale

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
  1. Crea una nuova VM
    • CPU: almeno 1 core
    • RAM: 1 GB o più
    • Disco: 10 GB (IDE o SATA)
    • ISO boot da pfSense
  2. Aggiungi due schede di rete:
    • vmbr0 (WAN)
    • vmbr1 (LAN, può essere isolata per test)
  3. Avvia la VM e segui la procedura guidata di installazione di pfSense
  4. 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: Pass
    • Interface: LAN
    • Source: LAN net
    • Destination: any
    • Protocol: 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.

  1. Aggiorna pfSense: System → Update
  2. Imposta regole firewall LAN → WAN
  3. Configura il NAT (automatico in genere)
  4. Attiva DHCP sulla LAN (se necessario)
  5. Crea alias per facilitare le regole
  6. 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 verso LAN 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.