Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
knb:ssh [2023/03/05 13:25] – [Releasezweig/Branch setzen] grische | knb:ssh [2024/02/26 10:21] (aktuell) – grische | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
==== SSH-Key ==== | ==== SSH-Key ==== | ||
Zur Authentifikations als berechtigter User gegenüber dem SSH-Diensst benötigt man ein SSH-Schlüsselpaar, | Zur Authentifikations als berechtigter User gegenüber dem SSH-Diensst benötigt man ein SSH-Schlüsselpaar, | ||
- | Aktuell ((Stand. | + | Aktuell ((Stand. |
+ | |||
+ | Dies funktioniert jedoch nur mit Firmware neuer als v2023.x, nicht mit der Firmware für nicht mehr unterstützte Geräte v2022.x. Diese benötigen RSA und zudem spezielle Konfiguration auf dem Endgerät, die nicht mehr als sicher gilt, um darauf noch zugreifen zu können. | ||
==== Mit ssh-keygen ==== | ==== Mit ssh-keygen ==== | ||
- | < | + | < |
< | < | ||
Enter passphrase (empty for no passphrase): | Enter passphrase (empty for no passphrase): | ||
Enter same passphrase again: | Enter same passphrase again: | ||
- | Your identification has been saved in / | + | Your identification has been saved in / |
- | Your public key has been saved in / | + | Your public key has been saved in / |
The key fingerprint is: | The key fingerprint is: | ||
44: | 44: | ||
Zeile 70: | Zeile 72: | ||
User root | User root | ||
| | ||
- | | + | |
Host ff_pliening_gbw_od-e | Host ff_pliening_gbw_od-e | ||
Zeile 77: | Zeile 79: | ||
User root | User root | ||
| | ||
- | | + | |
| | ||
</ | </ | ||
Zeile 413: | Zeile 415: | ||
==== Knoten-/ | ==== Knoten-/ | ||
In folgendem Beispiel wollen wir den Knotennamen oder auch Hostname genannt, ändern. Auch hier fragen wir zunächst ab, welcher Wert gesetzt ist: | In folgendem Beispiel wollen wir den Knotennamen oder auch Hostname genannt, ändern. Auch hier fragen wir zunächst ab, welcher Wert gesetzt ist: | ||
- | uci show | grep hostname | + | # pretty-hostname |
+ | ff_pliening_gbw_ug | ||
- | system.@system[0].pretty_hostname=' | + | Diesen Wert ändern wir nun in einen etwas sprechenderen Namen ab (hier sind auch Emojis zugelassen 😉): |
- | system.@system[0].hostname=' | + | |
- | + | ||
- | Diesen Wert ändern wir nun in einen etwas sprechenderen Namen ab: | + | |
- | uci set system.@system[0].pretty_hostname=' | + | |
- | uci commit system | + | |
Fragen wir nun erneut den geänderten Parameter ab, werden uns die aktualisierten Daten ausgegeben: | Fragen wir nun erneut den geänderten Parameter ab, werden uns die aktualisierten Daten ausgegeben: | ||
- | uci show | grep hostname | + | # pretty-hostname |
+ | ff_pliening_gänsbrunnenweg_ug | ||
- | system.@system[0].hostname=' | + | Auf der [[https:// |
- | + | ||
- | Auf der [[https:// | + | |
{{ : | {{ : | ||
+ | Siehe dazu auch den [[https:// | ||
==== Geodaten für die Kartenanzeige ==== | ==== Geodaten für die Kartenanzeige ==== | ||
Möchte man die im Router hinterlegten Geodaten abändern, da z.B. ein vorhandener Router seinen Aufstellungsort geändert hat, oder weil man zu besseren Darstellung auf der **[[https:// | Möchte man die im Router hinterlegten Geodaten abändern, da z.B. ein vorhandener Router seinen Aufstellungsort geändert hat, oder weil man zu besseren Darstellung auf der **[[https:// | ||
Zeile 439: | Zeile 438: | ||
Nach kurzer Zeit wird dann der Router auf der Karte an der neuen gewünschten Stelle angezeigt. | Nach kurzer Zeit wird dann der Router auf der Karte an der neuen gewünschten Stelle angezeigt. | ||
{{ : | {{ : | ||
+ | |||
+ | ==== Wifi Mesh abschalten ==== | ||
+ | |||
+ | Standardmäßig ist der WiFi Mesh eingeschaltet um nahe Knoten miteinander über WiFi zu verbinden. Dies lässt sich mit folgenden Befehlen abschalten: | ||
+ | uci set wireless.mesh_radio0.disabled=1 | ||
+ | uci set wireless.mesh_radio1.disabled=1 | ||
+ | uci commit wireless | ||
+ | wifi | ||
+ | |||
+ | Anschließend ist das WiFi Mesh abgeschaltet. | ||
+ | |||
+ | Siehe dazu auch [[https:// | ||
==== Webseite des FF-Knoten aus dem LAN aufrufen ==== | ==== Webseite des FF-Knoten aus dem LAN aufrufen ==== | ||
Zeile 624: | Zeile 635: | ||
==== WLAN zeitgesteuert ein- und ausschalten ==== | ==== WLAN zeitgesteuert ein- und ausschalten ==== | ||
- | In Gemeinschaftsunterkünften wie z.B. Jugendherbergen, | + | In manchen Unterkünften |
- | (Anmerkung: Etwas eleganter lässt sich diese Aufgabe ab der Firmware-Version v2019.0.8 mit der neuen Funktion **ap-timer** lösen, mehr dazu im Abschnitt **[[# | + | Dazu wird " |
- | === ASH-Script === | + | |
- | Zunächst wollen wir uns die Konfiguration per Script einmal ansehen. Dazu legen wir uns ein kleines **ash**-Shellscript an, dass wir dann bei Bedarf entweder händisch oder cronjob-gesteuert aufrufen. | + | |
- | | + | |
- | <file bash / | + | Drücke **i** um in den Schreibmodus zu gelangen. |
- | # Script zum (De-)Aktivieren der unterschiedlichen Client-WLANs | + | |
- | # $1 : erste uebergebene Variable : | + | Für tägliche Abschaltung von 21 bis 7 Uhr, sollte die Datei wie folgt aussehen: |
- | # 2 = 2.4 GHz Freifunk-Client-Netz | + | |
- | # 5 = 5 GHz Freifunk-Client-Netz | + | |
- | # p = 2.4 GHz Freifunk-Client-Netz | + | |
- | # | + | |
- | # $2 : zweite uebergebene Variable: | + | |
- | # off = WLAN ausschalten | + | |
- | # | + | |
- | # WLAN(s) ausschalten | + | 0 21 * * * ifconfig client0 down; ifconfig client1 down |
- | if [ $2 = " | + | |
- | if [ $1 = " | + | |
- | uci set wireless.client_radio0.disabled=1 | + | Für die Syntax gibt es viele hilfreiche Seiten, wie beispielsweise |
- | elif [ $1 = " | + | |
- | uci set wireless.client_radio1.disabled=1 | + | |
- | else | + | |
- | uci set wireless.wan_radio0.disabled=1 | + | |
- | fi | + | |
- | fi | + | |
- | # WLAN(s) einschalten | + | Anschließende drücke ESC und gib **:wq** ein um die Änderungen zu speichern. |
- | if [ $2 = " | + | |
- | if [ $1 = " | + | |
- | uci set wireless.client_radio0.disabled=0 | + | |
- | elif [ $1 = " | + | |
- | uci set wireless.client_radio1.disabled=0 | + | |
- | | + | |
- | uci set wireless.wan_radio0.disabled=0 | + | |
- | fi | + | |
- | fi | + | |
- | # Konfigurationsaenderung(en) persistieren | + | Abschließend muss der Deamon die Konfiguration neu laden, damit der Cronjob aktiv geschaltet ist. |
- | uci commit wireless | + | |
- | wifi | + | |
- | </ | + | |
- | Das Script statten wir zum Aufruf mit den entsprechenden **x**-Rechten aus. | + | /etc/init.d/micrond reload |
- | | + | |
- | Wollen wir nun ein WLAN umschalten, geben wir zwei Parameter an: | ||
- | * **erster Parameter** | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * **zweiter Parameter** | ||
- | * '' | ||
- | * '' | ||
- | |||
- | So deaktivert z.B. folgender Aufruf das 5 GHz Client-WLAN: | ||
- | Da wir das natürlich nicht jedesmal per Hand ausführen wollen, legen wir uns entsprechende cronjobs an. Dazu hinterlegen wir in der User-crontab des Nutzers **root** entsprechend unsere zeitlichen Vorstellungen. | ||
- | | ||
- | |||
- | < | ||
- | 30 22 * * * / | ||
- | |||
- | # 5 GHz Client WLAN um 22:30 Uhr ausschalten | ||
- | 30 22 * * * / | ||
- | |||
- | # privates verschluesseltes WLAN um 00:00 Uhr ausschalten | ||
- | * 0 * * * / | ||
- | |||
- | # um 6:45 Uhr alle WLANs wieder aktivieren | ||
- | 45 6 * * * / | ||
- | 45 6 * * * / | ||
- | 45 6 * * * / | ||
- | |||
- | In dem gezeigtem Beispiel würden um 22:30 Uhr jeweils die Freifunk Client-Netze sowie das private verschlüsselte WLAN um 00:00 Uhr ausgeschaltet, | ||
- | |||
- | === AP-Timer === | ||
- | Seit der Firmware-Version **v2019.0.8** ((Ende Juli 2019)) gibt es nun eine Konfigurationsoption, | ||
- | |||
- | Auf der Konsole können wir uns hierzu dann die gesetzten Optionen mit Hilfe des Befehls '' | ||
- | uci show ap-timer | ||
- | |||
- | < | ||
- | ap-timer.settings.enabled=' | ||
- | ap-timer.settings.type=' | ||
- | ap-timer.all=day | ||
- | ap-timer.all.on=' | ||
- | ap-timer.all.off=' | ||
- | |||
- | In der Konfigurationsdatei ''/ | ||
- | <file bash / | ||
- | option enabled ' | ||
- | option type ' | ||
- | |||
- | config day ' | ||
- | list on ' | ||
- | list off ' | ||
- | |||
- | </ | ||
- | |||
- | Wollen wir die Zeiten via SSH ändern, setzen wir die entsprechenden **ap-timer**-Optionen. In nachfolgendem Beispiel wollen wir das WLAN morgens um **8:00** Uhr ein- und nachmittags um **17:45** Uhr wieder ausschalten. | ||
- | |||
- | uci set ap-timer.all.on=' | ||
- | uci set ap-timer.all.off=' | ||
- | uci commit | ||
+ | Siehe dazu auch den [[https:// | ||
==== Zugangs zum Clientnetz begrenzen - Clients MAC-basiert aussperren ==== | ==== Zugangs zum Clientnetz begrenzen - Clients MAC-basiert aussperren ==== | ||
Bisweilen kann es erforderlich werden, einzelne Clients auf Basis ihrer MAC-Adresse auszusperren. Die kann verschiedene Gründe haben, sei es nur zum Schutz des Client selbst oder auch zum Schutz anderer Nutzer vor Störungen. | Bisweilen kann es erforderlich werden, einzelne Clients auf Basis ihrer MAC-Adresse auszusperren. Die kann verschiedene Gründe haben, sei es nur zum Schutz des Client selbst oder auch zum Schutz anderer Nutzer vor Störungen. | ||
Zeile 856: | Zeile 781: | ||
Siehe dazu auch den [[https:// | Siehe dazu auch den [[https:// | ||
- | ==== Update | + | ==== Update forcieren ==== |
+ | |||
+ | === Via Autoupdater | ||
Mit Hilfe des Befehls '' | Mit Hilfe des Befehls '' | ||
| | ||
- | < | ||
- | |||
- | Possible options are: | ||
- | -b, --branch BRANCH | ||
- | |||
- | -f, --force | ||
- | and whether the autoupdater even is enabled. | ||
- | |||
- | -h, --help | ||
- | |||
- | -n, --no-action | ||
- | | ||
- | |||
- | --fallback | ||
- | | ||
- | |||
- | --force-version | ||
- | |||
- | < | ||
- | | ||
Das Update der Firmware kann manuell angestoßen werden, dazu verwendet man die Option **-f**. Somit wir aus dem aktuell definierten Releasezweig ein Update gesucht, geholt und bei Verfügbarkeit auch installiert. | Das Update der Firmware kann manuell angestoßen werden, dazu verwendet man die Option **-f**. Somit wir aus dem aktuell definierten Releasezweig ein Update gesucht, geholt und bei Verfügbarkeit auch installiert. | ||
Zeile 888: | Zeile 795: | ||
Durch Angabe des Branches kann man unabhängig vom konfigurierten Releasezweig eine spezielle Firmware installieren. Im folgenden Beispiel erzwingen wir den Firmwareupdate aus dem Zweig // | Durch Angabe des Branches kann man unabhängig vom konfigurierten Releasezweig eine spezielle Firmware installieren. Im folgenden Beispiel erzwingen wir den Firmwareupdate aus dem Zweig // | ||
| | ||
- | < | ||
- | Stopping cron... | ||
- | Stopping haveged... | ||
- | Stopping micrond... | ||
- | Stopping sysntpd... | ||
- | Stopping gluon-radvd... | ||
- | Stopping uhttpd... | ||
- | Stopping sse-multiplexd... | ||
- | Stopping gluon-respondd... | ||
- | vm.drop_caches = 3 | ||
- | Downloading image: | ||
- | Stopping network... | ||
- | Killed by signal 1. | ||
- | Killed by signal 1. | ||
- | packet_write_wait: | ||
- | Beide Beispiele setzen natürlich voraus, dass der Firmware-Server erreichbar ist. Alternativ ist es auch möglich das Firmware-Image manuell herunterladen bzw. auf den Router | + | === Manuell mit Internet am Router |
- | In folgendem Beispiel gehen wir mal davon aus, dass wir uns nicht 100%ig sicher sind welches Router-Modell in Verwendung ist. Alos fragen wir zunächst ab, welches Routermodell da im Einsatz ist. | + | Falls wir uns nicht 100%ig sicher sind welches Router-Modell in Verwendung ist, kann man das mit dem folgenden Befehl abfragen (siehe dazu auch den [[https:// |
- | | + | # |
+ | Extreme Networks WS-AP3825i | ||
+ | |||
+ | Wir werden also erst einmal von der Firmwareseite das gewünschte Image unter **Upgrade** suchen: https:// | ||
- | Ubiquiti UniFiAP Outdoor+ | + | Anstatt die Datei downzuloaden, |
- | Wir werden uns also erst einmal von der Firmwareseite | + | Anschließend kann führen wir das Update mit dem Befehl **sysupgrade** durch, wobei hier der Link von oben kopiert werden kann: |
- | wget https:// | + | echo 3 > / |
+ | sysupgrade | ||
+ | | ||
- | Anschließend kopieren wir diese Date in das Zielverzeichnis | + | Siehe dazu auch [[https://github.com/freifunk-gluon/gluon/wiki/ |
- | $ scp gluon-ffmuc-v2019.0.4~exp86-ubiquiti-unifiap-outdoor+-sysupgrade.bin ff_pliening_gbw_test:/ | + | |
- | < | ||
- | # # | ||
- | # ╭∩╮( ͡° ل͟ ͡° )╭∩╮ | ||
- | # # | ||
- | # | ||
- | # # | ||
- | # This system is actively monitored and all connections may be logged. | ||
- | # By accessing this system, you consent to this monitoring. | ||
- | # # | ||
- | ############################################################################## | ||
- | gluon-ffmuc-v2019.0.4~exp86-ubiquiti-unifiap-outdoor+-sysupgrade.bin | ||
- | Killed by signal 1. | ||
- | Killed by signal 1. | ||
- | </ | ||
- | Bevor wir nun die Firmware installieren, leeren wir noch die caches auf dem Router, nachdem | + | === Manuell ohne Internet am Router === |
- | ssh ff_pliening_gbw_od | + | |
+ | Falls wir uns nicht 100%ig sicher sind welches Router-Modell in Verwendung ist, kann man das mit dem folgenden Befehl abfragen (siehe dazu auch den [[https:// | ||
+ | # lua -e ' | ||
+ | Extreme Networks WS-AP3825i | ||
+ | |||
+ | Die vorigen Beispiele setzen voraus, dass der Firmware-Server erreichbar ist. Alternativ ist es auch möglich das Firmware-Image manuell herunterladen bzw. auf den Router kopieren. Im folgenden Beispiel holen wir uns zuerst das Image auf unseren Admin-Rechner und kopieren es dann via '' | ||
- | echo 3 > /proc/sys/vm/ | + | Wir werden uns also erst einmal von der Firmwareseite das gewünschte Image unter **Upgrade** auf unseren Admin-Rechner herunterladen: |
- | Zum Updaten verwenden | + | Anschließend kopieren |
- | sysupgrade | + | $ scp gluon-ffmuc-v2022.10.5-extreme-networks-ws-ap3825i-sysupgrade.bin root@192.168.1.1:/ |
- | < | + | |
- | / | + | |
+ | Bevor wir nun die Firmware installieren, | ||
+ | $ ssh root@192.168.1.1 | ||
- | upgrade-option: | + | # echo 3 > /proc/sys/ |
- | -f <config> | + | |
- | -i | + | |
- | -c | + | |
- | -n do not save configuration over reflash | + | |
- | -p do not attempt to restore the partition table after flash. | + | |
- | -T | --test | + | |
- | | + | |
- | -F | --force | + | |
- | Flash image even if image checks fail, this is dangerous! | + | |
- | -q less verbose | + | |
- | -v more verbose | + | |
- | -h | --help | + | |
- | backup-command: | + | Zum Updaten verwenden wir den Befehl |
- | -b | --create-backup < | + | |
- | | + | |
- | then exit. Does not flash an image. If file is '-', | + | |
- | i.e. stdout, verbosity is set to 0 (i.e. quiet). | + | |
- | -r | --restore-backup < | + | |
- | | + | |
- | then exit. Does not flash an image. If file is '-', | + | |
- | the archive is read from stdin. | + | |
- | -l | --list-backup | + | |
- | list the files that would be backed up when calling | + | |
- | | + | |
Das Update der Firmware stoßen wir nun wie folgt an. | Das Update der Firmware stoßen wir nun wie folgt an. | ||
- | sysupgrade /tmp/gluon-ffmuc-v2019.0.4~exp86-ubiquiti-unifiap-outdoor\+-sysupgrade.bin | + | |
- | < | + | < |
- | Saving config files... | + | Commencing upgrade. Closing all shell sessions.</ |
- | Commencing upgrade. Closing all shell sessions. | + | |
- | Killed by signal 1. | + | |
- | Killed by signal 1. | + | |
- | packet_write_wait: | + | |
===== links ===== | ===== links ===== |