Οι αποτυχίες εγγραφής GRE στο pptpd δεν είναι πρόβλημα κωδικού
Το πρωτόκολλο 47 δεν είναι θύρα 47. Διαβάστε τα δύο μηνύματα του pptpd ως δύο διαφορετικά σφάλματα, επιτρέψτε το GRE όπου ο κεντρικός υπολογιστής προωθεί και κρατήστε το MPPE αντί να το απενεργοποιήσετε.
Αποτυχία εγγραφής GRE στο αρχείο καταγραφής, και η πρώτη παρόρμηση είναι να επαναφέρετε τον κωδικό πρόσβασης του χρήστη. Αυτή η παρόρμηση είναι σχεδόν πάντα λάθος. Αυτά τα μηνύματα περιγράφουν τη διαδρομή δεδομένων, όχι τον έλεγχο διαπιστευτηρίων: ο πελάτης μπορεί να πιστοποιήθηκε με επιτυχία και στη συνέχεια να κόλλησε στο στάδιο όπου καταχωρείται στο δίκτυο. Δύο διαφορετικά μηνύματα δείχνουν δύο διαφορετικά σφάλματα, και κανένα δεν λύνεται με νέο κωδικό.
Δύο μηνύματα, δύο διαφορετικά σφάλματα
Αποτυχία ανάγνωσης σημαίνει ότι τα πακέτα GRE δεν φτάνουν ποτέ στον δαίμονα ή απορρίπτονται κατά την είσοδο. Η σύνδεση ελέγχου μπορεί να φαίνεται απόλυτα υγιής ενώ τίποτα δεν διασχίζει τη διαδρομή δεδομένων. Η πιστοποίηση είναι το μόνο που λειτούργησε αποδεδειγμένα.
Αποτυχία εγγραφής συνήθως σημαίνει ότι η συνεδρία διαπραγματεύτηκε κάτι που ο πυρήνας ή ο πελάτης δεν μπορεί να χρησιμοποιήσει. Το κανάλι ελέγχου ολοκληρώθηκε, και οι επιλογές που συμφωνήθηκαν σε αυτή την ανταλλαγή δεν ταιριάζουν με το τι μπορούν πραγματικά να κάνουν τα άκρα. Είναι διαφωνία διαμόρφωσης, όχι συμβάν πιστοποίησης.
Διαβάστε ποιο από τα δύο εμφανίζεται πριν αλλάξετε οτιδήποτε. Σας στέλνουν σε διαφορετικά επίπεδα, και το να τα αντιμετωπίζετε ως ένα σύμπτωμα είναι ο λόγος που ο ίδιος διακομιστής επιδιορθώνεται δύο φορές για άσχετους λόγους. Η γραμμή καταγραφής είναι η μόνη δωρεάν διάγνωση που παίρνετε.
Το πρωτόκολλο 47 δεν είναι θύρα 47
Το PPTP χρησιμοποιεί TCP 1723 για να στήσει την κλήση και GRE για να μεταφέρει το φορτίο. Το GRE είναι πρωτόκολλο IP 47, όχι αριθμός θύρας, οπότε ένας κανόνας τείχους προστασίας που ανοίγει τη θύρα 47 δεν επιτρέπει τίποτα χρήσιμο.
Ένας δρομολογητής στη διαδρομή χρειάζεται λειτουργία passthrough PPTP ή ρητή άδεια GRE. Χωρίς αυτό, η χειραψία TCP ολοκληρώνεται και η σήραγγα δεν μεταφέρει ποτέ πακέτο, που παράγει ακριβώς την παραπάνω αποτυχία ανάγνωσης. Κανόνες για τη θύρα 47 σε τείχος προστασίας είναι το πιο συχνά χαμένο απόγευμα σε αυτό το πρωτόκολλο.
Παρακολουθήστε και τις δύο κατευθύνσεις ταυτόχρονα στον διακομιστή αντί να μαντεύετε ποια πλευρά απορρίπτει την κίνηση: tcpdump -ni any port 1723 or proto gre.
Αν το 1723 δείχνει εγκατάσταση κλήσης ενώ το GRE μένει σιωπηλό, ο αποκλεισμός είναι πάνω από τον κεντρικό υπολογιστή. Αν το GRE φτάνει και ο δαίμονας εξακολουθεί να αποτυγχάνει, το πρόβλημα είναι τοπικό και οι επιλογές είναι το επόμενο σημείο.
Επιτρέψτε το GRE όπου ο κεντρικός υπολογιστής προωθεί πραγματικά
Η εισαγωγή κανόνα forward για GRE είναι λογική δοκιμή σε κεντρικό υπολογιστή που προωθεί κίνηση σήραγγας, και δεν είναι πολιτική. Ένας δοκιμαστικός κανόνας που δέχεται τα πάντα ενός πρωτοκόλλου είναι διάγνωση, όχι σχεδιασμός. Αφήστε τον αρκετά ώστε να μάθετε κάτι, μετά αντικαταστήστε τον με περιορισμένο κανόνα.
Προσθέστε κανόνα input για πακέτα που απευθύνονται στον ίδιο τον διακομιστή, γιατί η αλυσίδα forward δεν τα βλέπει. Μετά κοιτάξτε τους μετρητές του κανόνα πριν και μετά από μια προσπάθεια σύνδεσης, που σας λέει αν τα πακέτα φτάνουν καθόλου.
Διατηρήστε τον κανόνα μέσω της υπηρεσίας τείχους προστασίας της διανομής αντί να τον εκτελείτε ξανά μετά από κάθε επανεκκίνηση. Σε κεντρικό υπολογιστή nftables, αντιστοιχίστε το ip protocol gre και στην αλυσίδα input και στη forward.
Επιβεβαιώστε ότι έχει φορτωθεί και η μονάδα ppp_generic, και ελέγξτε αν η παρακολούθηση συνδέσεων απορρίπτει την κατεύθυνση επιστροφής. Και τα δύο παράγουν αποτυχίες που μοιάζουν με πρόβλημα τείχους προστασίας και δεν είναι. Μια μονάδα πυρήνα που λείπει μοιάζει ακριβώς με αποκλεισμένο πρωτόκολλο μέχρι να το ελέγξετε.
Προσαρμόστε τις επιλογές στον πελάτη που έχετε πραγματικά
Η διόρθωση από την άλλη αναφορά βρίσκεται στο /etc/ppp/pptpd-options, όπου η συνταγή απορρίπτει PAP, CHAP και MSCHAP, σχολιάζει τις αντίστοιχες γραμμές require και κρατά MPPE με κατάσταση. Αυτή η συνταγή γράφτηκε για ένα μείγμα πελατών, και το τυφλό αντίγραφό της σπάει τη συνηθισμένη περίπτωση. Διαβάστε τις γραμμές απόρριψης ως δήλωση για το ποιους πελάτες είχε ο συγγραφέας, όχι ως σύσταση.
Ένας πελάτης Windows χρειάζεται συνήθως MS-CHAPv2 με MPPE-128. Κρατήστε αυτές τις απαιτήσεις και αφαιρέστε μόνο τις επιλογές που ο πελάτης πραγματικά δεν μπορεί να διαπραγματευτεί.
# keep encryption; drop only what this client cannot negotiate
refuse-pap
refuse-chap
refuse-mschap
mppe-stateful
require-mschap-v2
require-mppe-128Η απενεργοποίηση της κρυπτογράφησης για να πετύχει μια σύνδεση είναι υποβάθμιση, όχι επισκευή. Δοκιμάστε μια τέτοια παραλλαγή σε ζεύξη εργαστηρίου, μετά επαναφέρετε την κρυπτογράφηση πριν η υπηρεσία αντιμετωπίσει πραγματικούς πελάτες. Η σύνδεση που λειτουργεί ανασφαλώς είναι χειρότερη από εκείνη που αποτυγχάνει ειλικρινά.
Διαβάστε τον αριθμό σφάλματος του πελάτη
Ο αριθμητικός κώδικας του πελάτη στενεύει το στάδιο γρηγορότερα από το αρχείο καταγραφής του διακομιστή. Διαβάστε τον πριν διαβάσετε οτιδήποτε άλλο. Το 691 σημαίνει ότι τα διαπιστευτήρια απορρίφθηκαν, το 721 σημαίνει ότι ο διακομιστής δεν απάντησε ποτέ, και το 619 σημαίνει ότι η σύνδεση έπεσε. Δύο λεπτά με τον αριθμό γλιτώνουν μία ώρα με τη διαμόρφωση.
Συγκρίνετε αυτόν τον κωδικό με το αρχείο καταγραφής του διακομιστή πριν επεξεργαστείτε οτιδήποτε, και δοκιμάστε ξανά με τον ίδιο πελάτη μετά από κάθε αλλαγή. Αλλιώς ένα δεύτερο σφάλμα κρύβεται πίσω από το πρώτο και η διόρθωση φαίνεται αναποτελεσματική.
Όταν η σύνδεση πετύχει και δεν κινείται κίνηση, το GRE παραμένει ο ύποπτος. Αυτή είναι η στιγμή να επιστρέψετε στη σύλληψη πακέτων και όχι στην αποθήκη διαπιστευτηρίων.