IPv4-Workaround für Deutsche Glasfaser-Kunden

IPv4-Workaround für Deutsche Glasfaser-Kunden

Eine möglichst einfache Anleitung

Auf vielfachen Wunsch hier eine möglichst einfach gehaltene Anleitung zur Lösung der Problematik, die in diesem Artikel beschrieben wird.
Kurzfassung des verlinkten Artikels: Privatkunden bei Deutsche Glasfaser erhalten keine öffentlich erreichbare IPv4-Adresse. Viele möchten oder müssen über IPv4 interne Geräte bzw. Dienste aus dem Internet zugänglich machen. Es gibt verschiedene Ansätze für Umgehungslösungen. Hier stelle ich eine relativ simple, günstige und selbstverwaltete vor.

Ich realisiere diese Umgehungslösung in diesem Artikel mit dem günstigsten Strato V-Server, den VC 1-1 für 1 € pro Monat bei einem Jahresvertrag.

In dieser Anleitung beziehe ich mich nur auf TCP-Dienste. Es gibt auch Lösungen für UDP, das ist aber kein Bestandteil dieses Artikels.

💡
Prüfen Sie zu Beginn, ob Ihr benötigter Dienst TCP oder UDP verwendet. Google oder ChatGPT helfen bei der Klärung.

Voraussetzungen

Vorkenntnisse

Diese Anleitung geht davon aus, dass Sie souverän Windows und eine FritzBox bedienen können. Auch mit macOS und vielen anderen Routern kann man das natürlich machen, aber da weichen die Schritte ab. Außerdem sollten Sie grundlegende Kenntnisse abseits der grafischen Oberfläche besitzen und schon einmal mit der Windows-Eingabeaufforderung gearbeitet haben.

Virtueller Linux-Server

Wie gesagt, gibt es bei Strato einen sehr günstigen virtuellen Linux-Server, der dieser Aufgabe dennoch gewachsen ist. Alternativ kann man sich in der Hetzner Cloud oder bei einem anderen Provider einen günstigen virtuellen Linux-Server mit Ubuntu 24.04 bereitstellen lassen.

Installation und Konfiguration

Die Magie steckt in rinetd

Mit dem einfach zu konfigurierenden Dienst rinetd kann man Anfragen an TCP-Ports weiterleiten. Seit ein paar Versionen unterstützt rinetd auch UDP, dazu habe ich selbst aber noch keine Erfahrung gesammelt. Für UDP habe ich in der Vergangenheit für den gleichen Zweck socat genutzt. Dieses Programm ist allerdings komplizierter einzusetzen als rinetd. Weil es hier möglichst einfach zugehen soll, verwende ich rinetd.

Nach der Bestellung bei Strato den Server installieren

Nach der Bereitstellung des virtuellen Linux-Servers erhält man von Strato eine Mail, in der steht, dass man sich einloggen und den Server konfigurieren soll.

  • In der Bestellübersicht im Kundenportal auf den Server klicken.
  • Auf der folgenden Seite etwas weiter unten auf „Neuinstallation“ klicken.
Die Installation des Servers bei Strato initiieren

In der Grundkonfiguration kann man sich am Strato Linux-Server über SSH nur mit einem SSH-Key anmelden. Das Root-Passwort funktioniert hingegen nur über den Zugriff durch die VNC-Konsole im Kundenportal.

💡
SSH ist ein Dienst für den Fernzugriff auf der Kommandozeile. So etwas Ähnliches wie Remotedesktop für Windows, nur eben textbasiert.

Denken Sie sich ein möglichst komplexes Passwort für den Nutzer root aus, auch wenn Strato Ihnen das mangels verfügbarer Sonderzeichen erschwert. Das Betriebssystem ist Ubuntu 24.04 (ohne Plesk). Bestätigen Sie die Checkbox ganz unten.

Der Dialog für die Installation des Servers bei Strato

