Kurzanleitungen/Howtos

Firmeninfrastruktur an Heimarbeitsplätzen verfügbar machen

25.03.2020

Der folgende Artikel zeigt Wege auf, wie Sie die IT-Infrastruktur Ihrer Firma für Heimarbeitsplätze zugänglich machen können. So können Ihre Mitarbeiter von zuhause aus weiterarbeiten und werden schnell wieder produktiv bzw. bleiben es.

Ursprünglich wurden die autossh-basierte für Sie lizenzkostenfrei einsetzbare Tunnelsoftware und die dazugehörigen Debian-Pakete für interne Zwecke entwickelt, um Backups auf Servern abzulegen, die über eine dynamische IP an das Internet angebunden sind. In Zeiten des Covid-19/Coronavirus' mag diese Software auch für Sie interessant sein, um Heimarbeitsplätze an die interne IT-Infrastruktur Ihrer Firma anzubinden.

Sollten Sie Hilfe beim Installieren und Konfigurieren der Tunnelsoftware, Beratung rund um die Anbindung von Heimarbeitsplätzen, OpenSource oder Linux wünschen, so hilft Ihnen goos-habermann.de gern weiter. Zum Anfordern eines Angebotes oder Fragen verwenden Sie bitte das Kontaktformular.

I. Voraussetzungen

  1. Sie benötigen einen über das Internet erreichbaren Server, mit Debian oder Debian-basierter Distribution (z.B. Debian 9 oder 10, Ubuntu 16.04 oder 18.04), der als Proxy/Tunnelserver fungiert. Hierfür reicht ein "einfacher" V-Server, der aber über eine gute Netzanbindung verfügen sollte. Auch sollte das Transfervolumen unbegrenzt sein, da alle Daten, die in den Tunnel "hineingeschickt" werden, auf der anderen Seite wieder "herauskommen". Das Datenaufkommen am Proxy/Tunnelserver verdoppelt sich also.
  2. An jedem Ihrer Firmenstandorte wird ein weiterer Rechner (z.B. virtuelle Maschine, Raspberry Pi oder kleiner Server) vorrausgesetzt, der – als Konnektor – Ports Ihrer Firmenrechner über den Proxy verfügbar macht. Auf diesem sollte ebenfalls Debian oder eine Debian-basierte Distribution (z.B. Debian 9 oder 10, Ubuntu 16.04 oder 18.04, Raspbian) installiert sein.
  3. Je nach Art der weitergeleiteten Dienste und auf den Heimarbeitsplätzen eingesetzten Betriebssystemen kann dort ein zusätzlicher Konnektor benötigt werden. Sollte dort eine Linux-Distribution verwendet werden, dürfte – in den meisten Fällen – der Konnektor entfallen.

II. Verwendung der weitergeleiteten Ports

Die Verbindung zwischen Tunnelserver und den Heimarbeitsplätzen wird nicht durch die Tunnelsoftware geschützt. Daher sollten nur verschlüsselte und durch eine Authentifizierung gesicherte Protokolle über die Ports weitergeleitet werden, da ansonsten jeder, der die Adresse Ihrer Proxys kennt, Zugriff auf die Ports der Rechner Ihrer Standorte erlangen oder die Kommunikation belauschen kann. Die folgenden Anwendungsbeispiele zeigen Wege zum Sichern dieser Verbindungen auf.

Anwendungsbeispiel: SSH-Tunnel

Wir gehen davon aus, daß auf einem internen Firmenserver (interner Hostname "wawiserver") eine webbasierte Warenwirtschaftssoftware läuft, die im internen LAN über unverschlüsseltes HTTP (Port 80) erreichbar ist. Der Konnektor gibt ausschließlich seinen eigenen SSH-Server-Port (22) über den Proxyserver auf Port 9022 weiter.

Um nun gesichert auf die Warenwirtschaft zugreifen zu können, wird ein SSH-Tunnel aufgebaut, der vom Konnektor innerhalb Ihres Standortes bis zum Heimarbeitsplatz reicht. Wenn Sie folgende Zeile

ssh -p 9022 -o ServerAliveInterval=100 -f -N portforward@mein.proxy -L 8080:wawiserver:80
auf Ihrem Heimarbeitsplatzrechner ausführen, wird die Warenwirtschaft im Browser unter http://127.0.0.1:8080 verfügbar.

Anwendungsbeispiel: OpenVPN

