Ιδιωτικό κλειδί εδώ, δημόσιο κλειδί εκεί: τα κλειδιά του WireGuard
Το ιδιωτικό σας κλειδί μένει στη συσκευή σας· η καταχώριση ομοτίμου κρατά το δημόσιο κλειδί της άλλης πλευράς. Μοιραστείτε μόνο το δημόσιο μισό και δώστε σε κάθε συσκευή τη δική της ταυτότητα.
Οι περισσότερες αστοχίες σε χειροποίητο WireGuard καταλήγουν στο ποιο κλειδί πήγε πού. Η ενότητα διασύνδεσης φέρει το ιδιωτικό κλειδί της συσκευής που ρυθμίζετε, ενώ μια ενότητα ομοτίμου φέρει το δημόσιο κλειδί της μηχανής στην άλλη άκρη. Η ανταλλαγή αυτών των μισών, ή η επικόλληση του λάθος, παράγει ένα handshake που δεν ολοκληρώνεται ποτέ και ένα αρχείο καταγραφής που δεν κατονομάζει ποτέ κλειδί. Κάντε τους τέσσερις ελέγχους παρακάτω με τη σειρά πριν αγγίξετε το AllowedIPs ή το DNS.
Δύο κλειδιά, δύο κατευθύνσεις
Ένα ιδιωτικό κλειδί ανήκει σε ακριβώς μία συσκευή και μένει στην ενότητα διασύνδεσης αυτής της συσκευής. Το δημόσιο μισό του είναι ό,τι χρειάζεται κάθε άλλο ομότιμο για να αναγνωρίσει τη συσκευή, και τα εργαλεία το παράγουν ως παράγωγο αντί να το επινοούν. Στον διακομιστή, το δημόσιο κλειδί της συσκευής σας εμφανίζεται ως καταχώριση ομοτίμου· στη συσκευή σας, τον ρόλο αυτό έχει το δημόσιο κλειδί του διακομιστή. Αν διαβάσετε μια διαμόρφωση φωναχτά με αυτούς τους όρους, πιάνετε τις περισσότερες συγχύσεις πριν φτάσουν σε handshake.
Η εντολή wg εκτυπώνει τι χρησιμοποιεί πραγματικά η τοπική διασύνδεση, μαζί με τα δύο δημόσια κλειδιά. Έτσι γίνεται ο ταχύτερος τρόπος να ξεχωρίσετε ένα σφάλμα διαμόρφωσης από ένα πρόβλημα συνδεσιμότητας:
wg show
wg show interfaces
Η πρώτη έξοδος απαριθμεί κάθε ομότιμο με το δημόσιο κλειδί του, το τελικό σημείο που χρησιμοποίησε τελευταία φορά και την ηλικία του τελευταίου handshake. Ηλικία handshake «ποτέ» στη μία πλευρά και πρόσφατη στην άλλη δείχνει κλειδί που δέχτηκε μόνο το ένα άκρο. Η δεύτερη εντολή κατονομάζει τις διασυνδέσεις που μπορείτε να εξετάσετε περαιτέρω.
Τι μοιράζεστε και τι δεν μοιράζεστε ποτέ
Ένα δημόσιο κλειδί προορίζεται να παραδοθεί, αν και εξακολουθεί να προσδιορίζει μια σχέση συσκευών, γι’ αυτό το να το στείλετε στον διαχειριστή που το ζήτησε διαφέρει από το να το δημοσιεύσετε. Ένα ιδιωτικό κλειδί δεν φεύγει ποτέ από τη συσκευή που το δημιούργησε. Ένα εξαγόμενο προφίλ ή ένας κωδικός QR κρατά ολόκληρη τη διαμόρφωση μαζί με αυτό το ιδιωτικό κλειδί, άρα κανένα από τα δύο δεν είναι ασφαλές να κυκλοφορήσει, και το να κρύψετε το κείμενο μέσα σε μια εικόνα δεν αλλάζει τίποτα. Τα προ-κοινοποιημένα κλειδιά είναι προαιρετικά και εξίσου μυστικά, και τα δύο άκρα πρέπει να φέρουν την ίδια τιμή, αλλιώς το handshake σταματά σε εκείνο το στάδιο.
Μια ακόμη διάκριση αξίζει να ειπωθεί ευθέως: το τελικό σημείο είναι μια διεύθυνση και μια θύρα, ποτέ κλειδί. Αν επικολλήσετε δημόσιο κλειδί στο πεδίο τελικού σημείου, ή διεύθυνση σε πεδίο κλειδιού, παράγεται προφίλ που αναλύεται και μετά δεν κάνει τίποτα. Τα εργαλεία δεν θα το πιάσουν, γιατί και τα δύο πεδία είναι απλώς συμβολοσειρές. Η γρήγορη εκκίνηση του WireGuard δείχνει τη ροή δημιουργίας και εξαγωγής σε μία γραμμή.
Μία συσκευή, μία καταχώριση ομοτίμου
Όπου η υπηρεσία το επιτρέπει, κάθε συσκευή πρέπει να φέρει τη δική της ταυτότητα ομοτίμου. Η επικόλληση του πλήρους προφίλ ενός φορητού σε ένα τηλέφωνο θολώνει ποια συσκευή κρατά αυτή την ταυτότητα στον διακομιστή και κάνει δυσκολότερη την ανάκληση ενός χαμένου τηλεφώνου. Αν ένα ιδιωτικό κλειδί διαρρεύσει, αφαιρέστε την παλιά εξουσιοδότηση ομοτίμου στον διακομιστή και προμηθευτείτε αντικαταστάτη. Η διαγραφή του τοπικού αρχείου δεν αφαιρεί την καταχώριση του διακομιστή, και ένα νέο κλειδί πελάτη δεν βοηθά κανέναν μέχρι ο διακομιστής να γνωρίζει το δημόσιο μισό του.
Κρατήστε την αντιστοίχιση συσκευής προς δημόσιο κλειδί δίπλα στη λίστα διευθύνσεων. Εκείνη η λίστα μετατρέπει μια ανάκληση σε δουλειά δύο λεπτών αντί για ένα απόγευμα.
Τι ακόμη αποτυγχάνει μετά το handshake
Τα ζεύγη κλειδιών προσδιορίζουν ομοτίμους· δεν αποφασίζουν τη συμπεριφορά του δικτύου. Το AllowedIPs αντιστοιχίζει εύρη διευθύνσεων σε ένα ομότιμο, και τις διαδρομές γύρω από αυτό τις διαχειρίζεται ο πελάτης ή το εργαλείο ρύθμισης. Το σύμπτωμα συνήθως λέει ποιο επίπεδο να ανοίξετε στη συνέχεια:
| What you see | Which key problem it usually means | Where to look first |
|---|---|---|
| Handshake age stays at never on both ends | Peer public key missing, or an endpoint pointing at nothing | wg show, then the endpoint value |
| Handshake completes on one side only | The two ends hold different public keys for each other | wg show on both hosts |
| Handshake works, then no traffic | AllowedIPs or routes rather than keys | wg show and the route table |
| Worked until a key was regenerated | The peer entry still holds the old public key | Compare both public keys, then update the peer |
Το DNS μπορεί να αποτύχει αφού και τα δύο ομότιμα πιστοποιηθούν σωστά, και μια εφαρμογή μπορεί να αποτύχει ενώ η σήραγγα είναι υγιής, άρα ένα λειτουργικό handshake δεν είναι το τέλος της διάγνωσης. Τα κλειδιά επίσης δεν λένε τίποτα για την πρακτική καταγραφής ενός παρόχου ούτε για το αν ένας ιστότοπος αναγνωρίζει τον λογαριασμό σας, και αυτά τα ερωτήματα ανήκουν αλλού. Περάστε στα επίπεδα δικτύου μόλις περάσουν οι τέσσερις έλεγχοι, γιατί ένα κλειδί που λείπει δεν είναι πρόβλημα δρομολόγησης μεταμφιεσμένο.