Admintools für Freifunkrouter

Also das Tool kann mehrere Router gleichzeitig steuern.
Als erstes legt man sich die Router an, auf die man grundsätzlich Zugriff hat. Falls Pageant mit einem SSH-Key läuft, lässt man das PW bei Konfiguration frei, ansonsten trägt man eben eins ein.
Alles was benötigt wird, ist im Programm mit drinn. Falls nötig, kann man auch WinSCP und PuTTY installieren lassen.

Ich sehe das Tool aber als ein funtionierenden Prototyp. Wäre toll, wenn das weiter oder anders entwickelt würde. Die Sourcen lade ich demnächst hoch!

Ich habe keine Ahnung, was das Teil denn tut und was ich benötige, um es mir anzuschauen.

Da hast Du Recht, aber die „allermeisten Menschen“ wissen leider auch kaum etwas mit der GUI anzufangen. Ich finde eine GUI wie das „Cockpit-Projekt“ auch sehr gut, aber der Funktionsumfang ist dann leider beschränkt und nach ein paar einfachen Einstellungen landet man dann doch wieder auf der Kommandozeile. Wenn jemand Lust hat so etwas zu coden, dann bin ich auch einer, der es gerne benutzen würde.

Vermutlich bin ich altmodisch: Ich starte nur ungern executables, wenn ich nicht ansatzweise erfahren darf, was die zu tun gedenken.
Keine Funktionsbeschreibung, keine Screenshots.
Kann ich verschmerzen, wenn es einen Source gibt in einem Dialekt, den ich halbwegs erfassen kann.

Aber einfach ein Windows-Executable „Admin-Tool“: Das hat nichts mit „Mistrauen gegenüber Leuten“ zu tun, sondern damit, dass ich auch bei einem „Für Lau“-Programm zumindest ein paar Zeilen vor dem Start gelesen haben möchte.
Die Tatsache, dass es so gar nichts gibt würde mir bei mir im normalfall wirklich alle Alarmglocken ( „Alt-F4 for Auto-Op“ ) schrillen lassen.

1 Like

2 Likes

Moin,

eine WebUi dafür habe ich schonmal gebastelt. Aktuell behandelt es nur DNS eines Knotens. Es Können also interne wie externe Domains auf eine feste IP (v4/v6) gebunden und verwaltet werden.
Dafür muss die Community nur in der Conf per Github eingetragen werden.

Einbindung weiterer Funktionen ist in der WebUI ohne weiteres möglich.
Ned schick, funzt aber.

Portal: http://ssp.freifunk.ruhr/
Github: GitHub - ffruhr/selfserviceportal

Gruß

Chrisno

1 Like

irgendwie gruselt mich der thread hier …
windows oder linux … kurz lernen wie man die ganz basalen bash scripte schreibt und nutzt ist nicht schwer …
dann legt man dateien mit routeradressen an und lässt darüber scripte laufen.
Es liest sich als wolle man nicht lernen wie genau die Dinge auf den Routern funktionieren, wer die administrieren will - sollte die Werkzeuge kennen. meine Meinung.

#!/bin/bash
# Beispielscript zum erzwingen eines autoupdate
for router in $(ls meinerouter); do ssh -l root $router "autopupdate -f" ; done
2 Likes

Hm, ja nun…

Nicht jede/r ist mit Kommandozeile & Co schon in Berührung gekommen oder gar groß geworden.

Wenn man die Fraktion der (fast 100%-)GUI-Nutzer für die Mehrwerte und die (ansichtsache) Einfachheit von Kommandozeile & Scripten begeistern will, geht das z.B. mit einer GUI-Oberfläche, die zeitgleich anzeigt und beschreibt, wie genau diese Funktion eben (einfacher) per Kommandozeile geht.

Und die Geschmäcker sind grundverschieden bei GUI- oder eben Kommandozeile-Begeisterten.

Diskussionen wie diese haben manchmal züge von „Linux, nee OS X, nee Windows, nee beliebiges OS nennen ist aber besser! und du bist dooooof, weil Du mein $bestesallerOS nicht teilst, äääätsch“

Kurz: Jedem nach seiner Fason und gut ist. Wo ist eigentlich das Problem?

1 Like

