anleitungen:howto_router-einstellungen-ueber-ssh-aendern

Router Einstellungen über SSH ändern

Wenn ihr euren Router über SSH erreichbar gemacht habt, in dem ihr SSH-Key oder Passwort definiert habt, könnt ihr darüber einige Einstellungen ändern und anpassen.

Um euch über SSH mit dem Router verbinden zu können, braucht ihr unter Windows einen SSH-Client. PuTTY ist wohl der Client mit der höchsten Verbreitung. Mit einer direkten Verbindung ist der Router über die Next-Node Adresse erreichbar: ip6 = fd21:711::1 Ansonsten kann die Adresse über die Karte gefunden werden.

Benutzername: root

Weitere SSH-Befehle finden sich hier:

ifconfig

Zeigt euch alle Interfaces und die dazugehörigen IPv4 und IPv6 an, den Gesamttraffic etc.

iw mesh0 info

Zeigt den Kanal und die Funkstärke der Mesh-Verbindung an.

iw client0 info

Zeigt den Kanal und die Funkstärke der Client-Verbindung an.

ifstatus bat0

Leicht zu verarbeitende json file mit Infos wie in ifconfig und uptime etc.pp.

uptime

Zeigt euch die Zeit seit dem letzten Neustart

cat /lib/gluon/gluon-version

Gluon Version anzeigen lassen

cat /lib/gluon/release

Firmware Release anzeigen lassen

batctl o

Erste Zeile zeigt euch die benutzte Batman-Adv Version an, weiteres unter Punkt batctl unten

crontab -e

Damit könnt ihr neue Cronjobs anlegen, und so automatisiert Dinge tun, z.b. das Rebootskript im Falle des Internetverlustes automatisch ausführen, oder generell einen Reboot zu bestimmten Zeiten.

batctl tg |grep W |wc -l

Anzahl aller WIFI Nutzer im Segment anzeigen

batctl tl |grep W |wc -l

Anzahl localer Clients anzeigen

batctl gwl

Zeigt alle Gateways mit aktueller Bandbreite an und mit dem man aktuell verbunden ist.

Weitere Optionen finden sich in der manpage von batctl: https://downloads.open-mesh.org/batman/manpages/batctl.8.html. Unter der Option debug-tables finden sich eine Reihe von Befehlen, um batman-adv zum ausspucken spezifischer Daten zu bewegen.

pretty-hostname ffs-MeinRouterName
uci set gluon-node-info.@location[0]='location'
uci set gluon-node-info.@location[0].share_location='1'
uci set gluon-node-info.@location[0].latitude='48.783550947532284'
uci set gluon-node-info.@location[0].longitude='9.181421220346238'
uci commit gluon-node-info

Die Werte für 'latitude' (Breitengrad) und 'longitude' (Längengrad) passt ihr natürlich euren Gegebenheiten an. Die obigen Daten zeigen auf den Hauptbahnhof Stuttgart.

Um die entsprechenden Koordinaten herauszubekommen, kannst du den gewünschten Standort in der Karte von Freifunk Stuttgart raussuchen und hinzoomen. Dann oben rechts die Stecknadel anklicken und linksklick auf den entsprechenden Ort in der Karte. Jetzt werden die Koordinaten angezeigt und können kopiert werden.

Durch setzen von 'share_location' auf '0' könnt ihr das Anzeigen eures Routes auf der Karte » deaktivieren.
uci show gluon-node-info

Zeigt die aktuellen Koordinaten an.

uci set gluon-node-info.@location[0].zip='70193'
uci commit gluon-node-info

Die Postleitzahl (PLZ) hilft den Knoten dem passenden Segment zuzuordnen und sollte bei fixem Standort immer eingegeben werden. Vor allem, wenn keine Geodaten hinterlegt wurden. Dabei kann bei der PLZ auch nicht der konkrete Standort ermittelt werden.