Strato lässt die Installation des Servers nur dann zu, wenn man einen Public SSH-Key mitteilt und damit SSH einrichtet. Also …

  • Öffnen Sie die Windows-Eingabeaufforderung.
Eingabeaufforderung starten
  • Geben Sie folgendes ein:
C:\Users\Andreas> ssh-keygen -t rsa -b 4096 -C "Strato V-Server"

Bestätigen Sie den Speicherpfad mit Enter und vergeben Sie ein Passwort zum Schutz des privaten Schlüssels. Notieren Sie sich das Passwort, Sie benötigen es später für den Verbindungsaufbau.

Mit diesem Befehl erzeugt ssh-keygen ein Schlüsselpaar. Der private Schlüssel bleibt auf Ihrem System, den öffentlichen Schlüssel geben Sie Strato.

Windows Eingabeaufforderung mit ssh-keygen
  • Zeigen Sie den Public Key an mit:
C:\Users\Andreas> type .ssh\id_rsa.pub

Markieren Sie den Key (nur bis zum Kommentar „Strato V-Server“) und kopieren Sie ihn mit Enter in die Zwischenablage.

Schlüsselerzeugung
  • Fügen Sie den Key bei Strato ein und klicken Sie auf „Neuinstallation starten“.

Falls Sie währenddessen ausgeloggt werden, loggen Sie sich erneut ein und starten den Vorgang noch einmal. Dann sollte es auf Anhieb funktionieren.

Public-Key bei Strato eintragen

Hat alles geklappt, sehen sie nach kurzer Zeit eine Erfolgsmeldung.

Strato V-Server Installation erfolgreich

Da der SSH-Zugang nun eingerichtet ist, verwende ich diesen für den weiteren Verlauf der Anleitung anstelle der VNC-Konsole im Kundenportal.

  • Stellen Sie nun eine Verbindung her:
C:\Users\Andreas> ssh root@[ip-adresse]

Ersetzen Sie [ip-adresse] durch die IPv4-Adresse Ihres Strato-Servers aus dem Kundenportal.

  • Bestätigen Sie mit yes und geben Sie das Passwort für Ihren privaten Schlüssel ein.
Eingabeaufforderung mit ssh

Nach dem Login aktualisieren Sie zunächst die Paketquellen:

root@ubuntu:~# apt update

In meinem Fall können 32 Pakete aktualisiert werden.

Linux-Paketquellen aktualisieren

Aktualisieren Sie die Pakete mit:

root@ubuntu:~# apt upgrade -y

Anschließend installieren Sie rinetd:

root@ubuntu:~# apt install rinetd

Starten Sie den Server zur Sicherheit neu (z.B. nach Kernel-Updates):

root@ubuntu:~# reboot

Konfiguration von rinetd

Nachdem Sie sich nach dem Neustart wieder eingeloggt haben, öffnen Sie die Konfigurationsdatei:

root@ubuntu:~# nano /etc/rinetd.conf
Nano mit rinetd.conf

IPv6-Adresse herausfinden und Firewallregel einrichten

Bevor Sie die rinetd.conf anpassen können, benötigen Sie die IPv6-Adresse des Zielgeräts im internen Netz und eine passende Firewallregel:

  • In der FritzBox gehen Sie zu Internet -> Freigaben, klicken auf „Gerät für Freigaben hinzufügen“ und wählen das gewünschte Gerät aus.
  • Die FritzBox trägt dann selbständig die IPv6-Interface-ID ein.
Freigabe in FritzBox hinzufügen
  • Unten auf der Seite klicken Sie auf „Neue Freigabe“, legen die Portfreigabe (z.B. Port 5001 für ein Synology NAS, Freigabename z.B. HTTPS) an, wählen bei „Internetzugriff über“ ausschließlich IPv6 und bestätigen.
Freigabe in FritzBox definieren
  • Anschließend sehen Sie im Freigabe-Fenster den neuen Eintrag. Klicken Sie auf den Stift, um die vollständige IPv6-Adresse inkl. Präfix in der Spalte „IP-Adresse im Internet“ anzuzeigen, und kopieren Sie diese in die Zwischenablage.
