freifunk:ssh

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
freifunk:ssh [14.06.2019 07:49. ] djangofreifunk:ssh [14.06.2019 12:22. ] – [Knoten von der Knotenkarte entfernen] #Freifunk #ffmuc django
Zeile 372: Zeile 372:
 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.
 {{ :freifunk:ff_005.png?nolink&600 |Bild: FReifunkkarte mit Anzeige der gewählten Nodes}} {{ :freifunk:ff_005.png?nolink&600 |Bild: FReifunkkarte mit Anzeige der gewählten Nodes}}
 +
 +==== Knoten von der Knotenkarte entfernen ====
 +Will man seinen Knoten, sei es weil man diesen anderweitig weiterverwenden oder weg-/weitergeben möchte, von der **[[https://map.ffmuc.net|Knotenkarte]]** löschen, gibt es leider aktuell keinen direkten Löschbutton auf der Knotenkarte. Würde man den Router einfach nur so abstecken, würde für bis zu sieben Tage auf der Karte ein roter Kreis erscheinen, was hinlänglich als Störung oder defekter Router mit Problemen gleichgesetzt wird. 
 +
 +Daher empfiehlt es sich in einer solchen Situation den Node manuell von der Karte zu nehmen.
 +   uci set gluon-node-info.@location[0].share_location=0
 +   uci commit gluon-node-info
 +
 +Nach ein paar Minuten verschwindet der Router auf der Karte und wir können diesen nun abstecken und abbauen.
  
  
Zeile 379: Zeile 388:
 Wir kopieren nun den Publickey des zweiten Admins in die Datei //**/etc/dropbear/authorized_keys**// und gehen dabei wie folgt vor: Wir kopieren nun den Publickey des zweiten Admins in die Datei //**/etc/dropbear/authorized_keys**// und gehen dabei wie folgt vor:
    cat ~/.ssh/id_rsa_piraten.pub | ssh ff_pliening_gbw_ug 'cat >> /etc/dropbear/authorized_keys'    cat ~/.ssh/id_rsa_piraten.pub | ssh ff_pliening_gbw_ug 'cat >> /etc/dropbear/authorized_keys'
 +
 +==== 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:ssh_c7|Server]]** sondern sollte grundsätzlich unserem Grundverständnis an Sicherheit entsprechen. SSH-Zugang für den User **root** mit Passwort ist hinlänglich als **__nogo__** allgemeingültig er- und anerkannt.
 +</WRAP>
 +
 +Bei der Ersteinrichtung unseres Knotens über die **[[gui#remotezugriff|WEG GUI]]** wird bei aktueller Firmware auch deshalb gar keine Möglichkeit zur Vergabe eines Passwortes für den Nutzer root angeboten, sondern ausschließlich die Möglichkeit gegeben ein SSH-Schlüssel (public-key) zu hinterlegen.
 +
 +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://matt.ucc.asn.au/dropbear/dropbear.html|dropbear]]** auch komplett deaktivieren. Hierzu setzen wir die beiden betreffenden Zeilen in der zugehörigen Konfigurationsdatei des SSH-Daemon auf **//off//**.
 +   vim /etc/config/dropbear
 +<file bash /etc/config/dropbear>config dropbear
 +# Django : 2019-06-14
 +# default: option PasswordAuth 'on'
 +#          option RootPasswordAuth 'on'
 + option PasswordAuth 'off'
 + option RootPasswordAuth 'off'
 + option Port         '22'
 +# option BannerFile   '/etc/banner'
 +</file>
 +Anschließend starten wir den Router einmal neu, damit dieser die Konfigurationsänderung aktiviert.
 +   reboot
 +
 +Versuchen wir uns nun ohne passenden SSH-Key am Node anzumelden, erfolgt keine Passwort-Abfrage mehr und wir werden freundlich mit einem ''Permission denied (publickey).'' darauf hingewiesen, dass es //ohne Hände keine Kekse// mehr gibt, kurzum ohne SSH-Schlüssel ist kein Zugang mehr möglich, auch nicht mittels Passwort!
 +
 +   ssh root@2001:608:a01:102:da0d:17ff:feff:569e
 +
 +  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!
 +</WRAP>
  
  
Zeile 488: Zeile 528:
    uci commit    uci commit
    wifi    wifi
 +
 +
 +
 +
 +==== WLAN Zeitgesteuert ein- und ausschalten ====
 +In Gemeinschaftsunterkünften wie z.B. Jugendherbergen, Asylhilfeeinrichtungen oder auch im familiären Haushalt, kann es erforderlich sein bzw. werden, den Zugang zum Internet zeitlich zu reglementieren. Bevor man nun einzelne Freifunk-Router per 230V-Zeitschaltuhr hart vom Stromnetz trennt, werden wir die Sache etwas eleganter lösen. Dazu legen wir uns ein kleines **ash**-Shellscript an, dass wir dann bei Bedarf entweder händisch oder cronjob-gesteuert aufrufen.
 +   vim /root/stop_wlan.sh
 +
 +<file bash /root/stop_wlan.sh>#!/bin/ash
 +# Script zum (De-)Aktivieren der unterschiedlichen Client-WLANs
 +
 +# $1 : erste uebergebene Variable :
 +#                                   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
 +#                                   on  = WLAN einschalten
 +
 +# WLAN(s) ausschalten
 +if [ $2 = "off" ] ; then
 +   if [ $1 = "2" ] ; then
 +      uci set wireless.client_radio0.disabled=1 
 +   elif [ $1 = "5" ] ; then
 +      uci set wireless.client_radio1.disabled=1
 +   else 
 +      uci set wireless.wan_radio0.disabled=1
 +   fi
 +fi
 +
 +# WLAN(s) einschalten
 +if [ $2 = "on" ] ; then
 +   if [ $1 = "2" ] ; then
 +      uci set wireless.client_radio0.disabled=0
 +   elif [ $1 = "5" ] ; then
 +      uci set wireless.client_radio1.disabled=0
 +   else
 +      uci set wireless.wan_radio0.disabled=0
 +   fi
 +fi
 +
 +# Konfigurationsaenderung(en) persistieren
 +uci commit wireless
 +wifi
 +</file>
 +
 +Das Script statten wir zum Aufruf mit den entsprechenden **x**-Rechten aus.
 +   chmod +x /root/stop_wlan.sh
 +
 +Wollen wir nun ein WLAN geben wir zwei Parameter an:
 +  * **erster Parameter**
 +    * ''2'' : 2.4 GHz Client WLAN
 +    * ''5'' : 5 GHz Client WLAN
 +    * ''p'' : [[gui#privates_wlan|privates verschlüsseltes WLAN]]
 +  * **zweiter Parameter**
 +    * ''off'' : WLAN ausschalten
 +    * ''on'' : WLAN einschalten
 +
 +So deaktivert z.B. folgender Aufruf das 5 GHz Client-WLAN: ''/root/stop_wlan.sh 5 off'' und folgender Aufruf würde es wieder aktivieren: ''/root/stop_wlan.sh 5 on''. Da wir das natürlich nicht jedesmal per Hand ausführen wollen, legen wir uns entsprechende cronjobs an. Dazu hinterlegen wir in der usercrontab des Nutzers **root** entsprechend unsere zeitlichen Vorstellungen.
 +   crontab -e
 +
 +<code># 2.5 GHz Client WLAN um 22:30 Uhr ausschalten
 +30 22 * * * /root/stop_wlan.sh 2 off > /dev/null 2>&1
 + 
 +# 5 GHz Client WLAN um 22:30 Uhr ausschalten
 +30 22 * * * /root/stop_wlan.sh 5 off > /dev/null 2>&1
 + 
 +# privates verschluesseltes WLAN um 00:00 Uhr ausschalten
 +* 0 * * *   /root/stop_wlan.sh p off > /dev/null 2>&1
 + 
 +# um 6:45 Uhr alle WLANs wieder aktivieren
 +45 6 * * *  /root/stop_wlan.sh 2 on > /dev/null 2>&1
 +45 6 * * *  /root/stop_wlan.sh 5 on > /dev/null 2>&1
 +45 6 * * *  /root/stop_wlan.sh p on > /dev/null 2>&1</code>
 +
 +In dem gezeigtem Beispiel würden um 22:30 Uhr jeweils die Freifunk Client-Netze und das private verschlüsselte WLAN um 00:00 Uhr ausgeschaltet, sowie alle drei frühmorgens um 6:45 Uhr alle drei WLANs wieder eingeschaltet.
 ==== manuelle Segmentauswahl ==== ==== 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.  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. 
Zeile 703: Zeile 820:
 //**[[start|zurück zur Freifunk-Startseite hier im WIKI]]**// //**[[start|zurück zur Freifunk-Startseite hier im WIKI]]**//
  
 +~~AUTOTWEET:~~