Fernwartung von Virtualisierungs-Terminalservern via Smartphone und überwachter SSH-Verbindung
(cf. auch Zeitserverabfrage und SMPT/IMAP hinter Firewall/Proxy)
Dieser Artikel beschreibt, wie mit einfachen Bordmitteln
- Linux-Terminalserver für virtuelle Maschinen
- grundlegend erstellt und
- mit automatisch überwachter, mehrfach getunnelter SSH-Verbindung
- auch über Firewall und
- Proxy-Grenzen hinweg
- sowohl simultan im Terminal als auch
- via Smartphone verwaltet werden koennen
Voraussetzungen
- Die Programme/Module/Pakete
- proxytunnel (sofern der fernzuwartende Server hinter einem Proxy und einer Firewall steht)
- autossh (für die Überwachung des vom entfernten Server ausgehenden Primärtunnels)
- sshfs (ssh-Filesystem, um entfernte Dateisysteme mounten zu können)
- ssh
- cssh (Cluster-Ssh)
- VNC-Server (falls GUI-Zugriff gewünscht)
- VMware Workstation (sofern der Server als scriptgesteuerter Virtualisierungs-Server dienen soll)
Architektur
Unter der Annahme, der fernzuwartende Server befinde sich sowohl hinter Proxy als auch Firewall, initiiert dieser einen Ssh-Primärtunnel auf ein
außenliegendes Ssh-Gateway, über welchen eingehende ssh- und vnc-Verbindungen sicher getunnelt werden. sshd_config
ist selbstredend jeweils so anzupassen, dass ssh-Verbindungen nicht für root und nur mit Pubkey-Verfahren möglich sind. Lediglich der Primärtunnel wird von root des Zielrechners (jedoch als normaler user des Ssh-Gateways !) aufgebaut. Eingehende Verbindungen des Zielrechners sind nur für normale user desselben erlaubt.
Zum Terminalserver wird der Zielrechner durch den VNC-Server. Dieser impliziert nämlich unter Linux im Gegensatz zu Windows/Mac die Vergabe eines neuen Desktops, während bei anderen Betriebssystemen lediglich der "vordere" Desktop freigegeben wird ! Virtuelle Maschinen können damit auf einem oder mehreren "rückwärtigen" VNC-Desktop(s) gestartet werden. Anwender verbinden sich auf diese ebenfalls Remote (per RDP oder VNC) und der Zielrechner wird per ssh oder vnc administriert.
Wird VMware Workstation als Virtualisierungsprodukt verwendet, können fast alle Verwaltungsvorgänge der virtuellen Maschinen (i.e. Start, Stop, Dateiaustausch, Batch-Jobs in der VM) sehr einfach über den Linux-Host gescripted werden. Cf. hierzu die Ausgabe von vmrun -h
Infolge der Kommandozeilenautomatisierung (bei mir z.B. ein einziges Wrapper-Script mit der Syntax myvm -<parameter> <erste VM>:<letzte VM>) können auch bei schlechter Mobilfunkverbindung z.B. in Supportfällen sehr komplexe Kommandos via Smartphone auf diesen Servern abgesetzt oder von einer Workstation beliebig viele Server simultan per cssh ferngesteuert werden.

Synopse
- Zielrechner
- Auto-SSH wird in /etc/init/autossh.conf als (bei Abbruch jeweils neu gestarteter Daemon) konfiguriert
- Cave: Auch autossh kann abbrechen und muss daher überwacht werden !
- Ssh wird im Zusammenspiel mit proxytunnel in /root/.ssh/config so konfiguriert, dass ausgehende ssh-Verbindungen eines Primärtunnels über Port 443 und Proxy auf das Ssh-Gateway möglich sind
- Der Primärtunnel fordert vom Ssh-Gateway eine Server2Client-Tunnelung für ssh und vnc an (effektive Richtung: Gateway -> Zielrechner)
- Auf dem Zielrechner lauschen der Ssh-Server auf Port 22 und der VNC-Server auf Port 5901 auf getunnelte eingehende Verbindungen
- Ssh-Gateway
- Das Linux-Gateway benötigt lediglich einen Ssh-Server als "Empfänger" des Primärtunnels. Annahme hier ist, dass der Gateway-Ssh-Server entweder
auf dem für Ssl im Zielrechnernetz freigegebnen Port 443 lauscht oder Port 443 über einen Nat-Router an Port 22 auf dem Gateway "geforwarded" wird
- Die vom Smartphone ausgehende Ssh-Verbindung gilt nicht dem Ssh-Server des Gatways, sondern wird über die vom Zielrechner
mit dessen Primärtunnelaufabau angeforderte Server2Client-Verbindung für Ssh auf ebendiesem Port (23) zu Port 22 des Zielrechners durchgeschleift.
- Smartphone
- Vom Smartphone werden ssh- und vnc-Verbindungen über die via Primärtunnel durchgeschleiften Ssh-Gateway-Ports 23 und 5902 direkt zum Zielrechner geleitet.

/root/.ssh/config

/etc/init/autossh.conf

Smartphone-Fernwartung



Impressum und Datenschutzerklärung