Η αποστολή αλληλογραφίας αποτυγχάνει όταν συνδέεται το VPN: βρείτε το στάδιο
Ένα χρονικό όριο, ένα σφάλμα TLS και μια απόκριση 5xx αποτυγχάνουν σε διαφορετικά στάδια. Ταξινομήστε την αποτυχία, επιβεβαιώστε τη λειτουργία TLS της θύρας και μετά συγκρίνετε διαδρομές, όχι κωδικούς.
Η αλληλογραφία που λειτουργούσε όλο το πρωί σταματά τη στιγμή που ανεβαίνει η σήραγγα, και η πρώτη παρόρμηση είναι να ξαναγράψεις τον κωδικό πρόσβασης. Αυτή η παρόρμηση παραλείπει την πιο χρήσιμη ερώτηση: έφτασε καθόλου ο πελάτης στον διακομιστή, και πήγε αρκετά μακριά ώστε να προσφέρει διαπιστευτήρια; Ένα χρονικό όριο, ένα σφάλμα πιστοποιητικού και μια απόκριση απόρριψης είναι τρεις διαφορετικές αποτυχίες, και μόνο η τρίτη αφορά τον λογαριασμό. Περάστε τα στάδια με τη σειρά και το VPN γίνεται μια μεταβλητή που μπορείτε να δοκιμάσετε αντί για έναν ύποπτο στον οποίο ρίχνετε το φταίξιμο.
Βήμα 1: ταξινομήστε την αποτυχία πριν αγγίξετε τα διαπιστευτήρια
Διαβάστε το σφάλμα που παρήγαγε πραγματικά η εφαρμογή και μετά τοποθετήστε το σε ένα από τρία καλάθια. Ένα χρονικό όριο ή μια επαναφορά σύνδεσης σημαίνει ότι απέτυχε η διαδρομή TCP· ένα σφάλμα TLS ή πιστοποιητικού σημαίνει ότι η διαδρομή λειτούργησε και η χειραψία όχι· μια απόκριση SMTP με κωδικό σημαίνει ότι ένας διακομιστής αλληλογραφίας απάντησε και πήρε απόφαση. Κάθε καλάθι δείχνει σε διαφορετικό υπεύθυνο.
Αξίζει να διαχωρίσετε τα καλάθια επειδή οι διορθώσεις αντιφάσκουν μεταξύ τους. Η παράταση ενός χρονικού ορίου δεν βοηθά όταν ο διακομιστής απορρίπτει τον αποστολέα, και η αλλαγή κωδικού δεν κάνει τίποτα όταν η διαδρομή είναι μπλοκαρισμένη. Ένας κωδικός απόκρισης είναι το πολυτιμότερο στοιχείο στη λίστα, γιατί αποδεικνύει ότι λειτούργησε ολόκληρη η αλυσίδα μεταφοράς και ότι το πρόβλημα είναι πολιτική ή ταυτότητα. Αποθηκεύστε το ακριβές κείμενο, μαζί με οποιονδήποτε εκτεταμένο κωδικό κατάστασης, πριν δοκιμάσετε ξανά.
Σταματήστε εδώ αν δεν μπορείτε να αναπαράγετε την αποτυχία εκτός VPN. Ένα πρόβλημα που εμφανίζεται σε μία εφαρμογή σε έναν υπολογιστή δεν είναι ακόμη πρόβλημα δικτύου.
Βήμα 2: επιβεβαιώστε το τελικό σημείο και τη λειτουργία TLS
Η υποβολή μηνυμάτων είναι ξεχωριστή υπηρεσία, όχι το ίδιο πράγμα με την αναμετάδοση από διακομιστή σε διακομιστή. Επιβεβαιώστε το όνομα κεντρικού υπολογιστή, τη θύρα και τη λειτουργία TLS από την τεκμηρίωση του παρόχου για την υποβολή, γιατί μια γνωστή θύρα δανεισμένη από άλλη ρύθμιση αλληλογραφίας δεν είναι απόδειξη. Η θύρα 587 περιμένει χαιρετισμό σε απλό κείμενο και μετά STARTTLS, ενώ η θύρα 465 περιμένει TLS από το πρώτο byte.
openssl s_client -connect smtp.example.com:465 -servername smtp.example.com -quiet
openssl s_client -starttls smtp -connect smtp.example.com:587 -servername smtp.example.com -quiet
nc -vz smtp.example.com 587Το να εκτελέσετε τη λάθος από τις δύο δοκιμές είναι ακριβώς το λάθος που κάνει ο πελάτης όταν είναι ρυθμισμένος για την άλλη λειτουργία. Αν η δοκιμή σιωπηρού TLS κολλήσει στη 587, ή η δοκιμή STARTTLS αποτύχει στη 465, η θύρα και η λειτουργία δεν συμφωνούν. Διορθώστε τη λειτουργία στον πελάτη αντί να απενεργοποιήσετε την επαλήθευση πιστοποιητικού, που μετατρέπει ένα σφάλμα ρύθμισης σε μη επαληθευμένη σύνδεση. Ο διαχωρισμός είναι τόσο παλιός που έχει τυποποιηθεί: το σιωπηρό TLS στη θύρα 465 είναι η διάταξη που περιγράφεται στο RFC 8314.
Ένα σφάλμα πιστοποιητικού εδώ είναι πληροφορία και όχι εμπόδιο. Ονομάζει την ταυτότητα που παρουσίασε ο διακομιστής και την ταυτότητα που περίμενε ο πελάτης, και οι δύο διορθώνονται χωρίς να αποδυναμωθεί η σύνδεση.
Βήμα 3: συγκρίνετε διαδρομές χωρίς να αλλάξετε τον λογαριασμό
Κρατήστε σταθερά το τελικό σημείο, τον λογαριασμό και τις ρυθμίσεις του πελάτη και αλλάξτε μόνο τη διαδρομή. Στείλτε μία φορά με κατεβασμένη τη σήραγγα και μία με ανεβασμένη, και καταγράψτε τη διαδρομή και τη διεύθυνση προέλευσης που θα έβλεπε ο διακομιστής. Αν η αποτυχία ακολουθεί τη διαδρομή, την απομονώσατε· αν ακολουθεί τον υπολογιστή, όχι.
ip route get smtp.example.com
curl -v --ssl-reqd --url smtp://smtp.example.com:587 --user "$SMTP_USER" \
--mail-from [email protected] --mail-rcpt [email protected] --upload-file msg.txtΜια πλήρης σήραγγα αλλάζει τη διεύθυνση προέλευσης που βλέπει ο πάροχος, και ορισμένοι πάροχοι αντιμετωπίζουν μια άγνωστη προέλευση αυστηρότερα από έναν άγνωστο κωδικό. Είναι απόφαση πολιτικής από τη μεριά τους, και μπορεί να είναι γκρίζα λίστα, όριο ρυθμού ή αποκλεισμός. Μη γενικεύετε από έναν πάροχο σε όλους και μην υποθέτετε ότι ένας κανόνας NAT που λείπει εξηγεί κάθε αποτυχία. Η καταγραφή του curl δείχνει ποιο στάδιο απέτυχε ακόμη και όταν το ίδιο το αρχείο καταγραφής της εφαρμογής δεν το δείχνει.
Αν η σήραγγα πρόκειται να μεταφέρει κίνηση διαδικτύου, τόσο η δρομολόγηση όσο και η πολιτική εξόδου της πρέπει να επιτρέπουν αυτόν τον προορισμό. Μια σήραγγα που μεταφέρει μόνο ιδιωτικές διαδρομές αφήνει τη σύνδεση αλληλογραφίας στην τοπική διαδρομή, που είναι διαφορετική σύγκριση.
Βήμα 4: στείλτε ένα ακίνδυνο μήνυμα και καταγράψτε την απόκριση
Διορθώστε το στάδιο που απέτυχε και μετά υποβάλετε ένα ακίνδυνο μήνυμα μέσω της ίδιας εφαρμογής και όχι μέσω σελίδας webmail. Αυτό που δοκιμάζετε είναι η δική της διαδρομή αποστολής, μαζί με τις αποθηκευμένες ρυθμίσεις και τη λειτουργία TLS. Μια συνεδρία webmail δεν αποδεικνύει τίποτα γι’ αυτό.
Καταγράψτε την απόκριση, τη θύρα, τη λειτουργία TLS και τη διαδρομή που χρησιμοποιήσατε, ώστε το επόμενο άτομο να μπορεί να αναπαράγει το αποτέλεσμα. Ένας περιηγητής που λειτουργεί και ένα πράσινο εικονίδιο VPN είναι παρατηρήσεις για άλλα πράγματα. Αν το μήνυμα φτάσει, η υπόλοιπη δουλειά είναι να γίνει αυτή η ρύθμιση προεπιλογή για κάθε υπολογιστή που στέλνει μέσω αυτού του λογαριασμού.
Η λίστα ελέγχου ολοκληρώνεται όταν μπορείτε να ονομάσετε το στάδιο που απέτυχε, τη θύρα και τη λειτουργία TLS που χρησιμοποιεί ο πελάτης, τη διαδρομή που ακολούθησε το μήνυμα και την απόκριση που επέστρεψε ο διακομιστής. Αυτά τα τέσσερα γεγονότα μετατρέπουν ένα ασαφές πρόβλημα εξερχόμενων σε μια αλλαγή που μπορεί κάποιος να εξετάσει.