Aus Linux-Magazin 08/2018

Aus dem Alltag eines Sysadmin: Reverse-SSH-Tunnel und Autossh

Abbildung 1: Charlys Raspberry-Pi-Server zeichnet mit RRD Tool die Wetterstationsdaten auf.

Charly Kühnast macht diesmal auf ein weithin unbekanntes Wetterphänomen aufmerksam: Die Instabilität selten benutzter Tunnel, die zu einem Himbeertörtchen führen. Wem die Problematik seltsam vorkommt, wird wohl seine Kolumne lesen müssen.

Umweltdaten aufzeichnen ist eines meiner Hobbys, über meinen Feinstaubsensor [1] habe ich schon berichtet. Zudem nenne ich eine kleine Wetterstation mein Eigen: die populäre WH1080, die unter Namen wie Fine Offset, Nextrend, Froggit oder TFA Nexus vertrieben wird. Sie umfasst diverse externe Sensoren sowie eine Basisstation für drinnen.

Aus dem USB-Port der Basis lasse ich die Messdaten laufend heraussaugen – jede Linux-Maschine wäre dazu fähig, mein betagter Raspberry 2B aber ist genau passend. Er schreibt die Daten mit RRD Tool in eine Round-Robin-Datenbank und zaubert bunte Graphen für einen Webserver (Abbildung 1.)

Um die Daten auch ins Web zu bringen, muss ich mir etwas einfallen lassen. Mein Internetanbieter setzt auf Dual Stack Lite [2] und bietet fixe IPs nicht mal gegen Aufpreis an. Gegen dynamische DNS-Dienste hege ich eine Abneigung.

Ein Reverse-SSH-Tunnel soll’s richten. Dabei baut der Raspberry Pi von innen durchs NAT eine Verbindung zu einem Serverchen draußen auf, das ich für wenig Geld gemietet habe (Leistung spielt keine Rolle, es geht um eine fixe IP-Adresse). Diese SSH-Verbindung stellt einen direkten Tunnel zwischen Port 80 des Webservers und Port 80 des Raspberry Pi her. Als Proof of Concept reicht das, später baue ich es mit einem Zertifikat von Let’s Encrypt auf HTTPS um.

Die Syntax für den Tunnelbau ist einfach. Auf dem Raspberry Pi gebe ich ein:

ssh -R Webserver:80:localhost:80User@Webserver

Der Tunnel baut sich auf, ich surfe den Webserver an und bekomme – »Connection refused«. Nanu?! Nach fünf Minuten in der Suchmaschine meines geringsten Misstrauens erfahre ich: Auf dem Server muss ich in die »/etc/ssh/sshd_config« die Zeile »GatewayPorts clientspecified« einfügen. Ohne sie wird der Port nur an Localhost gebunden. Nun klappt es.

Zu wenig Rummel im Tunnel

Leider baut SSH Verbindungen nach einer Zeit der Tatenlosigkeit wieder ab; und da mein Wetterserver nicht so populär wie der vom Deutschen Wetterdienst ist, passiert das recht bald. Die Timeouts kann ich zwar einstellen, aber früher oder später reißt der Tunnel immer ab. Und er baut sich nicht wieder auf. Diesen Missstand zu beseitigen gelingt mir mit Autossh [3]. Das Tool überwacht die Verbindung und startet zertrümmerte Tunnel neu. Die Syntax lautet:

autossh -M 9999 -N -R Webserver:80:localhost:80 User@Webserver

Hinter »-M« verbirgt sich die Monitoring-Verbindung. Die Portnummer habe ich willkürlich gewählt, sie und die nächste, also 10?000, müssen frei sein.

Achtung: Die Maschine, in meinem Fall der Raspberry Pi, darf nicht zugleich Zugriff auf das interne LAN haben. Denn wenn ein Angreifer sie übernehmen würde, bekäme er das gesamte Heimnetz auf dem Silbertablett. Bei mir hängt der Pi an speziellen DMZ-Ports der Firewall, die ihn vom LAN isoliert. Also mal sehen: 21 Grad – nix wie raus in den Garten und nachsehen, ob der Bewässerungs-Raspi seinen Job ordentlich macht.

Infos

  1. Charly Kühnast, “Aus dem Alltag eines Sysadmin: Sparkfun”: Linux-Magazin 01/17, S. 55, https://www.linux-magazin.de/ausgaben/2017/01/einfuehrung/
  2. Dual Stack/Dual Stack Lite: http://www.ipv6-portal.de/glossar/dual-stack.html
  3. Autossh: http://www.harding.motd.ca/autossh/

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Michael K
5 Jahre her

wie automatisiert man den start von autossh am besten ? cronjob, systemd oder ein autologin script für die console ?

Nach oben