Scopri tutti gli articoli pfSense

Questo articolo è una comparazione tecnica derivante dalle nostre prime impressioni tra pfSense CE ed OPNsense.

Contenuti dell’articolo pfSense CE vs OPNsense

  1. Storia contemporanea
  2. So Why did we fork: perché hanno deciso di fare il fork
  3. OPNSense: Licenza
  4. pfSense CE: Licenza
  5. Tecnicamente parlando: cosa cambia?
  6. OPNSense: Phalcom e Bootstrap
  7. pfSense CE: Bootstrap
  8. OPNSense: Inline IPS
  9. pfSense CE: IPS
  10. OPNSense: Update
  11. pfSense CE: Update
  12. pfSense: Comunity
  13. OPNSense: Community
  14. pfSense CE vs OPNsense: Features
  15. Update luglio 2019
  16. pfSense vs OPNsense: performances a confronto
  17. Conclusioni
  18. Curiosità

1. Storia contemporanea

OPNsense è un sistema operativo di firewalling basato su HardenedBSD, nasce come fork di pfSense CE il quale, a sua volta, è un fork di m0n0wall®. OPNsense è ora un pacchetto che può essere installato sulla build HardenedBSD (si può letteralmente fare pkg rimuovere opnsense e rimanere con un sistema di base HardenedBSD quasi standard).

Il 2 gennaio 2015 venne pubblicato l’annuncio di rilascio della prima release: la 15.1 sul sito ufficiale . 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 minor release l’anno: a gennaio e a luglio (es. 19.1 e 19.7).

pfSense CE 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.

Leggi il post che spiega perché il progetto si chiama pfSense CE.

Salutiamo anche m0n0wall, il progetto terminato 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.]

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

Gli sviluppatori di OPNsense, hanno partecipato per anni al progetto pfSense CE 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 CE che causò qualche risentimento anche nella community.

Per maggiori informazioni sui motivi del fork, consultare: About the Fork e pfSense vs OPNsense.

3. 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.

4. pfSense CE: Licenza

Spendiamo due parole sulla tanto discussa licenza di pfSense CE.
pfSense CE 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 CE richiede a tutti coloro che intendono contribuire al progetto, di sottoscrivere e firmare elettronicamente un ICLA (Individual Contributors License Agreement).
Per avere maggiori informazioni sulla licenza pfSense CE consulta pfSense Documentation e pfSense 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.

5. 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 che, per quanto amino il set di funzionalità/caratteristiche di pfSense CE, non gli piace la qualità del codice e il loro metodo di sviluppo. Proprio per rispettare un criterio di qualità (secondo il loro punto di vista ovviamente – ndr) scelsero di usare un solido framework con un Model View Controller chiamato Phalcon. La gui è basata su Bootstrap.

Citiamo, ancora, il loro “rammarico” sul progetto pfSense dopo l’ingresso di Netgate: “Detto questo, è importante sapere che Deciso è stato a lungo sponsor di pfSense e ha investito molto tempo e denaro nel progetto. Deciso ha contribuito a renderlo un successo in Europa. Fino a quando Netgate non ha acquistato la società, c’era spazio per molti altri come noi, ma sfortunatamente è cambiato”.

[Citazioni, tradotte, ma sempre disponibili al seguente link]

6. OpnSense: Phalcom e Bootstrap

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 modulo.

pfSense CE vs OPNsense comparazione tecnica

pfSense CE vs OPNsense comparazione tecnica

7. pfSense CE: Bootstrap

pfSense CE, 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.

8. 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 visitare Intrusion Prevention System

9. pfSense CE: IPS

Possibile su pfSense CE 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.

What is snort? 

10. OpnSense: Update

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

11. pfSense CE: Update

Al momento in cui questo articolo viene redatto non sono previsti update scadenzati con frequenza regolare. Tuttavia sappiamo per esperienza che pfSense CE 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.

12. OPNsense Comunity

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.

13. OpnSense: 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.

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.
Leggi di più sul plugin.

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

Link utili:

14. pfSense CE vs OPNsense: Features

Features OPNsense pfSense CE
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

 

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

è 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.

15. Update luglio 2019

Sono passati diversi anni dalla stesura di questo articolo e qualcosina nelle nostre amate distribuzioni è cambiato. Per mantenere il format originale del presente, abbiamo volutamente lasciato questa tabella comparativa invariata – come base di partenza – e vi rimandiamo alle pagine ufficiali per avere un maggiore dettaglio sulle evoluzioni rispetto alle prime release.

16. 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:

pfSense CE vs OPNsense comparazione tecnica

Throughput OPNsense pfSense CE
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 CE la nostra guida al dimensionamento degli apparati hardware.

17. 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 sistemi sono sempre molto simili. Le performances, anche se ora sono basati su diversi O.S., comunque si equivalgono [ datest interni di laboratorio sui nostri appliances- ndr].
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 CE con un menù più gradevole (ma questo è assolutamente soggettivo).
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 CE.

Dopo qualche anno, la popolarità di OPNSense è cresciuta notevolmente; il sistema è diventato sempre più affidabile e ha riscosso un gran successo “rubando”, qualche volta, dei fan dell’antagonista.

Quello che invece ci lasciava un po’ perplessi [nella prima stesura dell’articolo – ndr], erano i continui cambi di tipologia di licenza operati da pfSense CE [sempre la stessa dal 2016, vedi sopra – ndr] e l’arrivo della scritta Community Edition sotto il logo. La domanda che ci siamo posti in passato, invece resta sempre la stessa: forse in futuro potrebbe esserci una politica differente? Staremo a vedere.

18. Curiosità

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

Scott Ulrich su twitter suggerisce OPNsense?

Per avere maggiori informazioni sul trends di diffusione dei più blasonati S.O. open consulta:


Articoli correlati