Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
freifunk:ssh [14.06.2019 08:13. ] – Administration eines Freifunk-Knotens via SSH - Passwort-Login für Nutzer root deaktivieren | #Freifunk #SSH django | freifunk:ssh [05.06.2020 12:56. ] (aktuell) – Seite gelöscht, da nunmehr im ffmuc-WIKI gepflegt! django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Administration eines Freifunk-Knotens via SSH ====== | ||
- | {{: | ||
- | ===== Vorbereitungen ===== | ||
- | ==== SSH-Key ==== | ||
- | Für den Zugriff benötigen wir natürlich ein entsprechendes SSH-Schlüsselpaar, | ||
- | | ||
- | |||
- | < | ||
- | Enter passphrase (empty for no passphrase): | ||
- | Enter same passphrase again: | ||
- | Your identification has been saved in / | ||
- | Your public key has been saved in / | ||
- | The key fingerprint is: | ||
- | 44: | ||
- | The key's randomart image is: | ||
- | +--[ RSA 4096]----+ | ||
- | | ... | | ||
- | | o.o . | | ||
- | | +.o o | | ||
- | | ..+= . | | ||
- | | | ||
- | | + .+oF | | ||
- | | +.. . | | ||
- | | . *E | | ||
- | | ++=o | | ||
- | +-----------------+</ | ||
- | |||
- | ==== SSH-Clientconfig ==== | ||
- | Um nun nicht jedes mal beim Aufruf einer SSH-Verbindung zu einem unserer Knoten, Parameter wie **user** und die doch sehr langen **IPv6**-Adressen angeben zu müssen, hinterlegen dwir die entsprechenden Daten in der Konfigurationsdatei unseres lokalen SSH-Clients auf unserem Admin-Rechners. Dies hat darüber hinaus auch noch zusätzlich den Vorteil, dass z.B. von einem Netz aus, bei dem es " | ||
- | |||
- | So ist z.B. in nachfolgendem Konfigurationsbeispiel der Router **ff_pliening_gbw_od** direkt erreichbar und der Router **ff_pliening_gbw_od-e** nur über den Sprunghost mit Namen **jumphost**, | ||
- | vim ~/ | ||
- | <file bash ~/ | ||
- | | ||
- | Port 22 | ||
- | User adminuser | ||
- | | ||
- | | ||
- | | ||
- | |||
- | Host ff_pliening_gbw_od | ||
- | | ||
- | Port 22 | ||
- | User root | ||
- | | ||
- | | ||
- | |||
- | Host ff_pliening_gbw_od-e | ||
- | | ||
- | Port 22 | ||
- | User root | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | |||
- | Wir können somit, wenn wir uns z.B. in einem IPv4-only Netzwerk aufhalten, ganz einfach durch den nachfolgenden Aufruf den Knoten **ff_pliening_gbw_od** erreichen. | ||
- | ssh ff_pliening_gbw_od-e | ||
- | |||
- | Ebenso können wir so direkt Dateien auf den Knoten in das // | ||
- | scp firmware ff_pliening_gbw_od-e:/ | ||
- | |||
- | Hier wird nun ohne manuelle Umwege Datei **firmware** in das // | ||
- | |||
- | |||
- | |||
- | ===== Abfrage von Konfigurationsdaten ===== | ||
- | Zur Abfrage von Konfigurationsparametern bemühen wir den Befehl '' | ||
- | uci | ||
- | < | ||
- | |||
- | Commands: | ||
- | batch | ||
- | export | ||
- | import | ||
- | changes | ||
- | commit | ||
- | add < | ||
- | add_list | ||
- | del_list | ||
- | show | ||
- | get < | ||
- | set < | ||
- | delete | ||
- | rename | ||
- | revert | ||
- | reorder | ||
- | |||
- | Options: | ||
- | -c < | ||
- | -d < | ||
- | -f < | ||
- | -m when importing, merge data into an existing package | ||
- | -n name unnamed sections on export (default) | ||
- | -N | ||
- | -p < | ||
- | -P < | ||
- | -q quiet mode (don't print error messages) | ||
- | -s force strict mode (stop on parser errors, default) | ||
- | -S | ||
- | -X do not use extended syntax on ' | ||
- | </ | ||
- | |||
- | Die Ausgabe aller Konfigurationsparameter kann mitunter doch sehr umfänglich werden. Bsp.: | ||
- | uci show |wc -l | ||
- | |||
- | 674 | ||
- | |||
- | In aller Regel wird man geziehlt nach einzelnen Parametern suchen, wie z.B. hier nach den hinterlegten Kontaktdaten. | ||
- | uci show | grep contact | ||
- | |||
- | gluon-node-info.@owner[0].contact=' | ||
- | |||
- | Alle Parameter einer Section kann man durch Angabe der '' | ||
- | uci show gluon-node-info | ||
- | < | ||
- | gluon-node-info.@location[0].share_location=' | ||
- | gluon-node-info.@location[0].altitude=' | ||
- | gluon-node-info.@location[0].latitude=' | ||
- | gluon-node-info.@location[0].longitude=' | ||
- | gluon-node-info.@owner[0]=owner | ||
- | gluon-node-info.@owner[0].contact=' | ||
- | gluon-node-info.@system[0]=system</ | ||
- | |||
- | Alle Werte sind hierbei im Verzeichnis ''/ | ||
- | less / | ||
- | < | ||
- | config location | ||
- | option share_location ' | ||
- | option altitude ' | ||
- | option latitude ' | ||
- | option longitude ' | ||
- | |||
- | config owner | ||
- | option contact ' | ||
- | |||
- | config system | ||
- | |||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== Anzahl verbundener Clients ==== | ||
- | Zur Ausgabe der Anzahl der aktuell verbiundenen Clients verwendet man folgenden Aufruf: | ||
- | grep -cEo " | ||
- | |||
- | 3 | ||
- | |||
- | ==== Gluon Release ==== | ||
- | cat / | ||
- | |||
- | v2019.0.3 | ||
- | |||
- | ==== Gluon Version ==== | ||
- | cat / | ||
- | |||
- | v2018.2.1+ | ||
- | |||
- | ==== Router-Modell ==== | ||
- | Zur Anzeige des verwendeten Router-Modells benutzt man den Befehl '' | ||
- | lua -e ' | ||
- | |||
- | TP-Link TL-WR940N v6 | ||
- | |||
- | ==== SSID ==== | ||
- | Wollen wir wissen welche SSID(([[https:// | ||
- | uci show | grep -i mesh_id | ||
- | |||
- | wireless.mesh_radio0.mesh_id=' | ||
- | |||
- | Da es sich hier um einen Router der nur ein **2,4 GHz** WLAN ausstrahlt, wird auch nur eine Zeile ausgegeben. Im nachfolgenden Beispiel handelt es sich um ein Routermodell der sowohl ein **2,4 GHz** wie auch ein **5 GHz** WLAN verwendet - wir sehen dies an der Ausgabe von zwei Konfigurationswerten. | ||
- | uci show | grep -i mesh_id | ||
- | |||
- | wireless.mesh_radio0.mesh_id=' | ||
- | wireless.mesh_radio1.mesh_id=' | ||
- | |||
- | ==== Debugging-Log ==== | ||
- | Bei der Fehlersuche ist es mit unter sehr hilfreich, wenn aussagekräftige Logmeldung in Echtzeit zur Verfügung stehen. Mit Hilfe des Befehls '' | ||
- | | ||
- | < | ||
- | Options: | ||
- | -s < | ||
- | -l < | ||
- | -e < | ||
- | -r < | ||
- | -F < | ||
- | -S < | ||
- | -p < | ||
- | -h < | ||
- | -P < | ||
- | -f Follow log messages | ||
- | -u Use UDP as the protocol | ||
- | -t Add an extra timestamp | ||
- | -0 Use \0 instead of \n as trailer when using TCP</ | ||
- | |||
- | So lassen sich z.B. mit der Option **-l 4** die letzten 4 Logmeldungen ausgeben. | ||
- | | ||
- | |||
- | < | ||
- | Mon Jun 3 20:32:11 2019 daemon.info fastd[2316]: | ||
- | Mon Jun 3 20:32:19 2019 daemon.info fastd[2316]: | ||
- | Mon Jun 3 20:32:24 2019 daemon.info fastd[2316]: | ||
- | </ | ||
- | Mit der Option **-f** wird das log fortlaufend angezeigt. | ||
- | | ||
- | < | ||
- | Mon Jun 3 20:42:00 2019 user.notice ath9k-broken-wifi-workaround: | ||
- | ... | ||
- | </ | ||
- | ===== Netzwerks- und Zustandsabfragen mit batctl ===== | ||
- | |||
- | '' | ||
- | |||
- | ==== B.A.T.M.A.N.-ADV Version ==== | ||
- | Welche B.A.T.M.A.N.-ADV Version | ||
- | | ||
- | |||
- | [B.A.T.M.A.N. adv openwrt-2018.1-5, | ||
- | |||
- | ==== Statistiken ==== | ||
- | Eine Statistikübersicht des laufenden Systems erhalten wir mit der Option **s**. | ||
- | | ||
- | < | ||
- | tx_bytes: 18491601 | ||
- | tx_dropped: | ||
- | rx: 470476 | ||
- | rx_bytes: 329029050 | ||
- | forward: 575400 | ||
- | forward_bytes: | ||
- | mgmt_tx: 1472475 | ||
- | mgmt_tx_bytes: | ||
- | mgmt_rx: 2205028 | ||
- | mgmt_rx_bytes: | ||
- | frag_tx: 16658 | ||
- | frag_tx_bytes: | ||
- | frag_rx: 74130 | ||
- | frag_rx_bytes: | ||
- | frag_fwd: 109 | ||
- | frag_fwd_bytes: | ||
- | tt_request_tx: | ||
- | tt_request_rx: | ||
- | tt_response_tx: | ||
- | tt_response_rx: | ||
- | tt_roam_adv_tx: | ||
- | tt_roam_adv_rx: | ||
- | dat_get_tx: | ||
- | dat_get_rx: | ||
- | dat_put_tx: | ||
- | dat_put_rx: | ||
- | dat_cached_reply_tx: | ||
- | |||
- | === Gateways mit Bandbreitenangaben === | ||
- | Die Option **gwl** zeigt alle erreichbaren Gateways mit aktueller Bandbreite im Freifunknetz | ||
- | | ||
- | < | ||
- | Router | ||
- | f2: | ||
- | * f2: | ||
- | | ||
- | === Liste aller Clients === | ||
- | Eine Auflistung aller Clients im Freifunknetz sehen wir mit Angabe der Option **tg** | ||
- | | ||
- | < | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ... | ||
- | </ | ||
- | === Summe aller WiFi-Nutzer im Netz === | ||
- | Wollegn wir wissen wieviele der zuvor abgefragten Clients als WLAN-Nutzer eingebucht sind erweitern wir die vorherige Abfrage wie folgt. | ||
- | | ||
- | |||
- | 99 | ||
- | | ||
- | === Liste der lokalen Nutzer === | ||
- | Wollen wir eine Liste aller lokalen Nutzer sehen bemühen wir die Option **tl** beim Befehl '' | ||
- | | ||
- | < | ||
- | Client | ||
- | 30: | ||
- | 30: | ||
- | 33: | ||
- | 33: | ||
- | 33: | ||
- | 01: | ||
- | 33: | ||
- | 33: | ||
- | 00: | ||
- | 33: | ||
- | |||
- | === Anzahl Lokaler WLAN-Clients === | ||
- | Auch hier können wir über die Erweiterung des Befehls uns sehr leicht ausgeben lassen, wieviele WLAN-Nutzer wir lokal haben. | ||
- | | ||
- | |||
- | 1 | ||
- | |||
- | === Belegung der Netzwerkports am Router === | ||
- | Möchte man abfragen welche Ports an dem Freifunkrouter belegt, also Ethernet-Kabel angesteckt wurden, kann man dies wie folgt ermitteln. | ||
- | | ||
- | < | ||
- | link: port:1 link:up speed: | ||
- | link: port:2 link:up speed: | ||
- | link: port:3 link:down | ||
- | link: port:4 link:down | ||
- | link: port:5 link:down | ||
- | link: port:6 link: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Ändern von Konfigurationsdaten ===== | ||
- | Möchte man einzelne Konfigurationsparameter ändern, verwenden wir wiederum den Befehl '' | ||
- | Mit unter hat es sich als zweckmäßig erwiesen vor umfangreichen Änderung eine Sicherheitskopie der bestehenden Konfiguration anzufertigen. Um dieses z.B. auf einer lokalen Admin-Workstation oder in einen passenden sicheren Cloudspeicher zu kopieren oder um es bei temporären Änderung anschließend wieder einfach wiederherstellen zu wollen. | ||
- | uci export network > / | ||
- | |||
- | Zum Wiederherstellen (restore) geht man dann wie folgt vor. | ||
- | cat / | ||
- | |||
- | Will man die gesicherte Konfiguration lokal speichern, kopiert man die zuvor erstellte Sicherungskopie einfach auf den lokalen Rechner. Da wir über die **[[# | ||
- | scp ff_pliening_gbw_od:/ | ||
- | |||
- | ==== Kontaktdaten ==== | ||
- | Im folgenden Beispiel wollen die die hinterlegten Kontaktinformationen abändern. Zunächst fragen wir ab, welche Informationen hier in diesem Konfigurationsbeispiel hinterlegt ist. | ||
- | uci show gluon-node-info.@owner[0].contact | ||
- | |||
- | gluon-node-info.cfg02c290.contact=' | ||
- | |||
- | Hier ändern wir nun die eMail-Adresse unseren Wünschen entsprechend ab. | ||
- | uci set gluon-node-info.@owner[0].contact=' | ||
- | uci commit | ||
- | |||
- | Fragen wir nun erneut den geänderten Parameter ab, werden uns die aktualisierten Daten ausgegeben. | ||
- | uci show gluon-node-info.@owner[0].contact | ||
- | |||
- | gluon-node-info.cfg02c290.contact=' | ||
- | |||
- | Auf der [[https:// | ||
- | {{ : | ||
- | |||
- | ==== Knoten-/ | ||
- | In folgendem Konfigurationsbeispiel wollen wir den Knotennamen oder auch Hostname genannt, abändern. Auch hier fragen wir zunächst ab, welcher Wert gesetzt ist. | ||
- | uci show | grep hostname | ||
- | |||
- | system.@system[0].pretty_hostname=' | ||
- | system.@system[0].hostname=' | ||
- | |||
- | Diesen Wert ändern wir nun in einen etwas sprechenderen Namen ab. | ||
- | uci set system.@system[0].pretty_hostname=' | ||
- | uci commit | ||
- | |||
- | Fragen wir nun erneut den geänderten Parameter ab, werden uns die aktualisierten Daten ausgegeben. | ||
- | uci show | grep hostname | ||
- | |||
- | system.@system[0].hostname=' | ||
- | |||
- | Auf der [[https:// | ||
- | {{ : | ||
- | |||
- | ==== 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:// | ||
- | |||
- | Auf der Karte sucht man den gewünschten Kartenausschnitt und wählt das PIN-Icon rechts oben am Bildschirm an. {{: | ||
- | {{ : | ||
- | Die Befehle aus dem Rahmen **Uci** kopieren wir dann einfach und fügen diese in unserem Shell-Fenster ein, mit dem wir die SSH-Verbindung mit unserem Freifunk-Knoten halten. Bsp.: | ||
- | < | ||
- | Nach kurzer Zeit wird dann der Router auf der Karte an der neuen gewünschten Stelle angezeigt. | ||
- | {{ : | ||
- | |||
- | |||
- | ==== (zusätzlichen) SSH-Key hinterlegen ==== | ||
- | Möchte man auf einem Router einen zweiten Admin für den Backupfall einen Zugriff gewähren, ist es notwendig dessen SSH-Publickey auf dem Knoten zu hinterlegen. Da wir unseren Knoten, auf denen wir mittels SSH zugreifen ausreichend in unserer lokalen SSH-Clientkonfigurationsdatei //** ~/ | ||
- | |||
- | Wir kopieren nun den Publickey des zweiten Admins in die Datei // | ||
- | cat ~/ | ||
- | |||
- | ==== Passwort-Login für Nutzer root deaktivieren ==== | ||
- | <WRAP center round important 80%> | ||
- | Dass bei der **SSH** eine Schlüsselbasierter Login einem Passwort gesichertem Zugriff vorzuziehen ist, gilt nicht nur für **[[centos: | ||
- | </ | ||
- | |||
- | Bei der Ersteinrichtung unseres Knotens über die **[[gui# | ||
- | |||
- | Will man nun ganz sicher gehen, oder ist als verantwortlicher (LINUX-)Admin von Haus aus ein klein wenig paranoid, kann man den Zugang nur mit Passwort und den Zugang für den Nutzer Root mit Passwort bei SSH-Daemon **[[https:// | ||
- | vim / | ||
- | <file bash / | ||
- | # Django : 2019-06-14 | ||
- | # default: option PasswordAuth ' | ||
- | # | ||
- | option PasswordAuth ' | ||
- | option RootPasswordAuth ' | ||
- | option Port ' | ||
- | # option BannerFile | ||
- | </ | ||
- | Anschließend starten wir den Router einmal neu, damit dieser die Konfigurationsänderung aktiviert. | ||
- | | ||
- | |||
- | Versuchen wir uns nun ohne passenden SSH-Key am Node anzumelden, erfolgt keine Passwort-Abfrage mehr und wir werden freundlich mit einem '' | ||
- | |||
- | ssh root@2001: | ||
- | |||
- | Permission denied (publickey). | ||
- | |||
- | <WRAP center round tip 75%> | ||
- | Bei einem Update des Routers mit einer neuen Firmware werden diese Einstellungen überschrieben - wir müssen diese **Konfigurationsänderung** dann **__erneut__** vornehmen! | ||
- | </ | ||
- | |||
- | |||
- | ==== Kanal-Belegung ==== | ||
- | Normalerweise funkt unser Freifunk-WLAN-Router auf Kanal **6**. Ist dieser Kanal schon durch andere WLAN // | ||
- | |||
- | Im folgenden Konfigurationsbeispiel wechseln wir zum Kanal **1**. | ||
- | uci set wireless.radio0.channel=1 | ||
- | |||
- | Dieser Befehl ändern " | ||
- | uci set gluon-core.@wireless[0].preserve_channels=1 | ||
- | uci commit | ||
- | wifi | ||
- | |||
- | ==== Bandbreitenbegrenzung ==== | ||
- | Möchte man nicht seinen kompletten Internetanschluss zur Anbindung des Freifunk-Knotens vor Ort zur Verfügung stellen kann es neben einer zeitlichen Begrenzung auch eine Traffic-/ | ||
- | In Nachfolgendem Beispiel beschreiben die Parameter '' | ||
- | uci set simple-tc.mesh_vpn=' | ||
- | uci set simple-tc.mesh_vpn.ifname=' | ||
- | uci set simple-tc.mesh_vpn.enabled=' | ||
- | uci set simple-tc.mesh_vpn.limit_ingress=' | ||
- | uci set simple-tc.mesh_vpn.limit_egress=' | ||
- | uci commit | ||
- | |||
- | ==== Sendeleistung anpassen ==== | ||
- | Bei größeren Installationen, | ||
- | |||
- | <WRAP center round alert 80%> | ||
- | Bei der Veränderung der Sendeleistung ist in Deutschland zwingend darauf zu achten, dass **__nicht__** versehentlich die maximale abgestrahlte Sendeleistung (Sendeleistung **__plus__** ggf. vorhandene Antennen mit Richtwirkung) im Frequenzbereich 2,400 GHz - 2,4835 GHz von **100 mW** überschritten wird! | ||
- | </ | ||
- | |||
- | |||
- | Der für die Sendeleistung relevante Konfigurationsoption kann nun mit dem Befehl '' | ||
- | | ||
- | < | ||
- | 1 dBm ( 1 mW) | ||
- | 2 dBm ( 1 mW) | ||
- | 3 dBm ( 1 mW) | ||
- | 4 dBm ( 2 mW) | ||
- | 5 dBm ( 3 mW) | ||
- | 6 dBm ( 3 mW) | ||
- | 7 dBm ( 5 mW) | ||
- | 8 dBm ( 6 mW) | ||
- | 9 dBm ( 7 mW) | ||
- | 10 dBm ( 10 mW) | ||
- | * 11 dBm ( 12 mW) | ||
- | 12 dBm ( 15 mW) | ||
- | 13 dBm ( 19 mW) | ||
- | 14 dBm ( 25 mW) | ||
- | 15 dBm ( 31 mW) | ||
- | 16 dBm ( 39 mW) | ||
- | 17 dBm ( 50 mW) | ||
- | 18 dBm ( 63 mW) | ||
- | 19 dBm ( 79 mW) | ||
- | 20 dBm ( 100 mW)</ | ||
- | Das gezeigte Beispiel zeigt nun die möglichen Einstellungen eines //**TP-Link CPE210 v1.0**//, die der verwendete Chipsatz/ | ||
- | |||
- | In folgendem Beispiel wollen wir nun die Abgestrahlte Sendeleistung auf ~ 60 mW verringern- Wir stellen daher die Sendeleistung auf 9 dBm ein. | ||
- | uci set wireless.radio0.txpower=9 | ||
- | uci commit | ||
- | wifi | ||
- | |||
- | Eine erneute Abfrage zeigt nun den geänderten Wert: | ||
- | | ||
- | < | ||
- | 1 dBm ( 1 mW) | ||
- | 2 dBm ( 1 mW) | ||
- | 3 dBm ( 1 mW) | ||
- | 4 dBm ( 2 mW) | ||
- | 5 dBm ( 3 mW) | ||
- | 6 dBm ( 3 mW) | ||
- | 7 dBm ( 5 mW) | ||
- | 8 dBm ( 6 mW) | ||
- | * 9 dBm ( 7 mW) | ||
- | 10 dBm ( 10 mW) | ||
- | 11 dBm ( 12 mW) | ||
- | 12 dBm ( 15 mW) | ||
- | 13 dBm ( 19 mW) | ||
- | 14 dBm ( 25 mW) | ||
- | 15 dBm ( 31 mW) | ||
- | 16 dBm ( 39 mW) | ||
- | 17 dBm ( 50 mW) | ||
- | 18 dBm ( 63 mW) | ||
- | 19 dBm ( 79 mW) | ||
- | 20 dBm ( 100 mW)</ | ||
- | |||
- | ==== privates und verschlüsseltes WLAN ==== | ||
- | Zusätzlich zu den beiden Freifunk WLAN-Netzen Client und Mesh, kann ein Router auch noch ein verschlüsseltes privates WLAN ausstrahlen, | ||
- | |||
- | === Einrichtung === | ||
- | In folgendem Konfigurationsbeispiel wollen wir dein privates WLAN mit der | ||
- | * **SSID=**// | ||
- | * **Privaten Schlüssel=**// | ||
- | |||
- | uci set wireless.wan_radio0=wifi-iface | ||
- | uci set wireless.wan_radio0.device=radio0 | ||
- | uci set wireless.wan_radio0.network=wan | ||
- | uci set wireless.wan_radio0.mode=ap | ||
- | uci set wireless.wan_radio0.encryption=psk2 | ||
- | uci set wireless.wan_radio0.ssid=" | ||
- | uci set wireless.wan_radio0.key=" | ||
- | uci set wireless.wan_radio0.disabled=0 | ||
- | uci commit | ||
- | wifi | ||
- | |||
- | === Deaktivierung === | ||
- | Zur Deaktivierung dieses zuvor eingerichteten privaten WLANs nutzen wir folgende Befehle. | ||
- | uci set wireless.wan_radio0.disabled=1 | ||
- | uci commit | ||
- | wifi | ||
- | ==== manuelle Segmentauswahl ==== | ||
- | Auf Grund des großen Wachstums der Nodeanzahl im Freifunknetz München, wurde im Mitte 2019 das Gesamtnetz von ursprünglich drei Segmenten auf 12((Stand Anfang Juni 2019)) erweitert. Basierend auf hinterlegte GeoDaten und auch umliegender WLAN-Accesspoints erfolgt die Segmentauswahl vollautomatisch und kann bei weiterem Anwachsen von Freifunkknoten weiter aufgeteilt werden. | ||
- | |||
- | Aktuell((Stand Anfang Juni 2019)) gibt es folgende Segmente: | ||
- | ^ SSID ^ Segment-Name | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | | muenchen.freifunk.net/ | ||
- | |||
- | Den aktuellen Segmentdefinition kann man mit folgendem Befehl abfragen: | ||
- | uci show gluon.core.domain | ||
- | |||
- | gluon.core.domain=' | ||
- | Der Knoten befindet sich also demnach im Segment **ffmuc_uml_ost**. Will man diesen Knoten nun z.B. in das Segment // | ||
- | uci set gluon.core.domain=' | ||
- | uci commit gluon | ||
- | | ||
- | | ||
- | |||
- | ==== Passthrough-Port des TP-Link CPE ==== | ||
- | Ein TP-Link CPE210 bietet neben seinem Uplink-Ethernet-Port noch einen weiteren sog. Passthrough-Port //LAN1// zur Verfügung. Über diesen Ethernet-Port kann ein weiteres Gerät versorgt werden, in der Art dass salopp gesagt, der Ethernet PoE-Port durchgeschliffen wird. | ||
- | Die aktuellen Einstellungen können wir hierzu folgender Maßen abfragen: | ||
- | uci show system.poe_passthrough | ||
- | |||
- | system.poe_passthrough=gpio_switch | ||
- | system.poe_passthrough.name=' | ||
- | system.poe_passthrough.gpio_pin=' | ||
- | system.poe_passthrough.value=' | ||
- | |||
- | === Aktivierung === | ||
- | Zum Aktivieren des Passthrough-Port gehen wir wie folgt vor: | ||
- | uci set system.poe_passthrough.value=' | ||
- | uci commit system | ||
- | |||
- | === Deaktivierung === | ||
- | Wollen wir den Port von der Ferne aus deaktivieren setzen wir die Option **system.poe_passthrough.value=' | ||
- | uci set system.poe_passthrough.value=' | ||
- | uci commit system | ||
- | |||
- | ==== Reboot des Knoten in den Konfigurationsmodus ==== | ||
- | Möchte man seinen WLAN-Router erneut in den Konfigurationsmodus versetzen, um dann mit dem Browser seiner Wahl auf die GUI via http:// | ||
- | uci set " | ||
- | uci commit | ||
- | | ||
- | |||
- | ==== Routerkonfiguration komplett löschen / zurücksetzen ==== | ||
- | Möchte man den Router in den Anfangszustand zurücksetzen, | ||
- | | ||
- | | ||
- | |||
- | Anschließend ist der Router wieder zurückgesetzt und kann über die GUI erreichbar unter http:// | ||
- | |||
- | |||
- | ===== Update/ | ||
- | In aller Regel wird man bemüht sein, die Firmware seines bzw. seiner Router immer auf einen aktuellen Stand zu halten. Dies nicht nur aus Sicherheitsaspekten heraus, sondern auch um an Neuerungen teilhaben zu können. Die Freifunk-Community in München stellt dazu drei unterschiedliche Releasezwige zur Verfügung : https:// | ||
- | * **experimental** : Hier werden brandaktuelle Neuerungen eingebaut und daher kann eine 100%ige Gewähr übernommen werden, ob auch wirklich alle Funktionen den gewünschten Erfolg bringen, bzw. auch alle bugfixes die bekannten Fehlfunktionen eliminiert haben. | ||
- | * **testing** Bevor eine Firmware großflächig im Releasezweig stable ausgerollt, wird diese von einem größeren Testfeld auf Herz und Nieren getestet. | ||
- | * **stable** : Wie der Name schon andeutet, ist dies der Releasezweig, | ||
- | |||
- | ==== Releasezweig abfragen ==== | ||
- | Den aktuell eingestellten Releasezweig können wir mit Hilfe des nachfolgenden Befehls abfragen. | ||
- | uci show autoupdater.settings | ||
- | < | ||
- | autoupdater.settings.enabled=' | ||
- | autoupdater.settings.branch=' | ||
- | autoupdater.settings.version_file='/ | ||
- | |||
- | Der Router würde also demnach bei einem Update des Releasezweigs // | ||
- | |||
- | ==== Releasezweig/ | ||
- | Will man den Firmwarezweig manuell dauerhaft ändern setzen wir den Branch entsprechend z.B. auf die option **stable**. | ||
- | uci set autoupdater.settings.enabled=' | ||
- | uci set autoupdater.settings.branch=' | ||
- | uci commit autoupdater | ||
- | |||
- | Eine erneute Abfrage zeigt nun, dass der Branch **stable** künftig verwendet wird. | ||
- | uci show autoupdater.settings.branch | ||
- | |||
- | autoupdater.settings.branch=' | ||
- | |||
- | ==== Update manuell forcieren ==== | ||
- | 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. | ||
- | | ||
- | |||
- | Retrieving manifest from http:// | ||
- | No new firmware available. | ||
- | |||
- | Durch Angbane 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 kopieren. Im folgenden Beispiel holen wir uns zuerst das Image auf unseren Admin-Rechner und kopieren es dann via '' | ||
- | |||
- | 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. | ||
- | lua -e ' | ||
- | |||
- | Ubiquiti UniFiAP Outdoor+ | ||
- | |||
- | Wir werden uns also erst einmal von der Firmwareseite das gewünschte Image auf unseren Admin-Rechner herunterladen. | ||
- | wget https:// | ||
- | |||
- | Anschließend kopieren wir diese Date in das Zielverzeichnis // | ||
- | $ 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, | ||
- | ssh ff_pliening_gbw_od | ||
- | |||
- | echo 3 > / | ||
- | |||
- | Zum Updaten verwenden wir den Befehl '' | ||
- | | ||
- | < | ||
- | / | ||
- | |||
- | upgrade-option: | ||
- | -f < | ||
- | -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: | ||
- | -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. | ||
- | | ||
- | |||
- | < | ||
- | Saving config files... | ||
- | Commencing upgrade. Closing all shell sessions. | ||
- | Killed by signal 1. | ||
- | Killed by signal 1. | ||
- | packet_write_wait: | ||
- | |||
- | ===== links ===== | ||
- | // | ||
- | |||
- | ~~AUTOTWEET: |