domenica 14 settembre 2014

Installare PFSense Firewall


Negli ultimi tempi, a causa della crisi economica aziendale, cercavo una soluzione free e allo stesso tempo professionale di software firewall, evitando di pagare la licenza annuale di software più blasonati che avevamo.
Ho trovato allora pfSense, gratuito, open source, molto supportato, il suo codice sorgente è rilasciato sotto licenza BSD.
Ultimamente si può anche sottoscrivere una Gold Membership che da diritto ad alcuni servizi speciali, come:


  • L'accesso al servizio di AutoConfigBackup cloud based per un massimo di 10 hosts.
  • Il libro Definitive Guide in PDF e altri formati, disponibile per il download immediato dopo l'acquisto.
  • Video conferenze mensili tenute da una selezione (a rotazione) di sviluppatori core e ospiti speciali occasionali.
  • E molte altre caratteristiche in corso d'opera.

Oltre ad essere una piattaforma di firewall e routing, pfSense include una lunga lista di altre caratteristiche, con il suo sistema di pacchetti infatti, permette di ampliare  ulteriormente i suoi servizi.

I requisiti hardware minimi per pfSense sono:
  • General Requirements:

    • CPU - Pentium II processor
    • RAM - 256 MB

    Requirements Specific to Individual Platforms:

    Live CD
    • CD-ROM drive
    • USB flash drive or floppy drive to hold configuration file
    Hard drive installation
    • CD-ROM for initial installation
    • 1 GB hard drive
    Embedded
    • 1 GB Compact Flash card
    • Serial port for console
Questi requisiti sono estremamente modesti, e vanno benissimo se le vostre esigenze di throughput sono abbastanza contenutee, altrimenti si deve probabilmente andare ad utilizzare hardware che offre una migliore performance.
Dal momento che un importante contributo alla performance di throughput è la CPU del sistema, pfSense ha pubblicato anche le linee guida per il dimensionamento della CPU:

  • 10-20 Mbps - CPU Intel o AMD con clock ad almeno 500MHz. 
  • 21-100 Mbps - CPU da 1.0 GHz Intel o AMD
  • 101-500 Mbps - Hardware classe Server con adattatori PCI-E Network, o più recente hardware desktop con schede di rete PCI-e non meno di una moderna CPU Intel o AMD con clock a 2.0 GHz 
  • 501 o + Mbps - Hardware classe Server con schede di rete PCI-e. Sono necessarie più core >2.0GHz.

La scelta delle schede di rete avrà anche un impatto significativo sull'affidabilità e sulle prestazioni di throughput.
Schede low cost, oltre ai potenziali problemi di affidabilità a lungo termine, tendono a contare molto di più sulla CPU di sistema per elaborare segmenti e pacchetti, di conseguenza, migliore è la scheda di rete, migliori sono le prestazioni di throughput.
In breve, non esser troppo "braccine corte" quando si tratta di scegliere le schede di rete che si andranno ad utilizzare.
Schede di rete Intel sono ben supportate in *BSD, sono sempre una buona scelta, e se possibile utilizzare schede di rete esterne piuttosto che quelle implementate sulle schede madri.
Un altro aspetto da non sottovalutare è la memoria di sistema. Quanta? Dipende in gran parte da come si decide di installare e come utilizzare pfSense.
È possibile scegliere di eseguire pfSense direttamente da un Live CD, per esempio; ma in questo modo il sistema richiede più RAM. Anche l'installazione di alcuni pacchetti aggiuntivi aumenterà la richiesta di RAM in modo significativo.
Snort e ntop , per esempio, sono due pacchetti che non dovrebbero essere installati su un sistema con meno di 512 MB ​​di RAM (avvisa il team di sviluppo pfSense).

Un altro fattore da tenere a mente quando si considerano i requisiti di memoria è il numero di connessioni di rete attive.
pfSense tiene traccia delle connessioni attive utilizzando una tabella di stato. La dimensione della tabella di default è di 10.000 entries, ognuna delle quali richiede ~ 1 KB di RAM o ~ 10 MB in totale - probabilmente più che sufficiente per gestire la maggior parte delle reti domestiche, ma se avete bisogno di una tabella di stato significativamente più grande, tenete a mente i requisiti di memoria di sistema.

