TestRunNoArgsDefaultsToServe rief run(nil) auf und griff damit auf den
Default-Pfad /etc/vpnportal/config.yaml zu. Auf einem Entwicklungsrechner
existiert der nicht, der Test war dort gruen. Auf einem Zielhost mit
installierter Konfiguration las er dagegen die Produktivkonfiguration und
loeste echte Verbindungsversuche zu Firewall und Domain Controllern aus.
Die Kommandoauswahl ist jetzt als reine Funktion commandFor testbar. Kein
Test ruft serve oder check mehr ohne expliziten --config-Pfad auf.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
Domain Controller auf Windows Server 2012 R2 koennen TLS 1.2 per Registry
deaktiviert haben. ad.min_tls_version (Default 1.2) erlaubt es, fuer solche
Altsysteme auf 1.0/1.1 herunterzugehen; das Portal warnt dann bei jedem Start.
Die Zertifikatspruefung bleibt in jedem Fall aktiv — fuer LDAP gibt es
weiterhin keine Insecure-Option. Im Legacy-Modus kommen lediglich die
CBC-SHA256-Suiten hinzu, die Go als unsicher einstuft; RC4, 3DES und Suiten
ohne Forward Secrecy werden nie angeboten.
README dokumentiert zusaetzlich die beiden anderen 2012-R2-Stolpersteine:
SHA-1-signierte DC-Zertifikate (seit Go 1.24 nicht mehr umgehbar) und
RSA-Schluesselaustausch (nur ueber GODEBUG=tlsrsakex=1).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
Der Audit-Logger legt sein Verzeichnis per MkdirAll selbst an, check brach
aber ab, wenn es noch nicht existierte — der Pruefer war strenger als die
Laufzeit und blockierte die Erstinbetriebnahme. Fehlt zusaetzlich das
uebergeordnete Verzeichnis, bleibt es ein Fehler: dann steckt fast immer
ein Tippfehler im Pfad.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
go mod init hatte 1.26.5 eingetragen (lokaler Toolchain-Stand statt echter
Anforderung) und alle Abhängigkeiten faelschlich als indirect markiert.
Die tatsaechliche Untergrenze ist 1.25.0, vorgegeben durch golang.org/x/crypto.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
Vollständige Implementierung nach PRD.md: AD-Authentifizierung mit
DC-Failover, read-only OPNsense-Export-Client, serverseitig autorisierter
Streaming-Download, JSONL-Audit-Log mit Rotation, Startvalidierung und
gehärtete systemd-Unit.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68