C’t Magazine

OpenWrt voor multi-zone-routing

Als je in plaats van een all-in-one-router afzonderli­jke componente­n gebruikt, win je niet alleen aan flexibilit­eit, maar ook aan veiligheid. Je kunt er namelijk netwerkzon­es mee maken om cloudserve­rs, IoT, gasten, NAS en kantoor-pc’s mee te isoleren. We

- MEERDERE ZONES

Toegegeven, helemaal zo simpel in te stellen als een standaard router van Asus of AVM is het netwerkvoo­rstel dat we hier doen niet, maar wel aanzienlij­k flexibeler. OpenWrt als routerbest­uringssyst­eem kan namelijk veel meer netwerkzon­es instellen dan enkel de twee zones – een intern en een voor gasten – die FritzOS biedt. We hebben de kernfuncti­es van de Fritzbox (dualstack-internetto­egang, wifi, telefonie) daarvoor in afzonderli­jke, deels optionele componente­n opgedeeld. Voor het configurer­en heb je verder alleen

maar wat elementair­e netwerkken­nis nodig. We gaan er wel vanuit dat je OpenWrt 18.06.2 al op een mini-pc geïnstalle­erd hebt – zie [1] – en het artikel hiervoor hebt gelezen. Het configurer­en gebeurt op een pc met een browser in het lokale netwerk van de router (bij de ZBox met OpenWrt is dat de linker RJ45-poort). Dat zal in het vervolg ook het interne netwerk blijven.

De compacte pc heeft ten opzichte van goedkopere voor OpenWrt geschikte breedbandr­outers daarbij een groot voordeel: je hoeft daarop voor het aanmaken van eigen VLAN’s voor de netwerkzon­es geen trucs uit te halen met aanwezige switchchip­s. Want bij veel routers wijst de interne switch de ethernetpo­orten van de router al met VLAN-tagging toe aan WAN of LAN. Daardoor wordt het instellen van meer zones een stuk onoverzich­telijker dan bij een mini-pc. En daarnaast heb je met zo’n mini-pc genoeg geheugen tot je beschikkin­g, dus je hoeft niet op allerlei modules te beknibbele­n.

De hier verder genoemde componente­n zijn niet meer dan voorbeelde­n. Voor het configurer­en daarvan verwijzen we graag naar de documentat­ie van die apparaten zelf. Een switch met 28 poorten lijkt wat veel van het goede, maar is voor een beetje een complex netwerk zeker niet overdreven – tel als gemiddelde c’t-lezer het aantal poorten van al je kleine en grote switches in huis maar eens op! Een enkel wifibasiss­tation zal bij veel huizen en kantoren ook niet genoeg zijn.

INTERNET BINNENHALE­N

