pfSense in modalità Bridge / Transparent Firewall
In questo articolo viene illustrato come configurare un bridge con pfSense in un ambiente virtuale implementando un firewall che opera in modalità trasparente. Un bridge collega due o più interfacce di rete a livello 2 (broadcast) come se fossero collegato allo stesso switch. L’ambiente demo viene predisposto utilizzando VMware Workstation per la configurazione delle macchine virtuali e delle sottoreti necessarie.
Scenario
Prerequisiti:
- VMware Workstation
- ISO di pfSense 2.4.3
- Due Macchne Virtuali Windows 10 di test.
Configurare la VM pfSense con due schede di rete:
- WAN: collegata alla rete NAT di VMware Workstation (Rete Pubblica).
- LAN: collegata ad un LAN Segment configurato in VMware Workstation (Rete Bridged).
Il pc host utilizzato per implementare l’ambiente demo può raggiungere la rete NAT in quanto VMware workstation configura un’interfaccia virtuale sulla stessa sottorete (di default VMnet8), ma non è in grado di comunicare con i LAN Segments (solo le macchine configurate nello stesso Lan Segments sono in grado di comunicare tra di loro). I Lan Segments possono essere visti come reti di tipo Host Only ma senza la possibilità di configurare un server DHCP al loro interno.
Lo schema di rete che si vuole implementare è il seguente:
L’obiettivo è quello di fare comunicare il pc host con le macchine Windows 10 sfruttando il bridge configurato con pfSense tra le interfacce WAN e LAN. E’ importante sottolineare che in questo tipo di configurazione non si deve assegnare un indirizzo IP alla scheda LAN di pfSense.
Configurazione Macchine Virtuali
Configurare una nuova macchina virtuale per pfSense con le seguenti:
- Guest Operating System: Other – FreeBSD 11 64-bit
- 1 GB Ram
- 10 GB Hard Disk
- CDRom collegato all’immagine ISO di pfSense.
- 2 Network Adapter, la prima collegata alla rete NAT, la seconda ad un nuovo LAN Segment chiamato LAN Bridge (per aggiungerlo utilizzare il tasto LAN Segments…).
Configurare inoltre due VM Windows 10 (in realtà va bene qualsiasi versione di Windows) con una scheda di rete collegata al segmento LAB Bridge.
Nell’esempio la rete NAT è configurata sulla subnet 192.168.94.0, è possibile verificare queste impostazioni dal menù “Edit / Virtual Network Editor” di VMware Workstation. E’ necessario assegnare alle due due macchine Windows 10 due indirizzi su questa sottorete (nell’esempio 192.168.94.21 e 192.168.94.22). Ovviamente in questo momento le due vm non sono raggiungibili dal pc Host (provare ad effettuare un ping di verifica).
Installare Internet Information server su entrambe le macchine in modo da poter effettuare in un secondo tempo dei test di packet filtering sul protocollo HTTP. Verificare inoltre che il firewall di Windows sia disattivato.
Configurazione pfSense
Installare pfSense utilizzando le impostazioni di default.
Configurare le interfacce nella maniera seguente:
- WAN => em0 => IP 192.168.94.100 / Gateway 192.168.94.2 (indirizzo del gatway di default assegnato da VMware Workstation). Alla richiesta “Do you want to revert to HTTP as the webConfigurator protocol?” rispondere no. Per l’amministrazione di pfSense si vuole utilizzare il protocollo HTTPS.
- LAN => em1 => Lasciare le impostazioni di default (l’indirizzo IP verrà rimosso in un secondo tempo)
Dalla console di pfSense accedere alla shell (opzione 8) e disabilitare il firewall digitando il comando:
pfctl -d
Questo è necessario per configurare pfSense dall’interfaccia WAN che diventa raggiungibile dall’host (provare ad effettuare un ping di verifica). Accedere all’interfaccia web con un browser (https://192.168.94.100). Username e password di default sono “admin/pfsense“. Eseguire il wizard iniziale configurando i server DNS e verificando che tutte le atre impostazioni siano corrette. Al termine del wizard il firewall viene riattivato, quindi è necessario eseguire nuovamente da console il comando “pfctl -d” per accedere all’interfaccia web di pfSense.
Dal menù “Interfaces / WAN” disabilitare le opzioni “Block private networks and loopback addresses” e “Block bogon networks“. Premere il tasto Save ma non Apply Changes (altrimenti è necessario disabilitare nuovamente il firewall da console).
Accedere al menù “Firewall / Rules / WAN“. Creare due regole: la prima per abilitare il traffico HTTPS sull’indirizzo assegnato alla porta WAN (per accedere all’interfaccia di configurazione senza disabilitare il firewall) e la seconda per abilitare i pacchetti ICMP verso tutte le destinazioni.
Salvare e ricaricare la pagina del browser. Ora è possibile effettuare un ping dall’Host di gestione verso la porta WAN e accedere all’interfaccia di management via protocollo HTTPS.
Per configurare il firewall in modalità bridge è necessario disabilitare la creazione automatica delle regole di NAT. Accedere al menu “Firewall / NAT / Outbound” e selezionare Disable Outbound NAT rule generation.
E’ necessario rimuovere l’indirizzo IP ancora assegnato alla scheda LAN. Per prima cosa è necessario disabilitare il server DHCP attivo sull’interfaccia. Accedere al menù “Services / DHCP Server / LAN” e togliere la spunta su Enable DHCP Server on LAN interface. Salvare per applicare le modifiche. Disabilitare anche il DHCP per IPv6 dal menù “Services / DHCPv6 Server & RA / LAN / DHCPv6 Server“. Accedere al menù “Interfaces / LAN” e impostare i campi IPv4 Configuration Type e IPv6 Configuration Type su None e salvare.
Ora è possibile creare il bridge tra le interfacce WAN e LAN. Dal menù “Interfaces / Assignments / Bridges” premere sul tasto Add, dal menù Member Interfaces selezionare entrambe le interfacce e premere Save.
Viene creata l’interfaccia BRIDGE0.
Dal menù “System / Advanced / System Tuneables” verificare la configurazione delle seguenti impostazioni per abilitare il packet filtering tra le due interfacce configurate in bridge:
net.link.bridge.pfil_onlyip 0
net.link.bridge.pfil_member 1
net.link.bridge.pfil_bridge 0
Ora il bridge dovrebbe essere funzionante. Dalla macchina host è possibile raggiungere con un ping le macchine Windows (la regola di packet filtering configurata in precedenza abilita tutto il traffico ICMP).
Dal menù “Firewall / Rules / WAN” creare una regola per abilitare il traffico HTTP verso una delle due macchine Windows (IIS dovrebbe essere stato installato in precedenza su entrambe).
Dalla macchina Host è ora possibile accedere via browser al server IIS sulla macchina con indirizzo 192.168.94.21. Il server IIS configurato sull’indirizzo 192.168.94.22 non è ancora raggiungibile in quanto manca la regola che abilita il traffico verso quella macchina.
Ambienti Esxi
Se al posto di VMware Workstation si utilizza un host Esxi per la configurazione di pfSense in modalità bridge è indispensabile abilitare la modalità promiscua a livello di vSwitch / Portgroup sui quali vengono configurate le reti virtuali.