Kapitelklicken springt direkt hin
Shownotes
<p>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.</p><h2>Shownotes</h2><ul>
<li>
<p>Rückbezug STP061: wir haben unser Heimnetzwerk von Schicht 1 bis 3 aufgebaut</p>
<ul>
<li>Schicht 3 hatte uns einen Zustellweg durchs Internet gegeben</li>
<li>Schicht 4 ergänzt Sitzungsverwaltung (z.B. Flusskontrolle und Fehlerkorrektur; hierfür siehe STP005) und Ports</li>
<li>Warum braucht man Ports? Gedankenexperiment:
<ul>
<li>Annahme: Datenpakete werden nur anhand von Quelladresse und Zieladresse zugestellt</li>
<li>Situation: zwei Prozesse auf demselben PC wollen mit <code>wikipedia.de</code> reden</li>
<li>Abschicken der Anfragen klappt eventuell noch, da gleiches Ziel</li>
<li>Problem: Antwortpaket kommt -> Welcher Prozess kriegt das Paket?</li>
<li>Technisch formuliert: Wie kann man über diese Netzwerkleitung mehrere unabhängige Verbindungen <a href="de.wikipedia.org/w/index.php?title=Multiplexve…;
</ul>
</li>
</ul>
</li>
<li>
<p>Ports: Identifikationsnummer für offene Netzwerkverbindungen; 16 Bit groß (0-65535)</p>
<ul>
<li>vgl. Briefkästen/Wohnungsnummern in Mehrparteienhäusern</li>
<li>Datenpakete auf Schicht 4 werden anhand der Gesamtheit aus Quelladresse, Quellport, Zieladresse, Zielport einer Verbindung zugeordnet</li>
<li>damit eindeutige Endzustellung an einen Prozess möglich</li>
<li>auf 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 haben</li>
<li>auf Client-Seite für gewöhnlich automatisch vergebene Ports (meist zwischen 32768-65535)</li>
<li>Praxisbeispiel: im Browser eine Webseite aufmachen, dann in der Konsole aktive Verbindungen auflisten mit <code>ss -utpn -o state connected</code></li>
</ul>
</li>
<li>
<p>Wie kann ich zuhause einen Server-Prozess betreiben?</p>
<ul>
<li>Außenwelt muss meine IP-Adresse finden können und den entsprechenden Port erreichen können</li>
<li>Problem 1: IP-Adresse wird durch den Internetanbieter bestimmt und ändert sich -> <a href="de.wikipedia.org/w/index.php?title=Dynamisches… DNS</a> (nicht zu verwechseln mit der Firma "DynDNS", die nur ein möglicher Anbieter ist)</li>
<li>Problem 2: Router hat für gewöhnlich einen Paketfilter (<a href="de.wikipedia.org/w/index.php?title=Firewall&am…;), der nur ausgehende sowie bekannte Verbindungen durchlässt -> Ausnahmeregel ("Port Opening") muss konfiguriert werden; je nach Betriebssystem auch dasselbe auf dem Server selbst erforderlich</li>
<li>Problem 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)</li>
</ul>
</li>
<li>
<p>Was kann ich zuhause betreiben?</p>
<ul>
<li>E-Mail definitiv nicht, MTAs aus Endkunden-IP-Bereichen werden von den großen Betreibern als Spam-Schleudern interpretiert und blockiert</li>
<li>Videotelefonie auch eher nicht, weil da NAT-Durchdringung noch problematischer ist</li>
<li>Faustregel: fast alles mit HTTP sollte gehen, sofern man nicht durch den oft dünnen Upstream von Endkunden-Internetanschlüssen begrenzt ist</li>
<li>Xyrill betreibt (teils zuhause, teils auf gemieteten Servern im Rechenzentrum): <a href="de.wikipedia.org/w/index.php?title=Gitea&o…;, <a href="de.wikipedia.org/w/index.php?title=Jitsi&o… Meet</a>, <a href="de.wikipedia.org/w/index.php?title=Matrix_(Kom…)&oldid=243306410">Matrix</a>, <a href="de.wikipedia.org/w/index.php?title=Nextcloud&a…;, <a href="de.wikipedia.org/w/index.php?title=Nginx&o…; (siehe STP022), <a href="de.wikipedia.org/w/index.php?title=Prometheus_…)&oldid=236686905">Prometheus</a> (siehe STP032)</li>
<li>andere Vorschläge: <a href="en.wikipedia.org/w/index.php?title=Bitwarden&a…;, <a href="de.wikipedia.org/w/index.php?title=Kodi_(Softw…)&oldid=243970444">Kodi</a>, <a href="de.wikipedia.org/w/index.php?title=Mastodon_(S…)&oldid=245943178">Mastodon</a> oder andere ActivityPub-Server (siehe STP057), <a href="docs.paperless-ngx.com/">Paperless-NGX…;, <a href="de.wikipedia.org/w/index.php?title=Pi-hole&…;
</ul>
</li>
<li>
<p>im Gespräch erwähnt</p>
<ul>
<li>Pentaradio zu Quellcode-Verwaltung mit Git: <a href="c3d2.de/news/pentaradio24-20210727.html"&…;
<li>Audio-Streaming-Software: <a href="navidrome.org/">https://www.navidrome.…;
</ul>
</li>
</ul>