Compatibilità 
pfSense è generalmente compatibile con qualsiasi hardware, è sempre una buona idea, però, di controllare l'hardware che si ha intenzione di usare con le informazioni contenute nei FreeBSD 8.3-versione hardware Notes e la sezione compatibilità hardware delle domande più frequenti per FreeBSD 8.x 9.x e 10.x.
Il forum pfSense è un'altra buona risorsa, utile per leggere le esperienze di compatibilità hardware degli altri utenti.


Oltre ai requisiti hardware relativamente bassi, pfSense fornisce anche una serie di opzioni per l'installazione.
In primo luogo, si può semplicemente eseguire direttamente da un Live CD o da una chiavetta USB bootabile. Eventuali modifiche di configurazione apportate potranno essere salvate su floppy disk o USB flash drive.
L'aspetto negativo di questo approccio, tuttavia, è che non sarà possibile installare i pacchetti add-on disponibili per estendere le capacità di pfSense (e ce ne sono alcuni veramente belli e utili).
Un'altra opzione è quella di installare un'immagine incorporata di pfSense in una CompactFlash (CF), piuttosto che eseguire un'installazione completa su un disco rigido.
Schede CF in grado di gestire un numero limitato di scritture, così la versione integrata funziona in sola lettura, mentre il file system viene eseguito come lettura/scrittura nella memoria di sistema.
Le versioni più recenti integrate di pfSense in base NanoBSD hanno la capacità di supportare anche l'installazione di alcuni pacchetti.
Infine, il Live CD di pfSense include un'opzione per eseguire un'installazione completa su disco rigido, dove tutti i pacchetti add-on sono pienamente supportati.
Attenzione però che l'intera unità o partizione verrà sovrascritta.
Questo è il metodo di installazione che ho scelto, soprattutto perché ho la necessità di installare e provare alcuni dei pacchetti add-on (Squid Proxy e Squid Guard per il filtraggio dei siti web che vedremo in seguito)

Andiamo a vedere come si effettua un'installazione completa di pfSense su un disco rigido.

Dopo aver eseguito questo processo diverse volte però mi sento di raccomandare un paio di passi preliminari.
In primo luogo, prendere nota del MAC Address di ogni scheda di rete che si andrà ad installare nel sistema, così come la sua posizione fisica nella scheda madre.
In secondo luogo, scollegare le schede da qualsiasi LAN e WAN fino a quando non si ha il sistema in esecuzione e configurato per le vostre esigenze.
Infine, se avete altri dischi rigidi presenti nel sistema vi consiglio di scollegarli fino a quando l'installazione non è completa, in modo da non installare accidentalmente il sistema nell'unità sbagliata.
Scarichiamo una copia del programma di installazione di pfSense nella sezione download e la masterizziamo su un CD o la montiamo su una chiavetta USB bootabile (farò un post su come farlo in ambiente OS X).
Il sistema ci chiederà in che modo far partire l'installazione, R per entrare in recovery mode, I per installare da CD immediatamente senza far partire il LiveCD, C (oppure aspettare che passino i secondi) per far partire il sistema dal liveCD
Dopo aver avviato il sistema utilizzando il liveCD, si arriva a una schermata che elenca le interfacce valide e una richiesta di configurazione V-LAN.

Se non si prevede di utilizzare V-LAN nella rete, o forse non si ha il bisogno immediato di farlo, è possibile saltare questo passaggio e farlo in un secondo momento con l'interfaccia "webConfigurator" di pfSense (WebGUI).
Dopo l'opzione V-LAN ci viene chiesto di assegnare per ciascuna delle nostre interfacce il ruolo di una "LAN", "WAN", o "OPT" (opzionale).

Nota.
Nelle immagini pubblicate, essendo un installazione fatta in ambiente virtuale su una macchina con una sola scheda di rete, è visibile solo la scheda pcn0, a cui assegneremo il ruolo di WAN.
Un firewall, per essere tale, deve NECESSARIAMENTE avere almeno due schede di rete!

Prendere nota di quali Nic si assegnano a ciascuna interfaccia, ci sarà utile più tardi quando le connetteremo fisicamente alla LAN, WAN, ecc


