Home > Hardware, Linux, Software > OpenWRT als alternative Firmware für den Linksys WRT54GL

OpenWRT als alternative Firmware für den Linksys WRT54GL

27. November 2006

Update: Dieser Beitrag ist mittlerweile veraltet. Eine aktuellere Version findest Du hier.

Es ist nun schon einige Zeit ins Land gegangen seitdem ich den Linksys-Router hier stehen habe und es wurde langsam mal Zeit ihn in Betrieb zu nehmen, zumal ich im Moment zwei DSL-Leitungen habe und so gut testen konnte.

Nachdem ich den Linksys schon mit seiner normalen Firmware konfiguriert hatte, sollte es OpenWRT als neues Betriebssystem werden, warum kann ich garnicht so genau sagen.

Die Installation ist denkbar einfach, wenn man sich vorher ein paar Gedanken macht. Da wäre zum einen die Wahl des Dateisystems: es stehen Squashfs und JFFS2 zur Verfügung. Ersteres ist ein Read-Only Filesystem das eine zweite zusätzliche JFFS2-Partiton benötigt um Änderungen dauerhaft zu speichern, das Zweite kann überall Read-Write dafür ist der Overhead etwas grösser und man hat dadurch etwas weniger Platz im System. Zum anderen steht die Wahl zwischen Mini- und normalem Image. Im Mini ist nur das allernötigste (exclusive Web-Interface) und da das normale Image mit JFFS2 in einen WRT54GL passt habe ich dieses gewählt. Komischerweise gibt es von OpenWRT RC6 keine JFFS2-Images, daher einfach die von RC5 nehmen und später Updaten.

Also please note that as of White Russian RC6, it is no longer necessary to worry about SquashFS vs JFFS2, as RC6 uses mini-fo to automatically move things to the JFFS2 partition as needed
OpenWRT.org

Anmerkung: Das kommt davon, wenn man sich zuviel Zeit zwischen ‘machen’ und schreiben lässt. Ich hatte die Grund-Installation noch mit OpenWRT RC5 gemacht, mittlerweile gibt es aber RC6 bei dem es, wie oben steht, es kein JFFS2 Image mehr gibt.

Aber zurück zur Installation. Eingespielt wird das Firmware-Image über das normale Web-Inface des Routers. Anschließend muss man sich bei einem JFFS2-Image einmal per Telnet einloggen und reboot eingeben, dann ist die Installation abgeschlossen. Das war ein Punkt der mich Anfangs kurz verzweifeln liess, denn in der ersten Anleitung die ich las stand nur, das ein zusätzlicher Reboot vonnöten sei und ich ging davon aus, das dies automatisch passierte. Weit gefehlt und so wunderte ich mich warum das Root-FS immer RO gemountet war. Erst als ich in einer anderen las, das man den Reboot selbst machen müsste klappte alles wie gewollt. Netterweise ist nach dem Update auch noch die gesamte vorherige Konfiguration, also IP-Adresse und Daten für den DSL-Anschluß, vorhanden.

Ist die Firmware ersteinmal installiert gehts an die Konfiguration. OpenWRT verfügt mit ipkg ein Tool, das an Debians apt-get angelehnt ist. Also ipkg update, ipkg upgrade sind equivalent zu der Debian Funktionalität. Sehr nett.

Für einen DSL-Router braucht man natürlich dynamisches DNS und eine genaue Zeit wäre auch ganz nett:

ipkg install ez-ipupdate ntpclient

Aber zuerst die Zeitzone mit

echo "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00" > /etc/TZ

gesetzt, dann in /etc/ez-ipupdate.conf die Konfiguration für dyn. DNS:

service-type=dyndns
user=username:passwort
host=klowand.dyndns.org
interface=ppp0
quiet

# Do not change the lines below
cache-file=/tmp/ez-ipupdate.cache
pid-file=/var/run/ez-ipupdate.pid

Damit auch beim Aufbau der DSL-Verbindung sowohl die Zeit, als auch der Dyndns-Hostname gesetzt wird ist die /etc/ppp/ip-up zu bearbeiten:

/usr/sbin/ez-ipupdate -c /etc/ez-ipupdate.conf
/usr/sbin/ntpclient -c 1 -s -h pool.ntp.org

Für Tippfaule wie mich: den eigenen SSH-Key in /etc/dropbear/authorized_keys reinkopieren. Remote-Syslog geht so:

nvram set log_ipaddr=aaa.bbb.ccc.ddd
nvram commit

Firewall ist ein weiteres Thema. Zum Glück hat OpenWRT mit NAT und Raus-geht-alles-aber-rein-kommt-nix eine brauchbare Vorkonfiguration. Natürlich kann man über das Web-Interface eigene Regeln einbinden, aber das ist eine irrsinnige Klickerei. Einfacher ist es, wenn man über etwas Iptables-Kenntnisse verfügt, dann kann man sich an /etc/firewall.user wagen, andere sollten sich mal /etc/firewall/config oder Shorewall anschauen. Ich habe mich für die /etc/firewall.user entschieden und ein paar Dinge eingebaut, die mir vorher schon lieb und teuer waren, wie z.B. mit Iptables gegen Brute-Force-Attacken oder ein vernünftiges Loggen der verbotenen Pakete.

