Open Source im professionellen Einsatz
Linux-Magazin 04/2005

Workshop: OpenWRT auf Linksys-kompatiblen Routern installieren

Hochgeladen

, ,

Wenn die mitgelieferte Firmware Ihres Linksys-Routers nicht alle Anforderungen erfüllen kann, ist die Versuchung groß, einfach eine auf die persönlichen Bedürfnisse zugeschnittene Linux-Distribution hochzuladen. Ein kleiner Programmierfehler in der Original-Firmware hilft Ihnen dabei.

575

Die auf den eigenen Router angepasste Original-Firmware der Hersteller hat einen sehr begrenzten Funktionsumfang und ist stark auf die jeweilige Zielgruppe ausgerichtet. Mit dem vermehrten Einsatz von Linux als Router-Betriebssystem wächst jedoch die Chance, nachträglich Features einzubauen oder die Firmware durch eine freie Linux-Distribution zu ersetzen.

Für die im vorangegangenen Artikel vorgestellten Router auf Basis des Linksys WRT54G stehen mehrere Firmwares zur Auswahl: Neben den Originalen der Hersteller gibt es zum Beispiel von den Firmen Sveasoft[1] und Portless Networks[2] kostenlose Images, die auf den Originalen basieren, aber mehr Features besitzen. Sveasoft verlangt von Entwicklern, die die Quellen der Firmware bekommen wollen, eine kostenpflichtige Registrierung. Dagegen steht OpenWRT unter der GPL und ist nicht nur eine Firmware für Embedded-Linux-Router, sondern eine komplette Mini-Distribution, die Sie mit Hilfe der integrierten Paketverwaltung fast beliebig erweitern können.

Programmierfehler ausnutzen

Bei der originalen Firmware von Linksys war es den Autoren nicht möglich, OpenWRT als neue Firmware über die Update-Funktion des Webfrontends einzuspielen. Für die TFTP-Put-Methode muss der Bootloader des Routers nach dem Einschalten auf die neue Firmware warten. Das erreichen Sie, indem Sie die Variable »boot_wait« (siehe Kasten "Konfigurationsspeicher NVRAM") im NVRAM auf »on« stellen.

Das Webfrontend gestattet zwar keinen Zugriff auf die NVRAM-Variablen, Sie können jedoch einen Programmierfehler im Ping-Formular »Ping.asp« ausnutzen und darüber beliebige Linux-Befehle in den Router einschleusen. Dazu geben Sie die folgenden Zeilen nacheinander in das Feld der IP-Adresse ein und schicken das Formular für jede Zeile einzeln ab:

;cp${IFS}*/*/nvram${IFS}/tmp/n
;*/n${IFS}set${IFS}boot_wait=on
;*/n${IFS}commit
;*/n${IFS}show>tmp/ping.log


Wenn Sie die letzte Zeile abgeschickt haben, sehen Sie im Log-Bereich des Formulars die Liste aller NVRAM-Variablen, darunter auch »boot_wait=on«. Schalten Sie dann den Router aus.

Für die Erstinstallation sollten Sie auf ein fertiges Image von[4] zurückgreifen. Das 7 bis 8 MByte große Tar-Archiv enthält drei Firmware-Varianten: »openwrt-g-code.bin« ist für die Modelle WRT54G von Linksys vorgesehen, »openwrt-gs-code.bin« für die WRT54GS-Router, für die kompatiblen Geräte der anderen Hersteller benötigen Sie »openwrt-linux.trx«.

Firmware-Tausch per TFTP

Unmittelbar nachdem der Router eingeschaltet wird, startet der Bootloader, ihm gilt die Variable »boot_wait=on«. Er konfiguriert für etwaige Updates der Firmware die Netzwerkschnittstelle fest mit der IP-Adresse 192.168.1.1. Die Befehle für den Verbindungsaufbau und die Übertragung der Firmware sollten Sie im TFTP-Client bereits dann eingeben und absenden, wenn der Router noch stromlos ist:

linux:~# tftp 192.168.1.1
tftp> binary
tftp> rexmt 1
tftp> trace
Packet tracing on.
tftp> put openwrt-gs-code.bin
.........................
sent DATA <block=3003, 0 bytes>
received ACK <block=3003>
tftp>


Erst wenn Sie das Put-Kommando abgesetzt haben, schalten Sie den Router ein. Nach wenigen Sekunden beginnt die Übertragung und endet im Idealfall ohne Fehler. Meldet das Programm aber »Code pattern is incorrect«, passt die übertragene Firmware nicht zu Ihrem Router-Modell, bei »Invalid Password« war der Bootloader zu schnell und hatte schon die ursprüngliche Router-Firmware mit ihrem eigenen TFTP-Server gestartet, als die Übertragung begann.

Abbildung 1: Für das erste Login verwenden Sie Telnet, wobei OpenWRT aufgrund der ungeschützten Verbindung überhaupt kein Root-Passwort abfragt.

Während der Bootloader des Routers läuft, blinkt die Power-LED. Erst wenn die LEDs einen Reset mit anschließender Initialisierung zeigen, ist der Transfer abgeschlossen und das Gerät bootet. Das kann inklusive Firmware-Upload zwei oder drei Minuten dauern.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Linksys-Router mit OpenWRT-Unterstützung

    Mit der Neuauflage des WLAN-Routers WRT 1900 ACS verspricht BelkinLinksys volle Unterstützung der freien OpenWRT-Firmware an.

  • Gargoyle: Webinterface zur Routerkonfiguration

    Das Gargoyle-Projekt arbeitet an einer alternativen Web-Oberfläche, über die sich Router besser konfigurieren lassen. Nun erreicht das Projekt die erste stabile Version 1.0.

  • Linksys und DD-WRT kündigen Support für Router an

    Bei der CES in Las Vegas haben Router-Hersteller Linksys und die Macher der freien DD-WRT-Firmware den offiziellen Support für das Open-Source-System auf aktuellen Linksys-Routern angekündigt.

  • LEDE – Alternatives Projekt zu OpenWRT

    Mit dem Linux Embedded Development Environment (LEDE) haben einige OpenWRT-Entwickler ein neues Projekt gestartet und die Router-Firmware OpenWRT geforkt.

  • Open WRT

    Auch Linksys' neuester Router WRT 1900 AC gestattet es, die hauseigene Firmware durch ein freies Linux namens Open WRT zu tauschen. Die Open-WRT-Entwickler haben kurz vor Verkaufsstart die neue Version Attitude Adjustment angepasst. Mit der geht zwar noch nicht alles, doch schon erstaunlich viel.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.