Mit 40 MBit pro Sekunde Upload(!)-Geschwindigkeit oder mehr lassen sich zu Hause Serverdienste einrichten, die überall in der Welt erreichbar sind. Wenn nicht zu viele Personen gleichzeitig darauf zugreifen, reicht das mindestens für den Datenaustausch mit Familie und Freunden. Ist die Uploadkapazität geringer, funktioniert es ebenfalls, macht aber weniger Spaß.
Damit ein Server im eigenen Netzwerk aus dem Internet erreicht werden kann, ist eine spezielle Konfiguration erforderlich. Mit einer IPv4-Adresse vom Internetprovider ist der Aufwand gering, steht nur IPv6 zur Verfügung, wird es etwas komplizierter. Auf die Sicherheit sollte man besonders achten. Regelmäßige Systemupdates sind bei Servern Pflicht. Beschränken Sie den Zugang auf einen kleinen Personenkreis und sichern Sie den Server durch zusätzliche Maßnahmen ab.
IP-Adressen und Zwangstrennung

Jeder Router für den DSL- oder Kabelanschluss erhält vom Internetanbieter eindeutige öffentliche IP-Adressen, im optimalen Fall aus dem IPv4- und IPv6-Bereich. Wie diese lauten, erfahren Sie unter https://ipv6-test.com . Wird hier keine IPv4- Adresse angezeigt, ist der Router von außen nur über IPv6 erreichbar.
Ein Client muss daher ebenfalls IPv6 unterstützen. Das ist jedoch nicht immer gewährleistet, was die Zuverlässigkeit von Portfreigaben einschränkt.
Nach einem Neustart erhält der Router neue IP-Adressen, außerdem bei der Zwangstrennung durch den Internetprovider. Das ist bei einigen Anschlüssen alle 24 Stunden der Fall, bei anderen alle 180 Tage. Eine feste IP-Adresse gibt es nur bei ausgewählten Tarifen meist gegen Aufpreis.
Die Fritzbox ist standardmäßig so konfiguriert, dass die Verbindung täglich zu einem bestimmten Zeitraum getrennt wird, um der zufälligen Zwangstrennung zuvorzukommen. Sie finden die Einstellungen in der Konfigurationsoberfläche der Fritzbox (standardmäßig http://192.168.178.1 oder https://fritz.box ) unter „Internet –› Zugangsdaten –› Internetzugang“ nach einem Klick auf „Verbindungseinstellungen ändern“.
Lesetipp: SSH – So klappt die Fernwartung mit Linux
Dynamisches DNS für die Fritzbox

Dynamisches DNS oder Dynamic Domain Name System (Dyn DNS oder DDNS) hilft bei ständig wechselnden IP-Adressen. Der Router oder die Server im Heimnetzwerk sind damit immer über einen festen Domainnamen erreichbar. Besitzer einer Fritzbox können dafür das kostenlose Myfritz-Konto verwenden. Der AVM-Dienst unterstützt IPv4 und IPv6. Allerdings können Sie über IPv6 nur zur Fernwartung auf die Fritzbox selbst zugreifen, nicht aber auf andere Geräte im Netzwerk (siehe nächster Punkt).
Für Myfritz registrieren Sie sich über die Konfigurationsoberfläche unter „Internet –› Myfritz-Konto“ mit Ihrer E-Mail-Adresse. Nach einer Bestätigung des neu angelegten Kontos tragen Sie die zugehörigen Zugangsdaten im Myfritz-Bereich der Fritzbox ein. Wenige Minuten später ist die Fritzbox bereits unter der neuen Dyn-DNS-Webadresse aus der Ferne erreichbar.
Dynamisches DNS für alle Router
Fast alle Router lassen sich auch mit einem unabhängigen Dyn-DNS-Dienst nutzen. Bei einem Netgear-Router finden Sie die Einstellungen unter „Erweitert –› Erweiterte Einstellungen –› Dynamisches DNS“, bei einem Modell von TP-Link unter „Erweitert –› Netzwerk –› Dynamisches DNS“. Bei Speedport-Routern der Telekom lässt sich ein Dyn-DNS-Dienst unter „Internet –› Dynamisches DNS –› Dynamisches DNS aktivieren“ einrichten. Eine Fritzbox lässt sich über „Internet –› Freigaben –› DynDNS“ konfigurieren.
Dynv6 konfigurieren: Meist sind verbreitete Dyn-DNS-Dienste auswählbar, teilweise auch eine benutzerdefinierte Konfiguration, etwa bei der Fritzbox. Wir empfehlen das kostenlose „Free Dynamic DNS“-Konto des Anbieters Dynv6 , weil es IPv4 und IPv6 unterstützt und einfach zu konfigurieren ist. Auf der Startseite tippen Sie den gewünschten Domainnamen ein, wählen dahinter eine Domain wie „dynv6.net“ oder „v6.rocks“, geben Ihre EMail-Adresse ein und klicken auf „Go!“. Sie erhalten eine E-Mail, in der Sie auf „Confirm my account“ klicken. Anschließend werden Sie aufgefordert, ein Passwort festzulegen. Nach der Anmeldung landen Sie auf der Seite „My Zones“, auf der Sie den Namen Ihrer Domain anklicken. Klicken Sie auf „Instructions“. Hier finden Sie eine personalisierte Anleitung, wie Sie die Fritzbox für den Dienst konfigurieren.

Besonderheiten bei IPv6: Allerdings gilt auch bei Dynv6 die Einschränkung, dass der Zugriff auf Geräte im Netzwerk nur über IPv4 erfolgen kann. Über die IPv6-Adresse erreichen Sie ausschließlich die Fritzbox. Die Ursache dafür: Die Fritzbox teilt dem Dyn-DNS-Dienst ihre eigene öffentliche IPv6-Adresse mit. Erforderlich ist aber die öffentliche IPv6-Adresse des Servers im eigenen Netzwerk. Bei IPv6 kommt kein NAT zum Einsatz, das Anfragen an die öffentliche IP zur privaten IP im Netz weiterleitet. Stattdessen gibt die Fritzbox den Zugang auf die IPv6-Adresse des Servers frei.
Dyn-DNS-Update per Script: Damit die korrekte IPv6-Adresse bei Dynv6 ankommt, verwenden Sie auf dem Server ein Bash-Script, das Sie unter https://devwelt.de/-/snippets/5 finden. Das Script speichern Sie in einer Textdatei mit dem Namen „update_ dyndns.sh“ im Home-Verzeichnis und machen es mittels
chmod 755 ~/update_dyndns.sh
ausführbar. Öffnen Sie die Datei in einem Editor:
nano ~/update_dyndns.sh
Tragen Sie hinter „DYNV6_HOSTNAME=“ den Domainnamen ein, den Sie bei Dynv6 konfiguriert haben. Hinter „DYNV6_TOKEN=“ gehört der Benutzername, der Ihnen auf https://dynv6.com unter „Instructions“ für die Fritzbox-Konfiguration angezeigt wird. Bei „DYNV6_PROTO=“ geben Sie nichts weiter an, wenn das Update für IPv4 und IPv6 erfolgen soll. Andernfalls tippen Sie dahinter „4“ oder „6“ ein.
Starten Sie das Script jetzt noch nicht, weil Sie zuvor den Router und den Server konfigurieren müssen.

IPv6-Adressen und Portweiterleitungen
Ubuntu und Linux Mint konfigurieren sich mit temporären IPv6-Adressen. Für einen Server ist das nicht zu gebrauchen, weil er über feste IP-Adressen ansprechbar sein muss. Um das zu ändern, führen Sie im Terminal diesen Befehl aus:
sudo nano /etc/sysctl.d/10-ipv6-privacy.conf
Ändern Sie die Werte
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
und speichern Sie die Datei. Dann starten Sie Linux neu. Rufen Sie https://ipv6-test.com und sehen Sie sich die IPv6-Adresse an.
Wie genau die Konfiguration des Routers durchzuführen ist, hängt vom Modell ab. Auf https://portforward.com finden Sie Anleitungen für zahlreiche Geräte in englischer Sprache.
Fritzbox konfigurieren: Bei einer Fritzbox mit aktuellem Fritz-OS (Version 06.83 oder höher) gehen Sie auf „Internet –› Freigaben“ und dort auf „Portfreigaben“. Klicken Sie auf „Gerät für Freigaben hinzufügen“ und wählen Sie hinter „Gerät“ Ihren Server aus. „IPv6 Interface-ID“ passen Sie an, wenn nötig. Die eingetragenen Werte müssen den letzten vier durch „:“ getrennten Gruppen entsprechen, die Sie auf dem Server zuvor über https://ipv6-test.com ermittelt haben. Klicken Sie auf „Neue Freigabe“ und wählen Sie die Option „Portfreigabe“. Wählen Sie hinter „Anwendung“ den Eintrag „HTTP-Server“ und bei „Port an Gerät“ sowie „Port extern gewünscht“ jeweils „80“. Klicken Sie auf „OK“ und danach noch einmal auf „OK“. Fritz-OS erstellt automatisch Freigaben für IPv4 und IPv6. Erstellen Sie bei Bedarf weitere Freigaben für „HTTPS-Server“ (Port 443) und nach Auswahl von „Andere Anwendungen“ etwa für einen OpenSSH-Server (Port 22).
Dynv6 aktualisieren: Jetzt starten Sie das im vorherigen Punkt vorbereitete Script im Terminal mit
~/update_dyndns.sh
Kontrollieren Sie auf https://dynv6.com , ob die IPv4- und IPv6-Adresse stimmen. Damit das Script automatisch die Adressen aktualisiert, starten Sie es nach Zeitplan. Im Terminal verwenden Sie
crontab -e
und fügen die Zeile
0 6 * * * /home/[User]/update_dyndns.sh
hinzu. Das Script wird dann jeden Tag um 06:00 Uhr ausgeführt.
Portfreigaben: So klappt der Zugriff auf Router & Heimnetz
Serverdienste einrichten
Sie können auf Ihrem heimischen PC Webserver wie Apache oder Nginx installieren und somit beliebige Webanwendungen im Internet bereitstellen. Eine ausführliche Anleitung finden Sie hier . Die Installation des Content-Management-Systems WordPress haben wir hier beschrieben. Für den Datenaustausch mit Kollegen und Bekannten eignet sich wahrscheinlich Nextcloud am besten. Damit können Sie Fotos und Videos hochladen und gemeinsam an Dokumenten arbeiten. Nextcloud installieren Sie am schnellsten über ein Snap-Paket. Wie das geht, haben wir hier beschrieben. Das funktioniert auch unter Linux Mint 20 , wobei Sie dort Snap erst freischalten müssen:
sudo rm /etc/apt/preferences.d/nosnap.pref
sudo apt update
sudo apt install snapd
Für mehr Sicherheit betreiben Sie Nextcloud über eine verschlüsselte HTTPS-Verbindung. Das dafür nötige Zertifikat erhalten Sie kostenlos bei https://letsencrypt.org . Auf der Webseite finden Sie Anleitungen für die Installation des Zertifikats für alle Webserver und Betriebssysteme. In die Snap-Installation lässt sich das Zertifikat besonders einfach integrieren, was wir hier beschrieben haben.
Mehr Sicherheit für den Webserver

Wenn nur bestimmte Personen Zugriff auf die Webseiten erhalten sollten, lässt sich der Zugang mit einem Passwort schützen. Erzeugen Sie zuerst eine Datei für die Authentifizierung:
sudo htpasswd -c -B /etc/apache2/.htusers sepp
Sie werden aufgefordert, ein Passwort zu vergeben. Bauen Sie in einen Anweisungsblock in die Serverkonfiguration „/etc/apache2/ sites-available/000-default.conf“ ein:
AuthType Basic
AuthName "Bitte geben Sie ein Passwort ein!"
AuthUserFile /etc/apache2/.htusers
Require valid-user
Der Zugang wird jetzt nur nach Anmeldung mit dem Benutzernamen „sepp“ und dem vergebenen Passwort gewährt.
Gescheiterte Log-in-Versuche limitieren
Das Tool fail2ban überwacht Logdateien und sperrt IP-Adressen nach zu vielen ungültigen Anmeldeversuchen. Sie installieren das Tool mit
sudo apt install fail2ban
Kopieren Sie die Basis-Konfigurationsdatei, damit diese bei einem Update nicht überschrieben wird:
sudo cp /etc/fail2ban/jail.{conf,local}
Standardmäßig fühlt sich fail2ban nur für SSH-Anmeldungen zuständig, was sich in „/etc/fail2ban/jail.local“ ändern lässt. Bauen Sie unter Abschnitte wie „[apacheauth]“ (Apache-Anmeldung) oder „[apache-badbots]“ (Spam-Roboter) jeweils die Zeile
enabled = true
ein. Danach starten Sie den Dienst mit
sudo systemctl restart fail2ban
neu. Welche Angriffe fail2ban bemerkt und welche IPs gesperrt werden, erfahren Sie in der Logdatei „/var/log/fail2ban.log“.