Tips voor de expert: Router-firewall met OPNsense

In een vorig artikel bespraken we de installatie van router-firewall OPNsense, waarmee je inbrekers buiten de deuren van je systeem houdt. Nu gaan we wat dieper in op de mogelijkheden van dit veelzijdige besturingssysteem.

Toegang via ssh en seriële console

De webinterface is niet de enige manier om toegang te krijgen tot OPNsense. Op de pagina System / Settings / Administration vind je de instellingen voor de drie manieren: web, ssh en seriële console. Bij de eerste kun je bijvoorbeeld een ssl-certificaat instellen, dat je eerst in System / Trust Certificates dient aan te maken. Onder Console staan de instellingen voor de seriële console, waartoe je via een seriële (usb-)kabel en een terminalprogramma zoals PuTTY toegang krijgt. Handig als je door verkeerde netwerkinstellingen jezelf hebt buitengesloten uit je OPNsense-machine.

De ssh-toegang staat standaard uitgeschakeld. Vink Enable Secure Shell aan om de ssh-server te starten. Eventueel vink je Permit root use login en Permit password login aan, maar het is eerder aan te raden om in System / Access / Users een gebruiker aan te maken en daar bij Authorized keys de publieke sleutel van de gebruiker te plakken.

Websites blokkeren

Met OPNsense kun je ook eenvoudig zelf websites of andere netwerktoegangen blokkeren. Dat doe je door je eigen regels toe te voegen in het tabblad User defined van het IPS. Klik op het plusteken rechts en vul bij Source IP het ip-adres in van de machine die geen toegang tot de website mag hebben (laat leeg voor alle machines). Bij Destination IP vul je het ip-adres van de website in.

Handig is dat je hier ook de vingerafdruk van het certificaat van een website kunt invoeren. Wil je bijvoorbeeld de toegang tot Facebook blokkeren, klik dan in je webbrowser op de eigenschappen van het certificaat van Facebook en kopieer de sha1-vingerafdruk. Plak die in het veld SSL/Fingerprint en stel Action in op Drop. Klik op Save changes om je regel toe te voegen. Daarna moet je wel eerst de browsercache van je computers legen, zodat ze opnieuw het certificaat van Facebook downloaden en OPNsense de website blokkeert.

Router-firewall

© PXimport

Dns over tls

Je kunt ook dns over tls inschakelen voor je hele netwerk. OPNsense schakelt standaard de dns-server Unbound (ontwikkeld door NLnet Labs) in en geeft via dhcp het ip-adres van zichzelf als dns-server door aan de computers op je netwerk. Die gebruiken daardoor allemaal Unbound om domeinen op te vragen.

Als je op je OPNsense-machine via ssh inlogt en dan het netwerkverkeer op je wan-poort afluistert, bijvoorbeeld met de onderstaande opdracht (met igb1 voor je wan-interface), zie je alle dns-aanvragen onversleuteld voorbijkomen:

tcpdump -i igb1 udp port 53

Daar gaan we nu iets aan doen. Ga naar Services / Unbound DNS / General en klik op Show advanced options. In het tekstveld Custom options dat nu verschijnt, kun je regels aan het configuratiebestand van Unbound toevoegen. Als je bijvoorbeeld de DoT-provider dns.sb wilt gebruiken, vul hier dan het volgende in:

server:forward-zone:name: "."forward-ssl-upstream: yesforward-addr: 185.222.222.222@853forward-addr: 185.184.222.222@853

Klik daarna onderaan op Save om je wijzigingen op te slaan en bovenaan op Apply changes om ze door te voeren. En als je nu weer met tcpdump het netwerkverkeer op udp-poort 53 afluistert, zie je normaal gesproken niets voorbijkomen.

Dns-verkeer omleiden

Met de opdracht

tcpdump -i igb1 tcp port 853

853 zie je wel het verkeer naar de DoT-server, maar dat is versleuteld. Let op: de aanvragen van de computers op je netwerk naar je OPNsense-machine zijn nog onversleuteld, het is alleen het doorsturen van de aanvragen van je OPNsense-machine naar internet dat via de DoT-server gaat. Dat kun je eenvoudig controleren (met igb0 voor je lan-interface):

tcpdump -i igb0 udp port 53

Zo kun je nog altijd de dns-aanvragen van computers in je netwerk onversleuteld op de lan-interface zien binnenkomen.

Om nu zeker te zijn dat alle dns-verkeer via de ingestelde DoT-server gaat, dien je de netwerkconfiguratie in System / Settings / General na te kijken. Zorg dat er bij DNS servers niets ingevuld staat en dat Allow DNS server list to be overridden by DHCP/PPP on WAN en Do not use the local DNS service as a nameserver for this system niet aangevinkt zijn. Controleer daarna met de opdracht

cat /etc/resolv.conf