An Ihrem Standort läuft auf dem Konnektor am internen Port 1194 ein OpenVPN-Server, den der Konnektor über den Tunnelserver am Port 2194 zugänglich macht. Nun können Sie von jedem Heimarbeitsplatz mit OpenVPN-Zugangssoftware (und den Zugangsdaten) über den Tunnelserver auf die Struktur Ihres internen Firmennetzes entsprechend der OpenVPN-Konfiguration zugreifen.

Anwendungsbeispiel: SFTP

Der Port 22 Ihres SFTP-Servers wird mittels des Konnektors über den Tunnelserver am Port 8022 zugänglich macht. Hierdurch können Sie von jedem Heimarbeitsplatz mit einem SFTP-Programm (und den Zugangsdaten) über den Tunnelserver auf den SFTP-Server zugreifen.

III. Proxy/Tunnelserver einrichten

Zuerst wird der Proxy/Tunnelserver eingerichtet, zu dem die Konnektoren später eine Verbindung aufbauen können. Loggen Sie sich als root-Benutzer auf dem über das Internet erreichbaren System ein, das Sie als Proxy/Tunnelserver verwenden möchten.

1. Tunnelsoftware auf dem Proxy/Tunnelserver installieren

Die Tunnelsoftware installieren Sie auf dem Proxy/Tunnelserver und dem Konnektor gleichermaßen mit:
wget https://goos-habermann.de/howtos/dt-autossh-portforward/Tunnel-install.sh -O - | bash

1.1 Server: Adminmail

In diesem Dialog legen Sie fest, an welche eMail-Adressen Software, die die dodger-tools verwendet, Administratornachrichten versendet. Wenn Sie nur die Tunnelsoftware verwenden möchten, können Sie die Eingabezeile leerlassen und einfach mit Return bestätigen.

Hinweis
Die dodger-tools sind ein Bündel aus diversen systemnahen Skripten zum Konfigurationsmanagement, Erstellen von Backups, Editieren von Dateien etc. Einige Funktionen aus den dodger-tools werden für die Tunnelsoftware benötigt und deshalb mitinstalliert.

1.2 Server: Tunnelserver-IP

Lassen Sie die Eingabezeile leer und bestätigen den Dialog einfach mit Return.

1.3 Server: Tunnelbenutzer

Belassen Sie den Namen bei der Vorgabe "portforward" und bestätigen Sie mit Return.

2. Tunnelsoftware auf dem Konnektor installieren

Auf allen Konnektoren innerhalb Ihrer Standorte wird dieselbe Tunnelsoftware, wie auf dem Proxy/Tunnelserver, installiert:
wget https://goos-habermann.de/howtos/dt-autossh-portforward/Tunnel-install.sh -O - | bash

2.1 Konnektor: Adminmail

In diesem Dialog legen Sie fest, an welche eMail-Adressen Software, die die dodger-tools verwendet, Administratornachrichten versendet. Wenn Sie nur die Tunnelsoftware verwenden möchten, können Sie die Eingabezeile leerlassen und einfach mit Return bestätigen.

Hinweis
Die dodger-tools sind ein Bündel aus diversen systemnahen Skripten zum Konfigurationsmanagement, Erstellen von Backups, Editieren von Dateien etc. Einige Funktionen aus den dodger-tools werden für die Tunnelsoftware benötigt und deshalb mitinstalliert.

2.2 Konnektor: Tunnelserver-IP

Geben Sie hier die IP oder einen auflösbaren Hostnamen (FQDN) zu Ihrem Proxy-Server an und bestätigen den Dialog mit Return.

Hinweis
Im Beispiel verwendet der Proxy-Server die IP-Adresse "192.168.1.158".

2.3 Konnektor: Tunnelbenutzer

Belassen Sie den Namen bei der Vorgabe "portforward" und bestätigen Sie mit Return.

Hinweis
Sollten Sie beim Tunnelserver einen anderen Benutzer gewählt haben, so müssen Sie diesen auch hier angeben.

2.4 Konnektor: SSH-Schlüssel

Markieren Sie den angezeigten (öffentlichen) SSH-Schlüssel Ihres Konnektors und kopieren ihn in die Zwischenablage.

3. Schlüsselaustausch

Loggen Sie sich als root-Benutzer (wieder) auf dem Tunnelserver ein, um dem Konnektor den schlüsselbasierten Zugriff auf den Tunnelserver zu ermöglichen.

3.1 Server: Schlüssel eintragen

Öffnen Sie die Datei authorized_keys mit dem Editor nano.

