Google Translate Francese Français Spagnolo Español Tedesco Deutsch Olandese Nederlands Turco Türk Arabo العربية Polacco polski Russo русскиŇ Greco ελληνικά
Linea Prodotti Compact Small UTM Linea Prodotti AUTM

pfSense® vs OPNsense®: comparazione tecnica


Introduzione

Il presente articolo è redatto come spunto di riflessione per una comparazione tecnica derivante dalle nostre prime impressioni tra le due solide piattaforme pfSense® ed OPNsense®.
Le informazioni di seguito riportate sono tutte reperibili nei link a piè di pagina o in quelli collegati direttamente nell'articolo.
Se desideri vedere subito la tabella comparativa clicca sul seguente link: tabella comparativa pfsense® vs OPNsense®.

Un po' di storia contemporanea


OPNsense® è un giovane sistema operativo di firewalling basato su FreeBSD 10, nasce come fork di pfSense® il quale, a sua volta, è un fork di m0n0wall®.
La sua storia comincia ufficialmente nel gennaio 2015, più precisamente il 2 gennaio 2015, quando sul sito ufficiale venne pubblicato l'annuncio di rilascio della sua prima release: la 15.1.
Per tutti coloro che non ne fossero già a conoscenza, sappiate che in OPNsense® le versioni rappresentano rispettivamente l'anno (es. 15) e il mese (es. 1). La versione 15.1 indica, quindi, gennaio 2015 e sono previsti due major release l'anno: a gennaio e a luglio.

PfSense® anch'esso basato su FreeBSD, come accennato in precedenza, nasce come fork di m0n0wall® nel lontano settembre 2004 da *Chris Buechler e Scott Ullrich per superare alcuni limiti di questo ottimo sistema embedded.
Il sistema m0n0wall®, per chi non lo sapesse, era per l'appunto un embedded firewall; questo suo grande punto di forza era anche una limitazione di espandibilità perché sia le applicazioni che il sistema operativo venivano eseguiti interamente in RAM.
Se, come noi, vi siete chiesti il motivo del nome di pfSense® qui c'è un interessante post scritto da uno dei fondatori che spiega in poche semplici parole perché il loro progetto si chiama così.

In ultima battuta spendiamo due parole per salutare m0n0wall®, il progetto termina definitivamente, come annunciato sulla pagina ufficiale, il 15 febbraio 2015. Il suo padre fondatore, Manuel Kasper, sempre sulla pagina ufficiale incoraggia tutti i suoi utenti a "controllare" OPNsense®.

*[ndr: aveva contribuito al progetto m0n0wall®, ma qui sotto "The following persons have contributed code to m0n0wall" non compare il suo nome.]

So Why did we fork: perché hanno deciso di fare il fork


Gli sviluppatori di OPNsense®, hanno partecipato per anni al progetto pfSense® ma nel 2014, mossi dal desiderio di voler fare un numero di cose in maniera diversa, decisero di creare un loro progetto che rispecchiasse maggiormente queste loro necessità.
I motivi dichiarati che hanno spinto al fork sono principalmente di tipo tecnico, ma anche di sicurezza e di qualità del codice. In ultimo (ma non per importanza) anche a causa del cambio di licenza fatto da pfSense® che causò qualche risentimento anche nella community.

Se desiderate avere un maggiore dettaglio sui motivi del fork, vi invitiamo a consultare i links:
https://docs.opnsense.org/fork/thefork.html#so-why-did-we-fork
https://m.reddit.com/r/PFSENSE/comments/3rh9dw/pfsense_vs_opnsense/

[OpnSense®: Licenza]

Viene rilasciato con un licenza open source chiamata Licenza BSD Semplificata/ Licenza FreeBSD (2 clausole) (BSD 2-Clause "Simplified" or "FreeBSD" license) di tipo OSI-approved (Open Soruce Initiative - Approved); ovvero approvata dall'organizzazione dedicata alla promozione del software libero.

[PfSense®: Licenza]

Spendiamo due parole sulla tanto discussa licenza di pfSense®.
PfSense® ha cambiato la sua licenza, che era di tipo licenza BSD originale (detta anche licenza BSD con 4 clausole), con una proprietaria nel 2014 (ma sempre open source). Se volete trovare le informazioni della vecchia licenza potete trovarle nelle vecchie release del software nel file COPYRIGHT.

