2.6 KiB
2.6 KiB
Sicherheitsmodell
Grundsatz
Das lokale Modell erhält nur die Werkzeuge, die es für den aktuellen Modus benötigt. Lokalität allein ersetzt keine Zugriffskontrolle.
MCP-Profile
Empfohlene Trennung:
| Modus | Werkzeuge |
|---|---|
| Standard | Websuche, harmlose lokale Hilfsfunktionen |
| Home Assistant | HA-Administration plus Websuche |
| ARR | Sonarr/Radarr plus Websuche |
| Unraid Read-only | Diagnose, Logs, Status |
| Unraid Write | nur bewusst aktiviert, mit Vorschau und Approval Ticket |
Nicht im Standardprofil
- allgemeine Shell
python3,ssh,scpoder beliebigescurl- Container erstellen, verändern oder löschen
- Registry-/Storage-Direktzugriff
- uneingeschränkte Dateisuche
Secrets
- Keine Secrets in Git, Prompts, MCP-Schemas oder Logs.
- Konfiguration referenziert nur Namen lokaler Environment-Dateien.
- Dateien mit Secrets: Eigentümer root oder Dienstbenutzer, Modus
0600. - Tokens werden pro Dienst getrennt und minimal berechtigt.
- Ein Secret Broker oder Wrapper stellt Verbindungen her, ohne Tokens an das Modell zurückzugeben.
Netzwerk
- Port 8080 nur localhost oder administratives VLAN.
- Clients verwenden Port 8081.
- Whisper, XTTS, TinySearch und SearXNG nur localhost.
- Firewall erlaubt nur bekannte Quellnetze.
- Externe Suche erhält nur die tatsächliche Suchanfrage, keine Chat-Historie.
Router-Grenze
- Alle fachlichen Endpunkte verlangen einen mindestens 32 Zeichen langen, zufälligen Router-Key. Der Dienst startet ohne gültigen Key nicht.
/healthund/readysind die einzigen anonymen Endpunkte und geben nur groben Betriebszustand aus.- Authentifizierungsheader werden niemals an llama.cpp weitergereicht.
- Remote-Bild-URLs sind standardmäßig gesperrt. Data-URLs werden auf MIME-Typ, Base64-Gültigkeit und 20 MiB Maximalgröße geprüft.
- Die Zahl gleichzeitiger Requests ist begrenzt; große Uploads sind global begrenzt und generierte Bilder werden nach Alter, Anzahl und Größe bereinigt.
- Crash-Recovery beendet keine PID nur aufgrund einer Zahl, sondern verlangt
zusätzlich einen erwarteten Prozessmarker in
/proc/<pid>/cmdline.
Schreibaktionen
Jede destruktive oder persistente Aktion verwendet:
- read-only Bestandsaufnahme,
- exakte Vorschau,
- an diese Vorschau gebundenes Approval Ticket,
- unveränderte Ausführung,
- anschließende Verifikation.
Repository-Prüfung vor jedem Push
- Suche nach Token-, Passwort- und Private-Key-Mustern.
- Keine
.env, Zertifikate, Logs, Bilder, Audio oder Modellartefakte. - Keine echten internen API-Schlüssel in Beispielen.