Ένα peer που σταματά να περνά κίνηση δεν χάνει γι' αυτό το κλειδί του, και ένα νέο handshake δεν αποδεικνύει ότι κάποιος ανανέωσε την άδεια χρήσης του. Οι χρονομετρητές του WireGuard κρατούν τα κλειδιά φρέσκα και τα πακέτα σε κίνηση· δεν μοντελοποιούν έναν χρήστη που αποσυνδέεται μετά από συγκεκριμένο αριθμό λεπτών. Εδώ συγχέονται τρία ερωτήματα, και το καθένα έχει διαφορετικά στοιχεία. Η διάκριση καθορίζει σε ποιο εργαλείο θα καταφύγουμε.

Τρία ερωτήματα, μία έξοδος εντολής

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

QuestionEvidence it needsWhat does not answer it
Is the peer reachable now?A recent handshake and a working return pathAn interface that exists
Has it been active?Transfer counters moving over timeA handshake timestamp alone
Is access still granted?The configuration or controller that authorizes itAny protocol timer

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

Τι πραγματικά διέπουν οι χρονομετρητές

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

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

Διαβάστε την κατάσταση εκτέλεσης ανά peer, χρησιμοποιώντας το δημόσιο κλειδί αντί για το σχόλιο:

wg show wg0 latest-handshakes
wg show wg0 transfer

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

Γιατί ένα αδρανές peer δεν είναι αποσυνδεδεμένο peer

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

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

Βάλτε την προθεσμία εκεί όπου ζει η εξουσιοδότηση

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

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

sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0

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

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