3.2 Server: Schlüssel einfügen

Fügen Sie nun den SSH-Schlüssel Ihres Konnektors aus der Zwischenablage im Editor ein.

3.3 Server: Speichern

Drücken Sie die Tasten Strg und x zum Speichern der Datei und Beenden des Editors. Bejahen Sie die Frage zum Speichern mit j und Return.

3.4 Server: Speichern

Bestätigen Sie den Dateinamen mit Return.

4. Portweiterleitungen konfigurieren

Der Tunnelserver und (mindestens) ein Konnektor sind jetzt installiert. Legen Sie nun noch die Ports von Rechnern innerhalb Ihrers Standortes fest, die durch den Tunnelserver über das Internet verfügbar gemacht werden sollen. Die Verwaltung der Portweiterleitungen geschieht auf dem jeweiligen Konnektor.

4.1 Konnektor: Konfiguration starten

Loggen Sie sich als root-Benutzer (wieder) auf dem Konnektor ein, den Sie konfigurieren möchten und starten das Skript vi-dt-autossh-portforward.

4.2 Konnektor: Regel definieren

Fügen Sie am Ende der Datei eine neue Zeile ein, die nach folgendem Schema aufgebaut ist:

<Ext-Port>:<Int-IP>:<Int-Port>

Erklärung
  • Ext-Port: Ist der über das Internet am Tunnelserver erreichbare Port, der einen Port eines Rechners an Ihrem Standort weitergeleitet.
  • Int-IP: Die IP oder Hostname eines Rechners am Standort.
  • Int-Port: Der dazugehörige Port des Rechners.
Im Bildschimfoto wird mit 9022:localhost:22 der SSH-Port (22) des Konnektors (localhost) über Port 9022 am Tunnelserver verfügbar gemacht.

Beispiel
Möchten Sie einen OpenVPN-Server mit der IP 192.168.1.100 und Port 1194 über den Tunnelserver am Port 2194 zugänglich machen, so würden Sie die folgende Zeile verwenden:

2194:192.168.1.100:1194

4.3 Konnektor: Regel speichern

Drücken Sie die Tasten Strg und x zum Speichern der Datei und Beenden des Editors. Bejahen Sie die Frage zum Speichern mit j und Return.

4.4 Konnektor: Regel speichern

Bestätigen Sie den Dateinamen mit Return.

4.5 Konnektor: Schlüssel bestätigen

Konfigurieren Sie zum ersten Mal eine Portweiterleitung, so werden Sie gefragt, ob der Konnektor Verbindung mit dem Tunnelserver aufnehmen soll.

Geben Sie hierzu yes ein und bestätigen mit Return.

Anschließend baut der Konnektor die Verbindung zum Tunnelserver auf und leitet die Ports weiter. Die Verbindung sollte nach einem Neustart des Konnektors oder nach Abreißen der Verbindung automatisch wiederhergestellt werden.

Hinweis
Über vi-dt-autossh-portforward können Sie jederzeit neue Portweiterleitungen hinzufügen, vorhandene löschen oder editieren.

5. Verbindungstests

Nach der Konfiguration sollten Sie testen, ob die weitergeleiteten Ports auch wirklich am Tunnelserver verfügbar sind

5.1 SSH auf Tunnelserver:9022

Im Beispiel besitzt der Proxy-Server die IP 192.168.1.158. Wird eine Verbindung zum Proxy-Server auf Port 9022 hergestellt, so meldet sich allerdings nicht der Tunnelserver, sondern der weitergeleitete SSH-Server. (Zu erkennen am Hostnamen sshtunnel-client).

5.2 SSH auf Tunnelserver:22

Wird eine Verbindung zum SSH-Port des Proxy-Servers hergestellt, so meldet sich hingegen der Tunnelserver selbst. (Zu erkennen am Hostnamen sshtunnel-server).

Fragen?

Möchten Sie die Infrastruktur (oder Teile von dieser) Ihre Firma für Heimarbeitsplätze zugänglich machen, haben Fragen zum Artikel oder den Dienstleistungen von goos-habermann.de? Dann schreiben Sie mir einfach über das Kontaktformular.

Mit freundlichen Grüßen,
Hauke Goos-Habermann

Achtung! Achtung! Die folgenden Anweisungen richten sich ausschließlich an fachkundige Personen. Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr! Die Anweisungen, Skripte, etc. sind ausschließlich für Lernzwecke auf Lernsystemen und nicht für Produktivumgebungen bestimmt!