Beim heimischen WLAN kann man sich richtig seiner Paranoia hingeben und fiese Sachen mit VPN-Tunneln machen. Mir geht das ziemlich am Popo vorbei, da hier im Umkreis niemand ist der mein WLAN mißbrauchen könnte und wenn wäre es Nachbarschafts-Hilfe. Ok, vor dem Haus parken könnte einer, aber dem kleb ich das Schild an die Scheibe. Lange Rede, kurzer Sinn: mir reicht WEP128. Zusätzlich schalte ich Abends über Cron WLAN ab

nvram set wl0_radio=0
ifdown wifi
wifi down

und morgends wieder an

nvram set wl0_radio=1
ifup wifi
wifi up

Ich schreibe die Änderungen mit Absicht nicht mit commit ins NVRAM, weil man so einfach nur den Router aus- und anschalten muss, um WLAN wieder in Betrieb zu bekommen.

Letztlich bleibt noch die Überwachung. Über SNMP die Interfaces auslesen und mit MRTG/RRD graphen fand ich nicht so toll, da mir die Verzögerung zu gross war, ich will spontan wissen was da auf der Leitung ist. Nach etwas suchen fand ich den grkellmd für OpenWRT, der mir zwar etwas zuviel blinkt, aber man kann ich soweit runterdrehen, das er nicht zuviel die Blicke auf sich zieht.

Gkrellm zeigt die aktuelle Auslastung von CPU und Netzwerk des WRT54GL an

Sehr schön finde ich auch, das es mit www.ipkg.be ein kleine Datenbank mit Programmen gibt, die für OpenWRT verfügbar sind. Da gibt es alles von der Intrusion-Detection bis zum IRC-Client.

Alles im allem bin ich hochzufrieden mit dem WRT54GL, ausser das er mir mit 13 bis 16 Watt etwas zuviel Strom verbraucht. Reizen würde mich noch, die beiden seriellen Schnittstellen auf dem Board in Betrieb zu nehmen, ich habe auch schon Umbauten gesehen wo das Display eines alten Nokia-Handys in das Gehäuse eingepasst wurde. Ersteres sehe ich noch als realistisch für mich an, anderes wird sich bestimmt finden.

Update: Weiter gehts mit OpenWRT

, ,

  1. 27. November 2006, 22:05 | #1

    WEP. Ja, nee, iss klar.

  2. 27. November 2006, 23:11 | #2

    Stromverbrauch meines Asus-OpenWRTs wuerde mich auch interessieren, muss mir mal ein Messgeraet ausleihen. Bez. kein JFFS2 fuer RC6: lt. Entwickler gab’s mit JFFS2 eh nur Support-Probleme und kaum Vorteile, und daher wurde es fuer RC6 nicht mehr neu aufgelegt. Ob das Upgrade zum selben Ergebnis fuehrt, haengt natuerlich auch vom Kernel ab, aber viel hat sich da zwischen RC5+6 wohl nicht getan.

    Bez. iptables-Config bin ich froh, dass zumindest Kamikaze keine NAT-Helper fix im Kernel haben wird (yay, acknowledged bug report), dann faellt OpenWRT auch nicht beim FTP-NAT Test durch. Das Hinzufuegen eigener Pakete ist im Allg. das, was mir aber am meisten an OpenWRT gefaellt, schnell mal mit buildroot-ng ein ISO9660-module fuer den ISO-Loop-Mount nachbasteln hat schon was.

  3. Max
    27. November 2006, 23:58 | #3

    die OpenWRTs haben spätestens seit RC5 auch ein höchst brauchbares webinterface, welches wirklich empfehlenswert ist.

  4. 28. November 2006, 19:10 | #4

    @spiney: Wenn es kein jffs3 mehr gibt läuft es bei mir wohl auf eine Neuinstallation hinaus.

  5. JanG
    19. Dezember 2006, 14:00 | #5

    Der WRT54GL verbraucht max. 3,5 Watt. Das mitgelieferte Netzteil hingegen wird warm und verbrät sinnlos Energie (bei mir 17 Watt ohne den WRT). Ich rate zum Kauf eines kleinen Schlatnetzteiles (Ca. 10 Euro bei http://www.reichelt.de).

  6. 23. Januar 2007, 20:00 | #6

    http://www.x-wrt.org bietet für openwrt ein erweitertes Webinterface (genannt webif²) an. Derzeit wird auch an der Unterstützung von Kamikaze gearbeitet. Webif² basiert auf dem code des originalen Webif, hat aber wesentlich mehr Konfigurationsmöglichkeiten (Screenshots auf http://www.bitsum.com/xwrt/).

  1. Bisher keine Trackbacks
Kommentare sind geschlossen