Spring naar hoofdtekst

NBG6716 router met OpenWrt

Geplaatst op door ,
Laatste aanpassing op .

Inleiding

De Zyxel NBG6716 router is een multiband router voor thuisgebruik. Hij biedt van huis uit een aantal functies en is, binnen het gestelde budget, voldoende klaar voor de toekomst. Toen ik echter voor de veiligheid probeerde een poort forwarding met verschillende src- en dst nummers in te stellen, liep ik tegen de grenzen van de originele firmware aan.

Zyxel bleek zijn grafische webinterface bovenop een (verouderde) versie van OpenWrt te hebben gebouwd. Ik zou dus ook via SSH in de configuratie kunnen gaan stoeien, maar ik wilde meer controle, meer zekerheid en veiligheid. Aldus ging ik op zoek naar een alternatieve firmware.

OpenWrt

Omdat de originele firmware op OpenWrt baseerde, leek mij dit open source project de meest voor de hand liggende plaats om met de zoektocht te beginnen. Er bleek inderdaad al een pagina gewijd te zijn aan dit model; vanaf dat moment wist ik dat het goed zat!

Update

In oktober 2017 werd bekend dat er een ontwerpfout in het WPA2-protocol zit, waardoor onversleutelde WLAN-communicatie af te luisteren is. Toen ik op zoek ging naar een update voor OpenWrt, ontdekte ik dat de firmware onder een nieuwe naam wordt doorontwikkeld: LEDE-project. Genoeg stof voor een nieuw artikel in mijn weblog :-)

Installatie

Van Zyxel naar OpenWRT

Op de genoemde pagina stond dat de installatie van de meest recente versie OpenWrt niet meer dan drie commando's lang zou zijn. Eenmaal als root via SSH aangemeld, voerde ik de volgende statements uit:

cd /tmp;
wget "http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/nand/openwrt-15.05.1-ar71xx-nand-nbg6716-squashfs-factory.bin";
mtd -r write "openwrt-15.05.1-ar71xx-nand-nbg6716-squashfs-factory.bin" /dev/mtd7;

De router startte opnieuw op en daarna was de webinterface op poort 80 actief. Als eerste moest een nieuw wachtwoord voor het root-account worden ingesteld. Daarna kon de configuratie beginnen.

Van OpenWRT naar OpenWRT

Tijdens het stoeien met de nieuwe firmware kan het nodig zijn om met een schone lei te beginnen. Download daartoe het SysUpgrade-bestand en upload dit op de pagina SystemBackup / Flash Firmware. Je kunt eventueel bestaande instellingen behouden (Keep settings), maar dan is de lei minder schoon.

Basisinstellingen

Systeem

  • SSH server activeren (SystemAdministration)
  • Tijdzone instellen (SystemSystem)

Lokaal netwerk

  • IP-adres instellen (NetworkInterfacesLAN)
  • DHCP reeks aanpassen (NetworkInterfacesLAN)
  • DHCP static leases toevoegen (NetworkDHCP and DNS)

Draadloos

  • 2,4 GHz netwerk toevoegen (NetworkWifi)
  • 5 GHz netwerk toevoegen (NetworkWifi)

Modules

OpenWrt brengt in de basisvariant niet alle functionaliteit, toeters en bellen mee die voor een platform of apparaat beschikbaar zijn. In plaats daarvan kun je als beheerder specifieke onderdelen, zogenaamde modules, toevoegen. In dit geval wilde ik de router als mini-NAS gaan inzetten. Dat wil zeggen dat hij de opslagruimte van een aangesloten USB-stick via het netwerk beschikbaar maakt.

Om wat voor module dan ook te kunnen toevoegen, moet allereerst de lijst met beschikbare modules worden geüpdate. Dit kan via SystemSoftware -> Update lists. Mocht dat niet voldoende zijn, kan men nog altijd via SSH het commando opkg update uitvoeren.

