Aparte netwerken maken voor een veilig thuisnetwerk: zo doe je dat!
Helaas zijn niet altijd alle apparaten in je netwerk te vertrouwen. Met enkele consumentenrouters kun je apparaten scheiden van de rest van je netwerk, bijvoorbeeld door het gastennetwerk te benutten. Dit heeft echter wat beperkingen. Liever zou je zelf labeltjes op het verkeer plakken door te werken met VLAN’s. Je hebt dan niet alleen gescheiden virtuele netwerken, maar je kunt met firewallregels ook de rechten voor apparaten beheren.
In dit artikel leggen we uit hoe je een netwerkscheiding op een professionele manier aanpakt. Dat doe je met VLAN's. Het volgende bespreken we:
- Wat is de benodigde routersoftware? (Wij gaan aan de slag met pfSense)
- Hoe verspreid je deze virtuele netwerken naar je apparaten?
- Wat is de juiste poortinstelling?
- Hoe stel je firewall-regels in?
Ook interessant: Kende je deze geavanceerde router-instellingen al?
De meeste mensen zullen alle netwerkapparaten in huis gewoon aan elkaar knopen via ‘domme’ switches. Het is echter niet zonder risico’s. Misschien heb je een puber die ongecontroleerd alles op zijn laptop installeert. Of heb je wat apparaten uit China gehaald die je niet helemaal vertrouwt, zoals bepaalde ip-camera’s. Wellicht zou je die liever helemaal isoleren van je hoofdnetwerk of de toegang tot internet ontzeggen. Dat is voor ip-camera’s zelfs vrij logisch als je die centraal beheert.
Het kan ook zijn dat je webinterfaces of toegang tot een netwerkprinter liever afschermt voor andere gebruikers. Door een scheiding in je netwerk te maken, kun je dit allemaal voor elkaar krijgen. Maar dat is best een uitdaging. Met de aanwijzingen in dit artikel hopen we je goed op weg te helpen. We behandelen de mogelijkheden van consumentenrouters en laten zien hoe je met VLAN’s op een professionele manier een scheiding in het verkeer aan kunt brengen.
Consumentenrouters
Consumentenrouters, zoals de door internetproviders verstrekte exemplaren, zijn vaak beperkt als het gaat om de isolatie van netwerkapparaten. De Fritz!Box van AVM is een positieve uitzondering. Je kunt hiermee een gastnetwerk opzetten met een afgezonderd wifi-netwerk. Je zou het een hotspot kunnen noemen.
Het verschilt per router wat je precies met een gastnetwerk kunt. Soms kun je het ook beschikbaar maken via een netwerkpoort. Alle gastgebruikers hebben alleen toegang tot internet. Soms kun je ook de bandbreedte en gebruikstijden beperken voor apparaten op het gastnetwerk of de internettoegang beperken tot de standaardprotocollen voor web en e-mail.
Gasten kunnen niet bij de rest van je netwerk. Standaard kunnen ze ook niet met andere wifi-apparaten communiceren binnen het gastennetwerk, al kun je dit laatste optioneel veranderen, zodat onderlinge communicatie wél mogelijk is. Enkele routers (of losse toegangspunten) bieden alleen een isolatie op het niveau van wifi, wat eigenlijk hoofdzakelijk voorkomt dat wifi-gebruikers met elkaar kunnen communiceren.
Enkele voordelen
Een gastnetwerk kan nuttig zijn voor bezoekers of een opstandige puber. Het kan ook voor IoT-apparaten van pas komen die genoeg hebben aan een internetverbinding, zoals bepaalde slimme thermostaten, deurbellen en ip-camera’s. Het heeft één groot voordeel: je voorkomt dat een netwerkapparaat (of huisgenoot) andere apparaten kan ‘besmetten’.
Helaas wordt voor jouzelf het ontdekken, configureren en gebruiken van IoT-apparaten vaak complexer als ze geen deel uitmaken van je hoofdnetwerk. Soms los je dat op door een smartphone of tablet tijdelijk op het gastnetwerk te zetten, om bijvoorbeeld een slimme luidspreker in gebruik te nemen. Maar ook bij de normale bediening, zoals het streamen naar de luidspreker, moet je vaak weer het gastennetwerk op. En bovenstaande werkt alleen als er geen isolatie tussen gebruikers is op dit gastnetwerk.
©Jakub Zerdzicki
Wat is een gastnetwerk? Technisch bestaat er in de wereld van netwerken uiteraard niet zoiets als een gastnetwerk. Voor zulke gescheiden netwerken werkt een router intern met VLAN’s. Dat gebeurt vaak ook al voor inkomende verbindingen, bijvoorbeeld om internet, televisie en VoIP te scheiden vanaf het glasvezelnetwerk van KPN. Maar ook voor een gastnetwerk, dat een eigen subnet krijgt, ofwel een privéreeks ip-adressen.
Controleer maar eens welk ip-adres je krijgt: dit wijkt af van de ip-reeks van het hoofdnetwerk. Zo kan eenvoudig worden afgedwongen dat vanaf het gastnetwerk alleen internettoegang mogelijk is en geen toegang tot het hoofdnetwerk.
Lokale controle
Dat je in een gastennetwerk apparaten zoals IoT-apparaten beperkt tot alleen internet heeft een keerzijde. Je forceert bij sommige apparaten namelijk dat ze internet als omweg gebruiken, terwijl ze in een normale situatie voor lokale aansturing zouden hebben gekozen.
Een lokale aansturing, bijvoorbeeld met Home Assistant, heeft een grote meerwaarde. Het werkt vaak sneller en betrouwbaarder. Zelfs als een apparaat het ondersteunt, krijg je het niet voor elkaar als dat apparaat alleen internettoegang heeft. Je krijgt dan de situatie dat een verzoek voor het schakelen van een lamp via een app eerst naar een cloudserver gaat, die vervolgens de opdracht doorspeelt aan de schakelaar.
Als het mogelijk is, houd je dus alles liever lokaal. Daarbij zul je apparaten incidenteel wel toegang tot internet moeten geven, bijvoorbeeld voor een firmware-update. Zo voorkom je ook dat obscure ip-camera’s beelden doorspelen via vaak slecht beveiligde p2p-verbindingen.
©rh2010 - stock.adobe.com
Praktisch voorbeeld
Je hebt nu een idee van de (on)mogelijkheden van consumentenrouters. Maar hoe kun je een netwerkscheiding op een professionele manier aanpakken? Dan zul je met VLAN’s moeten werken. Enige planning is handig bij het herinrichten van je netwerk.
Begin met het bedenken van enkele VLAN’s, met per VLAN een getal: de VLAN-ID (of tag). De methode die we hier volgen, is één vertrouwd VLAN als hoofdnetwerk (met VLAN-ID 10), een VLAN voor IoT-apparaten (VLAN-ID 20) en een derde VLAN voor gasten (VLAN-ID 50). Verder hebben we een VLAN voor managementverkeer (VLAN-ID 11). Wellicht wil je nog meer aparte VLAN’s, bijvoorbeeld voor VoIP, ip-tv of ip-camera’s.
Vervolgens kies je per VLAN een subnet met privé-ip-adressen. Het is handig als je daarin de VLAN-ID herkent. Bijvoorbeeld 10.0.10.0/24 voor het hoofdnetwerk, 10.0.20.0/24 voor IoT en 10.0.50.0/24 voor gasten. We gebruiken hier de CIDR-notatie. Bij /24 hoort subnetmasker 255.255.255.0 waarbij voor in dit geval het hoofdnetwerk de reeks bruikbare ip-adressen loopt van 10.0.10.1 t/m 10.0.10.254.
Routersoftware
Hoe je VLAN’s configureert, hangt uiteraard af van de router die je gebruikt. Sommige bestaande routers van bijvoorbeeld Linksys kun je voorzien van de alternatieve OpenWrt-firmware. Afhankelijk van de gebruikte router kun je daarin met VLAN’s werken, al is de configuratie technisch wat meer een uitdaging.
Een professionele router is ook een optie. Je hebt dan vaak alle vrijheid om VLAN’s te maken en firewallregels in te stellen voor al het verkeer. Maar dat heeft nog steeds een zekere complexiteit. Binnen pfSense, dat we in onze testopstelling gebruiken, werkt deze opzet vrij intuïtief en de software is bovendien heel overzichtelijk. De grootste uitdagingen zijn het configureren van je inkomende internetverbinding en het doorgronden van de werking van VLAN’s zodat je deze kunt toepassen.
pfSense virtualiseren
De systeemeisen voor pfSense zijn niet heel veeleisend. Daarom kan het interessant zijn deze software te virtualiseren met bijvoorbeeld Proxmox VE. Deze virtualisatiesoftware laat je flexibel werken met virtuele machines en lichtgewicht Linux-containers. Je kunt pfSense handig in een virtuele machine installeren. De VLAN’s kun je over één netwerkpoort naar buiten aanbieden, maar je kunt ze dankzij de virtuele bridges ook intern gebruiken voor bijvoorbeeld een virtuele machine met Windows of Linux, of een simpele Linux-container.
Het is natuurlijk het mooist als pfSense zo direct mogelijk toegang tot internet heeft, ter vervanging van je router, in plaats van daaráchter (zoals bij dubbele NAT), maar dit laatste kan voor testdoeleinden eventueel wel.
Hardware voor pfSense Netgate, de ontwikkelaar van pfSense, biedt zelf hardware aan voor pfSense, ook wel appliances genoemd. Je zou ze als referentie kunnen gebruiken. De systeemeisen zijn niet heel hoog.
Bij onze testopstelling gebruiken we een mini-pc van Topton, verkrijgbaar via AliExpress, met vier 2,5Gbit/s-netwerkpoorten. Die extra snelheid is prettig, vooral omdat verkeer tussen VLAN’s onderling door de router heen gaat. Dit soort mini-pc’s zijn populair als router/firewall en bovendien opvallend voordelig. Voor de kale configuratie (zonder geheugen en opslag) betaalden we ongeveer 135 euro.
Hij heeft een snelle Intel Celeron N5105 quadcore-processor. We plaatsten twee DDR4-geheugenmodules van 16 GB en de Samsung 980 Pro M.2-ssd. Dit alles is eigenlijk overkill voor pfSense, al zorgt Proxmox VE ervoor dat we ook heel veel andere toepassingen mee kunnen laten draaien. De gekozen hardware blijkt zeer stabiel, en draait ook ‘in productie’, al hebben we aan de buitenkant wel een ventilator toegevoegd voor wat extra koeling.
Netwerkpoorten
Als je Proxmox VE gebruikt, kies je al bij de installatie een van de netwerkpoorten als managementinterface voor de software. Hier wordt automatisch een zogenoemde bridge voor gemaakt. Het voordeel is dat Proxmox VE altijd via die poort bereikbaar is, ook als pfSense offline is.
Verder maak je ook een bridge voor elke andere netwerkpoort aan. Al die bridges voeg je daarna als netwerkinterface toe aan de virtuele machine met pfSense. Hierna kun je deze bridges binnen pfSense verder configureren. Waar je nog wel op moet letten, is dat je voor bridges de optie VLAN Aware aanvinkt in Proxmox VE als er meerdere VLAN’s op worden gebruikt. We doen dat bijvoorbeeld voor de bridge die via de bijbehorende netwerkpoort alle VLAN’s naar buiten brengt. Handig is dat andere virtuele machines en Linux-containers in Proxmox VE de betreffende bridge ook als netwerkinterface kunnen gebruiken, waarbij je dan zelf de VLAN-ID kunt kiezen.
Switches
Heb je de router geconfigureerd voor verschillende VLAN’s, dan zul je die virtuele netwerken ook door je huis willen verspreiden richting eindgebruikersapparaten, via switches en eventueel wifi. Je kunt geen ‘domme’ switches gebruiken, ofwel unmanaged switches. Wat deze feitelijk doen, is inkomend verkeer op een bepaalde poort uitzenden, ofwel ‘broadcasten’, naar alle andere poorten. Er wordt verder niet naar het verkeer gekeken en dus ook niet naar de VLAN-tag. Je kunt er dus ook geen scheiding mee maken. Bij een managed switch kan dit wel. Via een configuratiepagina kun je de verschillende VLAN’s instellen en aangeven welke poorten bij welke VLAN(’s) horen.
Netwerkverkeer scheiden?
Dan heb je een managed switch nodig
Trunk- en toegangspoort
Op een managed switch zul je een poort doorgaans ofwel als trunkpoort ofwel als toegangspoort gebruiken. Een trunkpoort verwerkt feitelijk verkeer voor meerdere VLAN’s, bijvoorbeeld tussen een router en een switch, of tussen twee switches onderling. Het gaat (meestal) alleen om ‘tagged’ verkeer, dus steeds voorzien van een VLAN-tag.
Op een toegangspoort sluit je apparaten zoals pc’s en printers aan die zelf niets met VLAN-tags doen. Je levert verkeer op die poorten ‘untagged’ af, dus ontdaan van de VLAN-tag. Hierbij stel je voor elke poort in bij welk VLAN die poort hoort. Hiermee bepaal je dus of een poort bij je hoofdnetwerk hoort of een van de andere VLAN’s (zoals gasten of IoT).
Poortinstelling
Wat soms wordt vergeten, is dat je ook per poort moet aangeven op welk VLAN het inkomende verkeer moet worden ingedeeld, via de zogenoemde PVID. Al zal dat vaak hetzelfde VLAN zijn als het gekozen VLAN voor het uitgaande untagged verkeer. Onthoud simpelweg dat het labeltje (de VLAN-tag) dat je eraf hebt gehaald voor het uitgaande verkeer, er voor inkomend verkeer weer opgeplakt moet worden.
De door ons gebruikte switches van Zyxel zijn vrij intuïtief en overzichtelijk als het gaat om de configuratie van VLAN’s. Het onderste deel van de afbeelding laat zien hoe poort 4 en 5 als trunkpoort worden gebruikt. Op poort 1 en 3 zijn wifi-toegangspunten van Ubiquiti aangesloten, die via de switch overigens ook van voeding worden voorzien dankzij PoE (Power over Ethernet). Ze ontvangen het tagged verkeer voor de drie VLAN’s: het hoofdnetwerk (10), IoT (20) en gasten (50). Voor het managementverkeer voor deze toegangspunten gebruiken we VLAN-ID 11. Het verkeer leveren we ‘untagged’ af, een eis van deze toegangspunten. Verder is poort 2 beschikbaar om bijvoorbeeld een pc of printer op het hoofdnetwerk aan te sluiten. Let ook op de PVID-instelling in het bovenste deel van de afbeelding.
Scheiding in wifi via SSID’s Het opzetten van wifi voor meerdere VLAN’s kan iets uitdagender zijn. Hoewel je voor elk VLAN een apart wifi-netwerk zou kunnen opbouwen, is het mooier om met toegangspunten te werken die meerdere SSID’s kunnen uitzenden en dus rekening houden met VLAN-tags. Denk aan semiprofessionele accesspoints van Ubiquiti UniFi of TP-Link Omada. Je ‘straalt’ dan via hetzelfde wifi-toegangspunt meerdere netwerken uit, elk met eigen SSID. Je levert alle VLAN’s (zoals het hoofdnetwerk, IoT en gasten) ‘tagged’ af op de accesspoints.
Voor de controllersoftware die dient voor het inregelen van de toegangspunten is het handig een apart VLAN te gebruiken. Merk op dat je dit managementverkeer ‘untagged’ op de toegangspunten moet aanleveren (samen met de ‘tagged’ VLAN’s) met ook weer de juiste PVID. Dat gaat wat intuïtiever als je ook bijbehorende switches van Ubiquiti of TP-Link gebruikt, maar dat is niet verplicht.
Firewallregels
Het instellen van firewallregels in pfSense vraagt ook wat denkwerk, maar is niet lastig, en je kunt het flexibel inrichten. De apparaten op het hoofdnetwerk geef je vaak de vrije hand. Voor de VLAN’s voor IoT en gasten kun je strikt zijn. Je zult veelal het verkeer naar alle andere VLAN’s blokkeren alsook belangrijke managementinterfaces. Voor gasten is alleen internettoegang nodig naast enkele cruciale server voor DHCP en DNS.
Voor IoT-apparaten zul je internettoegang doorgaans blokkeren, op enkele uitzonderingen na. Het is handig die ‘uitzonderingen’ in een lijstje te zetten. In pfSense kun je ze handig in een zogeheten alias opnemen. Voor die alias kun je dan één firewallregel maken die internettoegang toestaat voor die apparaten.
Ten slotte kun je natuurlijk nog uitzonderingen maken voor verkeer tussen VLAN’s. Denk aan een oppas die vanaf het gastennetwerk toegang tot de ip-camera in de babykamer mag hebben. Of een ip-camera die je toegang geeft tot een NVR.
Layer3-switches In onze testopstelling gebruiken we relatief eenvoudige layer2-switches waarbij we alle firewallregels in pfSense configureren. Die regelt ook verkeer tussen VLAN’s. Als pfSense wegvalt, kun je nog steeds binnen hetzelfde VLAN communiceren, maar apparaten op een ander VLAN kun je niet (meer) bereiken.
Er bestaan ook layer3-switches. Die kunnen zelf verkeer tussen VLAN’s regelen en bieden ook extra’s als een DHCP-server en firewallregels. Ze maken je minder afhankelijk van pfSense en je kunt hogere snelheden bereiken voor verkeer tussen VLAN’s, dat niet meer langs pfSense hoeft. Maar de switches zijn veel duurder en de configuratie via de switches wordt veel complexer.