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
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.
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.
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
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:
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:
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.
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!