Het m0n0wall-project, één van de oudste nog bestaande firewall besturingssystemen, hield er begin van dit jaar mee op. M0n0wall heeft een invloedrijke familie van forks en afgeleide besturingssystemen voortgebracht. Tijd voor een terugblik en een kijkje in de toekomst.

 

 Eerder dit jaar kondigde Manuel Kasper aan dat hij stopte met het m0n0wall-project, exact 12 jaar na de publicatie van de eerste versie. M0n0wall is een open source besturingssysteem dat van FreeBSD is afgeleid en van een embedded computer een firewall maakt. Populaire apparaatjes om m0n0wall op te installeren, zijn de miniservers van PC Engines (Alix) en Soekris. Er was al een jaar geen nieuwe versie van m0n0wall meer verschenen. Overigens was Manuel Kasper al sinds december 2012 bezig met de ontwikkeling van Threema, een propiëtaire instant messaging app met end-to-end encryptie.

 

 Hoewel m0n0wall bij het grote publiek niet zo bekend was en zelfs onder specialisten niet meer zo populair was als de modernere firewallbesturingssystemen, was de distributie heel invloedrijk. Waarschijnlijk is m0n0wall het eerste UNIX-systeem dat zijn bootconfiguratie met PHP uitvoert in plaats van met shellscripts en het eerste dat de hele systeemconfiguratie in XML-formaat opslaat. Het waren twee innovaties van Manuel die pas daarna in andere gelijkaardige systemen ingang vonden. Ook de idee om met een webgebaseerde gebruikersinterface alle aspecten van een firewall aan te sturen, is iets waar m0n0wall een sterke rol in speelde.

 

 

 

De hele systemconfiguratie van m0n0wall paste in een XML-bestand.

 

 Forks en afgeleide distributies

 

M0n0wall vormde de basis van heel wat andere distributies. Allereerst was er m0n0wall-mod, een patchset die een aantal beperkingen van m0n0wall oploste. Maar erg actief bleek het project niet te zijn. De bekendste fork is echter pfSense. Het startte al in 2004 en legde zijn focus meer op installatie op volwaardige PC’s in plaats van op embedded hardware. Omdat pfSense de voordelen van snellere hardware kon plukken, was geavanceerdere functionaliteit mogelijk. Denk daarbij aan multi-WAN support en high availability en de mogelijkheid om extra pakketten te installeren. Dat laatste kon niet met m0n0wall, omdat dat het besturingssysteem en alle toepassingen na het booten in het RAM laadt en geen normaal bestandssysteem gebruikt. Toch bleef pfSense altijd zijn roots trouw: de huidige pfSense 2.x-reeks stelt met 256 MB RAM en een processor op 500 MHz slechts minimale hardware vereisten.

 

 M0n0wall werd niet alleen geforkt, maar diende ook als basis voor besturingsysstemen die iets anders dan een firewall implementeerden. Zo was er AskoziaPBX, dat in januari 2007 begon als proof of concept om een embedded IP-telefoniesysteem te bouwen met open source software dat de gebruikerservaring van een commercieel systeem wilde bieden. Origineel maakte AskoziaPBX gebruik van m0n0wall wegens de innovatieve manier waarop het de boot- en systeemconfiguratie afhandelde. De telefoniesoftware was Asterisk. Voor versie 2.0 schakelde AskoziaPBX echter over naar Linux: het forkte de T2 SDE Linux-distributie. Die overstap had verschillende redenen. Allereerst was Asterisk toen alleen ondersteund onder Linux. En ten tweede wilde de Duitse telecomhardware-fabrikant Auerswald AskoziaPBX gebruiken, maar werden de Blackfin-processoren in hun hardware niet door FreeBSD ondersteund.

 

 De bekendste afgeleide van m0n0wall is echter FreeNAS, het op FreeBSD gebaseerde NAS-besturingssysteem. Olivier Cochard-Labbé startte zijn project in 2005 als fork van m0n0wall. Die basis heeft het enkele jaren gebruikt, tot het project aan BSD-bedrijf iXsystems werd overgedragen. Toen gebeurde een hele rewrite naar FreeBSD’s NanoBSD-buildsysteem voor embedded systemen. In de plaats van PHP kwamen Python en het Django CMS. Bovendien kwam er ook een plug-in architectuur. Op hetzelfde moment werkten de originele ontwikkelaars van FreeNAS aan een Linux-port, OpenMediaVault. Een derde fork bleef trouw aan de originele m0n0wall-architectuur van FreeNAS: NAS4Free. Dit besturingssysteem is dan ook de rechtstreekse opvolger van FreeNAS uit het pre-iXsystems-tijdperk.

 

 De meest recente versie van m0n0wall, versie 1.8.1 uit januari 2014, was gebaseerd op FreeBSD 8.4. Er werd een scheduler toegevoegd, de IPv6-ondersteuning werd verbeterd en de WiFi-ondersteuning werd helemaal op de schop genomen. Er was initiële support voor usb-modems en hardware crypto support werd ingeschakeld. Ook onder de motorkap was wat veranderd: voor het eerst had het project een geautomatiseerd buildsysteem waardoor je op een standaard FreeBSD 8.4-systeem met bijna geen manuele interventie een m0n0wall-image from scratch kon bouwen. Even leek er dus nog een toekomst voor m0n0wall te zijn…

 

 Alternatieven

 