È stata recentemente sostituita (luglio 2016) un'altra volta, ed è ora rilasciato sotto la licenza open source chiamata Apache 2.0 license. Anche questa licenza è di tipo OSI-approved (Open Soruce Initiative - Approved).

PfSense® richiede a tutti coloro che intendono contribuire al progetto, di sottoscrivere e firmare elettronicamente un ICLA (Individual Contributors License Agreement).

Se desiderate avere maggiori informazioni sulla licenza pfSense® vi invitiamo a consultare i seguenti links:
https://doc.pfsense.org/index.php/Contributor_License_Agreement_for_Developers
https://www.pfsense.org/about-pfsense/index.html#legal

Di seguito un interessante rimando alla pagina di Wikipedia (EN) in cui vengono mostrate le tabelle comparative per tutte le licenze open source e free.

Tecnicamente parlando: cosa cambia


OPNsense® dichiara di aver riscritto quasi tutto il codice mantenendo solo una porzione minore del 10% ancora condivisa con quella del suo fratello maggiore.
Dichiarano nella loro documentazione di aver risolto molti kernel issue di pfSense® - ha introdotto una sua User Interface scritta sul Phalcon PHP framework che, a quanto si legge, è il più veloce open source sul mercato.

[OpnSense®: Phalcom]

Gli utenti che sceglieranno di provare questo sistema potranno quindi usare questa nuova veste grafica che incorpora un'efficiente sistema di ricerca (davvero utile e funzionale), e un interessante modulo chiamato "System Health" come variante dei grafi RRD.
Questo modulo è interattivo e vi permetterà di avere un riscontro grafico durante un'eventuale analisi. Lo strumento è utile quindi per trovare un problema più velocemente e in maniera più facile o, semplicemente, per guardare le performance.
Una volta entrati nel System Health si potranno rimuovere le voci dalla visualizzazione che non si vogliono guardare in quel momento, e utilizzare il grafico cursore/focus (in basso proprio sotto il grafico) per fare uno zoom della fascia temporale interessata.
È possibile, infine, esportare i dati della tabella (riportati in basso attivando Show Table On) in formato CSV.
Di seguito alcune screenshot che mostrano questo interessante modulo.






[PfSense®: Bootstrap]

PfSense®, a partire dalla versione 2.3, introduce una nuova veste grafica convertendo tutto a Bootstrap.
La disposizione delle pagine e dei menù è volutamente mantenuta invariata; probabilmente per non costringere i numerosi utenti, già abituati alla "vecchia" GUI, a dover spendere tempo per studiare una nuova disposizione e/o impaginazione.
Qui potete trovare una galleria d'immagini pubblicate durante la fasi finali di sviluppo.

[OpnSense®: Inline IPS]

Nella versione 16.7 (uscita il 28 luglio 2016) è previsto anche una variazione del sistema di IPS chiamata Inline Intrusion Prevention che, invece di limitarsi a bloccare un IP o una porta, ispeziona il pacchetto e quando viene rilevato un certo tipo di traffico (o connessione) lo blocca (o interrompe) immediatamente, prima che raggiunga il mittente.
Basata su Suricata utilizza Netmap per incrementare le performance e diminuire l'utilizzo di CPU.
Il sistema utilizza Ruleset, blacklist e il Finger Printing.
Per maggiori informazioni visitate il link seguente: https://docs.opnsense.org/manual/ips.html?highlight=inline%20intrusion

[PfSense®: IPS]

Possibile su pfSense® tramite il package di Snort.
Snort è un sistema open source (comprato da Cisco di recente ndr) di prevenzione delle intrusioni di rete. È in grado di effettuare analisi del traffico su reti IP in tempo reale, di eseguire analisi di protocollo, ricerca contenuto/corrispondenza, e può essere utilizzato per rilevare una varietà di attacchi e probes, come buffer overflow, stealth port scan, attacchi CGI, SMB probes, tentativi OS fingerprinting, e molto altro ancora.

https://www.snort.org/faq/what-is-snort

Qui trovate un interessante confronto tra Snort e Suricata: http://wiki.aanval.com/wiki/Snort_vs_Suricata

[OpnSense®: Update]

Sono previsti dei security update settimanali per essere più al passo con le nuove minacce.

[PfSense®: Update]

