Stel, je wilt je thuisnetwerk beter afschermen en beveiligen. Wellicht heb je hiervoor een oude pc of mini-pc ter beschikking of je zet een hypervisor in. Dan is de gratis en opensource-firewall en -routersoftware OPNsense precies wat je zoekt. We geven je hier een solide basis.
Na het lezen van dit artikel weet je hoe je OPNsense kunt configureren als krachtige, gratis en opensource firewall voor je netwerk:
- Installeer OPNsense op een mini-pc of als virtuele machine
- Controleer de basisinstellingen
- Beheer de firewallregels
- Breid functionaliteit uit met plug-ins
Ook interessant om te lezen: Bescherm je thuisnetwerk: DNS-filters voor zorgeloos surfen
Je router zorgt al voor enige bescherming van je netwerk en waarschijnlijk gebruik je ook een softwarematige firewall, zoals de Windows Firewall. Maar als je meer flexibiliteit wilt en liever alles zelf instelt, dan is OPNsense een uitstekend alternatief. Het is gratis en opensource. Het tweede betekent dat iedereen de broncode kan bestuderen, wat de kans op achterdeurtjes verkleint. De naam ‘opensense’ is dus zeker niet toevallig gekozen.
OPNsense is een afsplitsing van pfSense, een firewallproject dat op zijn beurt weer gebaseerd is op m0n0wall (dat ongeveer twintig jaar geleden begon). Toen het pfSense-team tien jaar later aankondigde te willen commercialiseren, leidde dit in 2015 tot de lancering van OPNsense door het Nederlandse netwerkbedrijf Deciso. In tegenstelling tot pfSense blijft OPNsense volledig gratis en opensource onder de BSD-licentie.
De software heeft een moderne, gebruiksvriendelijke webinterface en ondersteunt functies als IPS/IDS (Intrusion Detection/Prevention System), VPN (zoals WireGuard), verkeersmonitoring en bandbreedtebeheer, en biedt een architectuur voor opensource-plug-ins.
1 Benodigdheden
OPNsense draait op diverse hardware en er zijn zelfs ‘security appliances’ beschikbaar waarop OPNsense reeds is geïnstalleerd. Voorbeelden zijn de DEC700-serie van Deciso voor kleinere netwerken en de DEC4200-serie voor grotere bedrijven (geschikt voor 19inch-racks). Maar in dit artikel installeren we OPNsense zelf. We gebruiken hiervoor een gratis en opensource hypervisor, Oracle VM VirtualBox, maar je kunt dit op vrijwel identieke wijze op bijvoorbeeld een bare-metal-machine doen, zoals een oude pc of een mini-pc (zie ook het kader ‘Zuinige mini-pc’).
De minimale systeemeisen zijn bescheiden, zeker voor een thuisnetwerk. Je kunt al starten met een 1GHz-dualcore-processor, 2 GB RAM en 4 GB opslagruimte. In de praktijk is het beter om iets krachtigere hardware te gebruiken: minstens een 1,5GHz-processor met meer dan twee cores, 4 tot 8 GB RAM en minimaal 40 GB. Dit hangt natuurlijk ook af van welke functies je activeert. Een cache-webproxy zoals Squid of een Captive Portal kunnen bijvoorbeeld flink wat cpu-belasting veroorzaken.
Deciso maakt ook eigen hardware voor kleine en grote bedrijven.
Zuinige mini-pc
Je kunt OPNsense op een oude pc installeren, vooropgesteld dat deze voldoet aan de minimale hardware-eisen, maar dergelijke apparaten zijn vaak niet energiezuinig. Een betere optie is een mini-pc: goede prestaties en toch energiezuinig. Ga voor een 64bit-processor, zoals een Intel Celeron J4125 of Intel N100, en zorg voor 8 GB RAM of meer als je extra functies als IDS/IPS wilt gebruiken.
Je hebt minimaal twee, maar liever drie of meer gigabit- of multi-gigabit-ethernetpoorten nodig. Een ssd van 128 GB kan volstaan. Geschikte mini-pc’s zijn bijvoorbeeld de Protectli Vault FW48, HUNSN RS34g en Beelink EQ12. Deze voorbeelden zijn verkrijgbaar tussen 250 en 300 euro.
Beelink EQ12: mini-pc met Intel N100-processor, 16 GB geheugen, een ssd van 512 GB, wifi 6 en twee 2,5Gbit/s-poorten.
2 Fysieke machine
De benodigde schijfkopiebestanden voor OPNsense vind je op de officiële website. Op het moment van schrijven is versie 24.7 Thriving Tiger de meest recente stabiele versie. Klik op de Download-knop en selecteer amd64 als architectuur. Ga je voor een fysieke installatie, zoals op een (mini-)pc, dan kies je vga als image-type.
De download komt weliswaar in de vorm van een bz2-archief, maar dit kun je naar een img-schijfkopiebestand uitpakken met een gratis tool als 7-Zip. Dit img-bestand kun je vervolgens naar een bootstick schrijven, bijvoorbeeld met het gratis Rufus of balenaEtcher. Bij deze laatste selecteer je Install from file, verwijs je naar het img-bestand, kies je bij Select target een usb-stick en start je de procedure met de Flash!-knop.
De pc die je vervolgens met dit bootmedium opstart, dient wel over minstens twee netwerkadapters te beschikken. Of zelfs drie voor bijvoorbeeld een gastnetwerk of een DMZ-zone voor servers die je van je primaire netwerk wilt isoleren. In de meeste scenario’s is een van deze adapters direct met je modem(/router) verbonden.
In paragraaf 4 lees je meer over de installatieprocedure.
Je kunt het img-bestand omzetten naar een bootstick met balenaEtcher.
3 Virtuele machine
Doe je liever een installatie op een virtuele machine, kies dan voor dvd als image-type om een iso-schijfkopiebestand te krijgen. Zo’n virtuele installatie kan bijvoorbeeld handig zijn om een veilig testlab te bouwen met meerdere virtuele machines. De gratis en opensource-hypervisor Oracle VM VirtualBox is een goed programma om te gebruiken.
Installeer VirtualBox, start deze op en druk op de knop Nieuw. In het dialoogvenster geef je OPNsense op bij Naam, kies je een geschikte map (met voldoende opslagruimte) en verwijs je bij ISO-image naar het uitgepakte iso-bestand. Stel Type in op BSD, Subtype op FreeBSD, en Versie op FreeBSD (64-bit).
Open de sectie Hardware, waar je afhankelijk van je systeembronnen en het beoogde gebruik het veld Basisgeheugen instelt op bijvoorbeeld 4096 MB, en Processoren op 2. Stel Harde schijf in op bijvoorbeeld 40 GB en bevestig met Afmaken. De nieuwe virtuele machine wordt nu toegevoegd.
Voor je deze start, klik je eerst met rechts op de (nog uitgeschakelde) VM en kies je Instellingen. In het onderdeel Netwerk moet je nu minimaal twee netwerkadapters instellen. In het kader ‘Virtuele netwerkconfiguratie’ en in de tabel lees je meer over hoe je dit kunt aanpakken.
Stel de nodige parameters in voor de virtuele machine van OPNsense.
Virtuele netwerkconfiguratie
Ook in een virtuele configuratie met een hypervisor zoals VirtualBox moet je de nodige netwerkadapters toevoegen. Er zijn verschillende netwerkconfiguraties mogelijk, afhankelijk van je doel en netwerkbehoeften. In de afbeelding beschrijven we kort drie vrij gebruikelijke scenario’s met twee virtuele netwerkadapters.

