Φορητός πελάτης VPN χωρίς δικαιώματα διαχειριστή: τι εξακολουθεί να σπάει
Ένας φορητός πελάτης VPN μπορεί να παραλείψει το πρόγραμμα εγκατάστασης και να χρειάζεται ακόμη μια συσκευή τούνελ, μια διαδρομή και μια εγγραφή στον επιλυτή. Εκτελέστε αυτούς τους ελέγχους πριν τον εμπιστευτείτε.
Το φορητός περιγράφει το πρόγραμμα εγκατάστασης, όχι τον πυρήνα. Ένας πελάτης μπορεί να φτάσει ως ένα εκτελέσιμο αρχείο σε ένα μέσο USB και να χρειάζεται ακόμη μια συσκευή τούνελ, μια καταχώριση στον πίνακα δρομολόγησης και μια εγγραφή στον επιλυτή πριν κινηθεί το πρώτο πακέτο. Ποιο από τα τρία θα σας αφήσει να αγγίξετε η μηχανή προορισμού καθορίζει αν αυτή η κατασκευή λειτουργεί καθόλου εκεί. Οι έλεγχοι παρακάτω απαντούν στο ερώτημα με τη σειρά που θα τους συναντήσει ο πελάτης.
Το φορητός καλύπτει τρεις διαφορετικές υποσχέσεις, και μόνο μία είναι δωρεάν
Χωρίς πρόγραμμα εγκατάστασης σημαίνει ότι ο προμηθευτής δεν κατέγραψε υπηρεσία, δεν παρέδωσε πρόγραμμα απεγκατάστασης και δεν πρόσθεσε καταχώριση μενού. Χωρίς διαχειριστή σημαίνει ότι ένας συνηθισμένος λογαριασμός μπορεί να ξεκινήσει τον πελάτη και να ολοκληρώσει μια σύνδεση. Χωρίς αλλαγή στον κεντρικό υπολογιστή σημαίνει ότι η μηχανή φαίνεται ίδια αφού βγείτε. Οι σελίδες λήψης που λένε φορητός υπόσχονται συνήθως μόνο το πρώτο από αυτά, και τα άλλα δύο είναι το σημείο όπου αποτυγχάνουν οι αναπτύξεις. Μια κατασκευή μπορεί επίσης να είναι φορητή με τη στενή έννοια: τρέχει από μέσα μόνο για ανάγνωση χωρίς καμία εγγραφή αρχείου κουκκίδας, κάτι που ακόμη δεν λέει τίποτα για τη στοίβα δικτύου.
Οι ακριβές υποσχέσεις είναι η δεύτερη και η τρίτη. Ένα μόνο εκτελέσιμο αρχείο που χρειάζεται προσαρμογέα, διαδρομή ή εγγραφή στον επιλυτή ζητά από το λειτουργικό σύστημα εξουσία που η ετικέτα φορητός δεν κάλυψε ποτέ.
Βρείτε τον προνομιούχο βοηθό που θα καλέσει ο πελάτης
Σχεδόν κανένας πελάτης VPN δεν μετακινεί πακέτα μόνος του. Στα Windows η διαδρομή δεδομένων περνά από φίλτρα WFP και το Base Filtering Engine, στο macOS από έναν πάροχο NetworkExtension που εγκρίνει ο χρήστης στις Ρυθμίσεις συστήματος, και στο Linux από μια συσκευή tun συν τη στοίβα δρομολόγησης. Το δυαδικό αρχείο που αντιγράψατε είναι επιφάνεια ελέγχου για αυτά τα στοιχεία, όχι υποκατάστατό τους. Ρωτήστε ποιο στοιχείο περιμένει ο πελάτης και μετά επιβεβαιώστε ότι είναι εγκατεστημένο, ότι τρέχει και ότι ο λογαριασμός σας μπορεί να το χρησιμοποιήσει.
Το Linux είναι το ευκολότερο μέρος για να το αποδείξετε, επειδή ο έλεγχος είναι μία κλήση συστήματος. Το άνοιγμα του /dev/net/tun και το αίτημα συσκευής από τον πυρήνα απαιτεί CAP_NET_ADMIN, και η τεκμηρίωση του πυρήνα για TUN/TAP αναφέρει και τον κανόνα ιδιοκτησίας και την ικανότητα. Εκτελέστε τον έλεγχο με τον λογαριασμό που θα ξεκινήσει τον πελάτη, όχι ως root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
Ένα σφάλμα άδειας στη μεσαία γραμμή είναι η απάντηση που ψάχνατε: αυτός ο λογαριασμός δεν μπορεί να δημιουργήσει διεπαφή τούνελ, οπότε κάθε πελάτης χώρου χρήστη που χρειάζεται μία αποτυγχάνει κατά τη σύνδεση και όχι κατά τη λήψη. Η τελευταία γραμμή αφαιρεί τη δοκιμαστική συσκευή και δεν εκτυπώνει τίποτα όταν λειτουργεί. Αν πετύχουν και οι δύο γραμμές, ο κεντρικός υπολογιστής δεν άλλαξε τίποτα μόνιμα.
Δοκιμάστε αλλαγές διαδρομής και επιλυτή πριν την πρώτη σύνδεση
Το διαχωρισμένο τούνελ μετατρέπει μια σύνδεση σε απόφαση δρομολόγησης, ενώ ένα πλήρες τούνελ τη μετατρέπει σε αντικατάσταση της προεπιλεγμένης διαδρομής. Και τα δύο είναι εγγραφές στη στοίβα δικτύου του κεντρικού υπολογιστή, και τα δύο αποτυγχάνουν για λογαριασμό χωρίς δικαιώματα ακόμη και όταν ο πελάτης ξεκινά καθαρά. Ο επιλυτής είναι η τρίτη εγγραφή, και σε κεντρικούς υπολογιστές με systemd είναι συνήθως αυτός που σπάει τελευταίος. Αυτή η σειρά μετράει όταν αποφασίζετε πού να ξοδέψετε μια εγκατάσταση με αυξημένα δικαιώματα.
Μια δοκιμή διαδρομής χρειάζεται προορισμό που πραγματικά σας ενδιαφέρει, οπότε αντικαταστήστε το σύμβολο κράτησης παρακάτω με ένα υποδίκτυο από το δικό σας προφίλ. Το όνομα της συσκευής πρέπει να υπάρχει για να μπορεί η διαδρομή να προσκολληθεί σε κάτι.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
Αν η πρώτη γραμμή επιστρέψει RTNETLINK answers: Operation not permitted, σημαίνει ότι ο λογαριασμός δεν μπορεί να εγκαταστήσει την ιδιωτική διαδρομή που απαιτεί το προφίλ. Η δεύτερη γραμμή αποδεικνύει το ίδιο δικαίωμα αντίστροφα, κάτι που μετράει γιατί ένας πελάτης που μπορεί να προσθέτει διαδρομές αλλά όχι να τις αφαιρεί αφήνει πίσω έναν σπασμένο πίνακα. Στη συνέχεια το ερώτημα στον επιλυτή δείχνει αν τα ιδιωτικά ονόματα επιλύονται μέσω του τούνελ ή διαρρέουν στον επιλυτή που εμπιστεύεται ήδη ο κεντρικός υπολογιστής.
Εκτελέστε και τις τρεις όσο η δοκιμαστική συσκευή υπάρχει ακόμη και μετά διαγράψτε την. Μια διαδρομή που δείχνει σε συσκευή που έχει φύγει είναι ο πιο συνηθισμένος λόγος που ένας φορητός υπολογιστής χάνει τη συνδεσιμότητα μετά από αποτυχημένη σύνδεση.
Αποφασίστε τι πρέπει να επιβιώσει από τη συνεδρία
Η διαγραφή του φακέλου δεν είναι σχέδιο καθαρισμού. Προσαρμογείς, διαδρομές, ρυθμίσεις επιλυτή, έμπιστα πιστοποιητικά και αποθηκευμένα διαπιστευτήρια μπορούν το καθένα να επιβιώσει από τη διεργασία, και μια υπηρεσία κατά την εκκίνηση μπορεί να επαναφέρει μερικά από αυτά χωρίς να ρωτήσει. Σημειώστε τι επιτρέπεται να αφήσει πίσω ο πελάτης πριν τον εκτελέσετε, όχι μετά την πρώτη αποτυχημένη αποσύνδεση.
Ο πρακτικός κανόνας είναι να πάρετε ένα στιγμιότυπο των τριών επιφανειών που πρόκειται να αλλάξετε και να τις συγκρίνετε μετά. Καταγράψτε τις διεπαφές, τον κύριο πίνακα δρομολόγησης και την κατάσταση του επιλυτή πριν την πρώτη σύνδεση και μετά επαναλάβετε τις ίδιες τρεις αναγνώσεις όταν ο πελάτης έχει βγει.
ip -brief addr show
ip route show table main
resolvectl status
Ό,τι υπάρχει στη δεύτερη καταγραφή και λείπει από την πρώτη χρειάζεται ιδιοκτήτη. Είτε ο πελάτης το αφαιρεί κατά την έξοδο, είτε το αφαιρείτε εσείς με τις ίδιες εντολές που το δημιούργησαν, και αυτή η αφαίρεση ανήκει στις σημειώσεις ανάπτυξης και όχι στη μνήμη κάποιου για το τι συνέβη. Στα Windows οι αντίστοιχες αναγνώσεις είναι Get-NetAdapter, Get-NetRoute και Get-DnsClientServerAddress, που δεν χρειάζονται αναβάθμιση αλλά δείχνουν τα ίδια κατάλοιπα.