ich glaube das Problem „entsteht“ wenn Menschen nicht genau wissen was sie tun, aber ein Tool in der Hand haben mit dem mitunter hunderte Router ferngesteuert werden können - im extremfall sogar mit fest eingebauten ssh-key oder schlimmer ssh passwort.
Das tool hat dann womöglich ne freifeldfunktion in der man sonstwas eintippelt - weil hat man im Forum XY gelesen das sei gut …

# Troll: 100% TX Power am Router , einfach in der Shell folgendes eingeben
iw phy0 txpower set fixed 100
# BITTE NICHT ZUHAUSE NACHMACHEN

das ist der Teil der mich gruselt, nicht mal Windows, oder mac oder whatever. Ich erwarte von leuten die mehr als ihre eigenen Heimrouter maintainen eben ein minimum an Achtsamkeit, oder Wissen über die Vorgänge

1 Like

Das hat aber nichts damit zu tun ob ich lieber Klicke, Tippe oder Copy and Paste mache.

2 Likes

Was mich interessieren würde, wäre weniger ein Admin Tool um Konfigurationen vorzunehmen, als vielmehr ein überwachungs Tool das mir schnell und einfach den Status mehrerer Router anzeigt. Wenn etwas nicht stimmt kann ich mich per SSH einloggen, aber dazu muss ich ja erst wissen das etwas nicht stimmt.

Meine Vorstellung:
man trägt seine Router mit den entsprechenden Zugängen in eine verschlüsselte Datei ein. Das Tool verbindet sich mit den Nodes über ssh und führt dort automatisiert ein paar Tests durch deren Ausgabe im Tool angezeigt wird. Die Ausgabe stelle ich mir in etwa so vor:

Custom Feld zum selber eintragen zb.: = „841er bei Omma Erna auffm Dach“
Router Model = „841“
Router Name = „XYZ“
SSID = „XYZ“
V6 Adresse = „xyz“
V4 Adresse = „xyz“
Firmware Version = „1234“
Uptime = „1234“
VPN zum Gateway = „Ja/Nein“
Verbindung vom Gateway ins Internet „Ja/Nein“
Domain Namen Auflösung möglich = „Ja/Nein“
Momentan verbundene Clients = „123“
Gesamt unique Clients der letzen 24 Stunden = „123“
Gesamt unique Clients der letzen 7 Tage = „123“
Gesamt unique Clients der letzen 30 Tage = „123“

Diese Ausgabe für jede Node schön neben einander angezeigt, dürfte bei der Überwachung mehrerer Nodes sehr hilfreich sein. Sowas müsste sich doch scripten lassen, oder? Ich bin auf der Shell leider noch nicht fit genug um sowas selber zu basteln :frowning:

P.S.: Ob das jetzt eine Windows GUI ist oder ein Linux Shell Programm wäre mir schnurz…

1 Like

Hallo,

Ich bin neu im Freifunk und würde daher auch ein Tool bevorzugen.

Da mich aber die Programmierung per Zeile dennoch sehr interessiert und ich mich mit PCs einigermaßen auskenne, gibt es bestimmte Seiten, Wikis oder Bücher, die man sich zu diesem Thema durchlesen könnte? Die Router laufen mit Linux als Basis? Die Eingabe nennt man Linux Shell?

äh, ein router der nicht mehr ins netz kommt den kannste auch nicht fernwarten, oder mit ssh „retten“ - eigentlich könnte der Meshviewer dazu besser sein …
aber was du willst ist vielleicht sowas wie : wegen admintool

#!/bin/bash
#
# do some foo 
foo='echo -n "$(uname -n) "; echo -n "$(uptime)"; echo " Gateway $(batctl gwl |grep "=>")"'

# read every line from $1
# means you call the bash script with the ip_file
while read line ; do echo "#### try $line"; ssh -l root $line $foo; echo "##### $line ended with $?"; done < $1

Bash script ausführbar machen (chmod a+x ) und dann mit script <ip_liste_file> aufrufen… in diesem Fall Bsp output

fffr-348R 23:53:41 up  7:47,  load average: 0.05, 0.14, 0.20=> 02:ee:55:55:55:04 ( 75) 62:e6:28:5a:1f:e4 [     ibss0]: 207 - 48MBit/48MBit