En toen kwam de aankondiging door m0n0wall-ontwikkelaar Manuel Kasper in het begin van dit jaar dus. Hij gaf aan dat hij stopte met m0n0wall, omdat de wereld is blijven doordraaien en ondertussen betere oplossingen bestonden om een firewall te draaien, die ook nog eens actief werden ontwikkeld. Manuel kon die ontwikkelingen niet bijhouden en besloot dan ook dat er geen bestaansreden meer was voor m0n0wall.

 

 Manuel verwijst op zijn website gebruikers allereerst door naar SmallWall en t1n1wall, twee recentelijk opgestarte projecten die op de code van m0n0wall voortbouwen. Het zijn ideale forks voor wie een tevreden gebruiker is van m0n0wall en gewoon securitypatches, bugfixes, hardwarecompatibiliteitsupdates en zo nu en dan kleine verbeteringen nodig heeft. Zo heeft de eerste versie van SmallWall L2TP-ondersteuning toegevoegd en kleine verbeteringen aan de gebruikersinterface aangebracht.

 

 Wie meer features wil en krachtigere hardware heeft, kan terecht bij a,ndere forks zoals pfSense en het nieuwere OPNsense (dat op zijn beurt een fork van pfSense is). Tegenwoordig is er al embedded hardware met 2 GB of meer RAM en een processor van 1 GHz of sneller, dus het heeft zin om van die krachtiger hardware gebruik te maken. Kasper raadt iedere m0n0wall-gebruiker aan om OPNsense uit te proberen en eraan bij te dragen. Het project verenigt volgens hem de open source spirit van m0n0wall met een update van de technologie om klaar te zijn voor de toekomst. OPNsense is volgens Manuel de perfecte manier om de idee achter m0n0wall in 2015 voort te zetten.

 

 OPNsense

 

OPNsense werd meer dan een maand voor de aangekondigde dood van m0n0wall gelanceerd. De ontwikkelaars, van het Nederlandse netwerkbedrijf Deciso, gaven drie redenen voor de fork. Ten eerste wilden ze de code opkuisen en het gemakkelijker maken om deze te onderhouden. Ten tweede wilden ze een sterke community opbouwen die geeft en deelt. En tot slot wilden ze OPNsense beschikbaar stellen onder een eenvoudiger BSD-licentie.

 

 De eerste release, OPNsense 15.1, kwam in januari 2015 uit en was gebaseerd op FreeBSD 10. De verschillen met pfSense, waarvan de toenmalige versie 2.1.5 nog op FreeBSD 8.3 gebaseerd was, bevonden zich toen nog vooral onder de motorkap. Er is wat verouderde code verwijderd, er zijn beveiligingsupdates toegepast en de build workflows lijken nu meer op die van FreeBSD. Gebruikers kunnen daardoor zelf eenvoudig op basis van de broncode images bouwen in plaats van te moeten vertrouwen op binaire images. OPNsense ondersteunt ook FreeBSD’s nieuwe pakketbeheersysteem pkgng.


 

OPNsense is een veelbelovende telg van de m0n0wall-familie.

 

 OPNsense heeft een releasecyclus met elk half jaar een nieuwe release. Begin juli 2015 kwam OPNsense 15.7 uit. Het project begint al iets meer van zijn moederdistributie af te wijken. Nieuwe toevoegingen waren onder andere Suricata voor intrusion detection en nieuwe blacklistopties voor de proxyserver Squid. Voor de rest een hoop kleine verbeteringen en bugfixes. En voor nieuwe features maakt OPNsense gebruik van het Phalcon MVC framework.

 

Een mooie toekomst!

 

 Het feit dat m0n0wall na 12 jaar is stopgezet, betekent niet dat het project een mislukking was. Heel wat open source ontwikkelaars hebben hun vak geleerd door aan m0n0wall en de vele forks te werken. Het besturingssysteem heeft enkele belangrijke innovaties in de wereld van open source distributies voor embedded systems geïntroduceerd. En veel van de ideeën leven nog voort in het nageslacht. M0n0wall heeft dus alsnog een mooie toekomst voor de boeg…