Self Webhosting mit RPi - Was gilt zu Beachten bezüglich Sicherheit?

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"?
 
Du hast deine Hausaufgaben schon gemacht - ich würde trotzdem kein Webhosting an einem Privatanschluss betreiben. Und basteln kannst du mit einem Root- oder eigentlich auch schon mit einem VPS- oder Cloud-Server auch. Und zwar all das, was du auch auf dem Pi machen würdest.
 
  • Gefällt mir
Reaktionen: madmax2010
kachiri schrieb:
Und basteln kannst du mit einem Root- oder eigentlich auch schon mit einem VPS- oder Cloud-Server auch. Und zwar all das, was du auch auf dem Pi machen würdest.
Das stimmt, allerdings finde ich es ein deutlich besseres Gefühl, wenn meine Daten auch wirklich bei mir liegen und nicht irgendwo in einer Serverfarm. Gerade bei privaten Dateien wie Bilder, Excel-Sheets über Finanzen etc. Allerdings natürlich nur, wenn das ganze gescheit gesichert ist, versteht sich von selbst.


kachiri schrieb:
ich würde trotzdem kein Webhosting an einem Privatanschluss betreiben.
Aus welchen Gründen? Mangelnde Sicherheit ist sicher der größte - aber deswegen bin ich ja hier, um zu lernen, wie ich diese Sicherheit richtig umsetze.

Was hältst du dann von heimnetzwerkinternem Hosting das nur per VPN von außen erreichbar ist? Sicher und machbar, oder auch eher nicht?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Homoioteleuton
adjeui schrieb:
Was hältst du dann von heimnetzwerkinternem Hosting das nur per VPN von außen erreichbar ist? Sicher und machbar, oder auch eher nicht?
So habe ich es bei mir eingerichtet. Alles läuft lokal und wurde nur zum Einrichten der Zertifikate temporär für wenige Minuten öffentlich gemacht (also tcp443 geöffnet).
Seit dem läuft es nur intern und lediglich der vpn ist freigegeben. Funktioniert super.
 
adjeui schrieb:
Was hältst du dann von heimnetzwerkinternem Hosting das nur per VPN von außen erreichbar ist? Sicher und machbar, oder auch eher nicht?
Wireguard installieren, oder wenn vorhanden die Router-Integration nutzen, schon weißt du bescheid.

Ist wirklich einfach einzurichten.

Läuft bei mir im Docker-Container im Stack mit.
 
Homoioteleuton schrieb:
So habe ich es bei mir eingerichtet. Alles läuft lokal und wurde nur zum Einrichten der Zertifikate temporär für wenige Minuten öffentlich gemacht (also tcp443 geöffnet).
Seit dem läuft es nur intern und lediglich der vpn ist freigegeben. Funktioniert super.
mae1cum77 schrieb:
Wireguard installieren, oder wenn vorhanden die Router-Integration nutzen, schon weißt du bescheid.

Ist wirklich einfach einzurichten.

Läuft bei mir im Docker-Container im Stack mit.
Das bedeutet für öffentliches Webhosting auf Cloud-Services o. ä. zurückgreifen, den Rest per VPN ins Heimnetzwerk?

Ist das nicht irgendwo doppelt gemoppelt, wenn ich zuhause sowieso schon die eingerichtete Hardware dastehen habe, dann auch noch einen Server zu mieten? Nicht lieber alles auf einem Server - entweder Cloud oder selber gehostet? Ist der Sicherheitsaufwand von einem privaten Server zu einem öffentlichen Server wirkich so groß?
Der private Server wird ja schließlich auch mit allen gängigen Methoden gesichert werden müssen, wenn man alleine schon bedenkt wie leicht WLAN zu hacken ist wenn mans drauf anlegt.
 
Ich fahre 2-gleisig. Ein Traefik2-Stack mit OAuth2, OTP und Fail2Ban für 'öffentlichen' Zugang und Wireguard für LAN-Zugriff und alles damit verbundene.
 
