Router per SSH administrieren
Wenn man auf einen Freifunk-Router nicht immer direkten Zugriff hat, dann ist es manchmal hilfreich, wenn er aus der Ferne administrierbar ist. Da der
Konfigurationsmodus erst durch manuellen Tastendruck aktivierbar ist und das Gerät währenddessen auch nicht im Freifunknetz hängt, ist dieser Modus dafür nicht geeignet. Die einzige Möglichkeit zur Konfiguration bietet der SSH-Zugriff.
SSH ist ein textzeilenbasiertes Protokoll, das hauptsächlich zur Fernwartung genutzt wird. In diesem Artikel werden ein paar grundlegende Hilfen dargelegt, um sich mit dieser Technologie auf dem Router zurechtzufinden.
Aktivieren
Bevor der SSH-Zugang des Freifunk-Routers benutzt werden kann, muss dieser erst freigeschaltet werden. Dies geht in den "Erweiterten Einstellungen" unter dem Reiter "Remotezugriff" im ConfigMode:

Screenshot im ConfigMode: Remotezugriff in den Erweiterten Einstellungen
Es gibt zwei Möglichkeiten für den Zugriff:
- Die passwortbasierte Authentifizierung ist für den Einstieg die einfachere Variante. Wichtig dabei ist, dass du ein sicheres Passwort wählst. SSH-Remotezugriffe sind regelmäßig opfer von sogenannten Brute-Force- oder Wörterbuchattacken, bei denen Listen von häufig genutzten Passwörtern durchprobiert werden. Wenn du nicht möchtest, dass dein Router teil eines Botnetzes wird, dann solltest du ein sicheres Passwort wählen.
- Die alternative (und sicherere) Variante ist die Authentifizierung über sogenannte SSH-Keys. Es handelt sich dabei um ein Schlüsselpaar, bestehend aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel wird auf dem Router eingetragen. Gerade wenn man viele Router administriert, ist dies eine wesentlich bequemere Variante. An dieser Stelle wird allerdings nicht weiter darauf eingegangen. Für weitere Informationen ist das Internet zu befragen.
Sobald eine Authentifizierungsmethode konfiguriert wurde und der Router neugestartet wurde, ist der SSH-Zugriff freigeschaltet.
Verbinden
Um sich mit dem Freifunk-Router zu verbinden, wird ein SSH-Client benötigt. Unter Linux ist bereits der OpenSSH-Client installiert. Unter Windows kann auf das Tool
PuTTY zurückgegriffen werden, dass eine grafische Oberfläche zum Verbinden mitbringt.
Um den Router auszuwählen, mit dem man sich verbinden will, gibt es in unserem Netz die Möglichkeit auf unsere Namensauflösung zurückzugreifen. Ist ein Router beispielsweise als "Kroepcke-FFH" benannt, so ist er über den Identifier
kroepcke-ffh.n.ffh.zone erreichbar. Solange der Router eine Verbindung zum Internet hat, ist er nicht nur aus dem Freifunknetz administrierbar, sondern von jedem Netz in dem es IPv6-Internetzugang gibt. Als Nutzername auf dem Router muss "root" ausgewählt werden.
Unter Linux kann die Verbindung in einem Terminal über folgenden Befehl aufgebaut werden:
ssh root@kroepcke-ffh.n.ffh.zone
Bei erfolgreicher Verbindung zeigt sich auf der Konsole nun die Banner-Notiz des Routerbetriebssystems OpenWrt und eine Eingabezeile:
lemoer@orange ~> ssh root@crashtester.n.ffh.zone
BusyBox v1.23.2 (2017-09-25 18:45:14 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
CHAOS CALMER (Chaos Calmer, r49389)
-----------------------------------------------------
* 1 1/2 oz Gin Shake with a glassful
* 1/4 oz Triple Sec of broken ice and pour
* 3/4 oz Lime Juice unstrained into a goblet.
* 1 1/2 oz Orange Juice
* 1 tsp. Grenadine Syrup
-----------------------------------------------------
root@crashtester:~#
Grundlegende Befehle
Das Betriebssystem der Router basiert auf Linux und deshalb verhält es sich auch sehr ähnlich, wie ein Laptop mit einem Linux-Betriebssystem. Wer jedoch noch nie mit Linux in Kontakt gekommen ist oder in Linux noch keine Kommandozeile bedient hat, für den dürften nun einige hilfreiche Tipps folgen.
Das Dateisystem in Linux ist in einer streng hierarchischen Struktur aufgebaut. Das Wurzelverzeichnis ist
/. Wenn du dich auf dem Router einloggst, dann befindest du dich in dem Ordner
/root, der für die Dateien des Benutzers "root" vorgesehen ist. Die ersten grundlegenden Befehle um zu navigieren:
- Dateien im aktuellen Verzeichnis anzeigen:
root@crashtester:~# ls
speedtest.sh
Es existiert eine Datei namens "speedtest.sh".
- Dateien und Ordner in dem Verzeichnis /etc/config anzeigen:
root@crashtester:~# ls /etc/config/
autoupdater gluon-setup-mode
autoupdater-wifi-fallback gluon-wan-dnsmasq
babeld luci
batman-adv network
dhcp simple-tc
dropbear socat
fastd system
firewall ucitrack
fstab uhttpd
gluon-core vnstat
gluon-node-info wireless
gluon-radv-filterd
Es existieren mehrere unterschiedliche Dateien bzw. Ordner. Das ist in dieser Ansicht nicht unterscheidbar.
- In das Verzeichnis /lib/gluon wechseln:
root@crashtester:~# cd /lib/gluon/
root@crashtester:/lib/gluon#
Das aktuelle Verzeichnis ist nun /lib/gluon. Das ist nun auch in der Eingabezeile links von dem Rautezeichen (#) zu erkennen.
- In das Unterverzeichnes "autoupdater" des aktuellen Verzeichnisses wechseln:
root@crashtester:/lib/gluon# cd autoupdater
root@crashtester:/lib/gluon/autoupdater#
Das aktuelle Verzeichnis ist nun /lib/gluon. Das ist nun auch in der Eingabezeile links von dem Rautezeichen (#) zu erkennen.
Tipp: Probiere während du den Namen eines Verzeichnisses oder einer Datei die Taste
Tab zu drücken. Ist eine Autovervollständigung des momentanen Dateinamens möglich, dann wird dieser nun vervollständigt. Durch doppeltes Drücken der Taste
Tab werden weitere Vorschläge angezeigt.
Konfigurationen bearbeiten
Um die Konfiguration des Routers zu bearbeiten gibt es zwei Wege. Es können direkt die Konfigurationsdateien bearbeitet werden, oder das Konfigurationstool UCI (unified configuration interface) genutzt werden.
Mit dem Tool
UCI hat man die Möglichkeit einzelne Einträge der Konfiguration zu verändern. Hier ein paar hilfreiche Befehle:
- Auflisten aller gesetzten Konfigurationswerte:
root@crashtester:~# uci show
autoupdater.settings=autoupdater
autoupdater.settings.version_file='/lib/gluon/release'
autoupdater.settings.enabled='1'
…
wireless.client_radio1.macaddr='64:66:b3:de:dd:57'
wireless.client_radio1.ssid='hannover.freifunk.net'
Die Liste an Konfigurationswerten ist sehr lang, da auf der Konfigurationsoberfläche im ConfigMode nur ein kleines Subset der eigentlichen Konfigurationsmöglichkeiten dargestellt werden.
- Suchen nach einem bestimmtenten Konfigurationswert:
root@crashtester:~# root@crashtester:~# uci show | grep -i hannover
wireless.client_radio0.ssid='hannover.freifunk.net'
wireless.client_radio1.ssid='hannover.freifunk.net'
Da es sich bei diesem Gerät um ein Dual-Band-Gerät mit zwei WLAN-Radios handelt, ist die SSID auch in zwei Konfigurationswerten gespeichert.
- Einen Wert verändern:
root@crashtester:~# uci set autoupdater.settings.branch='nightly'
root@crashtester:~# uci commit
Nachdem ein Wert verändert wurde, muss dieser noch durch das "commit" in den Flash-Speicher des Routers geschrieben werden. Lässt man das "commit" weg, so bleibt die Änderung nur bis zum nächsten Neustart des Routers erhalten.
Wichtig: Wahllos irgendwelche Werte in der Software zu ändern, kann zu undefiniertem Verhalten führen. In dem Wiki der Freifunksoftware wurden an folgender Stelle alle relevanten Konfigurationsänderungen gut dokumentiert.
Link: Alle wichtigen Kommandos zum administrieren in der Übersicht
Konfigurationsdateien bearbeiten mit vi
Für manche Änderungen wird das Ändern der Konfiguration mit UCI ein wenig unübersichtlich und komplex. Man kann ebenfalls direkt die Konfigurationsdateien in den UCI seine Werte abspeichert, bearbeiten. Diese liegen in dem Verzeichnis
/etc/config/... und sind einfache Textdateien.
Mit dem Texteditor
vi lassen sich diese Dateien bearbeiten. Der Texteditor ist jedoch vorerst ein wenig gewöhungsbedürftig. Er besitzt zwei "Modi": den "Insert Mode" und den "Normal Mode". Wenn man den Texteditor startet befindet er sich im "Normal Mode". Will man etwas an der Datei verändern, muss man zunächst in den "Insert Mode" wechseln. Dies geschieht durch Drücken der Taste
i. Ganz unten links im Editor wird nun ein "I" angezeigt. Nun kann, wie gewohnt, die Datei editiert werden. Ist man zufrieden, dann muss der "Insert Mode" wieder verlassen werden. Dies geschieht durch drücken der
ESC -Taste. Nun befinden wir uns wieder im "Normal Mode". Durch Tippen der Tastenkombination
:wq (write, quit) kann der Editor verlassen werden. Will man die Änderungen, die man gemacht hat, verwerfen, quittiert man den Editor mit der Tastenkombination
:q! (quit, force). Lässt man das Ausrufezeichen weg, beendet sich der Editor nur, wenn keine Änderungen an der Datei vorgenommen wurden.
Show fastd public key
/etc/init.d/fastd show_key mesh_vpn