Port 443 antwortet, SSTP scheitert weiterhin: Welche Stufe ist kaputt?
Etwas hat die Verbindung angenommen, und der Tunnel baut sich trotzdem nicht auf. Trennen Sie Transport, Zertifikat, SSTP-Aushandlung und PPP-Authentifizierung.
Ein abgeschlossener TCP-Handshake zu Port 443, während der Tunnel nie aufgebaut wird, beweist eine Sache, und es ist eine kleine Sache. Etwas lauscht und ist bereit, an dieser Adresse eine Verbindung anzunehmen. Es identifiziert nicht den Dienst, das Zertifikat, das er vorlegen wird, oder was nach den ersten Bytes geschieht.
Zwischen diesem Handshake und einem funktionierenden Tunnel liegen vier Stufen, und jede erzeugt einen anderen Fehler.
Ein offener Port beschreibt nur eine Schicht
Eine TCP-Verbindung anzunehmen bedeutet, dass ein Prozess den Socket besitzt und der Pfad den Handshake zulässt. Es sagt nichts darüber aus, ob dieser Prozess ein SSTP-Server ist, ob er ein für den Namen in Ihrem Profil gültiges Zertifikat besitzt oder ob er Ihr Konto autorisieren wird. Ein Webserver auf derselben Adresse beantwortet den Handshake einwandfrei und antwortet dann auf Ihre SSTP-Anfrage mit einem HTTP-Fehler. Alles oberhalb dieses Handshakes bleibt ungetestet.
Betrachten Sie den Porttest als den billigstmöglichen Filter und nicht als Urteil. Sein Wert liegt darin, dass er eine ganze Fehlerklasse ausschließt, nicht darin, dass er alles darüber bestätigt.
Die beiden zu verwechseln ist der Grund, warum Leute Clients neu installieren, nachdem ein Test das eigentliche Problem des Clients nie untersucht hat.
Trennen Sie die vier Stufen mit Belegen
Die Stufen sind Erreichbarkeit des Transports, TLS-Validierung, der SSTP-Austausch über HTTPS und PPP-Authentifizierung innerhalb des Tunnels. Ein Pfad, der die erste besteht und an der vierten scheitert, braucht eine Korrektur der Zugangsdaten; einer, der an der zweiten scheitert, braucht eine Zertifikat- oder Namenskorrektur. Diese Reparaturen haben nichts gemeinsam, und die falsche zu wählen verschwendet die Störung.
nc -vz vpn.example.net 443
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief
curl -sS -o /dev/null -w '%{http_code}\n' https://vpn.example.net/
Der dritte Befehl lohnt sich, sorgfältig gelesen zu werden. Ein 200 von einer gewöhnlichen Webseite sagt Ihnen, dass ein Webdienst vorhanden ist; es sagt nicht, dass die SSTP-Anfrage verstanden wird. Ein 404 von derselben Adresse ist ebenso nichtssagend über das VPN. Nur das Client-Log sagt Ihnen, welche der vier Stufen erreicht wurde.
Achten Sie darauf, welchen Namen jeder Befehl verwendet hat. Das Zertifikat wird nach dem Namen ausgewählt, den Sie senden, ein Mismatch zwischen Profil und Test ist also ein Mismatch, den Sie selbst eingeführt haben. Den Namen neben das Ergebnis zu schreiben verhindert später die Verwirrung.
Lesen Sie Teilerfolge in der richtigen Richtung
Ein Zwischenstück kann gewöhnliches Surfen erlauben und den späteren Austausch verweigern, weshalb ein Proxy, der für Websites funktioniert, für einen Tunnel trotzdem scheitern kann. Dasselbe Muster erscheint, wenn ein Zertifikat für einen Browsernamen gültig ist, aber nicht für den im Profil konfigurierten Namen: Der Browser ist zufrieden und der Client nicht, und beide haben recht bezüglich dessen, was sie geprüft haben.
Lassen Sie die Servervalidierung aktiviert, während Sie das diagnostizieren. Sie abzuschalten verwandelt einen Zertifikat-Mismatch in einen erfolgreichen Handshake und verbirgt den einzigen Beleg, der den Fehler erklärt hätte.
Wenn dasselbe Profil aus einem anderen Netzwerk funktioniert, ist der Unterschied pfadabhängig. Das grenzt die Suche auf Zwischenstücke ein, ohne zu sagen, welches, und ist trotzdem ein nützlicher Schritt nach vorn. Notieren Sie das verwendete Netzwerk, denn der Vergleich ist ohne es wertlos.
Testen Sie dann die Anwendung, nicht nur die Sitzung
Sobald eine Sitzung besteht, prüfen Sie die beabsichtigte Route, Namensauflösung und Dienstberechtigung von dem Client aus, der sie benötigt. Ein verbundener Tunnel kann auf der Gegenseite noch eine fehlende Weiterleitung oder eine Rückroute haben, die nie existierte, und diese Fehler sehen für die wartende Person genau wie ein Anwendungsproblem aus.
Halten Sie jede Schlussfolgerung an die Stufe gebunden, die sie hervorgebracht hat. Einen offenen Port als funktionierendes VPN zu bezeichnen ist der Weg, auf dem eine fünfminütige Zertifikatsprüfung zu einem Tag Software-Neuinstallation wird.