Als je een derde netwerk(adapter) wilt toevoegen, bijvoorbeeld voor een DMZ of gastnetwerk, is een ‘intern netwerk’ meestal de beste keuze voor maximale isolatie. Vooral als je DMZ of gastnetwerk geen toegang tot het LAN nodig heeft.
Een host-only-adapter biedt wat meer flexibiliteit, terwijl een bridged-adapter ook toegang tot je LAN-netwerk mogelijk maakt. Je zult dus zelf de nodige afwegingen voor een optimaal netwerkscenario moeten maken.
Afhankelijk van het beoogde scenario kies je de juiste netwerkconfiguratie.
4 Installatie
Start de installatie van OPNsense door de bootstick of virtuele machine op te starten en het proces te voltooien. Dit duurt grofweg vijf minuten. Aan het eind hoor je doorgaans een korte piep. De live-versie van OPNsense draait nu en is bereikbaar via het standaard ip-adres 192.168.1.1, zowel via de webinterface als via SSH met bijvoorbeeld met het gratis Putty. De standaard inloggegevens zijn gebruikersnaam root met wachtwoord opnsense.
Omdat deze live-omgeving in het geheugen draait, wordt de configuratie niet permanent opgeslagen. Dit geeft je de kans om de omgeving eerst te testen. Voor een permanente installatie moet je opnieuw installeren. Meld je hiervoor aan in de consoleprompt met de naam installer en wachtwoord opnsense. Als dit toch niet lukt: log dan in als root, kies Shell in het menu (optie 8) en typ opnsense-installer, of gebruik hiervoor SSH.
Tijdens de installatie kies je: het toetsenbord (keymap); het bestandssysteem (bij voorkeur ZFS of eventueel UFS); de partitie-opties (doorgaans stripe zonder redundantie bij een enkele schijf); en de schijf zelf (meestal da0 of nvd0). Bevestig met Yes om de schijf te partitioneren en formatteren (kies bij UFS ook Yes voor de swap). Stel een sterk root-wachtwoord in (let op de correcte toetsenbordindeling) en bevestig dit. Selecteer tot slot Complete Install – Exit and reboot.
De ‘echte’ installatie van OPNsense is volop bezig.
5 Netwerkinterfaces
Na de herstart verschijnt, na aanmelding als root, het configuratiemenu van OPNsense. Hier vind je opties als Logout, Power off system en Reboot system. Boven dit menu zie je de toegewezen netwerkinterfaces, bijvoorbeeld:
LAN (em0) -> v4: 192.168.1.1/24
WAN (em1) -> v4/DHCP4: 192.168.0.171/24
De WAN-toewijzing kan per systeem verschillen. Als er geen WAN is toegekend, kies dan menuoptie 1 (Assign interfaces). Beantwoord de vraag over LAGG’s (Link Aggregation Groups) en VLAN’s met N. Voer eventueel zelf de naam in van de nog niet toegewezen netwerkadapter (in ons voorbeeld em1). Je kunt dit proces altijd nog onderbreken en terugkeren naar het menu met Ctrl+C.
Ga na of de netwerkinterfaces correct zijn toegewezen aan de LAN- en WAN-instellingen.
6 Informatie
Na de installatie van OPNsense kun je beginnen met de configuratie en optimalisatie via het grafische dashboard. Dit is toegankelijk via de webinterface op 192.168.1.1, waar je inlogt met je (inmiddels gewijzigde) inloggegevens.
Klik linksboven op het OPNsense-logo om widgets te bekijken met statusinformatie. Bij Traffic Graph en Interface Statistics zie je bijvoorbeeld live-grafieken voor inkomend en uitgaand verkeer. Ook kun je op de Firewall-grafiek klikken om gefilterd verkeer door de firewall te bekijken. Verder geeft een widget inzicht in het geheugen-, schijf- en cpu-gebruik en toont het blok Services welke services actief zijn, zoals DHCPv4Server, Unbound DNS en Web GUI. Hier kun je services (her)starten en sommige ook stopzetten.
In de widget System Information kun je via Click to check for updates controleren op updates. Scrol naar beneden en klik op Update om OPNsense bij te werken. Bevestig met OK om het systeem na de update te herstarten.
Om het dashboard aan te passen, klik je rechtsboven op het potloodpictogram Edit dashboard, waarna je ook extra widgets kunt toevoegen, zoals OpenVPN en WireGuard.
Extra rapporten vind je in de rubriek Reporting en subrubrieken als Health (met tabbladen Packets, System en Traffic) en Unbound DNS. Om de DNS-aanvragen te kunnen zien, moet je deze rapportage wel eerst activeren. Dit doe je bij Reporting / Settings, waar je Enables local gathering of statistics inschakelt. Ook interessant is Reporting / Traffic voor een live-weergave van het verkeer – kijk ook even op het tabblad Top Talkers, voor de actiefste systemen.
Dankzij live-widgets krijg je vanuit je dashboard een goed inzicht de status van je OPNsense.
7 Basisconfiguratie
Voordat je de geavanceerdere functies van OPNsense verkent, is het verstandig enkele basisinstellingen te controleren. Ga naar System / Settings / General, waar je de Hostname (standaard OPNsense), Domain (standaard localdomain, eventueel vervangen door je eigen domeinnaam) en Time zone (bijvoorbeeld Europe/Amsterdam) kunt instellen. De optie Dutch is vooralsnog niet beschikbaar bij Language.
Bij DNS servers kun je DNS-servers instellen voor het systeem, inclusief voor de DHCP-service. Wij laten deze lijst echter leeg en vinken Allow DNS server list to be overridden bij DHCP/PPP on WAN aan, zodat de DNS-servers van de internetprovider (mogelijk via je fysieke router) worden overgenomen. Klik altijd op Save (of soms Apply) om wijzigingen te bevestigen voordat je een andere rubriek in het dashboard opent.
Vervolgens kun je bij System / Settings / Administration de optie HTTP inschakelen bij Protocol als je het storend vindt om telkens het zelf-ondertekende SSL-certificaat te bevestigen (indien gewenst, kun je via System / Trust / Certificates trouwens een echt certificaat importeren). Je kunt bij Listen interface ook kiezen voor LAN in plaats van All als je alleen verbindingen van die specifieke netwerkinterface wilt accepteren.
Controleer als eerste een aantal basisinstellingen.
8 Interfaces
Standaard activeert OPNsense een DHCP-service binnen het LAN-subnet (192.168.1.0/24). Hierdoor krijgen clients die (wellicht via een switch) met de toegewezen netwerkinterface verbinden, automatisch een compatibel ip-adres en DNS-server (standaard 192.168.1.1) toegewezen. Je kunt dit controleren bij Services / ISC DHCPv4 / [LAN]. De optie Enable DHCP server on the LAN interface staat standaard aan met een ip-bereik van 192.168.1.100 tot 192.168.1.199, zodat je ruimte hebt om bepaalde apparaten een statisch ip-adres toe te kennen. Hier vind je trouwens ook diverse geavanceerde opties.
Als alles goed is ingesteld, ga dan naar Interfaces / Assignments. Hier controleer je welke interface met welk MAC-adres aan de LAN- of WAN-interface is gekoppeld. Heb je een extra netwerkinterface, bijvoorbeeld voor een DMZ of gastnetwerk, dan kun je die hier toewijzen. Selecteer de interface bij + Assign a new interface, klik op Add en dan op Save om de interface aan de rubriek Interfaces toe te voegen. Open de nieuwe interface en vink Enable Interface en eventueel ook Prevent interface removal aan. Stel IPv4 Configuration Type in op Static IPv4 en geef een ip-adres, zoals 192.168.2.1 / 24. Bevestig met Save en Apply changes.
Ga vervolgens naar Services / ISC DHCPv4 / [interfacenaam] om de DHCP-server in te schakelen en een passend ip-bereik in te stellen. Je doet er wellicht ook goed aan om Services / Unbound DNS / General te openen en daar Register ISC DHCP4 Leases en Register DHCP Statis Mappings in te schakelen, zodat je de machines ook via hun hostnaam kunt bereiken.
Je moet de extra netwerkinterface wel nog even koppelen en configureren.
9 Firewall
Bij een extra netwerk zijn alle inkomende verbindingen standaard geblokkeerd door de firewall. Open Firewall / Rules en selecteer de LAN-interface. OPNsense heeft hier al pass-regels aangemaakt voor IPv4 en IPv6 (verwijder de IPv6-regel indien gewenst). De regel IPv4* LAN net * * * * * staat al het verkeer toe.
Voor je extra interface kun je regels toevoegen, bijvoorbeeld om toegang tot het LAN-netwerk te blokkeren. Klik op de rode plus-knop, stel Action in op Block, en kies DMZ bij Interface. Laat Protocol op any staan, stel Source in op DMZ net en kies LAN net bij Destination. Voeg een beschrijving toe, zoals Blokkeer LAN toegang. Sla deze wijzigingen op met Save en bevestig met Apply changes.
Om je DMZ wel toegang tot je DNS-server en gateway binnen het LAN te verlenen, kun je extra pass-regel toevoegen. Kies Pass bij Action, DMZ bij Interface, en Single host or network bij Destination. Vul hier het (standaard) ip-adres 192.168.1.1 in, stel Protocol in op TCP/UDP en kies bij Destination bij de optie Port (other) voor poort 53.
Kopieer deze pass-regel via de Clone-knop en pas deze aan voor TCP, en respectievelijk poort 80 en 443, zodat je HTTP(S)-verkeer naar je gateway toestaat. Zorg met behulp van de pijlknopjes dat de drie pass-regels boven de blokkeerregel staan, aangezien de firewall deze regels altijd van boven naar beneden doorloopt.
De kans is groot dat je de standaardfirewallregels nog wat moet verfijnen.
10 Firewall-regels voor DMZ-zone
Wil je wel verkeer van de DMZ naar het internet toestaan, voeg dan een extra regel toe. Kies Pass als Action en DMZ als Interface. Stel Source in op DMZ net en Destination op WAN net. Vul een beschrijving in, bijvoorbeeld Toegang naar internet toelaten, en bewaar de regel.
Voor het toegankelijk maken van services op de DMZ vanaf het internet, ga je naar Firewall / NAT / Port Forward. Klik op Add, kies WAN als Interface en stel het juiste protocol in, bijvoorbeeld TCP/UDP. Selecteer WAN address bij Destination en stel bij Destination Port Range de poort(en) in die je wilt openstellen, bijvoorbeeld HTTP. Vul bij Redirect target IP het ip-adres in van het DMZ-netwerk dat het verkeer moet ontvangen. Indien nodig stel je bij Redirect target Port een alternatieve poort in voor de service (bijvoorbeeld (other), 8080). Bewaar de regel en bevestig ook hier met Apply changes.
Zo zou de firewall-regelset van je extra netwerk (bijvoorbeeld een DMZ-zone) er eventueel uit kunnen zien.
11 Plug-ins
Zoals je aan de menu-opties in je dashboard kunt zien, biedt OPNsense allerlei mogelijkheden en services, zoals VPN (inclusief OpenVPN en WireGuard), OpenDNS en een Captive Portal. We hebben helaas niet de ruimte hier verder op in te gaan, maar tonen je nog wel hoe je de functionaliteit van OPNsense kunt uitbreiden met gratis plug-ins. Bekende namen zijn clamav, ddclient, freeradius, os-intrusion-detection, iperf, nginx, squid, tftp, VirtualBox en VMware guest additions, zabbix enzovoort.
Om bijvoorbeeld ClamAV toe te voegen, zorg je er eerst voor dat OPNsense up-to-date is. Ga vervolgens naar System / Firmware / Plugins en klik op de plusknop Install bij os-clamav. Op het tabblad Updates volg je de voortgang van de installatie.
Na de installatie vind je ClamAV in de rubriek Services. Ga naar Configuration, klik op Download signatures en zorg dat Enable clamd service is ingeschakeld. Pas waar nodig de instellingen aan en klik op Save om de wijzigingen op te slaan.
Veel configuratiewerk vergt ClamAV dus niet, andere plug-ins vergen juist wat meer aanpassingen.
ClamAV is slechts een van de tientallen beschikbare plug-ins voor OPNsense.