CT-103/CT-105: lesenden Infrastruktur-Audit 31.10.2026 dokumentiert (M2-Vorbereitung)
GNAI-006 v2.9: Audit-Abschnitt 2.4 (Dienste, Pins, Firewall-Verhaltenstests, TLS, DNS/Exposure, Keycloak-Pfade); keine Abweichung vom abgenommenen Zustand; Fail2Ban-Funktionsabnahme bleibt offen. GNAI-007 v2.5 + Implementation-Log v2.6: Audit-Abschnitt 10 (Rollenpolicy, Legacy-Freiheit, Repo-Abgleich der Firewall, Peerbestand, DynDNS, IPv6); O2/O7 mit Teilnachweisen nachgezogen. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
| 2026-09-24 | 2.6 | Codex | Konsistentes Stop-Mode-vzdump erstellt, Archivintegrität und Prüfsumme geprüft sowie Dienstwiederanlauf regressionsgetestet. |
|
||||
| 2026-10-05 | 2.7 | Codex | Keycloak-Adminpfade, Split-DNS, internen TLS-vHost und wirksame öffentliche Hostname-/Issuer-Weiterleitungen erneut geprüft. |
|
||||
| 2026-10-14 | 2.8 | Codex | NPM auf den reproduzierten CT 102 umgeschaltet; öffentliche Admin-Sperre 403, interner Admin-vHost 200, Discovery/OIDC und realer Vaultwarden-Login abgenommen. |
|
||||
| 2026-10-31 | 2.9 | spektr / Mistral Vibe | Lesenden Infrastruktur-Audit vor dem LLM-Ausbau durchgeführt (Abschnitt 2.4): Dienste, Image-Pins, SSH- und Dateihärtung, Firewall-Verhaltenstests, TLS, DNS und Keycloak-Pfade geprüft; keine Abweichung. Fail2Ban-Funktionsabnahme bleibt offen. |
|
||||
|
||||
---
|
||||
|
||||
@@ -142,6 +143,42 @@ waren beide Dienste aktiv, Vaultwarden und der öffentliche Keycloak-Realm
|
||||
lieferten HTTP 200, während `ghost-agent` weder Datenbank, Schlüsseldatei noch
|
||||
Logs lesen oder schreiben konnte.
|
||||
|
||||
### 2.4 Lesender Infrastruktur-Audit am 31.10.2026
|
||||
|
||||
Anlass war die Prüfung, ob die Reverse-Proxy-Infrastruktur die minimalen
|
||||
Voraussetzungen für das spätere externe Anbieten der KI-Services erfüllt,
|
||||
bevor der interne LLM-Ausbau (Meilenstein 2 in
|
||||
[GNAI-001](../../../../GNAI-001-PLAN_Project-Roadmap.md)) beginnt. Der Audit
|
||||
erfolgte ausschließlich lesend über `ghost-agent` (SSH-Alias
|
||||
`ghostnet-ct103-agent`, ohne sudo) und ergänzend über Verhaltenstests von der
|
||||
Workstation aus dem LAN. Es wurden keine Konfigurationen verändert.
|
||||
|
||||
| Bereich | Beobachtung am 31.10.2026 |
|
||||
| --- | --- |
|
||||
| System und Dienste | Debian 13.7; `nftables`, `nginx-proxy-manager`, `fail2ban`, `ssh.socket` und `ssh.service` aktiv; keine fehlgeschlagenen Units; Uptime rund 2,5 Wochen. |
|
||||
| Containerdefinitionen | Quadlets unverändert gepinnt: NPM `docker.io/jc21/nginx-proxy-manager:2.15.1`, Fail2Ban `lscr.io/linuxserver/fail2ban:1.1.0-r2-ls43`; Fähigkeiten und Volumes entsprechen Abschnitt 4. |
|
||||
| Listener und Firewall | TCP 80/81/443 nur auf IPv4, TCP 22 und NPM-Backend 3000 auf allen Adressen. Verhaltenstests aus dem LAN: Port 81 erreichbar (HTTP 200), Port 3000 Timeout – die INPUT-Drop-Policy ist damit wirksam, die Port-Matrix aus Abschnitt 3 bestätigt. |
|
||||
| SSH-Härtung | Drop-in `99-security.conf` entspricht vollständig der dokumentierten Baseline (Root-/Passwort-Login aus, `AllowUsers ghost-agent ghost`, sämtliche Forwarding- und Tunnel-Sperren, `MaxAuthTries 3`). |
|
||||
| Dateihärtung | `/opt/nginx-proxy-manager/data` ist `0750 root:root`; Datenbank, Schlüsseldatei und Logs sind für `ghost-agent` unlesbar – die Härtung vom 22.09.2026 (Abschnitt 2.3) ist intakt. |
|
||||
| TLS | `auth.ghostnet.selfhost.eu`: Let's-Encrypt-Zertifikat gültig 11.09.–10.12.2026; `auth-admin.ghostnet.selfhost.eu`: gültig 12.10.2026–10.10.2027. |
|
||||
| DNS und Exposure | `auth`, `vault`, `git`, `jellyfin`, `nextcloud` und `vpn` lösen alle zur aktuellen WAN-IPv4 `93.208.172.133` auf; kein AAAA-Record. `auth-admin` löst über Split-DNS zu `10.0.0.10` (Pi-hole). |
|
||||
| Keycloak-Pfade | Öffentlicher `/admin` liefert 403 ohne Redirect; `auth-admin` liefert die Admin-Konsole mit HTTP 200 – die Abnahme vom 14.10.2026 steht unverändert. Discovery antwortet nur für `/realms/master` (200); ein Anwendungs-Realm für KI-Services existiert noch nicht. |
|
||||
| Fail2Ban | Unit aktiv; Jail-, Filter- und Ban-Status sind über `ghost-agent` nicht prüfbar (kein sudo, kein Podman-Zugriff). Die funktionale Abnahme aus Abschnitt 12 bleibt daher offen. |
|
||||
|
||||
Grenzen dieses Audits: Alle HTTP-/TLS-Tests liefen aus dem Heimnetz-LAN; ein
|
||||
Fritzbox-NAT-Hairpin wurde nicht geprüft und ersetzt keinen Fremdnetz-Nachweis
|
||||
für die WAN-Weiterleitungen. Der NPM-Proxyhost-Bestand (Abschnitt 7) war nicht
|
||||
direkt lesbar; die Aussagen stützen sich auf Listener, DNS und HTTP-Verhalten.
|
||||
NPM und Fail2Ban besitzen weiterhin keinen Ansible-Sollzustand im Repository
|
||||
(bekannter Stand aus GNAI-001, Meilenstein 1).
|
||||
|
||||
**Fazit:** Für den internen LLM-Vertical-Slice ist die Proxy-Infrastruktur
|
||||
bereit; es besteht keine Abweichung vom abgenommenen Zustand. Vor einer
|
||||
externen Veröffentlichung von KI-Services (Meilenstein 6) bleiben die
|
||||
Fail2Ban-Funktionsabnahme, die Wiederholung der WAN-/IPv6-Prüfung aus einem
|
||||
fremden Netz und die Planung eines dedizierten Keycloak-Anwendungs-Realms
|
||||
erforderlich.
|
||||
|
||||
---
|
||||
|
||||
## 3. Netzwerk- & Firewall-Architektur (nftables)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
| 2026-09-22 | 2.2 | Codex | Gateway, Container, Regelwerke, Peers, Listener und SSH-Baseline erneut live geprüft; Schlüsseldateien auf Modus 0600 gehärtet. |
|
||||
| 2026-10-05 | 2.3 | Codex | Server-Admin-Rolle auf native nftables-Sets und natives NAT umgestellt; parallele Legacy-Hook-Bereinigung und externe Abnahme bleiben offen. |
|
||||
| 2026-10-06 | 2.4 | Codex | Abgeschlossene Fremdnetz-, Rollen- und Wiederanlauftests nachgeführt; CT 104 als neues inventarisiertes Server-Admin-Ziel ergänzt. |
|
||||
| 2026-10-31 | 2.5 | spektr / Mistral Vibe | Lesenden Infrastruktur-Audit vor dem LLM-Ausbau durchgeführt; native Rollenpolicy, Legacy-Freiheit, Repo-Abgleich der Firewall, Peerbestand, DynDNS-Aktualität und IPv6 ohne Abweichung bestätigt (Details im Implementation-Log, Abschnitt 10). |
|
||||
|
||||
## 1. Zweck und dokumentierter Stand
|
||||
|
||||
@@ -348,7 +349,7 @@ Tests von einem fremden Netz ausführen, nicht nur aus dem Heimnetz. Für Isolat
|
||||
|
||||
| Punkt | erforderliche Klärung / Umsetzung |
|
||||
| --- | --- |
|
||||
| VPN-DynDNS | Am 18.09.2026 löste `vpn.ghostnet.selfhost.eu` zur ausgehenden Gateway-IPv4 `93.208.161.126` auf; `vpn.ghostnet.dyndns.eu` zeigte auf `83.169.40.234`. Profile nutzen den selfhost-Namen. Automatische Aktualisierung nach WAN-IP-Wechsel und tatsächliche Fritzbox-DynDNS-Einstellung noch prüfen. |
|
||||
| VPN-DynDNS | Am 18.09.2026 löste `vpn.ghostnet.selfhost.eu` zur ausgehenden Gateway-IPv4 `93.208.161.126` auf; `vpn.ghostnet.dyndns.eu` zeigte auf `83.169.40.234`. Profile nutzen den selfhost-Namen. Am 31.10.2026 löste der selfhost-Name erneut zur aktuellen WAN-IPv4 `93.208.172.133` auf (DNS-/WAN-Abgleich); die Aktualisierung nach dem IP-Wechsel hat damit stattgefunden. Die tatsächliche Fritzbox-DynDNS-Einstellung selbst bleibt unbestätigt. |
|
||||
| Vorhandene Peers | `ghost-laptop` (`10.8.0.3`) ist der einzige Peer und wird als Server Admin durch native nftables-Sets eingeschränkt. Die Altpeers `Android-LLMAdmin` und `Laptop-FullAdmin` wurden am 05.10.2026 vollständig gelöscht. |
|
||||
| Gateway-Management | INPUT-Regeln für zugeordnete Familie-/Server-Admin-Peers ergänzen; lokale Zugangsgruppen festlegen. |
|
||||
| Rollen-Firewall | Native nftables-Policy aktiv; Legacy-Hooks entfernt, negative Tests und Wiederanlauf bestanden. |
|
||||
|
||||
+35
-3
@@ -15,6 +15,7 @@
|
||||
| 2026-09-22 | 2.3 | Codex | aktuellen Gateway-Zustand live inventarisiert und Berechtigungen der Schlüsseldateien gehärtet |
|
||||
| 2026-10-05 | 2.4 | Codex | Peerrotation, native nftables-Rollenpolicy, Fremdnetztests sowie Stop-Backup und Wiederanlauf dokumentiert |
|
||||
| 2026-10-07 | 2.5 | Codex | CT 104 als zwölftes Server-Admin-Ziel aufgenommen und den Fremdnetzzugriff einschließlich Routing, NAT, Ziel-SSH und Backend-Sperre abgenommen |
|
||||
| 2026-10-31 | 2.6 | spektr / Mistral Vibe | Lesenden Infrastruktur-Audit vor dem LLM-Ausbau (Abschnitt 10): Rollenpolicy, Legacy-Freiheit, Repo-Abgleich, Peerbestand, DynDNS und IPv6 geprüft; keine Abweichung, keine Änderung |
|
||||
|
||||
## 1. Evidenz und zeitliche Einordnung
|
||||
|
||||
@@ -300,17 +301,48 @@ bei SSH die erwartete maskierte Quelle `10.0.0.15`. TCP 8080 lief für den
|
||||
VPN-Admin in einen Timeout und blieb damit weiterhin ausschließlich CT 103
|
||||
vorbehalten.
|
||||
|
||||
## 10. Offene Umsetzung und Abnahme
|
||||
## 10. Lesender Infrastruktur-Audit am 31.10.2026
|
||||
|
||||
Anlass war die Prüfung, ob die Tunnel-Infrastruktur die minimalen
|
||||
Voraussetzungen für das spätere externe Anbieten der KI-Services erfüllt, bevor
|
||||
der interne LLM-Ausbau (Meilenstein 2 in
|
||||
[GNAI-001](../../../../GNAI-001-PLAN_Project-Roadmap.md)) beginnt. Der Audit
|
||||
erfolgte ausschließlich lesend über das SSH-Profil `lxc` (Konto `admin`); es
|
||||
wurde keine Konfiguration verändert und kein Peer angefasst.
|
||||
|
||||
| Bereich | Beobachtung am 31.10.2026 |
|
||||
| --- | --- |
|
||||
| Dienste und Container | `nftables`, `wg-easy` und SSH aktiv, keine fehlgeschlagenen Units; `ghcr.io/wg-easy/wg-easy:15.4.0` laufend seit rund drei Wochen; Environment-Datei `0600 root`; IPv4-Forwarding aktiv (`/proc/sys/net/ipv4/ip_forward = 1`); `wg0`-Route `10.8.0.0/24` vorhanden. |
|
||||
| Rollenpolicy | Native nftables-Policy wie abgenommen: `vpn_server_admins` enthält ausschließlich `10.8.0.3`; `server_admin_targets` enthält die zwölf inventarisierten Ziele einschließlich KI-Server `10.0.0.90`. INPUT erlaubt TCP 22/51821 nur aus dem LAN und für Server-Admin-Peer-IPs; FORWARD erlaubt neue Verbindungen nur von Server-Admins zu Ziel-Set-Hosts. Persistente Zähler belegen aktiven VPN-Datenverkehr (unter anderem 91 neue FORWARD-Verbindungen seit Regelladung). |
|
||||
| NAT und Legacy | MASQUERADE nativ in `ip ghostnet_wg_nat` für `10.8.0.0/24` über `eth0`; `iptables-legacy` enthält nur leere Standardketten – die Bereinigung vom 05.10.2026 ist dauerhaft wirksam. |
|
||||
| Repository-Abgleich | Live-`/etc/nftables.conf` und Repository-Referenz `proxmox/lxc/ct-105-wireguard/nftables.conf` sind SHA-256-identisch (`5ce68ed6…b409c`). Die Referenzdatei ist damit aktuell und kann künftig als Ist-Stand für einen Ansible-Import dienen. |
|
||||
| Peerbestand | `wg0` enthält genau einen Peer (`ghost-laptop`, `10.8.0.3`); die am 05.10.2026 gelöschten Altpeers sind nicht zurück. |
|
||||
| IPv6 | `eth0` besitzt nur eine link-lokale IPv6-Adresse; UDP 51820 lauscht zwar auch auf `[::]`, ohne globale Adresse entsteht darüber keine IPv6-Exposition. Der Fritzbox-IPv6-Perimeter bleibt davon unabhängig offen (O7). |
|
||||
| DynDNS | `vpn.ghostnet.selfhost.eu` löst zur aktuellen WAN-IPv4 `93.208.172.133` (Abgleich mit der ausgehenden Adresse der Workstation); die Aktualisierung nach dem WAN-IP-Wechsel gegenüber dem 18.09.2026 hat damit stattgefunden. Die Fritzbox-Einstellung selbst wurde nicht geprüft. |
|
||||
| GUI | wg-easy-GUI weiterhin auf HTTP TCP 51821 (nur LAN und Server-Admins); GUI-HTTPS bleibt offen (O9). |
|
||||
|
||||
Grenzen dieses Audits: Es gab am 31.10.2026 keinen Fremdnetz-Handshake und
|
||||
keinen negativen Rollentest; die Fremdnetz- und Isolationsnachweise vom 05. und
|
||||
07.10.2026 bleiben die maßgebliche Abnahme. Alle Prüfungen liefen lesend aus
|
||||
dem Heimnetz.
|
||||
|
||||
**Fazit:** Keine Abweichung vom abgenommenen Zustand; die Tunnel-Infrastruktur
|
||||
ist für den internen LLM-Vertical-Slice bereit. Für die spätere externe
|
||||
Veröffentlichung (Meilenstein 6) bleiben der Aufbau einer eingeschränkten
|
||||
LLM-Admin-Rolle (eigener Peer und Set, negativ getestet) sowie O7 und O9
|
||||
erforderlich.
|
||||
|
||||
## 11. Offene Umsetzung und Abnahme
|
||||
|
||||
| ID | Arbeit | Status |
|
||||
| --- | --- | --- |
|
||||
| O1 | Fritzbox-Portforward | bestätigt; Laptop-WAN-Handshake als Teilnachweis vorhanden |
|
||||
| O2 | DynDNS-Aktualisierung nach WAN-IP-Wechsel und Fritzbox-Einstellung prüfen | aktueller selfhost-Endpoint am 18.09.2026 durch DNS-/WAN-Abgleich bestätigt; dyndns.eu zeigt auf andere Adresse |
|
||||
| O2 | DynDNS-Aktualisierung nach WAN-IP-Wechsel und Fritzbox-Einstellung prüfen | selfhost-Endpoint am 18.09. und erneut am 31.10.2026 durch DNS-/WAN-Abgleich zur jeweils aktuellen WAN-IPv4 bestätigt (31.10.: `93.208.172.133`); Fritzbox-Einstellung selbst bleibt zu prüfen; dyndns.eu zeigt auf andere Adresse |
|
||||
| O3 | Altpeers neuen Rollen zuordnen | abgeschlossen: Android-Testpeer und alter Laptoppeer gelöscht; `ghost-laptop` `.3` ist einziger Server-Admin-Peer |
|
||||
| O4 | Native nftables-Ziel- und Gateway-INPUT-Rechte umsetzen | abgeschlossen: Policy und NAT aktiv, Legacy-Hooks bereinigt, Dienst- und LXC-Wiederanlauf sowie Rollentests bestanden |
|
||||
| O5 | Rollenisolierung bei geänderten lokalen AllowedIPs testen | bestanden am 05.10.2026: erlaubtes Ziel parallel erreichbar, aktive `.1` gesperrt, nftables-Zähler geprüft |
|
||||
| O6 | KI-Server, Proxmox-GUI und SSH testen | Proxmox-GUI und Gateway-SSH bestanden; KI-Server bewusst ausgeschaltet und noch offen |
|
||||
| O7 | WAN-/IPv6-Managementport-Isolation | offen |
|
||||
| O7 | WAN-/IPv6-Managementport-Isolation | offen; am 31.10.2026 teilbestätigt: keine AAAA-Records, CT 105 nur link-lokales IPv6, Managementports nur per LAN-Freigabe; Fremdnetz-Nachweis für WAN bleibt ausständig |
|
||||
| O8 | Reboot, Firewall-Reload und Restore | Stop-Backup mit vollständigem LXC-Wiederanlauf und persistenter Firewall bestanden; Restore noch offen |
|
||||
| O9 | wg-easy-GUI-HTTPS und lokales Gruppenmodell | geplant; Werte noch festzulegen |
|
||||
| O10 | SSH-Forwarding, X11 und automatisches Updateverfahren entscheiden | abgeschlossen: alle SSH-Forwarding-Arten aus; kontrolliertes manuelles Patchverfahren mit Simulation, Wartungsfenster und Health-Check festgelegt |
|
||||
|
||||
Reference in New Issue
Block a user