Übersicht der Portfreigaben in der FritzBox
Details zur Freigabe in der FritzBox

Zurück zum Linux-Server

In der bereits geöffneten Datei /etc/rinetd.conf fügen Sie nach dem gesamten Block

# forwarding rules come here

einen Eintrag im folgenden Format ein:

Nano mit rinetd.conf

Natürlich müssen Sie dabei sowohl die vollständige IPv4-Adresse Ihres Linux-Servers als auch den gewünschten TCP-Port und die vollständige IPv6-Adresse des Zielgeräts eintragen.

Mit STRG+X, y, Enter speichern Sie die Datei und kehren zur Kommandozeile zurück.

Jetzt nur noch den rinetd neu starten

Starten Sie den rinetd-Dienst neu:

root@ubuntu:~# systemctl restart rinetd

Und einen Test durchführen

Ein Test zeigt, dass die IPv4-auf-IPv6-Weiterleitung funktioniert. Nach Eingabe der öffentlichen IPv4-Adresse des Linux-Servers öffnet sich das Webinterface der Synology DiskStation im internen Netz hinter dem Deutsche Glasfaser-Anschluss.

Synology DiskStation Anmeldefenster

Aus dem Linux-Server können Sie sich jetzt ausloggen:

root@ubuntu:~# exit

Hinweise zum Schluss

Änderungen am IPv6-Präfix

Man erhält bei Deutsche Glasfaser im Privatkundentarif kein festes IPv6-Präfix. Das Präfix kann sich also ändern und damit müsste die neue IPv6-Adresse des Ziels in der rinetd.conf aktualisiert werden.

Allerdings ändert sich das Präfix bei DG wohl so selten, dass dies kein wirkliches Problem oder viel zusätzlichen Aufwand bedeutet.

Regelmäßige System-Updates

Den eingesetzten Linux-Server sollte man in regelmäßigen Abständen aktualisieren. Spätestens alle vier Wochen. Man kann das teilweise auch automatisieren. Wie das geht, dazu gibt es vielleicht mal einen weiteren Artikel.

Firewall bei Strato einrichten

Strato bietet im Kundenportal auch eine Firewall für die gebuchten Server. Hier kann man alles bis auf SSH und die gewünschten Weiterleitungsports blocken. Damit wäre das System noch besser gegen Fremdeinwirkung geschützt. Im Auslieferungszustand läuft auf den virtuellen Linux-Servern vermutlich nicht viel, was überhaupt auf Verbindungsversuche reagiert.

Statt einer Portweiterleitung lieber ein VPN verwenden

Warum man keine internen Dienste im Internet direkt zur Verfügung stellen sollte und stattdessen aus Sicherheitsgründen lieber ein VPN verwendet, erfahren Sie in diesem Artikel.

Mit großer Macht kommt große Verantwortung

Einen aus dem Internet erreichbaren Server zu betreiben, sollte man nicht auf die leichte Schulter nehmen. Es gibt schon zu viele gehackte Systeme da draußen, die für illegale Aktivitäten genutzt werden. Wenn Sie auf dem Linux-Server sonst nichts weiter betreiben, regelmäßig Updates einspielen und die Firewall aktiviert haben, sind Sie hier recht sicher unterwegs. Fühlen Sie sich unsicher oder überfordert, lassen Sie es lieber sein.

Hat Ihnen der Artikel weitergeholfen?

Falls ja, dann würde ich mich über eine Einladung zu einem Kaffee freuen:
ko-fi.com/andreasfiebig
Vielen Dank! 😉

Sie haben keine Lust zum Tüfteln?

Wenn Sie ein Unternehmen haben oder selbstständig sind, helfe ich Ihnen gerne im Rahmen einer Beratung bei der Einrichtung. Kontaktieren Sie mich.