uci set gluon-node-info.@owner[0]='owner'
uci set gluon-node-info.@owner[0].contact='Hans Mustermann email@hab-ich.net'
uci commit
uci set simple-tc.mesh_vpn='interface'
uci set simple-tc.mesh_vpn.ifname='mesh-vpn'
uci set simple-tc.mesh_vpn.enabled='1'
uci set simple-tc.mesh_vpn.limit_ingress='50000'
uci set simple-tc.mesh_vpn.limit_egress='1000'
uci commit

“ingress” ist der Download, “egress” der Upload. Durch setzen von ‘enabled’ auf ‘0’ wird die Bandbreitenbegrenzung deaktiviert.

uci set autoupdater.settings.enabled=1
uci set autoupdater.settings.branch=stable
uci commit
autoupdater -f

führt den autoupdate manuell aus

Aktivieren

uci del_list gluon.iface_wan.role='uplink'
uci add_list gluon.iface_wan.role='mesh'
uci commit gluon
gluon-reconfigure
reboot #  oder die betroffenen Dienste neu starten

Deaktivieren

uci del_list gluon.iface_wan.role='mesh'
uci add_list gluon.iface_wan.role='uplink'
uci commit gluon
gluon-reconfigure
reboot #  oder die betroffenen Dienste neu starten

(über den blauen Port)

Aktivieren

uci set network.mesh_wan.auto=1
uci commit network
/etc/init.d/network restart

Deaktivieren

uci set network.mesh_wan.auto=0
uci commit network
/etc/init.d/network restart

Aktivieren

uci del_list gluon.iface_lan.role='client'
uci add_list gluon.iface_lan.role='mesh'
uci commit gluon
gluon-reconfigure
reboot # oder betroffene Dienste neu starten

Deaktivieren

uci del_list gluon.iface_lan.role='mesh'
uci add_list gluon.iface_lan.role='client'
uci commit gluon
gluon-reconfigure
reboot # oder betroffene Dienste neu starten

(über die gelben Ports)

Aktivieren

uci set network.mesh_lan.auto=1
for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do
  uci del_list network.client.ifname=$ifname
done
uci commit
/etc/init.d/network restart

Deaktivieren

uci set network.mesh_lan.auto=0
for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do
  uci add_list network.client.ifname=$ifname
done
uci commit
/etc/init.d/network restart
uci del_list gluon.iface_wan.role='uplink'
uci add_list gluon.iface_wan.role='client'
uci commit gluon
gluon-reconfigure
reboot #  oder die betroffenen Dienste neu starten

Will man auf einem Router ohne LAN-Interface wie dem UniFi AP Clientnetzwerk aus dem WAN-Port bekommen, geht das nicht über die uci Schnittstelle, sondern muss in der Datei /etc/config/network konfiguriert werden. Es empfiehlt sich, ein Backup der Datei zu machen bevor man loslegt.

Dabei müssen die Passagen

config interface 'wan'
        option ifname 'eth0'
        option auto '1'
        option peerdns '0'
        option type 'bridge'
        option proto 'dhcp'
        option multicast_querier '0'
        option macaddr '06:9d:76:1a:ed:c8'

        ...

config interface 'client'
        option type 'bridge'
        option macaddr '44:d9:e7:cd:64:1d'
        option proto 'dhcpv6'
        option reqprefix 'no'
        option peerdns '1'
        option sourcefilter '0'
        option robustness '3'
        option query_interval '2000'
        option query_response_interval '500'
        list ifname 'bat0'

config interface 'mesh_wan'
        option ifname 'br-wan'
        option auto '1'
        option proto 'gluon_mesh'
        option fixed_mtu '1'
        option transitive '1'

in

config interface 'wan'
        option auto '0'
        option ifname 'eth1'
        option peerdns '0'
        option type 'bridge'
        option proto 'dhcp'
        option multicast_querier '0'
        option macaddr '06:9d:76:1a:ed:c8'

