knb: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
knb:ssh [2023/03/05 13:50] – [Wifi Mesh abschalten] grischeknb: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, welches wir entweder schon besitzen (im ~/.ssh-Verzeichnis unseres Linuxsystems oder unter Windows mit PuTTYgen erstellt haben) oder uns für den Zugriff auf unseren Freifunkrouter hier erstellen wollen. Zur Authentifikations als berechtigter User gegenüber dem SSH-Diensst benötigt man ein SSH-Schlüsselpaar, welches wir entweder schon besitzen (im ~/.ssh-Verzeichnis unseres Linuxsystems oder unter Windows mit PuTTYgen erstellt haben) oder uns für den Zugriff auf unseren Freifunkrouter hier erstellen wollen.
-Aktuell ((Stand. 2020)) werden leider noch keine [[https://de.wikipedia.org/wiki/Curve25519|Ed25519]]-Schlüssel, einem //Elliptic Curve Signature Schema//, welches beste Sicherheit bei vertretbarem rechnerischem Aufwand verspricht, als ECDSA, DSA oder RSA dies der Fall ist, unterstützt. Somit werden wir uns einen RSA-Schlüssel mit ausreichend großer Schlüssellänge erstellen.+Aktuell ((Stand. 2024)) empfehlen wir [[https://de.wikipedia.org/wiki/Curve25519|Ed25519]]-Schlüssel, einem //Elliptic Curve Signature Schema//, welches beste Sicherheit bei vertretbarem rechnerischem Aufwand verspricht. Somit werden wir uns einen ED25519-Schlüssel mit ausreichend großer Schlüssellänge erstellen
 + 
 +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 ====
-<code> $ ssh-keygen -b 4096 -t rsa -C django@nausch.org -f ~/.ssh/id_rsa4096_ff</code>+<code> $ ssh-keygen -t ed25519 -C django@nausch.org -f ~/.ssh/id_ed25519_ff</code>
  
 <code>Generating public/private rsa key pair. <code>Generating public/private rsa key pair.
 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 /home/django/.ssh/id_rsa4096_ff+Your identification has been saved in /home/django/.ssh/id_ed25519_ff
-Your public key has been saved in /home/django/.ssh/id_rsa4096_ff.pub.+Your public key has been saved in /home/django/.ssh/id_ed25519_ff.pub.
 The key fingerprint is: The key fingerprint is:
 44:8b:1a:de:ad:be:ef:23:af:65:b7:e6:1a:bf:98:3d django@nausch.org 44:8b:1a:de:ad:be:ef:23:af:65:b7:e6:1a:bf:98:3d django@nausch.org
Zeile 70: Zeile 72:
      User root      User root
      Protocol 2      Protocol 2
-     IdentityFile ~/.ssh/id_rsa4096_ff+     IdentityFile ~/.ssh/id_ed25519_ff
  
 Host ff_pliening_gbw_od-e Host ff_pliening_gbw_od-e
Zeile 77: Zeile 79:
      User root      User root
      Protocol 2      Protocol 2
-     IdentityFile ~/.ssh/id_rsa4096_ff+     IdentityFile ~/.ssh/id_ed25519_ff
      ProxyJump jumphost      ProxyJump jumphost
 </file> </file>
Zeile 633: Zeile 635:
  
 ==== WLAN zeitgesteuert ein- und ausschalten ==== ==== 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 trenntsollte man lieber das nachfolgende **[[https://rosettacode.org/wiki/Almquist_Shell|ash]]**-Shellscript verwenden.  +In manchen Unterkünften oder auch im familiären Haushalt, kann es erforderlich sein bzw. werden, den Zugang zum Internet zeitlich zu reglementieren. 
-(AnmerkungEtwas 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 **[[#ap-timer|weiter unten]]**. )+Dazu wird "einfach" ein Eintrag in den Aufgabendienst cronhier micron.d geschrieben, in dem die Datei mit dem Editor VI erstellt wird:
  
-=== ASH-Script === +  vi /usr/lib/micron.d/wifioff
-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. +
-   vim /root/stop_wlan.sh+
  
-<file bash /root/stop_wlan.sh>#!/bin/ash +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 +
-#                                   on  = WLAN einschalten+
  
-# WLAN(s) ausschalten +  0 21 * * *  ifconfig client0 downifconfig client1 down 
-if [ $2 = "off"then +   7 * * *  ifconfig client0 upifconfig client1 up 
-   if [ $1 = "2"then +   
-      uci set wireless.client_radio0.disabled=1  +Für die Syntax gibt es viele hilfreiche Seiten, wie beispielsweise [[https://crontab.guru/#0_21_*_*_*|Crontab.guru]].
-   elif $1 = "5" ] ; then +
-      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 = "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 +Abschließend muss der Deamon die Konfiguration neu laden, damit der Cronjob aktiv geschaltet ist.
-uci commit wireless +
-wifi +
-</file>+
  
-Das Script statten wir zum Aufruf mit den entsprechenden **x**-Rechten aus. +  /etc/init.d/micrond reload
-   chmod +x /root/stop_wlan.sh+
  
-Wollen wir nun ein WLAN umschalten, 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 User-crontab 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 sowie das private verschlüsselte WLAN um 00:00 Uhr ausgeschaltet, sowie frühmorgens um 6:45 Uhr alle drei WLANs wieder eingeschaltet. 
- 
-=== AP-Timer === 
-Seit der Firmware-Version **v2019.0.8** ((Ende Juli 2019)) gibt es nun eine Konfigurationsoption, die man am einfachsten bei der Konfiguration über die **[[knb:gui#ap_timer|Konfiguration über die WEB-GUI von LuCi]]** erreichen und konfigurieren kann.  
- 
-Auf der Konsole können wir uns hierzu dann die gesetzten Optionen mit Hilfe des Befehls ''uci show'' anzeigen lassen. 
-   uci show ap-timer 
- 
-<code>ap-timer.settings=ap-timer 
-ap-timer.settings.enabled='1' 
-ap-timer.settings.type='day' 
-ap-timer.all=day 
-ap-timer.all.on='06:20' 
-ap-timer.all.off='23:59'</code> 
- 
-In der Konfigurationsdatei ''/etc/config/ap-timer'' werden diese dann entsprechend persistiert. 
-<file bash /etc/config/ap-timer>config ap-timer 'settings' 
- option enabled '1' 
- option type 'day' 
- 
-config day 'all' 
- list on '06:20' 
- list off '23:59' 
- 
-</file> 
- 
-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='08:00' 
-   uci set ap-timer.all.off='17:45' 
-   uci commit 
  
 +Siehe dazu auch den [[https://wiki.freifunk.net/Konsole#Clientnetz_zeitgesteuert_an-.2Fabschalten|Freifunk Konsolenguide]].
 ==== 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. 
  • knb/ssh.1678024244.txt.gz
  • Zuletzt geändert: 2023/03/05 13:50
  • von grische