Μια σύνδεση SSTP αποτυγχάνει με δύο τρόπους που φαίνονται ίδιοι από την καρέκλα του χρήστη, και η επιδιόρθωση για κάθε έναν βρίσκεται σε διαφορετικό επίπεδο. Το χρονικό όριο σημαίνει ότι μια απαιτούμενη ανταλλαγή δεν ολοκληρώθηκε ποτέ· το σφάλμα πιστοποιητικού σημαίνει ότι το υλικό ταυτότητας έφτασε και απορρίφθηκε. Αν αντιμετωπίσετε το δεύτερο ως το πρώτο, οδηγείστε σε τείχη προστασίας και κωδικούς που ποτέ δεν ήταν το πρόβλημα. Η διακριτική απόδειξη βρίσκεται στο ίδιο το αρχείο καταγραφής του πελάτη, αν το διαβάσετε πριν αλλάξετε οτιδήποτε.

Δύο αποτυχίες, δύο διαφορετικές ανταλλαγές

Το SSTP μεταφέρει ένα τούνελ μέσα σε συνεδρία με μορφή HTTPS, γι’ αυτό επιβιώνει σε δίκτυα που δεν επιτρέπουν τίποτε άλλο εκτός από 443. Ο πελάτης ολοκληρώνει χειραψία TLS, στέλνει αίτημα HTTP με μέθοδο ειδική για το πρωτόκολλο, και μετά το τούνελ τρέχει μέσα σε αυτή τη ροή. Αποτυχία σε οποιοδήποτε από αυτά τα βήματα σταματά τη σύνδεση, και μόνο τα επόμενα αφορούν διαπιστευτήρια.

Αυτή η σειρά είναι η διάγνωση. Αν η χειραψία TLS δεν ολοκληρωθεί ποτέ, δεν στάλθηκε κανένα διαπιστευτήριο, άρα η επαναφορά κωδικού δεν μπορεί να βοηθήσει. Αν η χειραψία ολοκληρωθεί και μετά κολλήσει, η ταυτότητα έγινε δεκτή και κάτι στη διαδρομή του αιτήματος την απέρριψε. Αν η χειραψία αποτύχει με μήνυμα επικύρωσης, ο διακομιστής απάντησε και στον πελάτη δεν άρεσε αυτό που άκουσε. Τρία αποτελέσματα, τρία επίπεδα.

Η γραμμή του αρχείου καταγραφής συνήθως λέει σε ποιο από τα τρία βρίσκεστε, γι’ αυτό αξίζει να την καταγράψετε πριν την πρώτη αλλαγή.

Χρονικό όριο σημαίνει ότι ένα στάδιο δεν ολοκληρώθηκε ποτέ

Ξεκινήστε με την επίλυση ονομάτων και την προσβασιμότητα TCP, γιατί ένα χρονικό όριο εκεί φαίνεται ίδιο με ένα χρονικό όριο αργότερα. Ένας ελεγκτής θυρών που αναφέρει την 443 ανοιχτή αποδεικνύει ότι ένας ακροατής δέχτηκε σύνδεση, και τίποτε πέρα από αυτό.

Ο επόμενος ύποπτος είναι η διαδρομή και όχι ο κεντρικός υπολογιστής. Οι μεσολαβητές και τα τείχη προστασίας που κατανοούν εφαρμογές μερικές φορές απορρίπτουν τη μέθοδο αιτήματος που χρησιμοποιεί το SSTP, ή ρίχνουν μια ροή που μένει ανοιχτή για ώρες, και οι δύο συμπεριφορές μοιάζουν με χρονικό όριο από την πλευρά του πελάτη. Μια συνηθισμένη σελίδα HTTPS που σερβίρει ο ίδιος κεντρικός υπολογιστής φορτώνει άψογα ενώ η μέθοδος του τούνελ απορρίπτεται, γι’ αυτό η περιήγηση στο τελικό σημείο αποδεικνύει τόσο λίγο. Δοκιμάστε από δίκτυο χωρίς τον μεσολαβητή για να ξεχωρίσετε αυτές τις δύο περιπτώσεις.

Test-NetConnection vpn.example.com -Port 443
netsh http show sslcert
Get-WinEvent -LogName 'Microsoft-Windows-RasSstp/Operational' -MaxEvents 20

