= Gluon Administration und Entwicklung = {i} [[Gluon/Admin/Mobil|Administration von Mobilgeräten aus]] === Was läuft hier und wie verwalte ich das === Aktuelle Version, Gerät, etc abfragen via SSH {{{ gluon-info }}} Für Webinterface außerhalb der Config-Mode (d.h. im Betrieb) ist folgender SSH Befehl hilfreich: {{{ ssh root@KNOTEN -L 12345:localhost:81 }}} Unter http://localhost:12345 kann der Knoten dann verwaltet werden. WICHTIG: entweder via ssh `uci commit` für speichern bzw. `gluon-reconfigure && gluon-reload` für Übernehmen oder `speichern & neustarten` im Wizard anwählen, sonst wird nichts gespeichert/angewendet {i} Der Login zum Webinterface im Betrieb ist ausschließlich über SSH-Tunnel möglich. Dies verbessert die Sicherheit des Netzes und trägt dazu bei das z.B. die Rechte einzelner Personen ordentlich einkassiert werden können ohne globale Passwort-Änderungen. ==== Liste der vorinstallieren SSH-keys ==== {{{ -- mkg20001 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBBEhZ7sLQCNZXBunHMxEDS2Niy3wpnHgUPDBCNeKew mkg20001@gmail.com', -- gabor 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOJQSyzxAt5NJ3+IhwI0+Qvg0s4zofVJjizulhuwcSZo gabor@g', -- av 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILx3bNdCoR8CmDS30bGP+/QaC/3P4XfZUz6Kt5poDfAS av', -- reinisch 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA53/y7tolRs/+hySECf4rfUYrs7FIzh6qBhmUM/IADLYm/NEwHTrWp+zXBs6xYXTKkgTmjDurA8Knl+ow/BCETS5vCgfhNtSb1O9YO40+8NEF0fSPjyNcMXkJTy+4Lvaq3kwWf8BkD6s+8rxJPZJpPXg7UDm8PXnL71BwTVuCEfI3WQlGdXpbjbh6C1FDLUleWi3LmWJvMLow0gwAUvpEF6wJSkmuHTxvs4t8EYDjlcQwqfPnqRqcpIb9rgNGmWWP+E1BJA9o41IzetSh2jDCnPAjTqOw5FWcFY9MKNh9y/AygryVvCsWval17ctz/WXRM+26QZuZaje7lAnsuedsUw== w@0032 w@0037', }}} === Was machen meine Pakete === ==== Teil 1: War es die Firewall? ==== Firewall debuggen Interessante Zonen: * mesh (alles was mit mesh zu tun hat, außer LAN mesh) * wired_mesh (Nur LAN mesh) * loc_client (Client AP) Zone Debuggen {{{ uci set firewall.ZONE.log=1 uci set firewall.ZONE.log_limit=10/second uci commit service firewall reload }}} Dann `logread -f` und Spaß haben ==== Teil 2: Was zur Hölle? (Wireshark muss ran) ==== Die Pakete können auch per Wireshark angezapft werden, tcpdump ist vorinstalliert Anzapfen geht via sshdump Adapter in Wireshark (dazu in der liste unten das Zahnrad neben dem Adapter anwählen) Interface bestenfalls any, zum Filtern macht es Sinn `!olsrd && !openvpn` zu benutzen, um Noise zu filtern WICHTIG: Wenn der zugriff auf die Node über das mesh selbst erfolgt, ist eventuelle Rückkopplung durch mesh Traffic möglich. Der "not (port 22)" filter fängt das idR, aber bei mesh VPN wirds kritisch. === Was macht mein OLSR === ==== Nachbarn auflisten ==== {{{ olsrd-cli olsr1 neigh olsrd-cli olsr2 neigh }}} ==== Daten abfragen ==== {{{ olsrd-cli olsr1 nodeinfo all olsrd-cli olsr2 nodeinfo json # bzw olsrd-cli olsr2 nodeinfo raw help }}} === Performance === Performance zwischen zwei Nodes testen ===== Server ===== {{{ iptables -I INPUT -p tcp -m tcp --dport 5201 -j ACCEPT ip6tables -I INPUT -p tcp -m tcp --dport 5201 -j ACCEPT iperf3 -s }}} ===== Client ===== {{{ iperf3 -c IP }}} === ManMan Sync === manman-sync übernimmt die interface ips die im ManMan angegeben sind Abgerufen werden diese vom Knoten jede Stunde (jeweils zu zufälliger, gleichbleibender Minute). Auf ManApi wird die Info ebenfalls für eine Stunde gecached Folgendes Namensschema wird verwendet, um ein ManMan Interface in ein Gluon Interface umzuwandeln {{{ wifi -> mesh_radio0 tunnel -> mesh_vpn wan -> mesh_uplink lan -> mesh_other * (z.B. radio1) -> mesh_* *_* (z.B. ibss_radio0) -> *_* }}} In Gluon wird die Wi-Fi-IP für 802.11s verwendet Das Setzen einer IP für IBSS ist dennoch möglich, in dem das Interface ibss_radio0 genannt wird Ungültige Interfacenamen werden in gluon-static-ip config geworfen und bleiben dort für immer (oder bis jemand sie aufräumt), sind aber effektiv wirkungslos WICHTIG: aktuell gibt es noch kein Rollback Support. d.h. kaputtmachen ist leicht. Das wird in Zukunft dann besser gemacht. === gdb === Was macht mein C code? * in targets/x86-64 'gdb' und 'gdbserver' ergänzen (nicht commiten, nur lokal) * x86-64 qemu debug bauen, irgendwo starten * make GLUON_DEBUG=1 GLUON_TARGET=x86-64 -j12 * In /etc/config/firewall GDB durch die firewall lassen: {{{ config rule 'allow_gdb' option name 'Allow GDB' option src '*' option proto 'tcp' option dest_port '3344' option target 'ACCEPT' }}} * GDBServer starten: {{{ gdbserver --attach 0.0.0.0:3344 PID }}} * Lokal dann mit gdb oder pwndbg verbinden {{{ target remote :3344 }}} ---- CategoryDocumentation