...

config interface 'client'
        option type 'bridge'
        option macaddr '44:d9:e7:cd:64:1d'
        option proto 'dhcpv6'
        option reqprefix 'no'
        option peerdns '1'
        option sourcefilter '0'
        option robustness '3'
        option query_interval '2000'
        option query_response_interval '500'
        list ifname 'bat0'
        list ifname 'eth0'

config interface 'mesh_wan'
        option ifname 'br-wan'
        option auto '0'
        option proto 'gluon_mesh'
        option fixed_mtu '1'
        option transitive '1'

geändert werden. Für Menschen die es gewohnt sind, diffs zu lesen sei die Änderung hier nochmal zusammengefasst.

diff --git a/network.bk b/network
index e4025ff..8e87afe 100644
--- a/network.bk
+++ b/network
@@ -16,8 +16,8 @@ config interface 'wan6'
        option peerdns '0'
 
 config interface 'wan'
-       option ifname 'eth0'
-       option auto '1'
+       option auto '0'
+        option ifname 'eth1'
        option peerdns '0'
        option type 'bridge'
        option proto 'dhcp'
@@ -47,10 +47,11 @@ config interface 'client'
        option query_interval '2000'
        option query_response_interval '500'
        list ifname 'bat0'
+       list ifname 'eth0'
 
 config interface 'mesh_wan'
        option ifname 'br-wan'
-       option auto '1'
+       option auto '0'
        option proto 'gluon_mesh'
        option fixed_mtu '1'
        option transitive '1'

Details wie die MAC-Adresse weichen natürlich ab.

Als erstes kann man die aktuell verwendete fastd Verbindunseinstellung auslesen:

uci show fastd.mesh_vpn.method

Bei aktivierter Verschlüsselung sollte salsa2012 aktiviert sein:

fastd.mesh_vpn.method='salsa2012+umac'

Dann werden alle aktuellen VPN-Cipher-Einstellungen gelöscht:

uci del fastd.mesh_vpn.method

und null@l2tp hinzugefügt. Die alte, z.B. fastd.mesh_vpn.method='salsa2012+umac', muss am Ende eingefuegt werden, sodass es einen Fallback gibt:

uci add_list fastd.mesh_vpn.method=null@l2tp
uci add_list fastd.mesh_vpn.method=null
uci add_list fastd.mesh_vpn.method='salsa2012+umac'

Abschließend müssen die Änderungen noch bootfest gemacht werden und fastd neu gestartet werden 1):

uci commit fastd.mesh_vpn.method
/etc/init.d/fastd restart
    uci set wireless.radio0.disabled=1 
    uci commit wireless 
    wifi

Diese Konfiguration kann für einen reinen Uplink Node sinnvoll sein, wenn weitere FF-Router per Mesh on Lan angebunden sind.

uci -P /var/state show wireless
uci set wireless.client_radio0.disabled=1
uci commit wireless
wifi

Wäre denkbar für einen Node, der nur meshen soll, ohne dass Endgeräte unnötig zusätzliche airtime verbrauchen.

Eventuell Sinnvoll, um zwar den AP-Modus für Clients aktiv zu haben, das mesh aber per LAN zu machen und somit Airtime zu sparen.

    uci set wireless.mesh_radio0.disabled='1'
    uci commit wireless
    wifi

Wenn der Router Dualband, (2,4 und 5 Ghz) hat, dann folgende Befehle eingeben:

    uci set wireless.mesh_radio0.disabled='1'
    uci set wireless.mesh_radio1.disabled='1'
    uci commit wireless
    wifi

