Σφάλμα 789 L2TP/IPsec στα Windows: δημιουργήστε το προφίλ και καρφιτσώστε την πρόταση
Το σφάλμα 789 αποτυγχάνει στην ανταλλαγή IPsec, όχι στον κωδικό πρόσβασης. Δημιουργήστε το προφίλ L2TP με σενάριο, καρφιτσώστε την πρόταση και διαβάστε τους επόμενους κωδικούς ανά στάδιο.
Το σφάλμα 789 σε μια σύνδεση L2TP των Windows σημαίνει ότι η σήραγγα πέθανε μέσα στην ανταλλαγή ασφαλείας IPsec, κάτι που συμβαίνει πολύ πριν στείλουν τα Windows έναν κωδικό πρόσβασης χρήστη οπουδήποτε. Η επανάληψη του κωδικού πρόσβασης ή η επαναφορά του στον κατάλογο δεν μπορεί να προχωρήσει αυτό το στάδιο. Αυτό που το προχωρά είναι η ανακατασκευή της σύνδεσης από το PowerShell με την πρόταση που προσφέρει πραγματικά η πύλη, επειδή ο οδηγός Ρυθμίσεων επιλέγει σιωπηλά τους μετασχηματισμούς IPsec και δεν σας δείχνει ποτέ τι επέλεξε. Αυτό είναι το εγχειρίδιο γι' αυτό: δημιουργήστε το προφίλ, καρφιτσώστε την πρόταση και μετά χρησιμοποιήστε έναν πίνακα σταδίων ώστε ο επόμενος κωδικός να σας πει κάτι.
Δημιουργήστε το προφίλ χωρίς τον οδηγό
Το Add-VpnConnection γράφει μια εγγενή καταχώριση τηλεφωνικού καταλόγου, οπότε το αποτέλεσμα είναι το ίδιο αντικείμενο που επεξεργάζεται αργότερα η εφαρμογή Ρυθμίσεις. Εκτελέστε το από μια αναβαθμισμένη συνεδρία όταν η σύνδεση πρέπει να υπάρχει για κάθε λογαριασμό στον υπολογιστή, ή από το περιβάλλον χρήστη όταν πρέπει να παραμείνει ιδιωτική:
Add-VpnConnection -Name "Contoso L2TP" `
-ServerAddress 203.0.113.10 `
-TunnelType L2tp `
-EncryptionLevel Required `
-AuthenticationMethod MSChapv2 `
-RememberCredential -Force
Αντιστοιχίστε το -AuthenticationMethod με αυτό που προσφέρει η πύλη. Τα MSChapv2, EAP και PAP δεν είναι εναλλάξιμα, και ένα προφίλ που απαιτεί μέθοδο που ο διακομιστής δεν θα δεχτεί αποτυγχάνει πριν εξεταστεί οποιαδήποτε εγγραφή χρήστη. Κρατήστε το -EncryptionLevel Required για οτιδήποτε πραγματικό· το Optional επιτρέπει στα Windows να δεχτούν μια μη κρυπτογραφημένη σήραγγα αν ο ομότιμος προσφέρει μία, κάτι που είναι εργαστηριακή συντόμευση και όχι ρύθμιση για κυκλοφορία.
Αν περάσετε το -L2tpPsk, αυτό το προ-κοινοποιημένο κλειδί γράφεται στο προφίλ στον δίσκο, από όπου μπορεί να το ανακτήσει όποιος μπορεί να διαβάσει το προφίλ σε αυτόν τον υπολογιστή. Χρησιμοποιήστε πιστοποιητικό για τον έλεγχο ταυτότητας του ομοτίμου όταν η πύλη το υποστηρίζει, και όταν ένα PSK είναι αναπόφευκτο, κρατήστε το έξω από το αποθετήριο και έξω από το ιστορικό του κελύφους αντί να το επικολλάτε σε κάθε εκτέλεση παροχής.
Καρφιτσώστε την πρόταση αντί να δέχεστε τις προεπιλογές
Τα Windows συμπληρώνουν μόνα τους τους μετασχηματισμούς IPsec, και γι' αυτό δύο υπολογιστές με φαινομενικά ίδια σύνδεση μπορούν να αποτύχουν διαφορετικά απέναντι στην ίδια πύλη. Το Set-VpnConnectionIPsecConfiguration είναι ο υποστηριζόμενος τρόπος να τους καρφιτσώσετε:
Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
-AuthenticationTransformConstants SHA256128 `
-CipherTransformConstants AES128 `
-EncryptionMethod AES128 `
-IntegrityCheckMethod SHA256 `
-DHGroup Group14 `
-PfsGroup None `
-PassThru -Force
Αυτό το σύνολο είναι μια συνηθισμένη διάταξη L2TP/IPsec, όχι καθολική απάντηση. Κάθε παράμετρος δέχεται μια σταθερή λίστα τιμών, και ένας συνδυασμός που η πλατφόρμα δεν μπορεί να αντιστοιχίσει επιστρέφει ως σφάλμα cmdlet αντί για ένα σιωπηλά αποδυναμωμένο προφίλ. Αντιμετωπίστε ένα τέτοιο σφάλμα ως δήλωση για τις τιμές, όχι για τα δικαιώματά σας.
Αντιγράψτε την πρόταση από την τεκμηρίωση της πύλης ή από τις ζωντανές ρυθμίσεις της φάσης 1 και φάσης 2, και αλλάξτε ένα πεδίο τη φορά μόνο όσο η πύλη καταγράφει τους μετασχηματισμούς που απορρίπτει. Το να περνάτε πέντε πεδία παράγει μια σύνδεση που λειτουργεί κατά λάθος και ένα αρχείο που δεν εξηγεί τίποτα στον επόμενο.
Διαβάστε μια αποτυχία ανά στάδιο, όχι από το κείμενο του σφάλματος
Το 789 ανήκει σε μια οικογένεια κωδικών που όλοι μοιάζουν ίδιοι στο παράθυρο διαλόγου του πελάτη. Τοποθετήστε τον κωδικό στο στάδιο στο οποίο ανήκει πριν αγγίξετε ξανά το προφίλ:
| What you see | Stage that failed | Check first |
|---|---|---|
| Nothing happens, then a timeout | No IKE response at all | Server address, UDP 500 and 4500 reachability, NAT traversal on the gateway |
| Error 789 | IKE security exchange | Proposal, pre-shared key, certificate trust and client clock |
| Error 691 or a repeated password prompt | User authentication | Account state, domain, RADIUS or NPS policy |
| Tunnel up, some hosts unreachable | Routing or DNS after PPP | Split-tunnel routes, pushed DNS, remote subnet mask |
Οι δύο ρόλοι των διαπιστευτηρίων έχουν σημασία εδώ. Ένα προ-κοινοποιημένο κλειδί ή πιστοποιητικό πιστοποιεί τους ομοτίμους μεταξύ τους, ενώ το MSChapv2 ή το EAP πιστοποιεί εσάς μέσα στη σήραγγα. Η επαναφορά κωδικού πρόσβασης χρήστη δεν μπορεί να διορθώσει το πρώτο, ένα νέο κοινό μυστικό δεν μπορεί να διορθώσει το δεύτερο, και η αλλαγή και των δύο μαζί καταστρέφει την απόδειξη για το ποιο ήταν λάθος.
Στη διαδρομή του πιστοποιητικού, ελέγξτε το ρολόι του πελάτη, την αλυσίδα εμπιστοσύνης και την ταυτότητα που περιμένει η πύλη πριν σκεφτείτε να χαλαρώσετε την επικύρωση. Η απενεργοποίηση της επικύρωσης μετατρέπει ένα ορατό 789 σε σήραγγα που συνδέεται ενώ εμπιστεύεται λάθος ομότιμο, και τίποτα στον πελάτη δεν θα σας πει ότι συνέβη αυτό. λίστα σφαλμάτων απομακρυσμένης πρόσβασης της Microsoft είναι η αναφορά για τους ίδιους τους κωδικούς, και διαχωρίζει τις αποτυχίες του επιπέδου ασφαλείας από τις αποτυχίες σύνδεσης.
Επαληθεύστε από τα δύο άκρα πριν το θεωρήσετε διορθωμένο
Διαβάστε το προφίλ πίσω, αλλά μην περιμένετε την πρόταση στην έξοδο. Το Get-VpnConnection αναφέρει το όνομα, τη διεύθυνση διακομιστή, τον τύπο σήραγγας, το επίπεδο κρυπτογράφησης και τη μέθοδο ελέγχου ταυτότητας, και δεν γνωρίζει τίποτα για μετασχηματισμούς, οπότε η ανάγνωση επιβεβαιώνει ότι η καταχώριση υπάρχει και δείχνει στον σωστό κεντρικό υπολογιστή:
Get-VpnConnection -Name "Contoso L2TP" |
Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod
Καλέστε από τη γραμμή εντολών ώστε να πάρετε έναν αριθμό αντί για παράθυρο διαλόγου: το rasdial "Contoso L2TP" επιστρέφει τον ίδιο κωδικό αποτυχίας που θα επέστρεφε η διεπαφή, και το rasdial "Contoso L2TP" /disconnect τον καθαρίζει μεταξύ προσπαθειών. Μετά διαβάστε την πλευρά της πύλης για την ίδια προσπάθεια. Ένα ipsec statusall του strongSwan ή ένα αρχείο IKE του δρομολογητή δηλώνει ποια πρόταση έφτασε και ποια απορρίφθηκε, και η σύγκριση με τις τιμές του cmdlet είναι το μόνο βήμα που αποδεικνύει πραγματικά ότι τα δύο άκρα συμφώνησαν.
Μια επιτυχημένη σύνδεση δεν είναι η γραμμή τερματισμού. Ανοίξτε την εφαρμογή που νοιάζει τον χρήστη, επειδή οι διαδρομές, το DNS που ωθείται και οι ρυθμίσεις διαχωρισμένης σήραγγας αποτυγχάνουν αφού ανέβει η σήραγγα και δεν παράγουν καθόλου παράθυρο σφάλματος.
Αυτοματοποιήστε το και επιστρέψτε καθαρά
Η μη επιτηρούμενη εγκατάσταση είναι ο λόγος να το κάνετε σενάριο, και το βήμα κλήσης είναι εκεί όπου διαρρέουν τα διαπιστευτήρια. Το rasdial τα παίρνει στη γραμμή εντολών του, όπου άλλοι τοπικοί χρήστες και οι περισσότεροι συλλέκτες αρχείων μπορούν να τα διαβάσουν:
subprocess.run(["rasdial", "Contoso L2TP"], check=True)
Προτιμήστε ένα διαπιστευτήριο περιορισμένο στον λογαριασμό που εκτελεί την εργασία, ή αφήστε το προφίλ να το αποθηκεύσει με το -RememberCredential, αντί να περνάτε κωδικό πρόσβασης ως όρισμα σε προγραμματισμένη εργασία. Οι ίδιες οι εντολές παροχής είναι ασφαλείς για επανάληψη με το -Force, αλλά θα επικαλύψουν ευχαρίστως μια παλιά πρόταση, οπότε μια επανεκτέλεση βοηθά μόνο αν το σενάριο φέρει τις τρέχουσες τιμές.
Τα προφίλ επιβιώνουν από επανεκκινήσεις και ζουν περισσότερο από τη διαμόρφωση της πύλης για την οποία δημιουργήθηκαν. Όταν η πρόταση της πύλης μετακινηθεί, αφαιρέστε την καταχώριση και δημιουργήστε την ξανά αντί να στρώσετε ένα δεύτερο σύνολο τιμών από πάνω: Remove-VpnConnection -Name "Contoso L2TP" -Force, και μετά επαναλάβετε τα δύο cmdlet με το νέο σύνολο.
Κλείστε τον κύκλο με τέσσερις ελέγχους που ζουν δίπλα στο σενάριο: το Get-VpnConnection δείχνει τον αναμενόμενο τύπο σήραγγας και το επίπεδο κρυπτογράφησης· η πύλη καταγράφει μια ολοκληρωμένη φάση 1 και φάση 2 για τη διεύθυνση του πελάτη σας· το rasdial επιστρέφει επιτυχία και η εφαρμογή ανοίγει· και η πρόταση που καταγράφεται στο σενάριο ταιριάζει με την τρέχουσα ρύθμιση της πύλης. Όταν φτάσει το επόμενο 789, αυτή η σύγκριση παίρνει λεπτά αντί για ένα απόγευμα.