Οι σαρωτές εκτυπώνουν ανοιχτό ή φιλτραρισμένο για μια θύρα UDP, και το συμπέρασμα συνήθως έρχεται μέσα σε δευτερόλεπτα: η σήραγγα είναι χαλασμένη. Μπορεί να είναι, αλλά η σάρωση δεν το απέδειξε. Το UDP δεν μεταφέρει καμία χειραψία σύνδεσης, και το WireGuard δεν απαντά σε τίποτα που δεν μπορεί να πιστοποιήσει, επομένως η σιωπή είναι η αναμενόμενη απάντηση στις περισσότερες δοκιμές.

Δούλεψε αντίθετα από τον πελάτη προς τα έξω, και αντιμετώπισε τη σάρωση ως ένα αδύναμο σημείο δεδομένων ανάμεσα σε πολλά.

Τι μπορεί και τι δεν μπορεί να δει ο σαρωτής

Ένας σαρωτής UDP στέλνει ένα φορτίο και περιμένει. Αν επιστρέψει ένα ICMP port-unreachable, μπορεί να αναφέρει τη θύρα ως κλειστή. Αν δεν επιστρέψει τίποτα, το αποτέλεσμα είναι αμφίσημο εξ ορισμού: μια φιλτραρισμένη διαδρομή, ένας απόντας κεντρικός υπολογιστής και μια εκτελούμενη υπηρεσία που αγνόησε το φορτίο παράγουν όλα την ίδια σιωπή. Τρεις διαφορετικές καταστάσεις, ένα αλφαριθμητικό εξόδου.

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

Ένα τεστ TCP στον ίδιο αριθμό θύρας δεν δοκιμάζει τίποτα σχετικό. Ασκεί έναν άλλον ακροατή που μπορεί να μην υπάρχει, και η άρνησή του δεν λέει τίποτα για το UDP.

Επομένως οι ανοιχτές φιλτραρισμένες καταστάσεις περιγράφουν την αβεβαιότητα του σαρωτή ακριβέστερα από ό,τι περιγράφουν τον διακομιστή σου.

Περπάτησε τον πραγματικό πελάτη από το προφίλ προς τα μέσα

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

Στη συνέχεια παρατήρησε την πλευρά του διακομιστή όσο συμβαίνει μία εξουσιοδοτημένη προσπάθεια, αντί να τρέξεις ξεχωριστή σάρωση από τρίτη τοποθεσία:

wg show wg0 latest-handshakes
tcpdump -n -i eth0 udp port 51820 -c 10

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

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

Συσχέτισε στον διακομιστή όταν τον διαχειρίζεσαι

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

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

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

Διαβάζοντας έντιμα ένα αποτέλεσμα σάρωσης

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

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

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

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