Diese Einstellung ist sinnvoll in Setups, bei denen viele Endgeräte und APs mit unterschiedlichen Kanälen auf engem Raum vorhanden sind und die Airtime entsprechend knapp ist. So wird die Verbindung zu einem Client mit weniger als 6 MBit/s getrennt und der Client hat dann im Optimalfall die Chance sich mit einem AP mit besserer Verbindungsqualität neu zu verbinden ((Thread im freifunk.net Forum

uci set wireless.radio0.supported_rates='6000 9000 12000 18000 24000 36000 48000 54000'
uci set wireless.radio0.basic_rate='6000 12000 18000 24000 36000 48000 54000'
uci set wireless.radio0.require_mode=g
uci commit wireless
wifi

Im Folgenden `$SSID` durch die gewünschte SSID und `$KEY` durch das Passwort ersetzen.

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="$SSID"
uci set wireless.wan_radio0.key="$KEY"
uci set wireless.wan_radio0.disabled=0
uci commit
wifi
uci set wireless.wan_radio0.disabled=1
uci commit
wifi

Über die SSH-Konsole könnt ihr auch die Firmware eures Routers aktualisieren. Der sicherste Weg ist über den Autoupdater (siehe: Autoupdater).

Ist der Weg über den Autoupdater nicht möglich, kann das Update auch manuell geladen und installiert werden. Wichtig ist, dass ihr die passende Firmware für euren Router nehmt, sonst habt ihr nach dem Update unter Umständen einen schicken neuen Briefbeschwerer im Layout eines Router. Hier im Beispiel wird ein TP-LINK TL-WR841ND Revision 9 auf die derzeit aktuellste Firmware vom 20.10.2014 geflashed. Eine Liste aller Firmware-Dateien findet ihr unter http://firmware.freifunk-stuttgart.de/gluon/stable/sysupgrade/.

Es empfiehlt sich nach dem Herunterladen die md5sum zu vergleichen!

cd /tmp/
wget http://firmware.freifunk-stuttgart.de/gluon/stable/sysupgrade/gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin
md5sum gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin
echo 3 > /proc/sys/vm/drop_caches
sysupgrade gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin

Nach dem Update führt euer Router einen Reboot durch. Alle Einstellungen bleiben beim Update erhalten, so dass er sofort wieder einsatzbereit ist.

Die aktuelle Sendeleistung kann so eingesehen werden

iwinfo wlan0 txpower

Die Sendeleistung kann folgendermaßen angepasst werden:

uci set wireless.radio0.txpower=8
uci commit
wifi
 uci set "gluon-setup-mode.@setup_mode[0].enabled=1"
 uci commit
 reboot
uci set wireless.radio0.channel=1

statt 1 eben das wählen was man haben will.

Soll der Kanal Updatefest sein, muss zusätzlich noch

uci set gluon.@wireless[0].preserve_channels=1

ausgeführt werden.

Um die Änderungen zu speichern und zu aktivieren muss noch folgendes ausgeführt werden:

uci commit
wifi
passwd -l root
passwd
SSH_KEY="dein öffentlicher SSH-Key"
touch /etc/dropbear/authorized_keys
sed -i "1i$SSH_KEY" /etc/dropbear/authorized_keys

Werden mehrere Router (bis auf den Namen!) gleich konfiguriert, kann dies auch per Skript erfolgen. Dieses wird erst lokal auf dem Rechner erstellt, dann per scp auf den Router geladen und dort ausgeführt.

meinRechner$ echo "echo bla bla blubb" > fooScript
meinRechner$ scp -6 ./fooScript root@[ipv6AdresseDesRouters]:/tmp/
 
Router# chmod +x /tmp/fooScript
Router# /tmp/fooScript
Diese Doku wurde teilweise von http://freifunk-moenchengladbach.de(2014/11/25 21:16) & von http://paderborn.freifunk.net (2015/03/21 00:36) übernommen, Herzlichen Dank!

config ssh


1)
ist man von außerhalb verbunden, bricht dadurch die SSH-Verbindung ab
  • anleitungen/howto_router-einstellungen-ueber-ssh-aendern.txt
  • Zuletzt geändert: vor 2 Monaten
  • von Wilhelm