Kommt immer drauf an, was genau du vorhast.
Ich habe einige wenige Docker Dienste, hauptsächlich für Fotos und Medien und einiges zum Rumspielen/Coden. Das reicht mir zu Hause, ich muss dort eigentlich nie von unterwegs drauf. Für dne Notfall gibt es danna ber das VPN.
Wenn du natürlich Websites hosten möchtest und dich da mehr ausprobieren willst, sowie wenn da auch ein erweiterter Benutzerkreis drauf können soll, macht es vllt Sinn, nur diesen Teil auf den vServer auszulagern.

Generell empfiehlt es sich, klein zu starten, zu lernen und dann später zu erweiten, auch nach Bedarf. Man kann selten den kompletten Einsatz vor Beginn abschätzen. Fang einfach mit dem Raspi an und schau wie es läuft
 
mae1cum77 schrieb:
Ich fahre 2-gleisig. Ein Traefik2-Stack mit OAuth2, OTP und Fail2Ban für 'öffentlichen' Zugang und Wireguard für LAN-Zugriff und alles damit verbundene.
Also im Prinzip genau das, was ich auch vorhabe, nur mit Traefik statt NGINX und Wireguard statt OpenVPN. Fail2Ban wird sich gemerkt, vielen Dank für die Inspiration! OAuth wird von jedem meiner öffentlich erreichbaren Services natürlich implementiert (außer von statischem Kontent wie Blog o. ä).

Homoioteleuton schrieb:
Wenn du natürlich Websites hosten möchtest und dich da mehr ausprobieren willst, sowie wenn da auch ein erweiterter Benutzerkreis drauf können soll, macht es vllt Sinn, nur diesen Teil auf den vServer auszulagern.
Das werde ich im Hinterkopf behalten, vielen Dank.

Homoioteleuton schrieb:
Fang einfach mit dem Raspi an und schau wie es läuft
So mache ich es! Erstmal im Heimnetzwerk, dann mit VPN und dann mal schauen.

Vielen Dank für eurr Hilfe!
 
  • Gefällt mir
Reaktionen: s1ave77
adjeui schrieb:
nur mit Traefik statt NGINX und Wireguard statt OpenVPN
Statt NGINX lieber Traefik oder Caddy nutzen, sind moderner mit mehr Features, gibt noch einen, da fehlt mir immer der Name.

Wireguard ebenfalls bevorzugen, moderner, sicherer und vorallem performanter.
 
  • Gefällt mir
Reaktionen: adjeui
adjeui schrieb:
Die Domain wird vrstl. bei Strato erworben (da die anscheinend DynDNS dabei haben).
Was kostet es dort?

Habe hier auf Empfehlung bei INWX gekauft ~5€/a.
Da es dort nur 1 DynDNS gab bin ich auch auf Empfehlung hier nach Cloudflare umgezogen (kostenlos), dort gibt es unendlich DynDNS Subdomains. Bin bisher sehr zufrieden.
 
adjeui schrieb:
Das stimmt, allerdings finde ich es ein deutlich besseres Gefühl, wenn meine Daten auch wirklich bei mir liegen und nicht irgendwo in einer Serverfarm. Gerade bei privaten Dateien wie Bilder, Excel-Sheets über Finanzen etc. Allerdings natürlich nur, wenn das ganze gescheit gesichert ist, versteht sich von selbst.
Bei einer Website, die für die Öffentlichkeit ist, hätte ich ein deutlich besseres Gefühl, wenn deren Verkehr nicht durch meinen Heimanschluss gehen würde.
adjeui schrieb:
Aus welchen Gründen?
Zuverlässigkeit/Stabilität. Du kommst mit deinem Privat-Anschluss einfach nicht an die Zuverlässigkeit eines Rechenzentrums ran.
adjeui schrieb:
Was hältst du dann von heimnetzwerkinternem Hosting das nur per VPN von außen erreichbar ist? Sicher und machbar, oder auch eher nicht?
Sicher und machbar, sogar mit einer FritzBox.
 
Avenger84 schrieb:
Was kostet es dort?

Habe hier auf Empfehlung bei INWX gekauft ~5€/a.
Da es dort nur 1 DynDNS gab bin ich auch auf Empfehlung hier nach Cloudflare umgezogen (kostenlos), dort gibt es unendlich DynDNS Subdomains. Bin bisher sehr zufrieden.
So wie ich das gelesen habe 1€/monat pro domain, inklusive DynDNS und allen gewünschten subdomains. Wusste nicht, dass Cloudflare auch DynDNS anbietet, da muss ich wohl nochmal einen Preisvergleich machen.
 
