Feste IPv4 trotz DS-Lite Anschluss mit SSH Tunnel

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.

Netzwerkplan zum Veranschaulichen des Ziel Aufbaus
Netzwerkplan für den SSH-Tunnel

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

 

V Server Angebot von IONOS
V-Server Pakete von IONOS
 
Nach dem Kauf des Paketes lässt sich der Server über das Panel unter „Server & Cloud“ verwalten:
 
IONOS Panel
IONOS Panel
 
Die Einrichtung des Server kann bis zu 10Minuten dauern, also nicht wundern, wenn am Anfang hier noch keine öffentliche IP-Adresse verfügbar ist.
 
Server Panel Übersicht
V-Server Übersicht
 
Statusseite Öffentliche IP Adresse
Netzwerkverwaltung des V-Server
 
Der aktuelle Status der IP-Vergabe kann unter >Netzwerk > Öffentliche IP > Status verfolgt werden. Zudem kann hier auch eine IPv6 dazu gebucht werden.
 
Unter dem Punkt „Firewall Richtlinien“ lassen sich zudem die nach Außen geöffneten Ports festlegen, standardmäßig sind die Ports 80(HTTP),443(HTTPS) und 22(SSH) offen.

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.

Funktionspanel des V-Servers
Funktionspanel, Login Daten Übersicht
 

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:

SSH Konsole nach Login
 
Nach dem einloggen aktualisieren wir alle Pakete mit: 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

 

Ausschnitt aus der Konfigurationsdatei
 
Hier die Zeile net.ipv4.ip_forward=1 Einkommentieren und speichern mit Str+o und Str+x.
 
Jetzt kann der Server neugestartet werden: sudo reboot now
 
Wichtig! Auf der IONOS Seite muss die Server-Firewall abgeändert werden, dass der Port 22 geschlossen wird und anstelle der neue SSH Port 3834 geöffnet ist!
IONOS Panel Firewall Konfiguration
Firewall Regeln bearbeiten
 
Über das Bearbeiten Icon den Port 22 auf den neuen Port ändern und speichern.
Das Übernehmen der Änderung kann ein paar Minuten dauern.
 
Testweise können können wir uns nach dem Neustart wieder einloggen:

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.

Schreibe einen Kommentar