adjeui
Cadet 1st Year
- Registriert
- März 2024
- Beiträge
- 8
Hallo zusammen,
ich spiele schon seit längerem mit dem Gedanken mir einen RPI zuzulegen und damit mir einen eigenen Webserver aufzubauen. Auf diesem sollen dann später Dienste wie Bitwarden oder PiHole laufen, gleichzeitig soll der Pi auch als Entwicklungsstation und Produktionsserver für selbst entwickelte Software dienen und somit auch CI/CD Tools wie Jenkins laufen lassen.
Dass es viel sicherer und einfacher ist, sich einfach einen Server zu mieten ist mir bewusst, darum geht es mir hier allerdings nicht; ich will durch das ganze Self-Hosting Thema selber durchsteigen.
Zusätzlich sollen einige Dienste global erreichbar sein, davon einige für die gesamte Öffentlichkeit (bspw. persönlicher Blog), einige nur aus dem Heimnetz bzw. per VPN.
Damit ich nicht jeden Anfängerfehler begehe und jeder Horst im Internet sofort mein Heimnetzwerk lahmlegt habe ich mich bezüglich Sicherheit etwas informiert und wollte hier mal nachfragen, welche wichtigen Punkte ich vergessen/nicht richtig verstanden habe.
Domain & Router
Die Domain wird vrstl. bei Strato erworben (da die anscheinend DynDNS dabei haben). Bei Strato wird dann die aktuelle IP der FritzBox eingetragen und die FritzBox so konfiguriert, dass sie ihre IP bei Änderung an Strato meldet. Dem Pi wird innerhalb des Netzwerkes eine feste, statische IP zugewiesen.
Natürlich wird das ganze über HTTPS laufen.
DMZ
Der Pi wird in einer DMZ liegen, je nachdem ob eine FritzBox das beherrscht wird diese entweder darüber oder in der Firewall eingerichtet, womit wir beim nächsten Punkt wären:
Firewall
Die Firewall ist selbstverständlich absolut essenziell. Hier werden standardmäßig natürlich alle Verbindungen gedroppt, vrs. bis auf TCP 443 (die weitergeleiteten Ports ändern sich natürlich mit den auf dem Pi laufenden Diensten).
Reverse Proxy
Auf dem Pi wird NGINX als reverse proxy laufen, der je nach URL (domain, pfad, port) und gewünschtem Zugriff (öffentlich, nur aus Heimnetzwerk) die Verbindung zulässt und zu dem jeweiligen Dienst weiterleitet oder eben nicht.
Isolation der Dienste
Jeder Dienst wird in einem eigenen Docker unter einem eigenen Nutzer laufen. Jeder dieser Nutzer wird nur das Mindestmaß an Berechtigungen erhalten, also natürlich keine sudo oder root Rechte (wenn nur temporär zum einrichten) und nur die für diesen Dienst notwendigen Dateien chown-nen. Jeder Nutzer hat selbstverständlich ein anderes Passwort.
VPN & SSH
Auf den Pi wird nur per SSH mittels pub/priv key pairs zugegriffen. Dabei hat jedes Endgerät mit dem auf den Pi zugegriffen wird natürlich ein eigenes Keypair.
VPN Verbindung wird ebenfalls per key pairs eingerichtet, OpenVPN ist derzeit der Plan.
Das sind alle wichtigen Punkte, die ich mir in letzter Zeit ergoogelt habe. Habe ich meine Hausaufgaben gemacht oder heißt es "setzen - 6"?
ich spiele schon seit längerem mit dem Gedanken mir einen RPI zuzulegen und damit mir einen eigenen Webserver aufzubauen. Auf diesem sollen dann später Dienste wie Bitwarden oder PiHole laufen, gleichzeitig soll der Pi auch als Entwicklungsstation und Produktionsserver für selbst entwickelte Software dienen und somit auch CI/CD Tools wie Jenkins laufen lassen.
Dass es viel sicherer und einfacher ist, sich einfach einen Server zu mieten ist mir bewusst, darum geht es mir hier allerdings nicht; ich will durch das ganze Self-Hosting Thema selber durchsteigen.
Zusätzlich sollen einige Dienste global erreichbar sein, davon einige für die gesamte Öffentlichkeit (bspw. persönlicher Blog), einige nur aus dem Heimnetz bzw. per VPN.
Damit ich nicht jeden Anfängerfehler begehe und jeder Horst im Internet sofort mein Heimnetzwerk lahmlegt habe ich mich bezüglich Sicherheit etwas informiert und wollte hier mal nachfragen, welche wichtigen Punkte ich vergessen/nicht richtig verstanden habe.
Domain & Router
Die Domain wird vrstl. bei Strato erworben (da die anscheinend DynDNS dabei haben). Bei Strato wird dann die aktuelle IP der FritzBox eingetragen und die FritzBox so konfiguriert, dass sie ihre IP bei Änderung an Strato meldet. Dem Pi wird innerhalb des Netzwerkes eine feste, statische IP zugewiesen.
Natürlich wird das ganze über HTTPS laufen.
DMZ
Der Pi wird in einer DMZ liegen, je nachdem ob eine FritzBox das beherrscht wird diese entweder darüber oder in der Firewall eingerichtet, womit wir beim nächsten Punkt wären:
Firewall
Die Firewall ist selbstverständlich absolut essenziell. Hier werden standardmäßig natürlich alle Verbindungen gedroppt, vrs. bis auf TCP 443 (die weitergeleiteten Ports ändern sich natürlich mit den auf dem Pi laufenden Diensten).
Reverse Proxy
Auf dem Pi wird NGINX als reverse proxy laufen, der je nach URL (domain, pfad, port) und gewünschtem Zugriff (öffentlich, nur aus Heimnetzwerk) die Verbindung zulässt und zu dem jeweiligen Dienst weiterleitet oder eben nicht.
Isolation der Dienste
Jeder Dienst wird in einem eigenen Docker unter einem eigenen Nutzer laufen. Jeder dieser Nutzer wird nur das Mindestmaß an Berechtigungen erhalten, also natürlich keine sudo oder root Rechte (wenn nur temporär zum einrichten) und nur die für diesen Dienst notwendigen Dateien chown-nen. Jeder Nutzer hat selbstverständlich ein anderes Passwort.
VPN & SSH
Auf den Pi wird nur per SSH mittels pub/priv key pairs zugegriffen. Dabei hat jedes Endgerät mit dem auf den Pi zugegriffen wird natürlich ein eigenes Keypair.
VPN Verbindung wird ebenfalls per key pairs eingerichtet, OpenVPN ist derzeit der Plan.
Das sind alle wichtigen Punkte, die ich mir in letzter Zeit ergoogelt habe. Habe ich meine Hausaufgaben gemacht oder heißt es "setzen - 6"?