Al momento in cui questo articolo viene redatto non sono previsti update scadenzati con frequenza regolare. Tuttavia sappiamo per esperienza che pfSense® rilascia regolarmente update e inoltre, di recente, è stata annunciata la conversione dell'underlying system a FreeBSD® pkg. Questa permette di aggiornare pezzi del sistema singolarmente, invece che gli enormi blocchi del passato.

[Community]

Questo punto rappresenta una delle differenze maggiori tra i due progetti. OPNsense® non supporta la creazione e l'installazione di packages di terze parti, come invece consente di fare pfSense.
Questa scelta viene motivata dagli sviluppatori di OPNsense® per evitare possibili imperfezioni del codice.
Link: https://docs.opnsense.org/fork/nomoremyths.html#myth-opnsense-doesn-t-support-packages

[OpnSense®: Community]

Per quanto riguarda invece la community, ovvero per tutti coloro che vorranno contribuire al progetto, OPNsense® ha abolito i packages e ha introdotto un sistema di plugin.
Per maggiori dettagli sul sistema di plugin vi invitiamo a consultare il seguente link: https://docs.opnsense.org/development/examples/helloworld.html.

[PfSense®: Community]

Come accennato in precedenza, la community deve firmare un ICLA, ma può poi contribuire come ha sempre fatto in tutti questi anni.

Come sempre, per maggiori su quanto sopra riportato, vi invitiamo a consultare i seguenti link:
https://docs.opnsense.org/fork/thefork.html#debunking-the-myths
https://opnsense.org/about/about-opnsense/
https://docs.opnsense.org/fork/nomoremyths.html
https://docs.opnsense.org/development/examples/helloworld.html


OPNsense® vs Feature pfSense®: Comparativa


Questa tabella comparativa nasce ricercando le features di pfSense® in OPNsense®.

Features OPNsense® pfSense®
Firewall Stateful inspection Stateful inspection
Web Based Graphical Interface Bootstrap based on Phalcon PHP Framework * From 2.3 migrated to Bootstrap
Installation Setup Wizard Yes Yes
Configurable Dashboard Yes Yes
IPv4 and IPv6 support Yes Yes
Wireless Access Point Yes Yes
Wireless Client Support Yes Yes
Setup and filter/isolate multiple - Yes
Interfaces (LAN] DMZ] etc.) Yes Yes
Traffic Shaping Yes Yes
State Table controls Yes Yes
NAT Yes Yes
Redundancy/High Availability Yes Yes
Multi-WAN Support Yes Yes
Server Inbound Load Balancing Yes (Virtual Server Setup) Yes
Network diagnostic utilities See below See below
[ping] Yes Yes
[traceroute] Yes Yes
[port tests via the GUI] Yes more with packages] such as nmap
VPN
[IPsec (including Phase 2 NAT)] Yes Yes
[OpenVPN] Yes Yes
[L2TP] Yes (tramite plugin) Yes (tramite package)
[PPPoE] Yes (tramite plugin) Yes (tramite package)
[PPTP] Yes (Non considerata sicura) No (Tolta perché non sicura)
RRD Graphs No (System Health) Yes
Real-time interface traffic graphs Yes Yes
Dynamic DNS Yes Yes
Captive Portal Yes Yes
DHCP Server and Relay (IPv4 and IPv6) Yes Yes
Command line shell access Yes Yes
Wake on LAN Yes Yes
Built in packet capture / sniffer Yes Yes
Backup and restore the fw configuration Yes Yes
Edit files via the web GUI Yes Yes
Virtual interfaces for:
[VLAN] Yes Yes
[LAGG/LACP] Yes/no Yes/Yes
[GIF] Yes Yes
[GRE] Yes Yes
[PPPoE/PPTP/L2TP/PPP WANs] Yes/Yes/Yes/Yes Yes/Yes/Yes/Yes
[QinQ] and Bridges] Yes Yes
Caching DNS Forwarder/Resolver Yes Yes
Can be run in many virtualization env. Yes Yes
Proxy Server Yes using packages
IPS Yes (based on Suricata: già incluso) SNORT (EXTRA PACKAGE)
IDS Yes (based on Suricata: già incluso) SNORT (EXTRA PACKAGE)
Security Update Yes Weekly Yes with patch fix release
Raid Software Yes unofficially supported* Yes full supported


