In questo articolo ti mostriamo come dimensionare un firewall pfSense e OPNsense, anche valida per ipFire.
Come dimensionare un firewall
- Premessa
- Throughput richiesto
2.1 Tipo di CPU
2.2 pfSense fino a 2.4.X: requisiti minimi
2.3 pfSense CE 2.5.X: requisiti minimi
2.4 Dimensionare un firewall basato sul Throughput
2.5 Dimensionare un firewall basato sul Throughput versione cluster - Pacchetti aggiuntivi
3.1 VPN
3.2 SquidGuard
3.3 pfBlockerNg
3.4 Captive Portal
3.5 Grandi tabelle di Stato
3.6 Packages
3.7 Versione di pfSense/OPNsense - Chipset delle schede di rete
- Rumorosità degli apparati
- Funzione RAID
- Quando usare un cluster
- Dimensionamento istantaneo
- Analisi performance apparati
9.1 NO VPN
9.2 Open VPN
9.3 IPSec
1. Premessa
Per dimensionare un firewall hardware basato su pfSense CE / OPNsense dalla 2.4.X / 18.X in poi è necessario tenere presente 3 fattori principali:
- Throughput richiesto
- Pacchetti aggiuntivi
- Numero e tipologia di NIC
Questi 3 fattori influenzano principalmente su RAM, CPU, Memoria di massa e ovviamente quantità di NIC. Nella parte sottostante metteremo a disposizione la nostra esperienza nel dimensionamento dell’hardware.
Da tenere presente anche che pfSense dalla versione 2.4 NON SUPPORTA più i sistemi su CF (in particolare non supporta più le immagini i386), cosa che OPNsense continua a fare.
2. Throughput richiesto
Per definizione si intende per throughput di un canale di comunicazione la sua capacità di trasmissione effettivamente utilizzata. Il throughput non è da confondersi con la capacità del link.
Sia la capacità che il throughput si esprimono in bit/s, ma mentre la prima esprime la frequenza trasmissiva massima alla quale i dati possono viaggiare, il throughput è un indice dell’effettivo utilizzo della capacità del link.
Il throughput è la quantità di dati trasmessi in una unità di tempo e dipende esclusivamente da quanta informazione è immessa sul canale della trasmissione.
Prima di fare delle considerazioni sul troughput occorre considerare il fatto che sia pfSense che OPNsense possono operare sia come firewall che come router oppure entrambi. Sarà necessario quindi considerare per la scelta dell’apparato, il throughput complessivo del sistema che vogliamo realizzare.
Per esempio, se dobbiamo realizzare un firewall, possiamo considerare come throughput la somma dei throughput delle WAN. Se dobbiamo invece realizzare un Router che unisce tra loro delle reti dobbiamo sommare il throughput di tutte le interfacce, sia WAN che LAN.
2.1 Tipo di CPU
È importante determinare il throughput di una rete prima dell’installazione di un firewall/router pfSense/OPNsense in quanto esso determina il tipo di CPU da utilizzare ed in certi casi il tipo di NIC. Se sono richiesti meno di 10 Mbps allora è possibile utilizzare i requisiti minimi hardware.
Per throughput superiori consigliamo caldamente di seguire il dimensionamento suggerito dalla tabella che segue, basata su test effettivamente eseguiti sul campo. La tabella qui sotto è pensata per evitare di raggiungere il massimo livello di carico dell’hardware, così da non incorrere in problemi.
Se per esempio devo realizzare un Router o un Firewall con delle porte a 10 Gbit, non potrò utilizzare una CPU meno potente di uno XEON Quad Core. Infatti, quando le NIC raggiungono i 10 Gbit di traffico i Core dell’appliance vanno al 100% e la macchina va in crisi.
Per questi usi si consigliano:
Occorre tenere presente che il team di sviluppo di pfSense, ha annunciato che dalla versione 2.5 NON SARA’ PIU’ POSSIBILE installare e tantomeno aggiornare le versioni di pfSense su hardware sprovvisto di CPU dotate di istruzioni AES-IN.
La ragione (sempre dichiarata da pfSense) è che per supportare l’aumento dei carichi della CPU derivanti dalla crittografia si è reso necessario l’uso del set di istruzioni AES-NI che vengono utilizzate per ottimizzare gli algoritmi di crittografia e decrittografia su determinati processori Intel e AMD.
La cosa non riguarda invece gli sviluppatori di OPNsense che dichiarano che l’esecuzione delle istruzioni AES-IN può essere fatta sia via hardware (con CPU aventi istruzioni AES-IN) che via software, come per altro avviene sulle versioni attuali di entrambe le distribuzioni senza particolari problemi.
2.2 pfSense fino a 2.4.X: requisiti minimi
CPU | Non meno di 1GHz |
RAM | 1 GB |
Installazione su Hard Disk | 16 GB |
Embedded | CF non più supportato |
2.3 pfSense CE 2.5.X: requisiti minimi
CPU | Non meno di 1 GHz, CPU dotata di AES-IN |
RAM | 1 GB |
Installazione su Hard Disk | 16 GB |
Column 1 Value 4 | CF non più supportata |
2.4 Dimensionare un firewall basato sul Throughput
Throughput | Hardware consigliati | Prodotto consigliato | Rumorosità |
1-20 Mbps | Non meno di 1000 MHz CPU Single Core | Firewall Entry Level 2 NIC APU2 2GB RAM | Nulla |
10-100 Mbps | Non meno di 2.4 GHz CPU Quad Core | Compact Small UTM 3 Appliance Small UTM 3 | Nulla |
50-650 Mbps | Non meno di 2.4 GHz CPU Octa Core | Appliance A1 Server Aluminum Firewall Appliance Power UTM Aluminum | Quasi nulla (*) |
450 – 1000 Mbps | Non meno di 3,5 GHz Quad Core | Firewall Appliance Power UTM Aluminum Appliance A1 Server Aluminum | Media (*) |
Fino a 10 Gbps | Non meno di 3,5 GHz Xeon Quad/Octa Core | Appliance A2 Server Aluminum Appliance A3 Server Aluminum | Media (*) |
2.5 Dimensionare un firewall basato sul Throughput versione cluster
Throughput: Mbps | Requisiti hardware consigliati | Prodotto consigliato | Rumorosità |
1-20 Mbps | Non meno di 1000 MHz CPU Single Core | Nano Cluster APU2E 2GB | Nulla |
10-100 Mbps | Non meno di 2.4 GHz CPU Quad Core | Compact Small UTM 3 Appliance Small UTM 3 | Nulla |
50-650 Mbps | Non meno di 2.4 GHz CPU Octa Core | Power Cluster | Bassa (*) |
450 – 1000 Mbps | Non meno di 3,5 GHz Quad/Octa Core | A2-Server Cluster A3-Server Cluster | Media (*) |
Fino a 10 Gbps | Non meno di 3,5 GHz Xeon Quad/Octa Core | A2-Server Cluster A3-Server Cluster | Media (*) |
(*) I modelli Power Cluster e APUTM con CPU Intel I7 presentano un livello di rumorosità Medio solo se sottoposti a forti e continuativi carichi di lavoro.
3. Pacchetti aggiuntivi
Molte features di pfSense/OPNsense influenzano notevolmente il dimensionamento dell’hardware.
3.1 VPN
l’utilizzo pesante del servizio VPN fa crescere molto i requisiti della CPU. La cifratura e decifratura dei pacchetti accresce il carico sulla CPU. Il numero di connessioni è un fattore meno preoccupante del throughput.
- CPU di 266 MHz supporta circa 4 Mbps di traffico IPsec
- CPU di 500 MHz supporta circa 10-15 Mbps di traffico IPsec
- CPU I7 o I3 di nuova generazione supportano quasi fino a 200 Mbps di traffico IPsec
- CPU XEON di nuova generazione per carichi superiori a 400 Mbps
3.2 SquidGuard
Controllo del traffico in uscita mediante proxy: entrambi i pacchetti utilizzano molto sia la CPU che le scritture su disco.
È pertanto fortemente sconsigliato l’utilizzo con la fascia Entry level:
Per questo tipo di lavoro è fortemente consigliato l’utilizzo di:
- Compact Small UTM 3
- Appliance Small UTM 3
- Appliance Small UTM 2A2SUTM
- Appliance A1 Server Aluminum
- Appliance A2 Server Aluminum
- Appliance A3 Server Aluminum
- Firewall Appliance Power UTM Aluminum con SSD o dischi Classici.
Tuttavia è altresì possibile l’utilizzo ottimizzato con il solo pacchetto squid sulla fascia e Firewall Entry Level 2 NIC APU2 2GB RAM a patto che si utilizzi la scrittura sul supporto disco con parsimonia ed in ogni caso a forte discapito delle prestazioni.
3.3 pfBlockerNg
pfBlockerNG è un pacchetto per pfSense che permette di estendere le funzionalità del firewall oltre il tradizionale firewall L2 / L3 / L4.
pfBlockerNG permette di configurare il firewall per consentire/negare traffico basandosi su elementi come la geo localizzazione di un indirizzo IP, il nome di dominio (per esempio per bloccare Facebook e simili) o le valutazioni di Alexa di determinati siti web.
Questo pacchetto richiede un aumento di CPU e RAM dal 15% al 25%. Per approfondire il funzionamento di questo pacchetto, potete consultare la guida che abbiamo realizzato e pubblicato nella nostra area guide.
3.4 Captive Portal
Ambienti con centinaia di connessioni richiedono molta CPU. Con riferimento alla tabella del throughput sarà necessario aumentare gli utenti di un 15-20% per ottenere la piattaforma raccomandata.
3.5 Grandi tabelle di Stato
Ogni voce della tabella di stato richiede 1 KB. La tabella di stato, quando è piena ha 10.000 voci, quindi circa 10 MB di RAM. Per tabelle di stato più grandi, con centinaia di migliaia di connessioni sarà necessario dimensionare adeguatamente la RAM.
3.6 Packages
Molti pacchetti aumentano significativamente la quantità di RAM utilizzata. Per esempio snort e ntop non dovrebbero essere installati su piattaforme hardware con meno di 512 MB di ram ed almeno 32 GB di disco.
3.7 Versione di pfSense/OPNsense
È da sottolineare la differenza tra i due tipi di installazioni che è possibile effettuare con pfSense/OPNsense sui diversi dispositivi.
Ricordiamo che per quanto riguarda pfSense, l’ultima versione installabile su CF (cioè la versione embedded) è la 2.3.5, mentre per OPNsense non è prevista la cessazione del supporto.
- La soluzione Embedded (firewall Entry Level) NON permette la scrittura dei file di log sulla memoria (C.F. o DOM) ed in ogni caso è fortemente sconsigliato farlo. Su questa versione non è possibile installare alcuni dei pacchetti aggiuntivi di pfSense/OPNsense.
- La soluzione che si installa su hard disk (normalmente sulle soluzioni Appliance UTM o superiori) ha la possibilità di salvare i log al suo interno. Su questa versione è possibile installare tutti i pacchetti aggiuntivi forniti per pfSense/OPNsense.
- Ricordiamo che pfSense 2.5.X sarà installabile solo su hardware avente CPU con il supporto AES-IN
4. Chipset delle schede di rete
La scelta di una scheda di rete è fondamentale per chi sta progettando un sistema per medie/grandi dimensioni.
Come potete notare dalle descrizioni dei prodotti, specifichiamo sempre molto bene se gli apparati integrano al proprio interno dei chipset Intel oppure Realtek.
Da circa metà 2016 in avanti praticamente tutti i nostri devices sono dotati di chipset Intel. Il chipset Realtek è meno performante del chipset Intel ed è adatto principalmente per carichi di lavoro meno intensi.
Tuttavia, per un’azienda che non richiede throughput elevati (come l’85% delle aziende Italiane) rimane sempre la scelta ideale.
Il chipset Intel invece offre maggiori performances in caso di traffico intenso: offre infatti parecchie features avanzate come la gestione delle code e dalla versione di pfSense 2.2 in poi anche un supporto migliorato al multi-core. Questo si traduce in un throughput più elevato e minore carico sulle CPU.
Per essere precisi, il pieno supporto al multicore è stato introdotto su FreeBSD, cioè dal S.O. padre di pfSense e OPNsense, quindi lo stesso discorso fatto per pfSense vale e varrà in futuro anche per OPNsense.
Se state ancora utilizzando pfSense 2.1.x, a questo proposito abbiamo pubblicato un approfondimento sull’ottimizzazione delle NIC Intel attraverso il tuning del driver e delle impostazioni. Specifichiamo comunque che fino ad oggi le nostre appliances non hanno bisogno di tale ottimizzazione. Noi la inseriamo comunque per completezza.
Sulle attuali versioni di pfSense/OPNsense non sembra essere necessario apportare modifiche.
Se il tuo appliance ha problemi di performances derivanti dalle NIC consulta la guida pfSense: problemi di throughput e troubleshooting per la diagnosi del problema.
5. Rumorosità degli apparati
Per fornire il prodotto adeguato è necessario pensare a dove verrà collocato il firewall.
Se l’apparato verrà collocato nelle vicinanze di persone che lavorano, sarà necessario scegliere una macchina con un basso livello di rumore o sarà necessario l’acquisto di apposito kit silent!
Ultimamente, per effetto della nuova tecnologia a 25 nanometri di Intel, le potenze assorbite si sono ridotte moltissimo e di conseguenza anche il calore dissipato è diminuito.
Dal punto di vista progettuale, abbiamo preferito mantenere nei modelli di fascia alta (tipicamente impiegati in datacenter o CED) la ventola. Questo perché, qualora la board o la CPU rilevassero alte temperature, l’ausilio della ventola riporterebbe in pochi secondi la temperatura a livelli accettabili.
Di seguito è riportata una tabella nella quale vengono forniti dati indicativi sulla rumorosità degli apparati:
Apparato | Livello di rumore |
Firewall Entry Level 3 NIC APU2 based 4GB RAM Compact Small UTM 3 Appliance Small UTM 3 Nano Cluster APU2E 2GBAppliance Small UTM 2A2SUTM Small Cluster | Livello 0 (completamente fan less) |
Appliance A1 Server Aluminum | Livello 1 (rumore quasi impercettibile) |
Appliance A2 Server Aluminum Appliance A3 Server Aluminum Power Cluster Firewall Appliance Power UTM Aluminum | Livello 4 (rumore udibile da 4 / 5 metri) |
Note sul rumore:
un dispositivo che dissipa bene il calore, sicuramente durerà più a lungo e sarà più stabile e affidabile!
Ecco perché i nostri dispositivi di fascia alta sono progettati in modo tale che il flusso d’aria “investa” i componenti interni raffreddandoli.
6. Funzione RAID
Una delle funzioni maggiormente apprezzate da pfSense/OPNsense in termini di affidabilità hardware è la funzionalità Raid direttamente implementata dal sistema operativo FreeBSD.
Questa funzione garantisce un livello di affidabilità superiore dell’applicane in quanto in caso di rottura di un disco l’applicazione continuerà a funzionare come se nulla fosse.
Questa funzione è supportata da:
- Compact Small UTM 3
- Appliance Small UTM 3
- Appliance Small UTM 2A2SUTM
- Appliance A1 Server Aluminum
- Firewall Appliance Power UTM Aluminum
- Appliance A2 Server Aluminum
- Appliance A3 Server Aluminum
- ed in tutte le versioni Cluster dei nostri apparati tranne che il NanoCluster.
Per chi volesse approfondire l’argomento, abbiamo pubblicato una guida che spiega come funziona e come intervenire sugli apparati in caso di guasto. La trovate sotto il menù guide.
7. Quando usare un cluster
Un sistema Cluster è una soluzione composta da un sistema avente due apparati hardware completamente indipendenti. Esistono 3 versioni di soluzioni Cluster, una per piccoli uffici e l’altra per traffico intenso e/o per strutture medio/grandi.
Nano Cluster APU2E 2GB: soluzione 1U compatta, studiata per piccoli uffici
Small Cluster: soluzione 2U per le PMI e/o piccoli Datacenter che non vogliono rinunciare all’alta affidabilità
Power Cluster: soluzione 2U per aziende e organizzazioni che necessitano dell’alta affidabilità
A2-Server Cluster e A3-Server Cluster: soluzione 2U di livello Datacenter che fornisce l’alta affidabilità
Lo Small Cluster e il Power Cluster sono dispositivi 2U, composti da 2 cassetti indipendenti, mentre il NanoCluster è composto da due apparati Entry Level.
Mediante pfSense oppure OPNsense si può ottenere un vero e proprio Cluster attivo passivo configurato per ottenere l’alta affidabilità tra i 2 apparati che diventano a tutti gli effetti dei nodi del cluster.
Gli altri S.O. non hanno (speriamo solo per ora) una funzione come il CARP di pfSense/OPNsense ma possono essere comunque configurati in modo tale che l’utente possa spegnere manualmente uno dei due sistemi ed accendere l’altro. Possiamo dire quindi che si tratta di un sistema Cluster che nel caso di pfSense e OPNsense è automatico ed in caso di altri S.O. è manuale. Tale sistema dovrebbe essere utilizzato in ambienti dove l’alta affidabilità è obbligatoria.
8. Dimensionamento istantaneo
In base alle nostre esperienze abbiamo stilato una classificazione delle installazioni che abbiamo seguito negli anni. Tale classificazione non è solo frutto dell’esperienza fatta durante l’installazione del firewall, ma anche dell’evoluzione tecnologica che l’utilizzatore richiede al dispositivo durante gli anni di utilizzo.
I risultati sono legati per esempio all’evoluzione tecnologica che ogni azienda/ente subisce o richiede negli anni per esigenze diverse. Per esempio le piccole aziende richiedono inizialmente l’installazione di un semplice firewall.
Normalmente non passa molto tempo dalla presentazione di richieste come la VPN, filtraggio dei contenuti o regole di navigazione.
Per questo in base al numero di “dispositivi attivi” (cioè di dispositivi connessi ad internet) abbiamo elaborato la seguente tabella che tiene anche conto dei concetti sopra riportati:
Modello | Dispositivi attivi |
Entry Level o Nano Cluster APU2E 2GB | da 1 a 5 utenti |
Firewall Entry Level 2 NIC APU2 2GB RAM o Nano Cluster APU2E 2GB | da 1 a 10 utenti |
Compact Small UTM 3 o Appliance Small UTM 3 o Appliance Small UTM 2A2SUTM o Small Cluster | da 8 a 35 utenti |
Compact Small UTM 3 o Appliance Small UTM 3 o Appliance A1 Server Aluminum o Small Cluster | da 20 a 60 utenti |
Appliance A1 Server Aluminum o Power Cluster | da 50 a 350 utenti |
Appliance A2 Server Aluminum o Firewall Appliance Power UTM Aluminum o Power Cluster | da 100 a 2000 utenti |
Appliance A3 Server Aluminum o Firewall Appliance Power UTM Aluminum o Power Cluster | da 100 a 3500/5000 utenti |
Appliance A3 Server Aluminum | da 500 a 10.000 utenti |
9. Analisi performance apparati
9.1 NoVPN
NO VPN | ||||||
BRIDGE | NAT | |||||
TCP | UDP | TCP | UDP | |||
Banda | Banda | Jitter | Banda | Banda | Jitter | |
ALIX | 86,60 Mbps | 87,10 Mbps | 0,123 ms | 86,57 Mbps | 88,40 Mbps | 0,122 ms |
APU | 474,00 Mbps | 735,00 Mbps | 0,028 ms | 474,00 Mbps | 535,00 Mbps | 0,037 ms |
CASUTM | 595,00 Mbps | 653,00 Mbps | 0,033 ms | 595,00 Mbps | 535,00 Mbps | 0,037 ms |
AUTM5 | 754,50 Mbps | 735,00 Mbps | 0,024 ms | 551,20 Mbps | 560,00 Mbps | 0,035 ms |
Power Microcluster | 939,00 Mbps | 784,00 Mbps | 0,029 ms | 942,00 Mbps | 784,00 Mbps | 0,025 ms |
APUTM | 939,00 Mbps | 784,00 Mbps | 0,029 ms | 942,00 Mbps | 784,00 Mbps | 0,025 ms |
9.2 OpenVPN
OPENVPN | |||||||||
AES128 | AES256 | Blowfish | |||||||
TCP | UDP | TCP | UDP | TCP | UDP | ||||
Banda | Banda | Jitter | Banda | Banda | Jitter | Banda | Banda | Jitter | |
ALIX | 13,43 Mbps | 18,00 Mbps | 0,052 ms | 12,30 Mbps | 16,00 Mbps | 0,048 ms | 14,67 Mbps | 20,00 Mbps | 0,095 ms |
APU | 68,20 Mbps | 60,00 Mbps | 0,055 ms | 58,63 Mbps | 55,00 Mbps | 0,073 ms | 79,33 Mbps | 68,40 Mbps | 0,057 ms |
CASUTM | 62,77 Mbps | 75,50 Mbps | 0,038 ms | 56,10 Mbps | 65,30 Mbps | 0,064 ms | 71,93 Mbps | 87,10 Mbps | 0,040 ms |
AUTM5 | 80,20 Mbps | 94,10 Mbps | 0,026 ms | 69,40 Mbps | 80,25 Mbps | 0,042 ms | 97,10 Mbps | 114,80 Mbps | 0,040 ms |
Power Microcluster | 135,24 Mbps | 121,74 Mbps | 0,024 ms | 116,16 Mbps | 106,88 Mbps | 0,031 ms | 153,79 Mbps | 138,41 Mbps | 0,029 ms |
APUTM | 135,24 Mbps | 121,74 Mbps | 0,024 ms | 116,16 Mbps | 106,88 Mbps | 0,031 ms | 153,79 Mbps | 138,41 Mbps | 0,029 ms |
9.3 IPsec
IPSec | ||||||||||||
AES128 | AES256 | Blowfish128 | 3DES | |||||||||
TCP | UDP | TCP | UDP | TCP | UDP | TCP | UDP | |||||
Banda | Banda | Jitter | Banda | Banda | Jitter | Banda | Banda | Jitter | Banda | Banda | Jitter | |
ALIX | 15,27 Mbps | 16,00 Mbps | 0,105 ms | 13,73 Mbps | 14,00 Mbps | 0,116 ms | 14,10 Mbps | 15,00 Mbps | 0,106 ms | 8,62 Mbps | 9,00 Mbps | 0,089 ms |
APU | 49,00 Mbps | 70,00 Mbps | 0,061 Mbps | 45,60 Mbps | 54,20 Mbps | 0,028 ms | 44,60 Mbps | 58,20 Mbps | 0,083 ms | 26,53 Mbps | 32,00 Mbps | 0,051 ms |
CASUTM | 60,13 Mbps | 67,20 Mbps | 0,042 ms | 56,03 Mbps | 63,20 Mbps | 0,049 ms | 56,87 Mbps | 66,10 Mbps | 0,057 ms | 34,43 Mbps | 37,10 Mbps | 0,042 ms |
AUTM5 | 74,22 Mbps | 80,40 Mbps | 0,079 ms | 68,60 Mbps | 73,50 Mbps | 0,064 ms | 69,70 Mbps | 71,30 Mbps | 0,074 ms | 37,80 Mbps | 40,00 Mbps | 0,023 ms |
Power Microcluster | 109,54 Mbps | 106,77 Mbps | 0,039 ms | 103,72 Mbps | 96,06 Mbps | 0,035 ms | 105,99 Mbps | 95,01 Mbps | 0,039 ms | 62,82 Mbps | 54,86 Mbps | 0,024 ms |
APUTM | 109,54 Mbps | 106,77 Mbps | 0,039 ms | 103,72 Mbps | 96,06 Mbps | 0,035 ms | 105,99 Mbps | 95,01 Mbps | 0,039 ms | 62,82 Mbps | 54,86 Mbps | 0,024 ms |
IPSec | |||||||||
AES128 | AES256 | 3DES | |||||||
TCP | UDP | TCP | UDP | TCP | UDP | ||||
Banda | Banda | Jitter | Banda | Banda | Jitter | Banda | Banda | Jitter | |
ALIX | 15,27 Mbps | 16,00 Mbps | 0,105 ms | 13,73 Mbps | 14,00 Mbps | 0,116 ms | 8,62 Mbps | 9,00 Mbps | 0,089 ms |
ALIX + Card (*) | 48,33 Mbps | 39,10 Mbps | 0,061 ms | 48,07 Mbps | 39,10 Mbps | 0,078 ms | 48,57 Mbps | 39,10 Mbps | 0,049 ms |
Gain [%] | 216,50% | 144,38% | 41,90% | 250,11% | 179,29% | 32,76% | 463,46% | 334,44% | 44,94% |