Dopo la configurazione V-LAN e l'assegnazione di schede di rete per le interfacce, se lo si desidera, l'installazione continua, fino ad arrivare al menu della console pfSense.
Si noti che pfSense configura inizialmente l'interfaccia WAN in modalità DHCP e quindi non sarà possibile visualizzare un indirizzo IP assegnato a tale interfaccia se è stato lasciato scollegato il cavo durante l'installazione o se si utilizza un indirizzo IP pubblico statico.
All'interfaccia LAN invece (non visibile in queste immagini in quanto si disponeva di una sola scheda di rete) verrà assegnato l'indirizzo predefinito 192.168.1.1.

E' possibile a questo punto cambiare la classe IP dell'interfaccia LAN, da 192.168.1.1 (assegnata di default) a quella della nostra rete, per poter effettuare meno modifiche possibili e aprire velocemente dal nostro browser il WebConfigurator e cominciare ad utilizzare e configurare pfSense.
Dalla voce di menu 2 si può assegnare il nuovo IP address.

Per procedere con l'installazione pfSense sul disco rigido, selezionare "Installa pfSense su un disco rigido, etc" (opzione di menu 99).
La prima schermata a comparire dopo questa selezione consente di modificare una serie di impostazioni della console (font video, Screenmap, e la keymap).

Successivamente, si presenta una lista di opzioni per l'installazione.
Se si dispone di un solo disco rigido collegato al sistema e nessun'altra necessità di eventuali opzioni personalizzate, selezionare "Quick/Easy Install."
Se si dispone di più di un disco rigido collegato al sistema, selezionando sempre Quick/Easy Install pfSense eseguirà l'installazione sul primo disco rigido riconosciuto dal BIOS del sistema.
Selezionando invece "Custom Install" si presenta una scelta di quale disco rigido utilizzare per l'installazione, insieme ad altre opzioni relative a guidare la formattazione, il partizionamento etc.
La schermata finale di installazione offre una scelta di configurazioni del kernel personalizzato.
Si noti che se si prevede di utilizzare un processore Intel con supporto per "Hyper-Threading," si dovrebbe essere sicuri di utilizzare l'opzione "Symmetric Multiprocessing Kernel".
Al termine dell'installazione viene richiesto di riavviare il sistema.

Dopo averlo installato sul disco rigido, pfSense è pronto per l'ulteriore installazione e configurazione. Ritorniamo per un attimo al menu della console e selezioniamo 2 "Imposta interfaccia (s) indirizzo IP" in modo che io possa configurare l'indirizzo dell'interfaccia LAN IPv4 di pfSense in una classe che rientra nella sottorete utilizzata all'interno della mia rete.

Questa opzione di menu consente anche di attivare il server DHCP del pfSense e definire un intervallo di indirizzi IPv4 che si utilizzeranno nella nostra rete.
Una volta che il server DHCP e l'indirizzo IPv4 è stato configurato, mi è stato chiesto se volevo tornare a HTTP come protocollo webConfigurator (invece di usare di usare HTTPS), ho scelto di declinare per una maggiore sicurezza di accesso.
Dopo aver completato questi passaggi, l'indirizzo IP della LAN è stata confermato e mi è stato restituito il menu della console.
Ho collegato l'interfaccia LAN, aperto il browser all'indirizzo https://192.168.1.1 e si è aperta la schermata del WebGUI di pfSense.


Il login WebGUI è protetto da password - l'accesso predefinito è admin e la password è pfSense.
Dato che questa era la prima esecuzione per questa installazione di pfSense, si è attivata la configurazione guidata pfSense per eseguire la configurazione iniziale.


In un altro post andremo a vedere come configurare il nostro pfSense.

Riferimenti: http://www.iceflatline.com/2010/08/install-and-configure-pfsense-in-your-home-network/

3 commenti:

  1. Thanks for referencing my post. Would you be so kind as to correct the link to it? It should be:

    http://www.iceflatline.com/2010/08/install-and-configure-pfsense-in-your-home-network/

    Thanks.

    RispondiElimina
  2. Ah thanks. It keeps Google happy ;)

    RispondiElimina