Routers met OpenWrt: meer mogelijk in je thuisnetwerk
OpenWrt is een populair alternatief voor de routersoftware van fabrikanten. Je kunt er niet alleen een oude router mee upgraden, het is ook heel geschikt om op een normaal systeem te installeren, bijvoorbeeld als alternatief voor pfSense. Daarnaast zijn er kleine mini-routers, die niet alleen onderweg van pas komen, maar ook veel extra mogelijkheden in je thuisnetwerk bieden.
- Wat OpenWrt is en waarom het populair is voor meer controle en privacy
- Hoe je OpenWrt installeert op een pc, router of virtuele machine
- Hoe je internet, VLAN’s, DHCP en portforwarding instelt
- Welke extra software je kunt toevoegen, zoals VPN of adblock
- Hoe je een mini-router met OpenWrt inzet voor thuisnetwerk of onderweg
OpenWrt is populair onder gebruikers die privacy belangrijk vinden en meer controle wensen. Het is ook een bekende optie om oude routers van merken als TP-Link, Linksys of Netgear een tweede leven te geven, met veel nieuwe mogelijkheden en toepassingsgebieden. Hoewel dat een typisch scenario is, doen we de software hiermee eigenlijk te kort. Zo kun je OpenWrt ook op een gewone pc installeren, als alternatief voor bijvoorbeeld pfSense of OPNsense.
De systeemeisen zijn heel bescheiden: het heeft al genoeg aan 128 MB geheugen en kan ook soepel draaien op bijvoorbeeld een Raspberry Pi of mini-pc. Een installatie in een virtuele machine binnen bijvoorbeeld Proxmox VE is eveneens prima mogelijk. Er is veel minder overhead dan bij alternatieven zoals pfSense.
Via softwarepakketten kun je de mogelijkheden desgewenst verder uitbreiden. Je kunt OpenWrt dan bijvoorbeeld als VPN-client/server gebruiken of advertenties op DNS-niveau blokkeren.
We laten in dit artikel zien hoe je OpenWrt als eenvoudig alternatief voor pfSense kunt gebruiken. Wil je niet te veel knutselen? Sommige fabrikanten, zoals GL.iNet, baseren hun firmware standaard op OpenWrt. Zo kun je proeven aan de mogelijkheden, met een wat gebruiksvriendelijkere webinterface. We nemen verderop een bekende mini-router van GL.iNet als voorbeeld, die ook in je thuisnetwerk op heel veel manieren kan worden toegepast. Je kunt zulke routers overigens ook upgraden naar een officiële ‘schone’ OpenWrt. Al mis je dan uiteraard de aanpassingen van de fabrikant.
Veel consumentenrouters worden volgestopt met handige snufjes zoals ouderlijk toezicht, bescherming tegen virussen, inzicht in je internetgebruik en automatische netwerkoptimalisatie voor gamen of streamen. Het klinkt aantrekkelijk, maar veel routers benutten hiervoor clouddiensten van externe partijen. Zo gebruikt ASUS in zijn routers bijvoorbeeld beveiligingstechnologie van Trend Micro. Daarom moet je akkoord gaan met de gebruiksvoorwaarden. Een groot nadeel is dat, voor de werking van de dienst, veel gegevens zoals de websites die je bezoekt en apparaatgebruik, naar derde partijen worden verstuurd voor analyse. Het biedt misschien wat extra bescherming, inzicht of gebruiksgemak, maar is niet ideaal als je veel waarde hecht aan privacy en volledige controle nastreeft. Dit maakt OpenWrt een geliefd alternatief.
Wat gaan we doen?
OpenWrt heeft een lichtgewicht Linux-besturingssysteem als basis, geoptimaliseerd voor embedded apparaten zoals routers. Maar het draait ook op normale x86- en ARM-hardware. Bij dit artikel gaan we een normale pc gebruiken met OpenWrt, als alternatief voor zwaardere toepassingen zoals pfSense en OPNsense. We laten zien hoe je een internetverbinding van (in ons geval) KPN kunt gebruiken en hoe je daarna alles instelt. We werken binnen een virtuele machine met Proxmox VE, maar bij een installatie op gewone hardware (op bare metal zoals men dat noemt) zijn de stappen hetzelfde.
We gaan niet met VLAN’s werken, maar dat kan uiteraard wel, en we geven hier wat aanwijzingen voor. Daarna gaan we nog met een compacte router van GL.iNet aan de slag. Hierop draait de standaardfirmware van de fabrikant. Die is gebaseerd op OpenWrt, maar heeft wat aanpassingen voor extra gebruikersvriendelijkheid. We laten zien hoe je dit apparaat kunt inzetten in je thuisnetwerk.
Routers van GL.iNet gebruiken OpenWrt met een eigen schil.
Wat heb je nodig?
Je hebt uiteraard geschikte hardware nodig, en dat kan ook een fysieke router zijn. Via www.kwikr.nl/owrthw kun je kijken welke modellen worden ondersteund en of er bijzonderheden zijn. Een x86-systeem met twee of meer ethernetpoorten is ook een goede optie of (zoals we hier kiezen) een virtualisatieplatform zoals Proxmox VE.
Voor de internetverbinding heb je enkele instellingen nodig. Je hebt bij elke provider het recht om zelf je router te kiezen. De provider moet alle technische details verstrekken. Ze bieden meestal geen verdere ondersteuning, behalve via bijvoorbeeld een forum. Gelukkig is de basisconfiguratie niet ingewikkeld.
Via de website van OpenWrt kun je zien welke routers worden ondersteund.
Installatie
Hoe je OpenWrt installeert, verschilt per router. De procedure zelf is wel vergelijkbaar. Op de website van OpenWrt vind je voor veel routers een pagina met aanwijzingen en doorgaans twee soorten firmware: voor de installatie vanaf de originele firmware en voor een upgrade als je OpenWrt al gebruikt. Wij kiezen hier een andere route: de installatie als virtuele machine in Proxmox VE (zie volgende paragraaf). Het voordeel daarvan is dat je geen heel x86-systeem hoeft op te offeren. Je kunt talloze andere toepassingen ernaast draaien, in een container of virtuele machine.
Een klein risico is dat bij een misconfiguratie van Proxmox VE (en ook bij het vastlopen of herstarten van je server) de router down is. Het is dus slim een back-upsysteem achter de hand te houden. Er zijn ook veel voordelen. Naast een efficiënter gebruik van je server, kun je ook makkelijk de console openen, back-ups en snapshots maken, en terugzetten of je router migreren naar een andere host.
In Proxmox VE kun je een script gebruiken voor de installatie.
Virtuele installatie in Proxmox VE
Als je iets Proxmox VE gebruikt of gaat gebruiken, dan gaan we ervan uit dat je dat al op je systeem geïnstalleerd hebt. Controleer voordat je begint de netwerkconfiguratie van Proxmox VE via System / Network. Bij de installatie is al een netwerkbrug gemaakt (vmbr0) voor een fysieke netwerkpoort (te herkennen als Network Device). Je moet óók zo’n netwerkbrug voor je WAN-poort maken, die dan bijvoorbeeld vmbr10 heet. De twee netwerkbruggen (voor LAN en WAN) koppel je bij de installatie aan de virtuele machine van OpenWrt. Daarbinnen zijn ze dan als gewone netwerkpoort (eth0, eth1 enzovoort) te configureren, zoals op elk ander systeem.
De virtuele machine heb je het snelst online met een helper-script. Je vind dit script voor OpenWrt via www.kwikr.nl/proxwrt. Kopieer het commando dat je op die pagina ziet. Open dan de beheerdersomgeving van Proxmox VE en klik op je node. Ga naar Shell en voer de bewuste opdracht uit. Via een wizard kun je nu de virtuele machine voor OpenWrt configureren. Kies de optie Advanced voor meer controle. Vul een ID in voor de virtuele machine.
Je kunt hierna veelal de standaardopties accepteren. Belangrijk: vul de juiste netwerkbruggen in voor LAN en WAN. Kies het ip-adres voor je router dat past bij je netwerk (bijvoorbeeld 192.168.1.1 of 10.0.10.1). Vul de bijbehorende netmasker in (meestal 255.255.255.0). Bij WAN Vlan vul je niets in: de netwerkbrug moet immers als een soort trunk fungeren, zodat we intern beide VLAN’s (bijvoorbeeld voor internet en iptv) kunnen configureren. Bij LAN Vlan vul je in principe ook niets in. Wil je in OpenWrt gaan werken met VLAN’s, dan zul je deze netwerkbrug namelijk meestal óók als trunk laten werken. Na de installatie kun je de router via zijn ip-adres configureren.
Je kunt OpenWrt ook in een virtuele machine binnen Proxmox VE installeren.
Webinterface
We zullen als voorbeeld in het kort de instellingen voor een glasvezelverbinding bij KPN doorlopen. Open de webinterface van OpenWrt: je kunt deze benaderen via zijn ip-adres. Op de meeste systemen is dat 192.168.1.1 (maar binnen Proxmox VE hebben we een andere reeks gekozen). De standaard gebruikersnaam is root. Er is geen wachtwoord ingesteld, maar dat kun je instellen via de webinterface via System / Administration of via de terminal.
Na de installatie log je in bij de webinterface van OpenWrt.
Interfaces
In het menu Network / Interfaces zie je de interfaces. Hier zijn dat lan en wan die corresponderen met eth0 en eth1. De WAN-interface dient uiteraard voor internettoegang, maar deze is bij ons nog niet goed ingesteld. Op de WAN-verbinding werkt KPN met VLAN’s volgens de 802.1q-standaard. Voor internet wordt VLAN 6 gebruikt en het protocol PPPoE. Televisie gaat via VLAN 4 op basis van DHCP, met igmpv2. Daarom moeten we onder Devices eerst deze twee VLAN’s toevoegen, namelijk VLAN 4 op eth1 (die eth1.4 zal worden genoemd) en VLAN 6 op eth1 (eth1.6). Daarna kunnen we de WAN-interface correct instellen, zodat het juiste protocol (PPPoE in plaats van DHCP Client) wordt gebruikt en het correcte device (eth1.6 in plaats van eth1).
De interfaces zijn standaard nog niet correct ingesteld.
Devices
In het menu Devices zie je de vaste ethernetpoorten, hier eth0 en eth1. In onze situatie worden die voor respectievelijk LAN en WAN gebruikt. Er is ook een zogeheten Bridge device genaamd br-lan, waar de LAN (eth0) aan is gekoppeld. Dit wordt ook typisch gebruikt om een bedraad en draadloos netwerk (wifi) te combineren.
We moeten zoals gezegd eerst de twee VLAN’s toevoegen voor de WAN-interface, één voor internet en één voor iptv. Kies daarvoor Add device configuration. Kies bij Device type voor VLAN (802.1q). Bij Base device kies je de netwerkinterface voor de WAN-verbinding. In ons voorbeeld is dat eth1. Bij VLAN ID vul je 6 in. Klik dan op Save. Voor iptv volg je dezelfde stappen, maar dan vul je bij VLAN ID uiteraard 4 in. Klik op Save & Apply om de aanpassingen actief te maken.
Zorg dat je de twee VLAN’s als device hebt toegevoegd.
Internetverbinding
Op het tabblad Interfaces gaan we nu de internetverbinding tot stand brengen. Je zou natuurlijk een nieuwe interface voor WAN-internet (en daarna ook voor iptv) kunnen toevoegen. Het is echter handiger om de bestaande WAN-interface aan te passen, met het oog op de bestaande configuratie, zoals de huidige firewallregels. Klik daarom achter de wan-interface op de optie Edit. Bij Protocol kies je PPoE. Klik dan op Switch protocol om te bevestigen dat je het protocol wilt veranderen. Kies vervolgens bij Device de zojuist aangemaakte VLAN voor internet (in ons voorbeeld eth1.6). Bij PAP/CHAP username en password vul je twee keer internet in. Je mag hier eigenlijk alles invullen, maar de velden mogen niet leeg blijven. Klik op Save. Klik tot slot op Save & Apply. Je krijgt nu als het goed is direct een publiek IPv4- en IPv6-adres via deze verbinding.
Na het instellen van de PPPoE-verbinding wordt de internetverbinding opgezet.
DHCP-server
Voor het uitdelen van ip-adressen en andere configuratieparameters aan aangesloten clients gebruik je een DHCP-server. In OpenWrt draait één centrale DHCP-service, óók als je meerdere interfaces hebt (VLAN’s) met elk een eigen subnet. Als je achter de lan-interface op Edit klikt, kun je op het tabblad DHCP Server deze opties instellen. Als je in het menu Status / Overview naar beneden bladert, zie je alle DHCP-leases. Via de knop Set Static kun je eventueel het ip-adres reserveren. Daarmee zorg je dat het apparaat altijd hetzelfde ip-adres krijgt.
Voor elke interface kun je een DHCP-server instellen.
Portforwarding
Wil je services in je netwerk draaien, zoals een webserver, dan zul je enkele regels voor portforwarding moeten toevoegen. Hiervoor ga je naar Network / Firewall. Open het tabje Port Forwards en kies Add. Als voorbeeld voegen we een webserver toe die intern op de standaardpoort 80 draait en ook via poort 80 vanaf internet bereikbaar moet zijn.
Kies bij Protocol de optie TCP. Bij Source zone selecteer je wan. Bij External port vul je de poort in waarop het systeem vanaf internet bereikbaar moet zijn. Hier vullen we 80 in. Bij Internal IP adress vul je in op welk ip-adres in je netwerk die webserver draait. Bij Internal port vul je vervolgens de poort in waarop de webserver op dat ip-adres actief is; hier is dat opnieuw 80. Heb je deze eerste regel gemaakt, dan kun je via de knop Clone makkelijk een kopie maken. Pas dan die kopie aan en wijzig poortnummer 80 naar 443, zodat ook deze poort (voor versleuteld https-verkeer) wordt doorgestuurd.
Met enkele portforwarding-regels maken we een webserver van buitenaf beschikbaar.
Software installeren
Dankzij de pakketbeheerder kun je alsnog veel extra software installeren, dat daarna lokaal op de router draait. Denk aan AdBlock voor het blokkeren van advertenties op DNS-niveau, een VPN-toepassing zoals WireGuard, het meten van netwerkdoorvoer met iPerf3 of Dynamic DNS-ondersteuning (DDNS). En met Samba kun je een router omtoveren tot mini-bestandsserver voor bijvoorbeeld back-ups.
Ga voor dit soort uitbreidingen naar System / Software en kies Update lists. Nu zie je een lijst met alle toepassingen die je kunt installeren. Voeg voor WireGuard bijvoorbeeld luci-proto-wireguard toe. Herstart de router. Via het menu Network / Interfaces kun je nu een interface toevoegen met bij protocol de optie WireGuard VPN. Vanaf daar kun je de configuratie verder oppakken.
Je kunt extra software installeren binnen OpenWrt.
Welke hardware?
Zoek je specifiek een router voor OpenWrt om thuis te gebruiken? Als het om je hoofdrouter gaat zal een wat krachtiger model met wifi 6 vaak de voorkeur krijgen. Kies voor optimale ondersteuning een model waarvoor opensource, draadloze drivers beschikbaar zijn. Populaire voorbeelden zijn de GL.iNet GL-MT6000, Dynalink DL-WRX36, ASUS TUF-AX6000 en TUF-AX4200. Controleer eventueel in de eerder vermelde lijst met geschikte hardware bij OpenWrt.
Wil je vooral experimenteren of heb je een paar eenvoudige toepassingen op het oog, dan is een mini-router ook een leuke optie. Hier nemen we de GL-AR300M16-Ext (ongeveer 30 euro) als voorbeeld, ook wel ‘Shadow’ genoemd.
Een mini-router zoals deze GL-AR300M16-Ext is leuk voor experimenten.
Firmware
Na het verbinden met de mini-router kun je inloggen bij de webinterface. We hebben eerst de firmware van de fabrikant bijgewerkt. Dat lukt goed, maar de beperkte opslagcapaciteit laat weinig ruimte over om ook nog extra toepassingen te installeren. Gelukkig biedt het standaard al veel handige toepassingen. De webinterface van GL.iNet is duidelijk gericht op minder gevorderde gebruikers. Alles is overzichtelijk ingedeeld en werkt heel gebruiksvriendelijk. Als je toch iets fout doet, kun je met een reset eenvoudig terug naar de basisinstellingen.
Via de webinterface kun je alle opties van je router handig instellen.
LuCI
Wil je dieper graven? Als je naar System / Advanced Settings gaat, kun je doorklikken naar de webinterface van OpenWrt, ook wel LuCI genoemd. Verder kun je altijd inloggen via ssh en de configuratie bekijken. De meeste bestanden vind je onder /etc/config. Bijvoorbeeld het bestand network met al je interfaces. Het is meestal veiliger om geen aanpassingen via LuCI of ssh te maken, tenzij je zeker bent van je aanpassingen. Zowel voor de webinterface van GL.iNet als voor ssh en LuCI gebruik je overigens hetzelfde beheerderswachtwoord. Dit is standaard goodlife, tenzij je het hebt aangepast.
De webinterface LuCI van OpenWrt is ook toegankelijk.
De gekozen mini-router is populair op reis, maar geeft ook veel ruimte om te experimenteren op je thuisnetwerk, bijvoorbeeld met VLAN’s, DHCP en firewallregels. Zo biedt het apparaatje wifi tot 300 Mbit/s, met een aparte SSID voor een gast-wifi. Het heeft twee ethernetpoorten (WAN en LAN), een usb-poort en een micro-usb-poort voor voeding. Je kunt de mini-router bijvoorbeeld als VPN-client of -server gebruiken. Zelfs dit goedkope exemplaar is goed bruikbaar voor WireGuard. Je kunt dit direct instellen via de webinterface. Wel mist het wat kracht. Zwaardere routers halen makkelijk zo’n 700 Mbit/s, terwijl met dit model ongeveer 30 tot 50 Mbit/s mogelijk is. Verder kun je er een gastnetwerk mee opzetten waarbij gasten geen toegang tot je hoofdnetwerk hebben. Gebruik je het voor je kinderen, dan kun je bijvoorbeeld ongewenste domeinen blokkeren of tijdslimieten instellen. Je kunt de mini-router als repeater of bridge voor wifi inzetten om het bereik van je thuisnetwerk uit te breiden. Je kunt een usb-dongel of smartphone aansluiten voor mobiel internet. Dan werkt het apparaatje als back-up bij het wegvallen van je internetverbinding. Verder kun je apparaten die alleen een vaste netwerkverbinding hebben deel uit laten maken van je wifi-netwerk. Denk aan netwerkprinters, VoIP-telefoons en smart-tv’s.
Via de webinterface kun je VPN-verbindingen met WireGuard opzetten.