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

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

Μια αδρανής διεπαφή δεν έχει τίποτα να αναφέρει

Το WireGuard κάνει χειραψίες νωχελικά: το πρώτο πακέτο που χρειάζεται τη σήραγγα ενεργοποιεί την ανταλλαγή και η διεπαφή μένει ήσυχη μέχρι τότε. Ένας peer που διαμορφώθηκε και δεν χρησιμοποιήθηκε ποτέ δείχνει κενή χειραψία, μηδέν byte που ελήφθησαν και ένα αυξανόμενο κενό από την τελευταία. Αυτή η κατάσταση είναι υγιής για αδρανή πελάτη και ανησυχητική μόνο αν περιμένατε να έχει ήδη ρεύσει κίνηση. Ελέγξτε και τους μετρητές μεταφοράς, γιατί χωρίζουν το «τίποτα δεν στάλθηκε» από το «δοκιμάστηκε και απέτυχε».

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

Προκαλέστε κίνηση που επιτρέπεται να μεταφέρει ο peer

Επιλέξτε μια διεύθυνση μέσα στα επιτρεπόμενα προθέματα του peer, στον τοπικό υπολογιστή, και επιβεβαιώστε ότι ο πίνακας δρομολόγησης θα την έστελνε μέσω της διεπαφής. Προορισμός έξω από αυτά τα προθέματα παράγει ένα συνηθισμένο δρομολογημένο αίτημα χωρίς καμία ανάμειξη του WireGuard. Χρησιμοποιήστε υπηρεσία που απαντά γρήγορα, όπως ping ή σύντομη σύνδεση TCP, ώστε η προσπάθεια να έχει ορατή αρχή και τέλος. Μετά διαβάστε ξανά τη γραμμή χειραψίας αντί να κοιτάτε την οθόνη και να περιμένετε.

ip route get 10.60.9.5
ping -c 3 -W 2 10.60.9.5
wg show wg0 latest-handshakes
wg show wg0 transfer

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

Συγκρίνετε το ζεύγος κλειδιών και το τελικό σημείο

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

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

Παρακολουθήστε την εξωτερική διαδρομή UDP

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

ss -lunp | grep 51820
sudo tcpdump -ni eth0 udp port 51820
wg show wg0 endpoints
conntrack -L -p udp | grep 51820

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

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

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