VPN-Einwahl schlägt mit “Fehler 87 Falscher Parameter” fehl

Bei der VPN-Einwahl bei der über einen Netzwerkrichtlinienzugriffsserver (NPS) der Zugriff gesteuert wird, kann es zur Fehlermeldung “Fehler 87 Falscher Parameter” kommen. Im Eventlog sieht man nur, dass der Client nicht den auf dem Server konfigurierten Richtlinien entspricht, was zunächst nach NAP aussieht. Entfernt man die Integritätsrichtlinie so wird man feststellen, dass die Einwahl trotzdem nicht funktionieren wird. Es muss also etwas verzwicktes sein, aber was?

An den Zertifikaten für die Einwahl und an der Radiuskonfiguration wurde eigentlich nichts geändert. Also muss man sich die Frage stellen, was wurde geändert? Nach etwas grübeln kommt man drauf, dass am 12.12.2012 Patchday war und Updates installiert wurden. Ok, somit muss es irgendwie damit zusammenhängen.

Auffällig ist folgende Fehlermeldung die bei jeder Einwahl auf dem NPS-Server generiert wird, die man sicherlich erstmal vernachlässigt:

Es scheint also irgendwo ein Problem mit der Sicherheitsaushandlung in der RADIUS-Kommunikation zu geben.

Über die Suchmaschine seiner Wahl findet man folgenden Artikel: http://support.microsoft.com/kb/933430
Dieser ist zwar schon Uralt und gilt für Server 2003, aber mal schauen. Darin steht was, dass bei der Sicherheitsaushandlung der Server eine Liste mit allen CAs sendet denen er vertraut und wenn diese Liste zu lang ist, dann kann es zu Fehlern in der Aushandlung kommen. Wer die lange Liste der Updates vom 12.12.2012 im Kopf hat, dem wird auffallen, dass darunter auch ein Stammzertifikatsupdate enthalten war. Dann zählen wir mal 1 und 1 zusammen und es riecht förmlich danach, dass dies die Ursache sein muss.

Behelfen kann man sich übergangsweise durch setzen folgendes Registrierungsschlüssels auf dem NPS-Server:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Value name: SendTrustedIssuerList
Value type: REG_DWORD
Value data: 0 (False)

Dadurch sendet der NPS-Server keine Liste der vertrauten Zertifizierungsstellen an den Client und die Sicherheitsaushandlung funktioniert wieder. Ein Neustart der Server ist hierfür übrigens nicht erforderlich!

Verursacht wird dieses Problem anscheinend durch das Update http://support.microsoft.com/kb/931125 welches die Stammzertifizierungsstellen auf den Clients aktualisieren soll. Anscheinden wurde dadurch die maximale Anzahl an Zertifizierungsstellen für die Sicherheitsaushandlung überschritten.

Anstelle des Registrykeys kann man auch vertraute Stammzertifizierungsstellen aus dem Computerspeicher des Servers löschen, was sicherlich die bessere Variante ist. Als Workarround ist die Methode mit dem Registrierungsschlüssel aber durchaus eine temporäre Lösung.

Sobald ich weitere News zu diesem Problem habe werde ich berichten.