Nachdem unser aller Heimnetzwerk voll funktionsfähig ist, wollen wir nun von daheim aus die ganze Welt mit unseren Online-Diensten beglücken... oder zumindest bestimmte Dinge selbst an den Start rollen.
Shownotes
Rückbezug STP061: wir haben unser Heimnetzwerk von Schicht 1 bis 3 aufgebaut
Schicht 3 hatte uns einen Zustellweg durchs Internet gegebenSchicht 4 ergänzt Sitzungsverwaltung (z.B. Flusskontrolle und Fehlerkorrektur; hierfür siehe STP005) und PortsWarum braucht man Ports? Gedankenexperiment:Annahme: Datenpakete werden nur anhand von Quelladresse und Zieladresse zugestelltSituation: zwei Prozesse auf demselben PC wollen mit wikipedia.de redenAbschicken der Anfragen klappt eventuell noch, da gleiches ZielProblem: Antwortpaket kommt -> Welcher Prozess kriegt das Paket?Technisch formuliert: Wie kann man über diese Netzwerkleitung mehrere unabhängige Verbindungen multiplexen?Ports: Identifikationsnummer für offene Netzwerkverbindungen; 16 Bit groß (0-65535)
vgl. Briefkästen/Wohnungsnummern in MehrparteienhäusernDatenpakete auf Schicht 4 werden anhand der Gesamtheit aus Quelladresse, Quellport, Zieladresse, Zielport einer Verbindung zugeordnetdamit eindeutige Endzustellung an einen Prozess möglichauf Server-Seite im Allgemeinen "wohlbekannte" Ports (z.B. 25 für SMTP, 80 für HTTP, 443 für HTTPS), damit Clients ein definiertes Ziel für neue Verbindungen habenauf Client-Seite für gewöhnlich automatisch vergebene Ports (meist zwischen 32768-65535)Praxisbeispiel: im Browser eine Webseite aufmachen, dann in der Konsole aktive Verbindungen auflisten mit ss -utpn -o state connectedWie kann ich zuhause einen Server-Prozess betreiben?
Außenwelt muss meine IP-Adresse finden können und den entsprechenden Port erreichen könnenProblem 1: IP-Adresse wird durch den Internetanbieter bestimmt und ändert sich -> Dynamisches DNS (nicht zu verwechseln mit der Firma "DynDNS", die nur ein möglicher Anbieter ist)Problem 2: Router hat für gewöhnlich einen Paketfilter (Firewall), der nur ausgehende sowie bekannte Verbindungen durchlässt -> Ausnahmeregel ("Port Opening") muss konfiguriert werden; je nach Betriebssystem auch dasselbe auf dem Server selbst erforderlichProblem 3: IPv4 mit NAT, lokaler Rechner mit Server-Prozess hat nur eine lokale IP-Adresse -> Portweiterleitung muss konfiguriert werden (damit dann meist auch eine Ausnahmeregel in der Firewall verbunden)Was kann ich zuhause betreiben?
E-Mail definitiv nicht, MTAs aus Endkunden-IP-Bereichen werden von den großen Betreibern als Spam-Schleudern interpretiert und blockiertVideotelefonie auch eher nicht, weil da NAT-Durchdringung noch problematischer istFaustregel: fast alles mit HTTP sollte gehen, sofern man nicht durch den oft dünnen Upstream von Endkunden-Internetanschlüssen begrenzt istXyrill betreibt (teils zuhause, teils auf gemieteten Servern im Rechenzentrum): Gitea, Jitsi Meet, Matrix, NextCloud, nginx (siehe STP022), Prometheus (siehe STP032)andere Vorschläge: Bitwarden, Kodi, Mastodon oder andere ActivityPub-Server (siehe STP057), Paperless-NGX, Pi-HolePentaradio zu Quellcode-Verwaltung mit Git: https://c3d2.de/news/pentaradio24-20210727.htmlAudio-Streaming-Software: https://www.navidrome.org/