Historie projektu pfSense
Firewalů a routerů pro použití v různých sítích exisuje celá řada. Velmi známým open source firewallem je např. OpenWRT, ten je postaven na linuxovém kernelu a disponuje velkou a aktivní komunitou. Do kategorie open source se též řadí již 12 let projekt pfSense, který stojí na odlišných základech a těmi je prověřený operační systém FreeBSD. Z názvu projektu jsou velmi významná první dvě písmena, která označují stavový firewall Packet Filter, který je vyvíjen jako součást operačního systému OpenBSD, z něhož je portován na ostatní *BSD platformy. Je málo známé, že Packet Filter je portován i na Apple OS X.
Projekt vznikl v roce 2004 jako fork staršího obdobného projektu m0n0wall. Spoluzakladateli projektu byli Chris Buechler a Scott Ullrich. Za projektem dnes stojí společnost Electric Sheep Fencing LLC. V letech 2003–2013 byl pfSense pod křídly BSD Perimeter LLC. Důvody pro změnu názvu a přemístění společnosti uvedl Chris na blogu projektu.
Z projektu m0n0wall vzniklo hnedle několik dalších dobře známých open source projektů jako je FreeNAS, AskoziaPBX a nejnovějším je OPNsense. V loňském roce 15. února 2015 se Manuel Kasper rozhodl projekt m0n0wall definitivně ukončit.
Počátkem roku 2015 jsem zaregistroval zprávičku o poněkud nesvobodném chování uvnitř projektu. Situace byla hodně nepřehledná a přelicencování projektu způsobilo vznik nového forku pfSense, tím se stal již zmiňovaný OPNsense. Nový fork jsem zatím nevyzkoušel, ale v rámci tohoto seriálu si na něj čas udělám. Dne 12.4. 2016 vyšla poslední, nová a značně přepracovaná verze 2.3, která nese přívlastek pfSense-CE (Comunity Edition). Dá se tedy očekávat, že pfSense-EE (Enterprise Edition) verze bude přítomna v produktové rodině hardware nabízené na stránkách projektu. Již zmiňovaný Manuel Kasper se zjevně přiklonil na stranu OPNsense tímto prohlášením. Pevně věřím, že částečná komercionalizace projektu pfSense neublíží.
Podporovaný embedded hardware
Společným jmenovatelem pro m0nOwall i pfSense byl embedded hardware od společnosti PC Engines, s nimiž se v souběhu vyvíjely i oba firewalové systémy. Společnou mají podporu Compact Flash instalací, kterou zmíněný HW vyžaduje. Dalším použitelným výrobcem pro oba systémy je např. společnost Soekris.
Švýcarská společnost PC Engines vyráběla desky s označením WRAP, podstatně inovovanější jsou dnes stále vyráběné desky ALIX a současné nejmodernější jsou desky s označením APU, které jsou osazeny mSATA slotem, který konečně překonává zastaralé a pomalé Compact Flash. Do slotu lze instalovat malé mSATA SSD moduly např. o velikosti 16 GB. Desky PC Engines disponují též slotem miniPCI express, do kterého se dá připojit WiFi karta a tím se rozšíří funkcionalita routeru. Nastavení WiFi adaptéru má v pfSense velmi široké možnosti, které si popíšeme v dalších dílech.
pfSense je současně zdarma stažitelný pro architektury AMD64 a i386 ve verzích, viz tabulka. Dále ještě existují verze pro VGA a sériovou konzoli.
CD images (ISO) with installer |
Memstick image with installer |
Embedded (NanoBSD) typically with CF |
Média ISO a Memstick jsou instalovatelné na libovolný hardware architektur AMD64 a i386. Instalace je možná i jako virtuální appliance. pfSense disponuje balíčkem Open VM Tools, který je potřebný při instalaci do VMWare prostředí. Podporovaný hardware musí splňovat požadavky dle FreeBSD hardware notes příslušné verze, kterou pfSense používá.
U embedded verze je nutné poznamenat, že používá NanoBSD, které vyvinul Poul-Henning Kamp. NanoBSD vytváří bitové kopie systému FreeBSD pro embedded aplikace, vhodné pro použití na Compact Flash (či jiných paměťových médiích).
Při výběru hardware pro požadovanou síťovou úlohu je vždy nutné zvolit patřičně výkonný hardware. Zde je uvedeno pěkné srovnání použití šifer pro OpenVPN a IPSec v závislosti na rychlosti spojení od jednoho výrobce používajícího pfSense.
Jednou z nevýhod je bezesporu cena, která je u HW pro pfSense vyšší než například ceny RouterBoard desek pro MikroTik. Nevím přesně, jak je to s výkonem CPU a RAM u nějakých srovnatelných modelů.
Historie verzí
Během 12letého vývoje se pfSense patřičně proměnil. Bylo přídáno mnoho funkcí a různých rozšiřujících balíčků. Poslední verze 2.3.1 přinesla velké množství oprav a změn. Asi největší změnou je zcela nový vzhled GUI využívající Bootstrap framework. Web server lighttpd byl vyměněn za nginx. Pro rychlé nahlédnutí na pfSense 2.3 autoři připravili pěkné video. Mezi firewallová pravidla lze nově vkládat separátor pro přehledné oddělení pravidel. Dále se výrazně upravily možnosti konfigurace grafů. Změn je opravdu mnoho.
Starší verze pfSense tak trochu pokulhávaly s použitím aktuálního FreeBSD. To se od verze 2.2 výrazně posunulo. Aktuální pfSense 2.3.1 používá FreeBSD 10.3-RELEASE-p3 a ve svých opravách důsledně příjímá i opravy FreeBSD systému, což dříve též nebylo zvykem. Pokud se tedy objeví nějaká chyba ve FreeBSD Security Advisories, velmi brzo se opraví i verze pfSense.
Version 1.0 | October 4, 2006 |
Version 2.0 | September 17, 2011 |
Version 2.1 | September 15, 2013 |
Version 2.2 | January 23, 2015 |
Version 2.3 | April 12, 2016 |
Jednou z velmi zajímavých vlastností pfSense je snadná možnost aktualizací sama sebe. Není tedy nutné nějak složitě provádět manuální výměny firmware. Vždy je nutné se držet instrukcí v Upgrade Guide.
Verze 2.2.x se barvila do červena a zavedla volitelný dashboard.
Verze 2.3.x přišla s již popisovanými novinkami. Menu zůstalo v zásadě stejné, proto se uživatelé neztratí při přechodu na novější verze.
Seznam základních vlastností a funkcionalit
Závěrem uvádím seznam vlastností projektu pfSense i s odkazy na dokumentaci.
- Firewall with stateful packet inspection
- Easy to use Web Based Graphical Interface
- Installation Setup Wizard
- Configurable Dashboard with many available widgets
- IPv4 and IPv6 support
- Wireless Access Point (must install a wireless interface which supports hostap mode), including VAP/MBSS support on certain chips.
- Wireless Client Support (802.11 and 3G/4G with supported devices)
- Ability to setup and filter/isolate multiple interfaces (LAN, DMZ, etc.)
- Traffic Shaping (ALTQ, Limiters, 802.1p match/set, DiffServ/DSCP matching)
- State Table controls (per-rule / per-host limits, timers, etc.)
- NAT (Port Forwards, 1:1 NAT, Outbound NAT, NPt)
- Redundancy/High Availability – CARP+pfsync+XMLRPC Config sync allows for hardware failover. Two or more firewalls can be configured as a failover cluster.
- Multi-WAN Support
- Server Inbound Load Balancing
- Network diagnostic utilities such as ping, traceroute, port tests via the GUI (more with packages, such as nmap)
- VPN – IPsec (including Phase 2 NAT), OpenVPN, L2TP
- PPPoE Server
- RRD Graphs
- Real-time interface traffic graphs
- Dynamic DNS
- Captive Portal
- DHCP Server and Relay (IPv4 and IPv6)
- Command line shell access (Via console and SSH)
- Wake on LAN
- Built in packet capture / sniffer
- Ability to backup and restore the firewall configuration via the web GUI
- Edit files via the web GUI
- Virtual interfaces for VLAN, LAGG/LACP, GIF, GRE, PPPoE/PPTP/L2TP/PPP WANs, QinQ, and Bridges
- Caching DNS Forwarder/Resolver
- Can be run in many virtualization environments
- Proxy Server (using packages)
Závěr
V dalším díle mini seriálu o pfSense se podíváme na možnosti instalace a práce s routerem na sériové konzoli. Dále si ukážeme další vybrané funkcionality, které pfSense umí.