Μια θύρα στο πεδίο διεύθυνσης του VPN των Windows λειτουργεί μόνο με SSTP
Το πεδίο Όνομα διακομιστή δεν είναι host:port. Τα PPTP, L2TP και IKEv2 έχουν σταθερές θύρες· το SSTP δέχεται θύρα μόνο ως πλήρες https:// URL, και η προώθηση της 443 είναι καθαρότερη.
Ένας διακομιστής VPN απαντά στην TCP 10443, ο ενσωματωμένος πελάτης των Windows έχει τα σωστά διαπιστευτήρια, και η σύνδεση πεθαίνει παρ’ όλα αυτά μετά από μια παύση που μοιάζει με λήξη χρόνου DNS. Η αιτία είναι συνήθως το πεδίο διεύθυνσης: η πληκτρολόγηση vpn.example.com:10443 στο Όνομα διακομιστή ή διεύθυνση κάνει τα Windows να διαβάζουν ολόκληρη τη συμβολοσειρά ως όνομα κεντρικού υπολογιστή, επειδή αυτό το πλαίσιο δεν είναι γενική εισαγωγή host:port. Το αν μπορεί να εκφραστεί εκεί θύρα εξαρτάται από τον τύπο σήραγγας που χρησιμοποιεί το προφίλ, και μόνο ένας από τους τέσσερις τύπους αντιμετωπίζει την τιμή ως κάτι που μπορεί να αναλύσει.
Γιατί το πεδίο διεύθυνσης δεν είναι πλαίσιο host:port
Η ιδιότητα του προφίλ πίσω από αυτό το πεδίο είναι η ServerAddress, και κάθε τύπος σήραγγας αποφασίζει τι κάνει με τη συμβολοσειρά. Τρεις από αυτούς δεν έχουν παράμετρο θύρας για συμπλήρωση, οπότε η άνω και κάτω τελεία και ένας αριθμός είναι απλώς χαρακτήρες σε ένα όνομα που δεν θα επιλυθεί ποτέ. Ο τέταρτος τρέχει πάνω από HTTPS, όπου η θύρα είναι μέρος του URL, άρα η τιμή πρέπει να γραφτεί σε μορφή που αναλύεται ως URL.
Γι’ αυτό η αποτυχία μοιάζει με επίλυση ονομάτων και όχι με απορριφθείσα σύνδεση. Δεν υπάρχει κακή θύρα για αναφορά, μόνο ένα όνομα κεντρικού υπολογιστή που δεν υπάρχει, και το σφάλμα έρχεται αφού ο επιλυτής παραδοθεί. Πριν αγγίξετε τον διακομιστή, ελέγξτε ποιον τύπο σήραγγας δηλώνει το προφίλ ότι χρησιμοποιεί.
Οι τρεις τύποι με σταθερή θύρα
Το PPTP συνδέεται στην TCP 1723 και μετά μεταφέρει τη σήραγγα σε GRE, πρωτόκολλο IP 47. Το L2TP/IPsec χρησιμοποιεί UDP 1701 για τη σήραγγα και UDP 500 συν 4500 για το IPsec, με το 4500 να είναι η θύρα διέλευσης NAT. Το IKEv2 χρησιμοποιεί επίσης UDP 500 και 4500. Κανένα από αυτά τα προφίλ δεν εκθέτει πεδίο θύρας οπουδήποτε στη διεπαφή, και κανένα δεν θα διαπραγματευτεί μη τυπική θύρα.
Ένας διακομιστής που ακούει σε προσαρμοσμένη θύρα είναι επομένως απρόσιτος για αυτά τα προφίλ, ό,τι κι αν γραφτεί στη διεύθυνση. Οι πρακτικές απαντήσεις είναι στενές: δημοσιεύστε τη σταθερή θύρα στον διακομιστή ή μεταφράστε τη σταθερή θύρα στην προσαρμοσμένη στον δρομολογητή μπροστά του. Και τα δύο αφήνουν το προφίλ του πελάτη ανέγγιχτο, κάτι που αξίζει πολύ όταν το προφίλ αναπτύσσεται με πολιτική και δεν πληκτρολογείται με το χέρι.
Το SSTP χρειάζεται URL, όχι όνομα
Το SSTP είναι η εξαίρεση επειδή τρέχει μέσα σε συνεδρία TLS. Το πεδίο πρέπει να αναλύεται ως URL: πρώτα το σχήμα https://, μετά ο κεντρικός υπολογιστής, μετά η άνω και κάτω τελεία και η θύρα. Χωρίς το σχήμα, τα Windows συνεχίζουν να αντιμετωπίζουν την τιμή ως απλό όνομα και η σύνδεση αποτυγχάνει πριν γίνει οποιαδήποτε ανταλλαγή TLS.
Ο λόγος που αυτό εκπλήσσει είναι ότι η προεπιλεγμένη θύρα δέχεται το γυμνό όνομα κεντρικού υπολογιστή. Ένα προφίλ που δεν χρειάστηκε ποτέ προσαρμοσμένη θύρα δεν διδάσκει ποτέ τον κανόνα, και το πρώτο άτομο που προσθέτει μία το ανακαλύπτει αποτυγχάνοντας. Αφού αποθηκεύσετε, διαβάστε ξανά την αποθηκευμένη τιμή αντί να εμπιστευτείτε το παράθυρο διαλόγου:
Get-VpnConnection -Name "Corporate SSTP" | Select-Object Name, ServerAddress, TunnelType
Η ServerAddress δείχνει ακριβώς τι αποθηκεύτηκε. Αν διαβάζεται ως γυμνό όνομα κεντρικού υπολογιστή με άνω και κάτω τελεία, το προφίλ δεν έλαβε ποτέ URL και κανένας αριθμός επαναλήψεων δεν θα το διορθώσει.
Σύνταξη κατασκευαστή που επικολλάται στο ίδιο πλαίσιο
Ορισμένες πύλες τεκμηριώνουν πρόσθετες συμβάσεις για αυτό το πεδίο, όπως ένα realm που προσαρτάται μετά τη θύρα ή παραμέτρους ερωτήματος που αλλάζουν τον χειρισμό των πιστοποιητικών. Τις καταλαβαίνει ο διακομιστής αυτού του κατασκευαστή και, σε ορισμένες εκδόσεις, ο δικός του πελάτης. Δεν αποτελούν μέρος της μορφής προφίλ των Windows, και η επικόλλησή τους σε ενσωματωμένο προφίλ παράγει συνήθως την ίδια σιωπηλή αποτυχία ονόματος.
Αντιμετωπίστε μια παράμετρο που απενεργοποιεί την επικύρωση πιστοποιητικών ως προειδοποίηση και όχι ως διόρθωση. Αν ένα προφίλ συνδέεται μόνο με αυτή την παράμετρο, το πιστοποιητικό δεν ταιριάζει με το όνομα που χρησιμοποιείται, και η σωστή επισκευή είναι στην πύλη, όχι στον πελάτη. Ένα realm μετά τη θύρα έχει την ίδια ιδιότητα: κάνει κάτι μόνο αν ο διακομιστής στην άλλη πλευρά το περιμένει.
Αποδείξτε τη θύρα και μετά διαβάστε το στάδιο που αποτυγχάνει
Επιβεβαιώστε ότι κάτι δέχεται TCP σε αυτή τη θύρα από το δίκτυο του πελάτη πριν κατηγορήσετε το προφίλ:
Test-NetConnection vpn.example.com -Port 10443
Η επιτυχία αποδεικνύει έναν ακροατή, όχι το SSTP. Ένας διακομιστής ιστού, ένας αντίστροφος διαμεσολαβητής ή ένας εξισορροπητής φόρτου μπορούν να ολοκληρώσουν τη χειραψία TCP και παρ’ όλα αυτά να μην μιλούν SSTP, άρα μια πράσινη δοκιμή με κόκκινο VPN είναι πραγματικός συνδυασμός. Συγκρίνετε το θέμα του πιστοποιητικού με το όνομα στο προφίλ και ελέγξτε το αρχείο καταγραφής RasClient στις εκδόσεις που το περιλαμβάνουν, γιατί καταγράφει το στάδιο που απέτυχε αντί για ένα γενικό χρονικό όριο.
Στη συνέχεια εξετάστε την επιλογή που εξαλείφει το πρόβλημα αντί να το τεκμηριώνει: προωθήστε την TCP 443 από έξω στη 10443 στον διακομιστή VPN. Ο πελάτης χρησιμοποιεί τότε το προεπιλεγμένο προφίλ χωρίς καθόλου θύρα, που είναι συνήθως η καθαρότερη διάταξη για ένα διαχειριζόμενο στόλο και αφήνει την προσαρμοσμένη θύρα ως εσωτερική λεπτομέρεια.