Met dank aan de uitvoerige documentatie was de installatie van de gedeelde map niet al te complex. Ik voegde een aantal modules aan het systeem toe:

  • kmod-usb-core: basisondersteuning voor USB apparaten
  • kmod-usb-storage: ondersteuning voor verwisselbare media
  • kmod-usb2: ondersteuning voor USB2.0
  • block-mount: scripts voor het koppelen van apparaten en partities
  • samba36-server: server voor het delen van mappen en printers
  • luci-app-samba: uitbreiding van webinterface voor het beheren van Samba

Tot zover verliep alles volgens plan. Toen de aangesloten USB-stick niet werd herkend moest ik op zoek naar de oorzaak...

Bestandssysteem

Iets waar een gemiddelde computergebruiker niet bij stilstaat is het bestandssysteem waarmee zijn bestanden worden opgeslagen. In de Windows-wereld is dit meestal NTFS, bij Apple meestal HFS+, onder GNU/Linux vaak Ext4. Op USB-sticks die aan meerdere systemen moeten worden gekoppeld kiest men voor FAT, FAT32 of exFAT.

Bij het gebruik van de originele firmware was mijn USB-stick geformatteerd met FAT32. Bij gebruik vanaf een GNU/Linux-systeem waren daardoor alle bestanden als uitvoerbaar gemarkeerd (chmod 755). Dit was voor mij de reden om de stick nu opnieuw te formatteren; maar dan met Ext4. OpenWrt (een GNU/Linux variant) kan daar zonder problemen mee overweg, als je de module kmod-fs-ext4 installeert.

(Gasten-) netwerk

Een thuisrouter is het centrale punt van het netwerk. Hij zorgt dat alle apparaten een IP-adres krijgen, stelt opslagruimte ter beschikking en deelt de internetverbinding. In dit geval wilde ik niet alleen een bedraad en draadloos eigen netwerk, maar ook een draadloos gastennetwerk.

Wederom dankzij de uitvoerige documentatie van OpenWrt was dit een relatief fluitje van een cent. Als eerste voeg je een nieuw draadloos netwerk (SSID) toe. Daarna pas je de instellingen zo aan, dat dit nieuwe (netwerk-) interface zich in een eigen firewall zone bevindt. De configuratie van die firewall luistert heel nauw; volg de instructies of zorg dat je weet wat je doet. Zo niet, dan kun je nog altijd vragen :-)

Probleem achteraf

Met de standaardinstellingen is een via Samba gedeelde map alleen door de eigenaar beschrijfbaar (rechten: 0644). In mijn geval wilde ik graag met meerdere gebruikers (die zich in dezelfde groep bevinden) de bestanden kunnen lezen en schrijven. Maar op dat moment kon de ene gebruiker wel een map aanmaken en daar bestanden in bewerken. De ander kon echter die bestanden wel openen, maar geen nieuwe bestanden toevoegen of de map verwijderen.

Ik moest op zoek naar een mogelijkheid om de Samba-cliënt gebruiker meer rechten te geven. Ik stoeide met bestandsrechten op server en cliënt, umask, ACL's… tot file-attributes aan toe. Uiteindelijk bleek het een Samba-optie van de gedeelde map:

option create_mask '0774'
option dir_mask '0775'

Op zich is het best verwarrend, dat onder GNU/Linux de term mask wordt gebruikt als masker van bits dat met 777 wordt ge-AND-t. Denk aan het commando umask, daar wordt met 002 en 777 uiteindelijke 775 gemaakt. Samba, daarentegen, verwacht het uiteindelijke getal in één keer. Weird…

Conclusie

Het is verstandig om na het inrichten van de router, een backup te maken van alle instellingen. Dit kan het eenvoudigst via de pagina SystemBackup / Flash Firmware, Generate archive. Dit bestand kun je later op dezelfde pagina opnieuw uploaden om de configuratie te herstellen.

Na een aantal uren stoeien met alle mogelijke schermen van de LuCI webinterface en af en toe een paar commando's via SSH, is mijn router nu weer net als nieuw. Nee, hij is beter dan dat. De dagelijkse backup verloopt sneller en ik heb de volledige controle over mijn netwerken. Het was de moeite meer dan waard!

Inhoudsopgave

Klik op één van de onderstaande categorieën om de lijst met artikelen te filteren.