Inhalt
Fernwartung ohne Firewall-Eingriffe
Für den Einsatz meines APRS-IGates oben auf einem Berg sollte ich noch eine Möglichkeit zur Fernwartung einbauen, sonst wird das zu einer sehr sportlichen Angelegenheit, wenn man immer hochfahren oder -rennen müsste. Das Internet dort oben wird von einer Firma verwaltet, die nicht gratis arbeitet und deshalb möglichst nicht beigezogen werden sollte. Es sollte also ohne Einrichtung eines Portforwarding gehen, der Fernzugriff mit SSH/VNC/RDP über einen offenen Port entfällt alleine schon deswegen.
Zwei Lösungen dafür stelle ich hier vor:
- Variante a: Zugriff über weaved/remot3.it (konzeptionell wie Teamviewer)
- Variante b: Zugriff Teamviewer Host Linux
Bei b) ist zu bemerken, dass bisher nur die Host Komponente auf einem RPi lauffähig ist (ist auch erst seit kurzer Zeit verfügbar). Dies wäre das 1:1 Analogon zum Teamviewer unter Windows. Die Installation scheint noch etwas hakelig zu sein. Anscheinend lässt sich TV Host ohne grafische Oberfläche nutzen, auch wenn dies eine Voraussetzung laut Hersteller ist.
Für Variante a) kann ich auf einen alten Artikel von mir zurückkommen. Sie hat etwas bestechendes:
- Publikation von beliebigen Portweiterleitungen, nicht nur zum Fernzugriff
- Inventarisierung einer Flotte von Devices (man denke an einen Schwarm verteilter Messsonden jeglicher Art z.B. Wetterstationen)
- Ausführung von Scripts direkt in der Inventarkonsole (ohne Login auf dem Device), auch für beliebig viele Devices
In der Gratis-Version besteht eine Limitierung auf 30 Minuten Zugriff. Danach muss eine neue Session (mit neuen Angaben) aufgebaut werden. Das ist i.d.R. zu verkraften.
Variante a: Weaved / Remot3.it
Den Service Weaved oder neu remot3.it habe ich schon genutzt. Die Installation erfolgt nach den Links unten am Blog; dort gibt es sogar Videos.
Installation
Hat man bereits ein Weaved Konto, kann man dies noch nutzen. Der Agent auf den Endpunkten wird man neu installieren müssen, dann erscheint das „Device“ dann auch wieder bei remot3.it (im Prinzip ist das einfach eine neue Installation).
sudo apt-get update sudo apt-get install weavedconnectd sudo weavedinstaller
Man befolgt den Wizard befolgen und richtet SSH Port 22 ein. Der Fernzugriff beginnt bei https://www.remot3.it, wo man in der Konsole auf das Device tippt und dann die Angaben für SSH bekommt. Diese kopiert man in sein putty und es klappt tadellos. Bei jedem Zugriff respektive nach 30 Minuten erhält man einen neuen Port zugewiesen.
Nach diesen Schritten ist der Pi mit seinen Diensten (SSH) in der Konsole zu sehen:
Klicke auf das Device und auf den gelben Balken, kopiere die Angaben ins putty:
Und voilà, man ist drin.
Scripte remote ausführen
Jetzt führen wir ein Demo Shell script aus, das die Registration auffrischt (Siehe Video). Das Script ist schon im Storage vorhanden.
Mann sieht im Pi Terminal einige Fehler, bis das Script wirklich heruntergekommen ist und ausgeführt werden kann.
Die Ausführung dauert eine Weile.
Schliesslich: es hat geklappt, aber nichts interessantes ist zu sehen.
Von http://forum.weaved.com/t/sample-demo-script-for-raspberry-pi-bulk-management/1033 hole ich ein anderes Demo-Script, lade es hoch in remot3.it und führe es aus.
Jetzt geschieht etwas mehr: das Script meldet 4 Daten noch (IP Adressen, Version und Laufzeit).
Fazit
- Funktioniert bisher tadellos für den Fernzugriff
- es können wie gewohnt mehrere virtuelle Terminals geöffnet werden
- die Scripte sind eine sehr spannende Sache, hakeln aber noch.
- 30 Minuten Einschränkung
Links:
- http://forum.weaved.com/t/how-to-get-started-with-remot3-it-for-pi/1029
- http://forum.weaved.com/t/upgrade-your-pi-to-remot3-it-from-weaved/1154
- http://forum.weaved.com/t/upload-and-run-a-shell-script-across-multiple-pi/1030
OpenVPN und Remot3.it
SSH reicht völlig für die Verwaltung aus. Für spezielle Anforderungen könnte man versuchen, eine (Open-) VPN-Verbindung über weaved einzurichten. Damit hätte man in einem Tunnel alles enthalten und würde nicht mehr an die Limite von 5 Services der remot3.it Gratisversion anstossen. Für OpenVPN gibt es angepasste Installationsscripte für den RPI wie das hier: http://www.pivpn.io/
curl -L https://install.pivpn.io | bash
Beschreibungen dazu:
- https://blog.doenselmann.com/raspberry-pi-als-openvpn-server/
- https://www.sitepoint.com/setting-up-a-home-vpn-using-your-raspberry-pi/
So eine Verbindung *könnte* auch durch den Broker hindurch funktionieren (so wie man auch eine Webseite publizieren kann).
Da mir SSH völlig reicht, habe ich das nicht weiterverfolgt.
Variante b: Teamviewer Host für Linux
Man installiere nach dieser Anleitung und gut ist. Nicht ganz…zuerst werden ca. 50MB Pakete noch zusätzlich heruntergeladen, die knapp 200MB Disk-Platz belegen. Es wird leider eine ganze X Bestandteile installiert.
- sudo apt-get update && sudo apt-get dist-upgrade
- wget http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
- sudo dpkg -i teamviewer-host_armhf.deb
- sudo apt-get -f install
Dann die Konfiguration
- teamviewer setup nicht ausführen, wir wollen keine Anmeldung an einem Teanviewer Konto machen
- teamviewer status – geht nicht ohne GUI, abbrechen
- sudo teamviewer info – zeigt ID an
- Passwort setzen, zwischen 8 und 12 Zeichen lang. Enthält es Sonderzeichen, sind single quotes ‚ rundherum nötig.
sudo teamviewer passwd <PASSWORD> - Eine Liste aller Befehler gibt teamviewer help aus. Bei Problemen kann ein Restart eingeleitet werden: teamviewer daemon restart.
Erfahrungen
- der Zugrif klappt.
- Man erhält das eine und echte Terminal (nicht ein virtuelles), also genau das, was man an einem angeschlossenen Monitor sieht
- der Bildschirm ist sehr klein und kann nicht gezoomt werden
- ich habe es mehrmals und reproduzierbar geschafft, den Pi abzuschiessen d.h. in einen nicht mehr ansprechbaren Zustand zu bringen. Es reichte aus, ein paar Zeilen harmlosen Code einzutippen.
Fazit
Es kann sein, dass Teamviewer noch nicht korrekt konfiguriert ist – aber in diesem Zustand schlichtweg gefährlich und unbrauchbar.
Weitere Infos