In diesem Artikel wird ein Konzept vorgestellt, wie sich ein Linux Server im Heimnetz auch von extern erreichen lässt. Diese Methode funktioniert sowohl für DS-Lite Anschlüsse, als auch für Netzwerke, wo kein Protforwarding im Router möglich ist.

Wie in dem Netzplan zu sehen, wird ein externer Server im Rechenzentrum mit einer IPv4 Adresse benötigt, welcher über einen Reverse-SSH Tunnel die ankommenden Anfragen an unseren Server im Heimnetz (in diesem Fall ein RaspberryPi) weiterleitet.
Dieser Aufbau hat sowohl Vor- als auch Nachteile im Vergleich zu z.B. einem 6tunnel:
Vorbereitung V-Server (IONOS)
Als „Proxy-Server“ wird (in diesem Beispiel bei IONOS) ein V-Server mit einer Öffentlichen IPv4 und optional IPv6 Adresse benötigt. Da der Server nur den Datenverkehr weiterleitet, reicht hier in den meisten Fällen die einfachste Ausstattung. Eine günstige Variante ist von IONOS der VPS-S mit 512MB Ram, einem CPU Kern und 10GB SSD. Dieses Paket kostet ~2€ (Stand Juli. 2022).
https://www.ionos.de/server/vps
Einrichtung des V-Server
Um mit der Einrichtung weiter zu machen, müssen wir uns auf den V-Server via SSH einloggen und einige Einstellungen anpassen.
Für den SSH-Zugriff via Windows kann ich PuTTY, oder MobaXterm empfehlen. Über Linux reicht die Konsole:
ssh [username]@[ip-Adresse] -p 22
Das Kennwort für den Server ist im Server-Pane unter „Initial-Passwort“ zu finden.
Dafür klicken wir auf den Server, dann erscheint die Übersicht. 2 => die IP-Adresse | 3 => den Nutzername | 4 => das Benutzerpassword (sollte geändert werden!). Mit diesen Informationen können wir uns via SSH einloggen:
apt update && apt dist-upgrade
Damit der Server immer aktuell gehalten wird und Sicherheitsupdates automatisch einspielt, installieren wir noch Unattendet Upgrades mit: apt install unattended-upgrades -y
Für einen automatischen Neustart nach Kernel-Updatews ist noch das Paket zu empfehlen: apt install apt-config-auto-update
Eine ausführliche Anleitung zu dem Thema ist unter: https://www.linuxcapable.com/how-to-setup-configure-unattended-upgrades-on-ubuntu-20-04/ zu finden.
SSH Einrichtung und Absicherung
Für zusätzliche Sicherheit ändern wir den Standard SSH-Port 22 auf einen beliebigen freien! Port zwischen 1 und 65.535 z.B. 3438.
Dafür geben wir in der Konsole folgendes ein: nano /etc/ssh/sshd_config
In der Konfigurationsdatei lässt sich der Port 22 auf unseren 3438 ändern (falls die Zeile auskommentiert ist, einfach „#Port 22“ zu „Port 3438“ ändern. Zudem müssen wir „GatewayPorts yes“ erlauben. Dadurch wird das tunneln von Datenverkehr möglich.
Die Änderungen werden nach einem Neustart wirksam. Doch bevor wir den v-Server Neustarten, muss noch das Weiterleiten von Netzwerkverkehr intern erlaubt werden.
nano /etc/sysctl.conf
ssh root@[ip-Adresse] -p 3843
Verbindungsaufbau vom Heimserver zum "Proxy-Server" mit autossh
Um eine automatische Verbindung vom Heimserver zum V-Server aufbauen zu können, muss für den vorgesehenen Benutzer ein SSH-Schlüssel generiert werden und auf dem V-Server hinterlegt. Damit ist eine Passwortlose Authentifizierung möglich.
Schlüsselerzeugung (Heimserver)
ssh-keygen
Bei Passwort einfach leer lassen und mit Enter bestätigen.
Der Public Schlüssel muss anschließend vom Heimserver auf den V-Server übertragen werden mit:
ssh-copy-id root@[ionos ip] -p 3834
Bei dem Login wird noch mal das Kennwort des V-Server abgefragt und wir sollten nach dem einloggen die Kommandozeile des V-Servers sehen. Jetzt loggen wir uns wieder aus mit exit und verbinden uns vom Heimserver erneut zum V-Server mit ssh root@[ionos ip] -p 3834. Hat alles geklappt, kommen wir ohne erneute Passwortabfrage auf den V-Server.