* è possibile scegliere in fase d'installazione la funziona di "Geom Mirror" scegliendo: il master e lo slave. Nell'interfaccia grafica però non c'è alcuna traccia del mirror creato, quindi non si può avere alcuna informazione sul suo stato. Abbiamo inoltre riscontrato, nei nostri test di laboratorio, alcuni messaggi di "Geom Mirror distroyed" che però non hanno compromesso (apparentemente) la funzionalità del sistema.


pfSense® VS OPNsense: performances a confronto


Per avere un altro punto di confronto abbiamo deciso di testare sul campo alcune performance dei sistemi. Abbiamo così scelto di fare delle prove di file transfer tra due host connessi dietro due Firewall Entry level.
Di seguito uno schema logico di rete usato per le prove:



Il traffico dall'Host1 verso l'Host2 passava tramite i due sistemi firewall sul quale abbiamo registrato performance pressoché identiche per tutte le prove fatte. Nella tabella riassuntiva, che troverete di seguito, sono riportati i valori espressi in Mbps registrati durante le nostre prove:

  • Tramite OpenVPN
  • Tramite VPN IPSec
  • Tramite un routing diretto

Entrambi i firewall si sono comportati allo stesso modo in tutte le situazioni.

Ecco di seguito i ranges di valori registrati:

Throughput OPNsense® pfSense®
File Transfer OVPN 40-42 Mbps 40-42 Mbps
File Transfer direct (routing) 150-330Mbps 150-330Mbps
File Transfer VPN IPSec 150Mbps 150Mbps

Per questo motivo possiamo considerare valida sia per OPNsense® che per pfSense® la nostra guida al dimensionamento degli apparati hardware che potete trovare qui: http://www.firewallhardware.it/dimensionare_hardware_pfsense.html.


Conclusioni


Ovunque sul web si leggono commenti pro e contro per entrambi i progetti, noi non vogliamo entrare nel merito e non vogliamo schierarci a favore di nessuno ma, certamente, sarebbe sbagliato non vedere questo fork come un'opportunità per il mondo della security open source.
La concorrenza tra i due è di certo un bene per entrambi i progetti e per l'utente finale: qualunque sia la vostra scelta avrete sempre un prodotto valido.
A parte le piccole differenze già descritte, i firewall al momento sono molto simili. Le performances dei due sistemi per ora si equivalgono essendo derivati entrambi dallo stesso O.S. (questo risultato ce lo aspettavamo già prima dei test).
Nel riconoscimento/compatibilità dell'hardware non abbiamo rilevato particolari differenze, così come per le features: per il 90% si equivalgono (vedi tabella sopra).
Dal punto di vista grafico ci sembra che OPNSense® sia migliore rispetto a pfSense® con un menù più gradevole.
Probabilmente in futuro la separazione sarà più marcata o forse no; se così non fosse sarebbe piuttosto difficile scegliere una soluzione piuttosto che l'altra.
Per ora l'ago della bilancia potrebbe essere o la diversa veste grafica di OPNSense®, più accattivante e con un menù più gradevole, oppure gli anni di esperienza, la grande community e la maggiore notorietà di pfSense®. Non va, infatti, dimenticato che OPNSense® ha poco più di 1 anno di vita contro i 12 anni di pfSense®. Questo influisce sulla popolarità, sui contenuti dei vari forum di discussione che sono molto più popolati e ricchi d'informazioni.
Quello che invece ci lascia un po' perplessi, sono i continui cambi di tipologia di licenza operati da pfSense® e l'arrivo della scritta Community Edition sotto il logo: forse in futuro potrebbe esserci una politica differente? Staremo a vedere.


Curiosità


Dopo Scott Ulrich, anche il secondo co-fondatore del progetto pfSense® Chris Buechler ha ufficialmente lasciato pfSense® il 28 luglio 2016 per entrare nel team di Ubiquiti Network come ingegnere capo.
Scott Ulrich su twitter suggerisce OPNsense®?

E, a proposito di notorietà, se volete avere maggiori informazioni sul trends di diffusione dei più blasonati S.O. open vi invitiamo a consultare il seguente link:

[ pfSense® VS OPNsense® ]
https://www.google.it/trends/explore?date=all&q=opnsense,pfsense
[ pfSense® VS OPNsense® VS zeroshell VS IPCop VS IPfire]
https://www.google.it/trends/explore?date=all&q=opnsense,pfsense,zeroshell,ipcop,ipfire