All'interno di ogni rete aziendale che si rispetti non può, sicuramente mancare un firewall. Un firewall è un componente passivo per la difesa perimetrale di una rete informatica. Solitamente la rete aziendale viene suddivisa in due o tre tronconi (sottoreti) a seconda delle esigenze lavorative dell'azienda stessa. Comune ad ogni organizzazione di rete, troviamo la rete esterna (internet) e la rete interna LAN, per le aziende che invece necessitano di ospitare server raggiungibili dall'esterno si rende necessaria una terza rete detta zona demilitarizzata o comunemente chiamata in gergo DMZ. Nella DMZ vengono ospitati tutti quei server che offrono servizi sia all'interno della rete che all'esterno, come ad esempio un server web, tali host dovranno avere limitate possibilità di aprire connessioni verso gli host ospitati nella rete LAN.
Il compito di quest'articolo non sarà quello di spiegare come funziona in linea teorica un firewall, ma sarà quello di presentare in generale le funzionalità offerta da un firewall reale, come pfSense, e mostrare un semplice caso concreto di installazione e configurazione.
Una panoramica su pfSense
pfSense è un firewall open source sviluppato su piattaforma FreeBSD. Le funzionalità offerte da pfSense sono veramente notevoli, ad esempio sarà possibile farlo "Nattare", funzionare in maniera trasparenza a livello 2, supportare funzioni di High Availability (HA), così da garantire il funzionamento anche in condizioni "estreme"; è infatti possibile, creare due macchine gemelle di pfSense che si auto sostituiscono nel caso di guasto di una delle due, sarà altresì possibile avvalersi di funzionalità di Load Balancing, così da bilanciare il lavoro dei server posti "dietro" a pfSense.
Grazie ad una grafica semplice ed intuitiva, con pochi semplici click saremo in grado di configurare un potente firewall che ci potrà proteggere da attacchi esterni, dando così la possibilità anche a coloro che non conoscono prodotti come IPTables/netfilter e pf, e che non vogliono acquistare costose apparecchiature, di poter proteggere la propria rete. pfSense, infatti, richiede risorse hardware limitate, basta un processore Pentium a 300 MHZ, 128 MB di RAM, un lettore cd/dvd ed due o più schede di rete a seconda di quanti tronconi di rete si vogliono gestire.
pfSense è prelevabile nella sezione download del sito ufficiale.
Proteggiamo la nostra rete LAN
Dopo aver illustrato brevemente alcune delle caratteristiche di pfSense, siamo pronti finalmente a "sporcarci le mani". In quest'articolo cercheremo di installare e configurare un semplice firewall pfSense che protegga la nostra rete LAN e faccia da gateway (la configurazione più semplice che si possa realizzare), per tali scopi sulla nostra macchina firewall dovranno essere installate almeno due schede di rete, la prima sarà utilizzata dal segmento di LAN, la seconda dal segmento WAN, e si connetterà direttamente al nostro router (punto-punto), la tipologia di rete è mostrata in figura 1.
Installazione pfSense
Scaricato il formato per la piattaforma hardware che più si addice alle nostre esigenze, possiamo procedere all'installazione, faremo riferimento nella presente guida alla versione 2.0.1 per i386, l'installazione avverrà tramite supporto ottico (DVD/CD). Effettuato il boot automatico dal CD d'installazione pfSense ci chiederà in quale modalità eseguire il boot, nel nostro caso selezioneremo tramite la tastiera la voce numero 1 (figura 2).
Come mostrato in figura 3, pfSense può essere avviato in modalità recovery (premendo il tasto R), in modalità installazione premendo il tasto I, oppure in versione LiveCD, trattandosi di una nuova installazione nel nostro caso proseguiremo digitando sulla tastiera il tasto I.
Dopo una breve analisi del sistema hardware, effettuata da BSD, si procederà con la configurazione della console video di amministrazione, eventualmente modificando i Font video, e la mappa caratteri, per i nostri scopi possiamo, tranquillamente accettare le impostazioni di default.
Le modalità d'installazione variano da quick/easy install a custom install, sino a poter selezionare il rescue del file config.xml, la modalità quick è sicuramente la più facile e veloce ed adatta a tutti coloro che non vogliono cimentarsi in personalizzazioni avanzate del sistema, mentre quella custom è la più dettagliata, in questa guida vedremo come effettuare un'installazione di tipo custom.
Effettuando l'installazione "customizzata" dovremo impostare le singole configurazioni, quali l'hard disk su cui effettuare l'installazione, ed eventualmente se seguirne una formattazione del disco, io consiglio sempre di formattare l'intero contenuto di un disco destinato a pfSense, così anche da poterne verificare l'integrità, terminato il processo di formattazione del disco, potremo decidere se partizionare il disco oppure no, ad esempio saremo in grado di creare una partizione per il Bootblocks, nel nostro caso scegliamo comunque di installare il Bootblocks su l'unica partizione presente.
Possiamo decidere la dimensione della partizione di swap da utilizzare, nel nostro caso stiamo utilizzando un sistema con 256 MB di RAM, quindi teoricamente lo swap dovrebbe essere pari almeno alla RAM installata sul sistema, ma cerchiamo di destinarne almeno il doppio quindi 512 MB (figura 6). Impostata la dimensione della partizione di swap non resta che confermare il tutto selezionando la voce "Accept and Create" così come evidenziato in rosso nella figura 6.
Occorrerà attendere qualche istante a seconda delle dimensioni del disco affinché il sistema prepari i dischi per l'utilizzo. Il passo successivo prevede la possibilità di installare una configurazione personalizzata del kernel, se si hanno particolari esigenze hardware, nel nostro caso possiamo procedere alla configurazione del symmetric multi processing kernel.
La fase dell'installazione è conclusa non resta che estrarre il cd ed effettuare un reboot del sistema.
Configurazione pfSense
pfSense consente la configurazione e la gestione di VLAN, l'abilitazione di questa funzionalità in fase di configurazione avviene digitando y in corrispondenza dell'apposita domanda (Do you want to set up VLANs now [y:n]? ), vista la configurazione di rete che ci accingiamo a realizzare possiamo tranquillamente rispondere no (premendo il tasto n). Arriviamo così alla configurazione delle interfacce, ricordiamo che dovendo gestire il troncone LAN e WAN sul nostro sistema dovranno essere presenti almeno due schede di rete, la prima a dover essere configurata è quella relativa alla WAN, è possibile delegare a pfSense la ricerca automatica della scheda oppure si può procedere digitando il nome della scheda di rete, che sarà destinata all'interfacciamento con la WAN, i nomi delle interfacce vengono riportate da pfSense nella stessa schermata di configurazione, se installiamo due schede della stessa casa costruttrice, dovremo ricorrere all'indirizzo MAC (evidenziato in rosso nella figura 9) per identificarne le funzioni. Nel nostro caso destiniamo la scheda em0 come scheda deputata al traffico della WAN e la scheda em1 deputata al traffico della LAN.
Per default pfSense ci chiederà anche di identificare un'eventuale terza scheda Optional 1 (opt1), che nel nostro caso non è presente, inserite tutte le impostazioni sarà necessario confermare il tutto digitando y alla domanda visualizzata in figura 10, a questo punto inizierà la configurazione vera e propria.
Terminata la configurazione del sistema, pfSense ci restituirà le informazioni relativi agli indirizzi IP assegnate alle singole schede, nonché il menù relativo alla console, dalla quale potremo personalizzare gli indirizzi IP delle singole schede, eseguire un reboot, spegnere o riavviare il sistema, impostare la password per il webconfigurator ecc.
Prima di proseguire alla configurazione tramite interfaccia web, impostiamo gli indirizzi IP scelti in fase di progettazione (ricordiamo dallo schema mostrato in figura 1, che l'interfaccia WAN del nostro firewall avrà un indirizzo IP appartenente alla classe 10, più specificatamente 10.0.0.2 così da creare una connessione punto-punto, mentre la scheda di rete deputata ad interfacciarsi con la rete LAN, avrà indirizzo 192.168.1.254), è importante scegliere indirizzi IP di classe diversa, per rendere più robusto il nostro firewall, consiglio anche di non utilizzare (come nel nostro caso) indirizzi standard quali 192.168.x.x ma ad esempio 194.10, 10.1.1 ecc.
Il setting delle interfacce avviene selezionando il numero 2 dalla tastiera della console, e seguendo il semplice wizard che pfsense ci propone, nello specifico dovremo inserire le informazioni relative all'indirizzo IP, alla sottomaschera di rete e alla possibilità di abilitare il servizio DHCP su questa porta, le informazioni devono essere inserite a seconda della configurazione che si vuole adottare, un consiglio è quello di utilizzare maschere di sottorete appropriate, e non limitarsi alla solita maschera a 24 bit, soprattutto per la WAN e per un'eventuale rete DMZ.
Il firewall potrà anche essere amministrato dall'esterno (occorrerà configurare opportunamente anche il router), si dovrà specificare il protocollo di connessione a scelta tra http o https da utilizzare, naturalmente è inutile dire che il protocollo da adoperare è quello https, così da avere un livello di sicurezza maggiore.
Configurazione via web
Se tutto è andato a buon fine possiamo collegarci al nostro firewall utilizzando un qualsiasi browser e digitando l'indirizzo https://192.168.1.254. L'accesso al firewall è protetto naturalmente da uno username ed una password, quelle di default (da modificare al primo accesso nella sezione System > users), sono admin pfsense.
All'interno della dashboard potremo monitorare e configurare il nostro firewall, particolare attenzione in questa prima fase sarà posta sulla voce "General Setup" presente nel menù System, in questa sezione sarà possibile configurare il protocollo da utilizzare, definire il certificato SSL, impostare i settaggi della rete ecc.
La gestione delle policy del firewall sono demandate al menu "Firewall", e particolare attenzione dovrà essere prestata ai ruoli, è qui infatti che andremo ad inserire le principali policy, di default pfSense abilita il traffico dalla LAN solo sui protocolli http ed https. pfSense segue la filosofia standard dei firewall vale a dire tutto ciò che non è espressamente permesso è vietato.
Conclusioni
Le potenzialità di pfSense sono elevate, un singolo articolo non può bastare a descriverle tutte, abbiamo voluto pertanto presentare una semplice configurazione del sistema che possa essere utilizzata in tutte quelle piccole reti che richiedono un minimo di sicurezza. pfSense può essere configurato per offrire servizi come ad esempio DHCP e DNS, ed esporta funzionalità quali il backup di sistema e delle configurazioni di sistema. Sarà altresì possibile integrare un server radius all'interno di pfSense, oppure utilizzare il servizio di captive portal già presente all'interno del firewall, per gestire gli accessi alla rete.