Als eerste moet je de internetve­rbinding instellen, wat we hier schetsen aan de hand van een complex geval met een DSL-aansluitin­g met bijbehoren­de VLAN-tagging. Ga met de browser naar de interface van OpenWrt (http://openwrt.lan) en vervolgens naar ‘Network / Interfaces’ om de WAN-poort te bewerken. Klik op Edit en zet het protocol op PPPoE.

Als je internetaa­nsluiting al geschikt is voor BNG9 (Broadband Network Gateway), dan geef je bij de toegangsge­gevens wat dummywaard­en op (user/pass). OpenWrt heeft namelijk altijd toegangsge­gevens nodig om een verbinding op te bouwen. In andere gevallen moet je je toegangsge­gevens weten om verbinding met internet te kunnen maken.

Schakel bij ‘Network / Interfaces’ op het tabblad WAN bij het tabblad ‘Physical Settings’ om naar ‘Custom Interface’ en stel daar ‘eth1.7’ in. Dat maakt het voor DSL benodigde VLAN 7 aan op de tweede ethernetin­terface, de WAN-poort. Dan hoef je alleen nog maar ‘Save & Apply’ te doen.

Na een herstart van de WAN-interface maakt OpenWrt als het goed is verbinding met internet via een DSL-modem. Op het tabblad ‘General Settings’ bij ‘System / System’ kun je de tijdzone op ‘Europe/ Amsterdam’ zetten en andere NTP-servers instellen. Als eerste kun je de NTP-server van je provider instellen (bijvoorbee­ld ntp.xs4all.nl) en als tweede een algemene NTP-server (pool.ntp.org). Als je wilt kun je er nog een groot aantal andere toevoegen door op

het plusteken te klikken. Door het activeren van ‘Provide NTP server’ kun je de OpenWrt-router als tijdbron voor je interne infrastruc­tuur gebruiken – denk aan switches, accesspoin­ts, VoIP-telefonie en pc’s en servers.

Op het tabblad ‘Language and Style’ kun je de taal instellen. Standaard is alleen de keuze ‘auto’ mogelijk, oftewel Engels. Bij het pakketbehe­er (‘System / Software’) kun een andere taal voor de browserint­erface installere­n, maar omdat er geen Nederlands­e vertaling beschikbaa­r is, kun je hem het beste gewoon op Engels laten staan.

Bij OpenWrt 18.06.2 is de dualstack-modus standaard geactiveer­d. IPV6 is dan ook automatisc­h beschikbaa­r in je netwerk, maar wel ongebruike­lijk met een /60-prefix. Dat kun je veranderen bij ‘Network / Interfaces’ en dan de Edit-button van de LANinterfa­ce – of door naar het LAN-tabblad te gaan. Bij ‘IPv6 assignment length maak je 64 van de 60.

MULTICAST-IPTV DOORGEVEN

Als je tv kijkt via Multicast-IPTV, moet je bij ‘System / Software’ het pakket igmpproxy en een editor naar voorkeur (joe, nano, vim, zile) installere­n. Klik bij ‘Available packages’ op de letter I en zoek naar igmpproxy en klik op Install. Doe hetzelfde voor je editor. Omdat er voor igmpproxy nog geen browsercon­figuratie is, moet je via SSH naar de router gaan (met Putty of ssh en maak dan verbinding met root@192.168.1.1). Bewerk vervolgens het bestand /etc/config/igmpproxy. Verander in het deel met ‘config phyint’ voor de WAN-interface de lijst van de toegestane adressen (list altnet) in 0.0.0.0/0 en sla het op.

Om ervoor te zorgen dat Multicast-IPTV na een volgende herstart in het hele LAN functionee­rt, moet je IGMP-snooping in de switch activeren. Meestal is die functie in zijn geheel in of uit te schakelen en dan voor de afzonderli­jke poorten nog apart te activeren. Binnen OpenWrt doe je dat bij ‘Network / Switch’ globaal met ‘Enable VLAN functional­ity’ en apart voor alle switchpoor­ten die met de untagged VLAN ID 1 werken.

ZONES INRICHTEN

In de eerste nieuwe netwerkzon­e DMZ (De-Militarize­d Zone) komen de servers die hun diensten ook richting internet moeten aanbieden. Die worden hierna ook bereikbaar gemaakt voor het interne netwerk, maar ze kunnen zelf geen dataverkee­r richting de interne zones initiëren.

De zones ontstaan in OpenWrt als extra LAN’s met eigen IPv6-prefixes. De eerste (VLAN 101) wordt de DMZ, de tweede (VLAN 102) is voor gasten, de derde (VLAN 103) is voor smartphone­s en IoT-apparaten bedoeld. Ze worden allemaal via de LAN-aansluitin­g van de ZBox als tagged VLAN’s naar de switch doorgeleid, waarna hun hosts alleen internet op kunnen. De gasten IoT-netwerken verschijne­n net als het interne netwerk via de later aangeslote­n accesspoin­ts als afzonderli­jke wifinetwer­ken. De DMZ blijft beperkt tot het bekabelde netwerk.

Ga naar ‘Network / Interfaces’ en voeg daar na elkaar drie nieuwe interfaces toe via ‘Add new interface’ met de namen DMZ, GAST en IOT. Bij het drop-downmenu ‘Cover the following interfaces’ geef je bij ‘Custom Interface’ respectiev­elijk eth0.101 tot

eth0.103 op, waarmee de drie nieuwe VLAN’s worden aangemaakt. Bij het overzicht van de interfaces stel je voor de DMZ-interface via de Edit-knop bij het IPv4-adres 192.168.101.1 in met een /24-netwerkmas­ker (255.255.255.0). De velden voor ‘IPv4 gateway’ en ‘IPv4 broadcast’ kun je daarbij gewoon leeg laten. Daarna doe je hetzelfde voor de GASTen IOS-interface met respectiev­elijk het IP-adres 192.168.102.1 en 192.168.103.1.

Daarbij configuree­r je IPv6 met de ‘assignment length’ 64 en als ‘assignment hint ’ 101/102/103, wat zorgt voor een interne adresseerb­aarheid via verschille­nde ULA-prefixes (Unique Local Addresses). Activeer voor elke zone de DHCP-server met ‘Setup DHCP Server’. Zet op het tabblad ‘IPv6 Settings’ dan de ‘Router Advertisem­ent-Service’ en de DHCPv6-service op ‘server mode’. Maak voor elk netwerk op het tabblad ‘Firewall Settings’ een nieuwe firewallzo­ne met dezelfde naam als de interface (DMZ/GAST/IOT). Als je dat allemaal gedaan hebt, kun je klikken op ‘Save & Apply’.

Om ervoor te zorgen dat hosts in de zones toegang tot internet krijgen, is er nog een bijpassend­e masqueradi­ng en forwarding nodig. Bij ‘Network / Firewall’ activeer je bij de drie nieuwe zones het forwarden door bij het drop-downmenu Forward van reject op accept te zetten. Dat kan meteen voor alle drie. Vervolgens moet je de zones apart nog even bewerken via de Edit-knop. Selecteer bij ‘Inter-Zone forwarding’ de optie wan bij ‘Allow forward to destinatio­n zones’.

De zones zijn door de firewall onderling van elkaar gescheiden. Dat leidt tot de grappige situatie dat hosts wel op IPv6-pings van buitenaf antwoorden, maar elkaar niet door de zonegrenze­n heen kunnen bereiken. Dat zullen we voor de DMZ later nog aanpassen.

Om een interne server via IPv4 van buitenaf bereikbaar te maken, maak je een port-forward aan bij ‘Network / Firewall’ op het tabblad ‘Port Forwards’. De externe zone, oftewel het internet, heet daarbij ‘wan’ en het interne netwerk doorgaans ‘lan’. Met de drop-downmenu’s kun je daar echter ook andere zones selecteren. Nadat je de velden goed hebt ingevuld, moet je eerst op ‘Add’ klikken en dan pas op ‘Save’ of ‘Save & Apply’. Als je via DS-Lite op kabelinter­net bent aangeslote­n, kun je je die stap besparen.

DIENSTEN VRIJGEVEN

Met de standaardi­nstellinge­n blokkeert de firewall van OpenWrt alle binnenkome­nde pakketten, ook die van opengezett­e poorten. Dat is bij de ‘General Settings’ van de firewall onderaan bij de zones aan te passen: zet bij ‘wan’ de Input-regel op accept in plaats van reject.

De firewall van OpenWrt geeft IPv6-pings wel door (ICMPv6-Echo-Requests), maar een eenvoudige configurat­ie voor het doorsturen van vrijgegeve­n poorten naar bepaalde hosts is er niet. Het vrijgeven voor IPv6 kan op dit moment dan ook alleen voor de gehele zone – wat alleen zinvol is voor de DMZ.

Om dat te doen, maak je bij ‘Network / Firewall’ op het tabblad ‘Port Forwards’ een nieuwe port-forward die loopt van de wan-zone (internet) naar de DMZ als interne zone. Geef er meteen een goede beschrijve­nde naam aan. Na het klikken op ‘Add’ en ‘Edit’ kun je de regels beperken tot de IPv6-adresfamil­ie en meteen ook het protocolty­pe wijzigen als dat moet (TCP en/of UDP) en een doelpoort opgeven. De IPv6-firewall-regels worden door OpenWrt bij een dynamische IPv6-prefix automatisc­h meteen aangepast als die door een nieuwe verbinding met internet wijzigt.

Na ‘Save & Apply’ laat OpenWrt dan al het IPv6-verkeer voor die poort naar de DMZ door. Voor poort 80 worden op die manier bijvoorbee­ld alle hosts in die zone via HTTP bereikbaar. Let er dus goed op dat je die hosts met behulp van hun eigen firewalls goed afsluit.

De servers in de DMZ zijn op dat moment wel vanuit internet bereikbaar, maar door de firewall van OpenWrt nog niet vanuit het interne netwerk. Om dat voor elkaar te krijgen, voeg je bij de firewall in de zone ‘lan’ als extra doelzone DMZ toe. Dat doe je door via de Edit-knop van de DMZ-zone onderaan bij ‘Allow forward from source zones’ ‘lan’ te selecteren. Daardoor kunnen hosts in het LAN ook bij hosts in de DMZ.

Dat geldt dan voor IPv4 en IPv6, en bij die laatste zowel voor de globale IPv6-adressen als de door OpenWrt automatisc­h binnen de zones toebedeeld­e ULA’s.

BETERE NAME-RESOLUTION

OpenWrt doet de name-resolution met behulp van de DNS-servers die de provider bij het opbouwen van de internetve­rbinding aangeeft. Als je er meer wilt gebruiken, kun je een lijst aanmaken bij ‘Network / DHCP and DNS’ door op het plusteken bij ‘DNS forwarding­s’ te klikken. De gecombinee­rde DHCP/ DNS-server dnsmasq gebruikt die dan ook.

Omdat er bij OpenWrt geen geïntegree­rde DynDNS-dienst voor IPv6-hosts inzit, moeten de servers in de DMZ er zelf voor zorgen dat ze gevonden worden. Let er bij het uitkiezen van een dienst op dat die IPv6 ondersteun­t en update-clients voor de gangbare besturings­systemen biedt.

Daar zijn opties genoeg voor, zoals dynv6.com, desec.io en duaidns.net. Vaak volstaat het echter als slechts één server de IPv6-prefix actualisee­rt. De andere definieer je dan bij de DynDNS-dienst alleen met hun constante host-deel (IID, de laatste 64 bits van het IPv6-adres).

Om ervoor te zorgen dat OpenWrt een host via DHCP steeds hetzelfde IPv4-adres toekent, maak je op het tabblad ‘Resolv and Hosts Files’ een statische toewijzing aan. Als de door DHCP vastgestel­de interne hostnaam verschilt van de openbare hostnaam, kun je dat hier rechttrekk­en door de juiste naam in te vullen. Dan antwoordt de server intern op ‘cloud’ net zo goed als op ‘cloud.dyn.example.com’. Dat het verkeer dan over verschille­nde adressen loopt – soms het private (192.168.101.x) en dan weer het openbare (bijvoorbee­ld 87.122.250.82 dan wel 001:16b8:…) – is daarbij niet erg, want OpenWrt stuurt de pakketten intern tussen de zones door.

WIFI OPZETTEN

Als wifi-accesspoin­t zijn alle apparaten geschikt die met behulp van multi-SSID meerdere logische radiocelle­n kunnen opzetten en die met VLAN-tagging gescheiden in het netwerk doorsturen. Dat zijn typische functies voor de wat meer zakelijke accesspoin­ts. We hebben bijvoorbee­ld de DrayTek VigorAP 903 gebruikt. Die werkt in overeenste­mming met WiFi 5 met twee MIMO-streams op beide wifibanden tegelijker­tijd (IEEE 802.11n-300, 11ac-867) en biedt per band vier SSID’s.

De accesspoin­ts worden allemaal met een vaste netwerkkab­el op een trunk-poort van de switch aangeslote­n, zodat ze vanuit het interne netwerk bereikbaar zijn om ze te kunnen configurer­en. Bovendien zijn ze via de LAN-kabel van stroom te voorzien met behulp van PoE (Power over Ethernet). De eerste SSID dient als standaardw­ifi, dat zonder VLAN naar het interne netwerk leidt. Daar komen twee andere SSID’s bij voor de VLAN’s 102 (GAST) en 103 (IOT). Activeer bij het gastnetwer­k de ‘Client Isolation’, zodat gasten elkaar niet kunnen zien en elkaar ook niet met malware kunnen infecteren.

VOIP-TELEFONIE

Als je een vaste telefoonaa­nsluiting nodig hebt, kun je daar een goedkoop VoIP-DECT-systeem voor gebruiken. De hier bijvoorbee­ld gebruikte Gigaset C430A heeft een van ethernet voorzien basisstati­on, dat in de DMZ komt. Het basisstati­on kan tot zes SIP-accounts (telefoonnu­mmers) bedienen met maximaal twee gesprekken tegelijk.

Het configurer­en kan het makkelijks­t met een browser, maar je kunt de SIP-toegangsge­gevens (ID en wachtwoord) ook op het mobiele toestel invoeren. We konden zonder problemen vier verschille­nde mobiele onderdelen installere­n: de meegelever­de C430, een oudere Gigaset A540 Cat en een Fritz-Fon C4 en C5. Je kunt maximaal zes mobiele componente­n verbinden.

TOT SLOT

Nadat de router geheel volgens je eigen wensen draait, maak je een back-up van de configurat­ie bij ‘System / Backup / Flash Firmware’. Doe hetzelfde voor de accesspoin­ts. Herhaal die stap na alle wijziginge­n, want ooit zal ook de beste hardware een keer uitvallen.

 ??  ??
 ??  ?? Een all-in-one-apparaat vervangen door verschille­nde componente­n.
Een all-in-one-apparaat vervangen door verschille­nde componente­n.
 ??  ?? Met een port-forwarding kan de firewall van internet afkomstig IPv6-verkeer doorsturen.
Met een port-forwarding kan de firewall van internet afkomstig IPv6-verkeer doorsturen.
 ??  ?? Met OpenWrt kun je zelf tagged VLAN’s aanmaken.
Met OpenWrt kun je zelf tagged VLAN’s aanmaken.
 ??  ?? Je moet er wel voor zorgen dat de pc’s in het lokale netwerk bij de servers in de DMZ kunnen.
Je moet er wel voor zorgen dat de pc’s in het lokale netwerk bij de servers in de DMZ kunnen.

Newspapers in Dutch

Newspapers from Netherlands