adjeui schrieb:
Aus welchen Gründen?
Wenn du viele externe Nutzer hast könnte dein Upload zum Engpass werden. Auf schlechte bzw. eingeschränkte Software wie die von AVM würde ich auch bei sowas verzichten und z.B. einen BananaPi R2 oder so das machen lassen mit Openwrt drauf.
 
rezzler schrieb:
Bei einer Website, die für die Öffentlichkeit ist, hätte ich ein deutlich besseres Gefühl, wenn deren Verkehr nicht durch meinen Heimanschluss gehen würde.
Verstehe ehrlich gesagt nicht ganz, warum. Mit dem Heimnetzwerk kommt dieser Verkehr ja garnicht in Berührung.


rezzler schrieb:
Zuverlässigkeit/Stabilität. Du kommst mit deinem Privat-Anschluss einfach nicht an die Zuverlässigkeit eines Rechenzentrums ran.
Ich brauche von 365 Tagen nicht 365 Tage uptime, solange der Server so stabil online ist wie mein Heimnetzwerk ist das ausreichend. Das bedeutet im Jahr vielleicht 6-8 Ausfälle, je nach dem was sich die Telekom wieder einfallen lässt.

ModellbahnerTT schrieb:
Wenn du viele externe Nutzer hast könnte dein Upload zum Engpass werden.
Ich rechne nicht mit 1000 Anfragen die Sekunde, aber selbst wenn ließe sich dass doch mit einer besseren Leitung beheben oder nicht?


ModellbahnerTT schrieb:
Auf schlechte bzw. eingeschränkte Software wie die von AVM würde ich auch bei sowas verzichten
Naja, die FritzBox steht nunmal schon im Keller und bis jetzt bin ich mit der sehr zufrieden...
Eigentlich habe ich das Gefühl dass die für meine Zwecke schon das richtige Gerät ist, mit der kenne ich mich zumindest schonmal ein bisschen aus; die Software kam mir bis jetzt nicht wirklich eingeschränkt vor, für was ichs brauche zumindest. Oder was genau meinst du damit?
Extra nochmal einen BananaPi zu konfigurieren anstatt einer FritzBox stelle ich mir kompliziert vor. Schafft denn ein BananaPi mit OpenWRT die gleiche Leistung wie ein handelsüblicher Router? Oder ist ein BPi vielleicht sogar performanter?
 
adjeui schrieb:
Verstehe ehrlich gesagt nicht ganz, warum. Mit dem Heimnetzwerk kommt dieser Verkehr ja garnicht in Berührung.
Aber der Verkehr belastet deinen Anschluss. Wenn er zudem nicht mit deinem Heimnetzwerk in Berührung kommen soll, weil du eine DMZ willst, ist die FritzBox schon das falsche Gerät. Die kann keine DMZ.
 
rezzler schrieb:
Wenn er zudem nicht mit deinem Heimnetzwerk in Berührung kommen soll, weil du eine DMZ willst, ist die FritzBox schon das falsche Gerät. Die kann keine DMZ.
Eine nicht, zwei schon😆
 
adjeui schrieb:
Oder was genau meinst du damit?
Naja richtiges DMZ, in der man Server betreiben sollte wie von dir geplant, macht die Fritzbox z.B. nicht.
adjeui schrieb:
Oder ist ein BPi vielleicht sogar performanter?
Performanter auf jeden Fall die neusten Versionen haben sogar sfp als Anschluss.
adjeui schrieb:
wenn ließe sich dass doch mit einer besseren Leitung beheben oder nicht?
Sofern du die nur buchen musst ja wenn diese jedoch erst ausgebaut werden muss dann nicht da viel zu teuer.
 
ModellbahnerTT schrieb:
Naja richtiges DMZ, in der man Server betreiben sollte wie von dir geplant, macht die Fritzbox z.B. nicht.
Das stimmt, eine FritzBox kann das so nicht. Allerdings hab ich den Aufbau einer DMZ auch nur mit zwei hintereinander "geschalteten" Router im Kopf. Geht das Einrichten einer DMZ mit einem einzigen Pi mit OpenWRT?
 
Zurück
Oben