hier praktischeres skript geochange : ./geochange.sh < IP> < lat> < lon> < on/off>

#!/bin/bash
#
# use this script to change geoip
#
# usage : command IP lat lon <on|off>
#
# lat is ca 49 
# lon is ca 7.9
# advanced : make osm links possible also
# http://www.openstreetmap.org/#map=19/48.00123/7.82461

if [[ $# < 2  || $# > 4 ]]; then
        echo "usage :"
        echo "          $0 <IP_with_root_access> <lat> <lon> <on|off>"
        echo "          $0 <IP> <on|off>"
        echo
        echo "example: $0 fdf0:9bb:7814:a630:62e3:27ff:fe53:1526 48.00133 7.82529"
        exit 1
fi

lat=$2
lon=$3
share=1

# check if @2 is http ...
if [[ $(echo -n $2) == http* ]] ;
        then echo "sorry this http translate feature is not yet implementet"    # some magic stripping of
fi

# for some reason deactivate sharing
if [[ $4 == "off" || $4 == 0 ]] ;
        then share=0;
fi

# if only ip and status is set, default share=1
if [[ $2 == "off" || $2 == 0 ]] ;
        then share=0;
fi

# make ssh connection with direct commands
ssh -lroot $1 "uci set gluon-node-info.@location[0].latitude=$lat ; uci set gluon-node-info.@location[0].longitude=$lon ; uci set gluon-node-info.@location[0].share_location=$share ; uci commit gluon-node-info" 

# check if everything is fine
if [[ $? == 0 ]];
        then echo "happily changed geo on $1 to $2 and $3 and make enable=$share"
        else echo "something went wrong"
fi

# notes 
# uci set gluon-node-info.@location[0].latitude=53.834470
# uci set gluon-node-info.@location[0].longitude=10.702518
# uci set gluon-node-info.@location[0].share_location=1
# uci commit gluon-node-info

Naja er muss ja nicht unbedingt nicht mehr ins netz kommen
aber wenn den wlan/off button drückt nützt es einem schon was wenn man das wifi wieder up bringen kann

Ein admin tool an sich finde ich von der Idee her schon klasse … es sollte dann aber einheitlich für alle üblichen Betriebsysteme verfügbar sein

2 Likes

einheitlich für alle üblichen Betriebsysteme verfügbar sein

= Webbasiert - wäre eh die nahe liegende Lösung, da einzelne Funktionen (Meshviewer, Gluon Configpage, etc.) schon webbasiert vorliegen und weite Teile der Wunschliste abdecken (imho).

Im Grunde müsste man einen abgespeckten Meshviewer/Hopglass (bei dem ich vorher festlegen kann das er nur meine Knoten anzeigt) vorschalten und dann die Eingabemaske von Gluon dahinter hängen und „etwas“ erweitern, so das dort mehr als ein Knoten mit LUCI Befehlen befeuert wird.

Eine solche Lösung wäre a) vielleicht leichter zukünftig zu warten, weil es auf Softwareteilen der Community besteht die eh schon existiert und b) absolut Plattform unabhängig, ansonsten müsste man mind. 5-6 Plattformen unterstützen (Win/OSX/Linux/Android/iOS/WinPhone) und das ist lästig.

Ich habe mir mal https://www.npmjs.com/package/simple-ssh
angeschaut das sieht recht brauchbar aus :smiley:

Ich hatte schon mal mit einer anderen Lösung experimentiert dort war es mir nur über user/pass möglich…

(mehr als die Koordinaten neu zu setzen konnte das nicht)
aber das ganze ist ja eh nur nach schema f runter zu rattern.

+1 für Webbasiert ! Dann läuft das überall, sogar unterwegs auf dem Telefon

1 Like

Moin.

Nur so eine Überlegung.

Vielleicht als ein (noch zu entwickelndes) Freifunkmodul für : Webmin

Gruß

1 Like

würde sagen eher nicht

warum?
webmin muss AFIK auf das Gerät das administriert werden soll
und im flash ist eh schon kein platz

1 Like

Moin
Ich dachte eher an ein Modul für Webmin, mit dem man die Knoten fernwarten und administrieren kann. Entsprechende Konfiguration der Knoten (ssh-zugriff z.B.) vorausgesetzt.

Gruß