op je OPNsense-machine of alleen 127.0.0.1 als dns-server ingeschakeld staat.

Router-firewall

© PXimport

Advertenties blokkeren

Het IPS blokkeert bedreigingen op basis van regels, maar je kunt nog veel eenvoudiger via dns allerlei domeinen blokkeren, bijvoorbeeld voor advertenties en malware. Dat doe je met een dns-blocklist (vaak afgekort tot dnsbl). OPNsense biedt standaard die mogelijkheid niet via de webinterface, maar er bestaat een extra plug-in die je het wel op een relatief eenvoudige manier laat configureren: UnboundBL.

Op het moment van schrijven zat UnboundBL nog niet in de officiële lijst met plug-ins. Log daarom eerst als root in op je OPNsense-machine en voer de volgende opdracht uit om de tools te installeren die nodig zijn om plug-ins te compileren:

opnsense-code tools plugins

Download dan de recentste versie van UnboundBL:

cd /usr/plugins/dnsgit clone https://github.com/alectrocute/UnboundBL.git

Ga dan naar de zojuist gedownloade directory, compileer de plug-in en installeer ze:

cd UnboundBLmake packagepkg add work/pkg/*.txzchmod +x /usr/local/opnsense/scripts/OPNsense/Unboundbl/*.sh

Die laatste regel is nodig omdat de installatie de scripts van UnboundBL door een fout niet uitvoerbaar maakt. Op het moment dat je dit leest, is de fout misschien al opgelost.

De instellingen van UnboundBL vind je nu onder Services / Unbound DNS / DNSBL. Vink Enable aan en vul in het tekstveld Blocklist URL(s) een url in van een blocklist. Op The Big Blocklist Collection vind je er heel wat. Andere populaire lijsten zijn die van Steven Black en zelf hebben we goede ervaringen met die van de Nederlander sjhgvr.

Ga daarna naar Services / Unbound DNS / General en voeg in het tekstveld Custom options (alleen te zien als je Show advanced options ingeschakeld hebt) de volgende regel toe:

include:/var/unbound/dnsbl.conf

Klik daarna op Save en Apply changes. Elke keer dat je iets aan je zwarte lijst verandert, dien je Unbound te herstarten door in Dashboard bij Unbound rechts op het icoontje met de twee pijltjes in een cirkel te klikken. Let op: het herstarten kan even duren als je een grote blacklist hebt. Vanaf nu worden alle dns-aanvragen naar domeinen die in de zwarte lijst staan geblokkeerd.

Het enige wat je nog dient te doen, is regelmatig je blacklist bijwerken door in de instellingen van UnboundBL op Save te klikken en Unbound te herstarten. Overigens kun je hier ook domeinen die onterecht geblokkeerd worden aan een whitelist toevoegen.

Plug-ins in OPNsense

Het is mogelijk om in OPNsense plug-ins te installeren om de functionaliteit uit te breiden. Je vindt de lijst in het menu System / Firmware / Plugins. Zo vind je er plug-ins om tls-certificaten op te halen met Let’s Encrypt, om webpagina’s te cachen, om binnenkomende bestanden te scannen op virussen, om je verbindingssnelheid te testen, om je netwerkverkeer te monitoren, om machines te wekken via Wake-on-lan, en ook enkele thema’s voor de webinterface.

Router-firewall

© PXimport

Met een klik op het icoontje met de letter i rechts van een plug-in krijg je wat meer informatie. Een klik op het plusteken installeert de plug-in. Sommige plug-ins zijn na installatie bereikbaar in een van de submenu’s van OPNsense; andere werken puur op de opdrachtregel of starten een webinterface op een eigen poort op.

Let er wel mee op dat je niet te veel plug-ins installeert: als je immers onbetrouwbare, kwetsbare of voor je hardware te zware software installeert, heeft dit een grote impact op je netwerk.

Monitor je netwerkverkeer met ntopng

De ingebouwde monitoringmogelijkheden van OPNsense tot slot zijn al niet slecht, maar je kunt dit nog uitbreiden met enkele plug-ins. Een interessante is ntopng. Als je na de installatie van ntopng en redis (nodig voor ntopng) de pagina herlaadt, vind je onder het menu Services nieuwe submenu’s: Ntopng en Redis. Schakel eerst Redis in (de standaardinstellingen zijn oké) en daarna Ntopng (ook hier zijn de standaardinstellingen in orde). Log daarna via je webbrowser in op poort 3000 van het ip-adres van je OPNsense-machine met gebruiker admin en wachtwoord admin.

De eerste keer dat je je aanmeldt, wordt je gevraagd om je wachtwoord te veranderen. De interface van ntopng ziet er wat gedateerd uit, maar biedt je een ongelooflijk inzicht in je netwerk en op elke pagina kun je doorklikken om je zoektocht te filteren.

Deel dit artikel
Voeg toe aan favorieten