30 April 2020

tmate - Effiziente Fernwartung und Datensouveränität

Gerade in der aktuellen Situation um COVID-19 ist eine funktionierende Fernwartungs- / Remotecontrol-Lösung enorm wichtig.

Nicht nur seit Bekanntwerden von massiven Sicherheitsproblemen mehrerer bekannter Anbieter ist klar, dass hier ein breiter Angriffsvektor besteht.

Im Zuge der aktuellen Situation wird außerdem deutlich, dass mit Ressourcen (z.B. Bandbreite) im Zweifel besser sparsam umgegangen werden sollte und es sich lohnen kann, kritische Infrastruktur selbst zu betreiben.

Darum betreiben wir bei credativ für uns selbst, unsere Kunden und die Nutzer der von uns entwickelten, freien Datenbank-Software-Appliance elephant-shed ein tmate-Relay. Was das ist, erklären wir euch in diesem Artikel.

Was ist tmate?

tmate ist ein Fork des bekannten Terminalmultiplexers tmux, ergänzt durch zusätzliche Remotecontrolfunktionen.

Die Software ermöglicht es, von einem Linux-System aus die aktuelle Shell mit anderen zu teilen, sowohl lesend, als auch schreibend. So ist eine einfache Fernwartung im sicheren Vieraugenprinzip möglich. Sobald der Host das lokale tmate beendet, endet der Zugriff für alle Teilnehmer.

Vorteile

  • Niedrige Bandbreitenanforderung, es werden nur die Zeichen des Terminals übertragen (Kompression)
  • Geringe Latenz, dadurch u.A. gemeinsames Tippen möglich
  • Hohe Sicherheit durch Verschlüsselung und Vieraugenprinzip
  • Teilnahme über SSH oder Browser möglich
  • Ausgehende Verbindung auf ein Relay, daher auch hinter NAT / Firewall verwendbar

Nachteile

  • Keine Übertragung von Bildern / GUIs
  • Der Betreiber des Relays kann Verbindungen beenden oder kapern

Um die Software (betriebs)sicher für kritische Anwendungen verwenden zu können, ist es sinnvoll ein eigenes Relay zu betreiben. So ist man für die Fernwartung nicht auf fremde Dienstleister oder deren Infrastruktur angewiesen.

Installation

tmate ist auf allen gängigen Linux-Distributionen paketiert. SSH-Client und Browser sollten auf allen anderen Plattformen zur Verfügung stehen.

Debian / Ubuntu:

apt install tmate

CentOS:

yum install tmate

credativ-Relay

Sind Sie Kunde der credativ GmbH, oder möchten aus anderen Gründen das credativ-Relay verwenden? Nutzen Sie einfach die von uns bereitgestellte Konfiguration. Dazu müssen Sie nur die tmate.conf herunterladen und unter ~/.tmate.conf speichern.

Für Debian, Ubuntu, CentOS und RHEL halten wir alternativ auch entsprechende, fertige Pakete bereit, um sowohl die Software als auch die Konfiguration aktuell zu halten. Die Pakete finden Sie in den elephant-shed-Repositories.

# Use credativ repo, packages.credativ.com
echo "deb https://packages.credativ.com/public/postgresql/ stretch-stable main" | sudo tee -a /etc/apt/sources.list.d/elephant-shed.list  
curl https://packages.credativ.com/public/postgresql/aptly.key | sudo apt-key add -

# Update
apt update

# Install tmate with credativ config 
apt install elephant-shed-tmate

Verwendung

tmate starten

$ tmate

Anzeigen der Verbindungsinformationen

$ tmate show-messages                                                                                                               Di 21 Apr 2020 13:44:28 CEST
Tue Apr 21 13:43:27 2020 [tmate] Connecting to tmate.credativ.com...
Tue Apr 21 13:43:28 2020 [tmate] Note: clear your terminal before sharing readonly access
Tue Apr 21 13:43:28 2020 [tmate] ssh session read only: ssh -p10022 ro-klCtlf7VeNfdoiDa5T6DfdsYB@tmate.credativ.com
Tue Apr 21 13:43:28 2020 [tmate] ssh session: ssh -p10022 jqAFSZpJU1558uKHACKe2S2i8@tmate.credativ.com

Gibt man nun jemandem den ssh session read only Befehl, so wird die aktuelle Shell mit dieser Person lesend geteilt.
Der Empfänger sieht alle Ein- und Ausgaben in Echtzeit, kann jedoch keine Befehle senden.
Mit dem Befehl hinter ssh session kann jeder Nutzer auch eigenständig Tippen und Befehle senden.

tmate Shell

Wenn gewünscht, kann das Relay auch einen Webclient bereitstellen, der den Zugriff über den Browser ermöglicht.
Hier zeigt der Befehl tmate show-messages dann auch die beiden URLs für Readonly und Read-Write-Zugriff an.

$ tmate show-messages
Tue Apr 21 14:49:33 2020 [tmate] Connecting to ssh.tmate.io...
Tue Apr 21 14:49:33 2020 [tmate] Note: clear your terminal before sharing readonly access
Tue Apr 21 14:49:33 2020 [tmate] web session read only: https://tmate.io/t/ro-S7kR7yGGzmn8fnyWJJ3gvek6z
Tue Apr 21 14:49:33 2020 [tmate] ssh session read only: ssh ro-S7kR7yGGzmn8fnyWJJ3gvek6z@lon1.tmate.io
Tue Apr 21 14:49:33 2020 [tmate] web session: https://tmate.io/t/quZcDHJNtjbYnCrJtuS7XhnZp
Tue Apr 21 14:49:33 2020 [tmate] ssh session: ssh quZcDHJNtjbYnCrJtuS7XhnZp@lon1.tmate.io

tmate Web

Geht es noch einfacher?

tmate ist speziell dafür gedacht, Dritten temporär Zugriff zu gewähren und dabei auch NAT und Firewalls zu tunneln.

Haben alle Nutzer bereits Zugriff auf ein gemeinsames System, sind die tmate-Erweiterungen nicht notwendig, hier kann einfach tmux verwendet werden.
Die Kommunikation erfolgt dann, ohne Verschlüsselung oder Zugriffskontrollen über ein lokales Socket.

Host

tmux new-session -s my_cool_pairprogramming_session

Jeder weitere Teilnehmer

tmux attach-session -t my_cool_pairprogramming_session

Unterstützung

Falls Sie Unterstützung bei der Verwendung von tmate wünschen, oder gerne ihr eigenes Relay betreiben möchten, steht Ihnen unser Open Source Support Center gerne zur Verfügung – Falls gewünscht auch 24 Stunden am Tag, an 365 Tagen im Jahr.

Kategorien: HowTos
Tags: credativ Elephant Shed Fernwartung Kommunikation Remote tmate

über den Autor

Alexander Sosna

Projektleiter

zur Person

Alexander Sosna arbeitet seit 2014 im credativ Datenbank-Team und hat dort die organisatorische Leitung. Außerdem nimmt er die Aufgabe des teamübergreifenden Projektleiters wahr. Während des Wintersemesters erfüllt er zusätzlich einen Lehrauftrag für IT-Security an der Hochschule Niederrhein.

Beiträge ansehen


Beitrag teilen: