Zum Inhalt springen

Security

Wie ich mein Homelab absichere. Alles, was hier steht, läuft bei mir wirklich so.

Netz & Zugriff

  • Getrennte Netze

    Mein Netz, Smart-Home-Geräte, Kameras und Gäste hängen in eigenen Zonen. Die Kameras haben gar kein Internet. Was von einer Zone in die andere darf, ist einzeln freigegeben.

    Warum so: Eine gehackte Lampe oder Kamera kommt so nicht an meine Rechner.

  • Firewall an jedem System

    Jeder Container und jede VM hat zusätzlich eine eigene Firewall, und standardmäßig ist alles zu. Dienste sind grundsätzlich nur über den Reverse Proxy erreichbar, nicht direkt.

    Warum so: Ein neuer Dienst startet erst mal dicht, und ich mach nur auf, was er braucht. Nach jeder Änderung teste ich in beide Richtungen. Vom falschen Rechner muss es blocken, vom richtigen durchgehen.

  • Reverse Proxy mit HTTPS

    Alle Weboberflächen laufen über einen Reverse Proxy mit automatischen Zertifikaten. Aus dem Internet erreichbar ist nur, was ich ausdrücklich freigegeben hab.

  • Zweiter Faktor

    Wichtige Seiten haben ein zentrales Login mit zweitem Faktor davor. Auch die Verwaltung der Server ist mit einem Einmalcode gesichert. Privat ist mein zweiter Faktor ein YubiKey, getrennt vom Passwortmanager.

    Warum so: Ein Passwort allein reicht nicht, ein gestohlenes erst recht nicht.

  • Angreifer aussperren

    Der Reverse Proxy fragt CrowdSec, ob eine Adresse bekannt schlecht ist oder sich komisch verhält. Auf den Servern sperrt fail2ban Adressen nach drei fehlgeschlagenen SSH-Logins für eine Stunde.

Härtung

  • Nur so viele Rechte wie nötig

    Jeder Dienst läuft in seinem eigenen Container. Mein Dashboard kann zum Beispiel nur anzeigen, fürs Schalten gibt es ein getrenntes Token. Und der Wächter darf auf den Servern nur ein paar feste Abfragen ausführen.

    Warum so: Wer ein Stück übernimmt, soll nicht automatisch alles in der Hand haben.

  • SSH gehärtet

    Ich melde mich überall mit Schlüsseln an. Wenige Versuche, kurze Zeit zum Einloggen, dazu Kernel-Einstellungen gegen die üblichen Netzwerk-Tricks.

  • Keine Geheimnisse im Code

    Passwörter und Tokens stehen nie im Code oder in Compose-Dateien, sondern in .env-Dateien, die nur der jeweilige Dienst lesen darf. Nach dem Audit im April hab ich die Datenbank-Passwörter rotiert. Für diese Website gilt dieselbe Regel.

Erkennen & Überwachen

  • Änderungen protokollieren

    Auf den Servern läuft auditd. Es schreibt mit, wenn SSH-Schlüssel, sudo-Rechte, Benutzer oder Cronjobs angefasst werden. Bei SSH-Schlüsseln und sudo kommt innerhalb weniger Minuten eine Nachricht aufs Handy, den Rest gibt's als Tagesübersicht.

    Warum so: Wenn jemand drin ist, will ich es merken, bevor er sich festsetzt.

  • Wöchentliche Scans

    Jeden Sonntag prüft ein Skript alle Server und Container mit trivy auf bekannte Sicherheitslücken und mit lynis auf Härtungsmängel. Ein nmap-Lauf vergleicht das ganze Netz mit dem Stand davor und meldet neue Geräte und offene Ports. Raus kommt eine Zusammenfassung mit Vergleich zur Vorwoche.

  • Wächter

    Auf einem eigenen Container laufen rund um die Uhr 24 Prüfungen und melden sich per Telegram, wenn was nicht stimmt.

    Warum so: Ein Alarm ist für mich erst fertig, wenn die Nachricht wirklich auf dem Handy ankommt. Und ich achte auf Fehlalarme, sonst wische ich sie irgendwann nur noch weg.

  • Bewusst leicht

    Ein vollwertiges SIEM wie Wazuh hab ich mir angeschaut und verworfen. Es wäre zu schwer für meinen Cluster. Kleine Skripte machen genau das, was ich brauche.

Updates & Wiederherstellung

  • Updates laufen von selbst

    Die Container ziehen Sicherheitsupdates nachts selbst. Home Assistant macht vor einem Update ein Backup, und ich krieg eine Meldung, wenn danach was nicht mehr läuft. Kritische Programme wie der Reverse Proxy sind gesperrt und werden von Hand aktualisiert.

    Warum so: Automatisch ist gut, außer es zerlegt mir den Proxy.

  • Backups, die ich teste

    Nachts gehen Backups aufs NAS und verschlüsselt in die Cloud. Ob eine Wiederherstellung klappt, probiere ich aus. Backup in eine Test-VM zurückspielen, Prüfsummen vergleichen, wieder wegwerfen.

  • Alles dokumentiert

    Jedes Audit bekommt ein Protokoll mit dem, was ich gefunden und geändert hab. Im April waren das über 30 Fixes.

Wie die Teile zusammenhängen, siehst du im Schaubild auf der Setup-Seite.

Tab vervollständigt · ↑ ↓ wählen · Enter ausführen · Esc schließen · „help“ zeigt alle Befehle