feat(auth): ad.max_tls_version zum Deckeln der angebotenen TLS-Version

Alte Schannel-Stacks brechen an einem TLS-1.3-ClientHello kommentarlos ab:
sie nehmen die TCP-Verbindung an, lesen den ClientHello und setzen zurueck,
ohne ein Zertifikat zu schicken. Herunterhandeln hilft dann nicht — TLS 1.3
darf gar nicht erst angeboten werden.

max_tls_version (Default 1.3) deckelt die Hoechstversion; die Validierung
lehnt eine Hoechstversion unterhalb der Mindestversion ab.

check erkennt zusaetzlich zurueckgesetzte Verbindungen und nennt die beiden
plausiblen Ursachen: fehlendes LDAPS-Zertifikat auf dem Server oder
TLS-1.3-Inkompatibilitaet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
This commit is contained in:
Carsten Abele 2026-08-14 13:36:03 +02:00
parent fd88251e07
commit 11a3ec2e5f
10 changed files with 136 additions and 10 deletions

View file

@ -85,6 +85,16 @@ ad:
# Fall aktiv — die lässt sich für LDAP bewusst nicht abschalten.
# min_tls_version: "1.2"
# Hoechste angebotene TLS-Version. Default 1.3.
#
# Auf "1.2" setzen, wenn der Domain Controller die Verbindung beim
# Verbindungsaufbau kommentarlos zuruecksetzt. Alte Schannel-Stacks kommen
# mit einem TLS-1.3-ClientHello nicht zurecht und brechen ab, bevor sie ein
# Zertifikat schicken. Erkennbar in openssl s_client an:
# SSL handshake has read 0 bytes and written <N> bytes
# no peer certificate available
# max_tls_version: "1.3"
# Unprivilegierter Domain-Benutzer genügt — er muss nur lesen dürfen.
bind_user: "svc-vpnportal@firma.local"
bind_password: "BITTE-ERSETZEN"