Ένα χρονικό όριο πριν από οποιαδήποτε απάντηση του ομολόγου δεν λέει τίποτε για τον λογαριασμό, και η αλλαγή κωδικού εκείνη τη στιγμή προσθέτει μόνο μια μεταβλητή.

Σφάλμα πιστοποιητικού σημαίνει ότι η ταυτότητα απορρίφθηκε

Εδώ ο διακομιστής απάντησε πράγματι, άρα το δίκτυο λειτουργεί και το ερώτημα μετακινείται στην ταυτότητα. Συγκρίνετε το όνομα με το οποίο καλεί ο πελάτης με τα ονόματα που πράγματι δηλώνει το πιστοποιητικό, και μετά ελέγξτε τις ημερομηνίες ισχύος και την αλυσίδα έκδοσης.

Μια ιδιωτική CA που ο πελάτης δεν εμπιστεύεται παράγει την ίδια κατηγορία σφάλματος με ένα ληγμένο πιστοποιητικό, και το ίδιο ένα ρολόι που πάει ώρες λάθος. Η κλήση στην ωμή διεύθυνση δημιουργεί νέα αναντιστοιχία, γιατί ένα πιστοποιητικό δηλώνει ονόματα και όχι διευθύνσεις. Σε διαχειριζόμενη εγκατάσταση, πάρτε την προβλεπόμενη διαμόρφωση εμπιστοσύνης από τον διαχειριστή της αντί να δεχτείτε μια ρίζα αντικατάστασης που προσφέρει μια σελίδα σφάλματος. Η επικύρωση μένει ενεργή όσο διορθώνετε την αιτία.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
w32tm /query /status

Κρατήστε το επιτυχημένο στάδιο TLS άθικτο μόλις περάσει, γιατί η αναίρεσή του αργότερα κρύβει ποια αλλαγή διόρθωσε πραγματικά το τούνελ.

Πού τα δύο μπερδεύονται

Και οι δύο αποτυχίες εμφανίζονται ως σύνδεση που δεν ανεβαίνει, και οι δύο έρχονται αφού ο χρήστης έχει αλλάξει κάτι άσχετο. Αυτή η σύμπτωση κάνει τη λάθος επιδιόρθωση να φαίνεται εύλογη για λίγο.

Δύο συνήθειες τα κρατούν χωριστά. Καταγράψτε το αρχείο του πελάτη πριν αγγίξετε τη διαμόρφωση, ώστε να διατηρηθεί η πρώτη κατάσταση. Αλλάξτε ένα επίπεδο ανά προσπάθεια, ώστε το επόμενο αποτέλεσμα να ανήκει σε γνωστή μεταβλητή. Ένας ελεγκτής θυρών και ένα πρόγραμμα περιήγησης είναι μερικές παρατηρήσεις και όχι η πλήρης ακολουθία, και κανένα από τα δύο δεν αντικαθιστά την αναφορά του ίδιου του πελάτη. Καμία από τις συνήθειες δεν κοστίζει τίποτε, και οι δύο συντομεύουν την έρευνα.

Το ζήτημα του πιστοποιητικού και το ζήτημα της προσβασιμότητας τεκμηριώνονται χωριστά για έναν λόγο.

Δοκιμάστε ξανά με τον πραγματικό πελάτη και μετά κινηθείτε προς τα μέσα

Μόλις η συγκεκριμένη διόρθωση είναι στη θέση της, δοκιμάστε ξανά με τον πραγματικό πελάτη SSTP και το αληθινό προφίλ, όχι με καρτέλα περιήγησης.

rasdial "Corp SSTP" /disconnect
rasdial "Corp SSTP" user '*'
Get-VpnConnection -Name "Corp SSTP" | Select-Object ServerAddress, TunnelType, AuthenticationMethod

Αν η συνεδρία συνδεθεί και οι πόροι εξακολουθούν να αποτυγχάνουν, το τούνελ δεν είναι πλέον ύποπτο: προχωρήστε σε δρομολόγηση, DNS και πρόσβαση σε υπηρεσίες. Αυτή είναι άλλη έρευνα με άλλες αποδείξεις. Η διατήρηση των λειτουργικών σταδίων TLS και ταυτοποίησης εμποδίζει να γίνει επανάληψη της πρώτης. Γράψτε στο δελτίο το στάδιο που απέτυχε, γιατί αλλιώς ο επόμενος άνθρωπος θα ξεκινήσει πάλι από την αρχή.

Σχετικά άρθρα