Eine VPN-Anmeldung, die Anmeldedaten gegen ein Verzeichnis prüft, umfasst zwei getrennte Netzwerkverbindungen. Die Verbindung des Benutzers zum Gateway ist durch das eigene Zertifikat der VPN und die Protokollkonfiguration geschützt. Die Verbindung des Gateways zum Verzeichnis ist eine andere Sitzung mit eigenen TLS-Einstellungen, einem eigenen Trust Store und eigenen Fehlermodi. Nichts an der ersten garantiert etwas über die zweite.

Diese Asymmetrie ist der Mechanismus hinter einer Anmeldung, die verschlüsselt aussieht und dennoch ein Bind-Passwort im Klartext sendet.

Zwei Verbindungen, zwei Vertrauensentscheidungen

Die äußere Sitzung ist das, was der Benutzer sieht: ein Zertifikat, das an den VPN-Hostnamen gebunden ist, vom Client validiert wird und den Authentifizierungsaustausch trägt. Die innere Sitzung gehört dem Verzeichnisclient im Gateway, der seine eigene Verbindung öffnet und entweder TLS aushandelt oder nicht. Jede Seite validiert den Gegenüber, mit dem sie spricht, anhand von Material aus einer anderen Konfigurationsdatei. Eine falsch konfigurierte innere Strecke bleibt von der Benutzerseite unsichtbar, weil die äußere Strecke genau wie vorgesehen funktioniert.

Deshalb ist der Fehler still und nicht laut. Ein Gateway, das nie das Zertifikat des Verzeichnisses prüft, authentifiziert Benutzer trotzdem korrekt; es authentifiziert sie lediglich über einen Kanal, den es nicht verifiziert hat.

StartTLS und LDAPS, bewusst gewählt

StartTLS öffnet als einfaches LDAP und wird an Ort und Stelle hochgestuft, üblicherweise auf Port 389. LDAPS startet TLS mit der Verbindung, üblicherweise auf 636. Beides ist legitim, und der Adapter muss zu dem passen, was das Verzeichnis anbietet. StartTLS zu verlangen ist etwas anderes, als es zu versuchen und fortzufahren, wenn die Hochstufung fehlschlägt, und genau an dieser Stelle kann ein Bind-Passwort entweichen. Konfigurieren Sie den strikten Modus und erlauben Sie keinen ungeschützten Rückfallweg für einen Passwort-Bind.

ldapsearch -H ldap://dc1.corp.example -ZZ -x -D "CN=VPN Bind,OU=Service Accounts,DC=corp,DC=example" -W -b "DC=corp,DC=example" "(sAMAccountName=example-user)" dn

Das Flag -ZZ ist der ganze Punkt: Die Abfrage schlägt fehl, statt stillschweigend ohne die Hochstufung fortzufahren. Namen und Konten in dieser Zeile sind Beispiele. Die OpenLDAP-TLS-Dokumentation behandelt die Vertrauenseinstellungen dahinter.

Welchen Trust Store liest der LDAP-Client?

Die OpenLDAP-Clientbibliothek liest ihre eigene Vertrauenskonfiguration, sei es aus der Systemdatei oder aus einer pluginspezifischen Einstellung. Die CA-Direktive der VPN gilt für VPN-Peers und ist kein Beleg dafür, dass die LDAP-Bibliothek dieselbe Datei liest. Verwenden Sie den Verzeichnis-Hostnamen, den das Zertifikat tatsächlich abdeckt, plus die ausstellende Kette, der die Bibliothek vertraut. Stellen Sie in Active Directory ein Verzeichnisdienst-Zertifikat mit der richtigen Serverauthentifizierungs-Verwendung bereit, statt aus einem Anzeigenamen zu schließen.

Jedes Failover-Ziel muss dieselbe Identitätsrichtlinie erfüllen. Eine Umgebung, in der das primäre validiert wird und das sekundäre nicht, ist schlechter als eine ohne Failover, weil der schwächere Pfad erst während einer Störung entdeckt wird.

Das Bind-Konto bleibt ein separates Problem

Der Schutz des Transports verringert nicht, was das Bind-Konto tun darf. Verzeichnis-Suchbereich, Gruppenautorisierung und die Rechte des Dienstkontos sind getrennte Entscheidungen, und ein breites Bind-Konto bleibt breit, nachdem TLS aktiviert wurde. Verwenden Sie das engste Dienstkonto und die engste Suchbasis, die die Integration benötigt, und dokumentieren Sie Endpunkt, TLS-Modus, Vertrauenseigentümer und Erneuerungsprozess zusammen mit der VPN-Konfiguration.

Wenn eine Zertifikatsabweichung auftritt, stellen Sie das richtige Zertifikat oder die richtige Kette bereit. Das Abschalten der Verifikation verwandelt eine sichtbare Abweichung in eine unsichtbare und lässt die zweite Vertrauensbeziehung ungeprüft.

Zwei Verbindungen, zwei Eigentümer, zwei Erneuerungsdaten. Sie in der Dokumentation getrennt zu halten, hält die Anmeldung ehrlich.

Ähnliche Artikel