ich brauche eure Einschätzung zu meinem Setup. Momentan habe ich an meinem DSL Anschluss 2 FritzBoxen im Einsatz. Die erste Fritzbox stellt für die zweite über eine LAN / WAN Verbindung das Internet her. An der ersten FritzBox ist ein Server angeschlossen der über einen Reverse Proxy 5 Services bereit stellt unter anderem ntfy, mollysocket sowie Nextcloud. Diese Services befinden sich quasi in der DMZ und sind vom internen Netz geschirmt. Die Portfreigabe an der ersten FritzBox beschränkt sich auf Port 80 / 443 die direkt auf den Reverse Proxy zeigen.
Für meine Sicherheit habe ich das tägliche prüfen auf Updates bei allen Servern (jeweils eine Debian VM pro Service) aktiviert welche mir via ntfy informieren sobald Updates verfügbar sind, die ich dann binnen weniger Stunden installiere.
Meine Überlegungen gehen dahin, das ich statt mollysocket auf Websocket umstelle. Den ntfy Server könnte ich auch auf einen freien anderen Anbieter legen (Es werden keine sensiblen Nachrichten seites des Server versendet. Lediglich „Updates vorhanden!“.
Somit könnte ich 2 Server abschalten. Die Cloud benötige ich alle paar Wochen und kann darauf nicht verzichten.
Die anderen Server würde ich ins interne Netz stellen und von unterwegs via Wireguard VPN zugreifen.
Macht das Sinn? Auf der Cloud wäre nichts wichtiges, ausser das ich hin und wieder Sachen teile, die ich nicht via E-Mail teilen kann / will. Die Freigaben sind jeweils auf 1 Woche beschränkt und werden danach wieder gelöscht. Somit wäre die Cloud eigentlich „leer“.
Dein Setup wirkt insgesamt deutlich durchdachter als eine typische Heimserver-Installation. Die Trennung der öffentlich erreichbaren Dienste vom internen Netz über die zwei FritzBoxen ist für den privaten Bereich zumindest nachvollziehbar und besser, als alles „flach“ in einem Netz zu betreiben.
Die eigentliche Sicherheit entsteht dabei aber weniger durch die doppelte FritzBox selbst, sondern eher durch die Reduzierung der Angriffsfläche, die saubere Trennung der Dienste und das Einspielen zeitnaher Updates. Systempflege, zeitnahe Sicherheitsupdates, eine geringe Angriffsfläche und eine saubere Konfiguration bilden die Grundlage. Werden diese Aspekte vernachlässigt, hilft auch die schönste Netzarchitektur nur eingeschränkt.
Die Überlegung, nur Nextcloud öffentlich erreichbar zu lassen und den Rest ausschließlich über WireGuard zugänglich zu machen, hilft dabei, die Angriffsfläche weiter zu reduzieren. Weniger öffentlich erreichbare Dienste haben in der Regel auch einen geringeren Wartungs- und Absicherungsaufwand zur Folge.
Was deine Updatestrategie betrifft, könntest du dir auch einmal „Unattended Upgrades” ansehen. Gerade unter Debian/Ubuntu lässt sich damit das automatische Einspielen von Sicherheitsupdates recht unkompliziert umsetzen. Damit wäre ggf. auch ntfy ersetzbar.
Das FritzBox-Setup kann aus meiner Sicht also durchaus so bleiben. Wenn man das Ganze weiter professionalisieren wollte, würde man eher in Richtung dedizierter Firewall, VLANs oder echter DMZ denken. Solche Lösungen gibt es auch im Open-Source-Bereich, und die Hardware ist günstig.
Danke für deine Einschätzung.
Ich habe noch zusätzlich 2 weitere Benachrichtigungen via ntfy. Einmal mein Backup (ob es Nachts durchgelaufen ist) sowie die jeweiligen SSH Login Benachrichtigungen.
Die Idee mit „Unattended Upgrades“ gefällt mir. Da ich die SSH Logins nur via Schlüsselpaar mache kann ich mir die Login Benachrichtigungen schenken.
Das mit dem Backup könnte ich auch über Home Assistant realisieren da hier auch Benachrichtigungen gesendet werden können.
Eine Frage zu „Unattended Upgrades“: Wenn ein neuer Linux Kernel als Update erscheint, muss ja bekanntlich das OS neu gestartet werden sodass der neue Linux Kernel aktiv wird. Macht Unattended Upgrades das automatisch? Und wie verhält es sich mit „Autoremove“?
Ja, Unattended Upgrade startet den Rechner auch neu. Wenn ein Update einen Neustart erfordert, wird die Datei /run/reboot-required angelegt. Findet Unattended Upgrade diese Datei, wird das System nach einem vorgegebenen Zeitplan neu gestartet. Das muss man aber einstellen. Ich habe hier mal einen Artikel dazu geschrieben: