Artikel-Schlagworte: „Openwrt“

OpenWRT als alternative Firmware für den Linksys WRT54GL – ein Update

Nach fast einem Jahr Einsatz ist es Zeit für ein Resümee und Update. Das Resümee ist recht einfach: OpenWRT hat meine Erwartungen voll erfüllt. Es läuft/lief stabil während der ganzen Zeit, Abstürze gab es keine. Kommen wir also zum Update.

Das Thema Update ist schnell abgehakt: es gibt keines, sondern eine Neuinstallation ist angesagt. Es spielt also keine Rolle von welcher vorherigen Version, bei mir 0.8 (aka White Russian), man nach OpenWRT 0.9.7 (aka Kamikaze) updaten will und obwohl der Versionsprung nicht allzu gross aussieht hat er es dennoch in sich. Während bei White Russian viel über das NVRAM und die darin gespeicherten Daten lief, verlässt Kamikaze diesen Weg komplett. Wer also Updaten will sollte alle wichtigen Konfigurationsdaten wie z.B. den DSL-Zugang wegspeichern, auch sollte der PC von dem man das Firmware-Image einspielen will die IP-Adresse 192.168.1.1 erreichen können. Als nächstes ist das Firmware-Image an sich zu beachten. Für den Linksys WRT54GL gibt es zwar ein Image mit 2.6er Kernel, der unterstützt aber leider kein WLAN. Also ist der 2.4er Kernel angesagt.

Das Einspielen erfolgt entweder über das Web-Interface oder Tftp. Ich persönlich bevorzuge Tftp. Stecker ziehen, Stecker wieder ein und schnell Enter drücken:

statler:$ atftp
tftp> mode octet
tftp> trace
Trace mode on.
tftp> put openwrt-wrt54g-2.4-squashfs.bin

Anschließend blinken die Lampen ein wenig und mit Booten dauert die Prozedur unter zwei Minuten. Ist endlich Ruhe eingekehrt kann man sich per telnet 192.168.1.1 einloggen und zuerst das Root-Passwort setzen. Als netten Nebeneffekt wird dadurch der Login per Telnet abgeschaltet.

Nun ist der Linksys via ssh erreichbar und wer mit Keys arbeitet kann seinen in /etc/dropbear/authorized_keys für einen Passwort-losen Login ablegen. Für den Internetzugang gilt es /etc/config/network anzusteuern, welche etwas Debian-Style an den Tag legt:

config interface        wan
        option ifname   "eth0.1"
        option proto    pppoe
        option username "darth.vader"
        option password "YhxrVnzlbhesngure"

Initialisieren ist ganz einfach mit ifup wan erledigt. Folgt als nächstes WLAN. Auch hier gibt es eine Konfigurations-Datei nämlich, wer hätte das gedacht, /etc/config/wireless:

config wifi-device  wl0
        option type     broadcom
        option channel  10

        # REMOVE THIS LINE TO ENABLE WIFI:
        #option disabled 1

config wifi-iface
        option device   wl0
        option network  lan
        option mode     ap
        option ssid     aumund
        option encryption wep
        option hidden   0
        option key      '1'
        option key1     'SerowJenkulteisbefcougCy'

Die Raute vor option disabled ist wichtig, da OpenWrt WLAN standardmäßig abschaltet. Auch hinterher das Initialisieren mit ifup wlan nicht vergessen.

Nun gehts an Kleinigkeiten, wie z.B. die richtige Zeitzone:

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

oder Remote Syslog:

uci set system.cfg1.log_ip=192.168.1.1 && uci commit && reboot

Wer die schöne Weboberfläche X-Wrt möchte muss seine /etc/ipkg.conf folgendermaßen anpassen:

src release http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/packages
src packages http://downloads.openwrt.org/kamikaze/packages/mipsel
dest root /
dest ram /tmp
src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm-2.4/packages/

Einmal ipkg update und dann bei ipkg list nach webif Ausschau halten. Mein Fall ist es jedenfalls nicht.

Was man weiter mit dem Gerät anstellt ist jedem selbst überlassen. Es gibt IRC-Clients, Webserver und vieles mehr. Wem die mitgelieferte Software nicht ausreicht kann bei ipkg.be nach mehr suchen.

Vier Updates und ein Totalversagen

Das lag in den letzten Wochen so an:

  • Zweimal Wordpress auf Version 2.3 Updaten
  • Zweimal Ubuntu Feisty auf Gutsy
  • OpenWRT Update

Die Wordpress-Updates gingen so, genauso wie die von Ubuntu. Deren Niveau genauso gut und schlecht waren wie gewohnt, was nicht heisst das da keine Luft nach oben ist. Komischerweise habe ich genau gar keinen XGL-Server mit Hardware-Beschleunigung (weder ATI noch Nvidea) hinbekommen. Von dem ach so benutzerfreundlichen und einfachen Ubuntu bin ich nicht so überzeugt.

Einen kompletten Blackout habe ich mir gestern Abend beim Update meines WRT54GL Router von OpenWRT WhiteRussian auf Kamikaze geleistet. Nicht wirklich die Anleitung gelesen, falsches Firmware-Image und als Folge keinen Internet-Zugang um das nachzuholen. Einmal mehr hat mir Grml mit dem grml-router Script den Popo gerettet. Es fehlen noch ein paar Kleinigkeiten, aber die ziehe ich Heute noch nach.

OpenWRT als alternative Firmware für den Linksys WRT54GL

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

Archiv