Πώς να δοκιμάσετε τον διακόπτη θανάτου ενός VPN χωρίς τους πραγματικούς σας λογαριασμούς
Εκτελέστε μια δοκιμή διακόπτη θανάτου με σελίδα δόλωμα και εφεδρικό προφίλ: καλύψτε κάθε τύπο διακοπής, διαβάστε τους κωδικούς εξόδου του curl και ξεχωρίστε ένα πραγματικό μπλοκάρισμα από μια αποτυχία DNS.
Δεν χρειάζεστε πραγματικό λογαριασμό για να μάθετε αν ο διακόπτης θανάτου κρατάει· αυτό ακριβώς θέτει σε κίνδυνο μια δοκιμή. Ο έλεγχος δημιουργεί ένα σύντομο παράθυρο όπου η κίνηση μπορεί ή μπορεί να μην βγει έξω από το τούνελ, οπότε το ωφέλιμο φορτίο πρέπει να είναι κάτι που μπορείτε να χάσετε. Τώρα το κάνω με μια σελίδα δόλωμα και ένα εφεδρικό προφίλ περιηγητή, και δίνει καθαρότερη απάντηση από τη ρουτίνα περιηγητή και διαδικτυακού ταχυδρομείου που χρησιμοποιούσα πριν. Αυτό που ακολουθεί βαδίζει με την ίδια σειρά που παρουσιάζει ο πελάτης: η ρύθμιση, ο προορισμός, η μετάβαση και μετά τα στοιχεία.
Η δοκιμή απαντά σε ένα στενό ερώτημα: κατά τη διάρκεια αυτής της μετάβασης, μπορεί αυτή η εφαρμογή να φτάσει το δίκτυο έξω από το τούνελ; Δεν λέει τίποτα για το αν η υπόλοιπη πολιτική είναι λογική. Κρατήστε το εύρος τόσο μικρό, και το αποτέλεσμα αξίζει να καταγραφεί.
Βρείτε τον διακόπτη και το εύρος του στον πελάτη
Ανοίξτε τον πελάτη και εντοπίστε τη ρύθμιση αποκλεισμού πριν αλλάξετε οποιαδήποτε κατάσταση δικτύου. Οι πάροχοι την ονομάζουν διαφορετικά: διακόπτης θανάτου, λειτουργία κλειδώματος, κλείδωμα δικτύου, αποκλεισμός κίνησης έξω από το τούνελ. Η ετικέτα λέει λιγότερα από τις επιλογές μέσα της. Αυτό που μετράει είναι αν ο αποκλεισμός ισχύει πάντα ή μόνο όταν η εφαρμογή κρίνει ότι ένα τούνελ μόλις απέτυχε, και αν καλύπτει κάθε εφαρμογή ή μια επιλεγμένη λίστα.
Έπειτα καταγράψτε τις μεταβάσεις που μπορεί πραγματικά να εκτελέσει ο πελάτης σας. Μια αποσύνδεση που ξεκινά ο χρήστης, η έξοδος από την εφαρμογή και η απώλεια επαφής με τον διακομιστή είναι τρεις διαφορετικές διαδρομές κώδικα στους περισσότερους πελάτες, και δεν μοιράζονται μία πολιτική αποκλεισμού. Μερικοί απελευθερώνουν τον αποκλεισμό όταν η εφαρμογή κλείνει. Άλλοι αφήνουν τους κανόνες φιλτραρίσματος εγκατεστημένους μέχρι κάτι να τους αφαιρέσει. Διαβάστε την αναφορά ρυθμίσεων του παρόχου για την έκδοση που εκτελείτε αντί να υποθέσετε, και μετά σημειώστε ποια από τις τρεις δοκιμάζετε.
Σημειώστε και το προφίλ: πρωτόκολλο, οικογένειες διευθύνσεων και αν η διαιρεμένη σήραγγα είναι ενεργή. Ένας ισχυρισμός για όλη τη συσκευή δεν έχει νόημα αν το προφίλ εξαιρεί σκόπιμα μερικές εφαρμογές, και μια εξαίρεση που διαμορφώσατε δεν είναι διαρροή. Η αναφορά ρυθμίσεων του OpenVPN Connect είναι ο τύπος σελίδας που ονομάζει ποιος διακόπτης αλλάζει ποια συμπεριφορά, αν και οι ετικέτες διαφέρουν ανά πελάτη.
Διαλέξτε προορισμό δόλωμα που λειτουργεί και χωρίς το τούνελ
Το δόλωμα χρειάζεται δύο ιδιότητες, και αν παραλείψετε οποιαδήποτε από τις δύο το αποτέλεσμα είναι δυσανάγνωστο. Πρέπει να είναι προσβάσιμο απευθείας όταν το τούνελ είναι κλειστό και ο αποκλεισμός ανενεργός, αλλιώς το «σταμάτησε να απαντά» μπορεί απλώς να σημαίνει ότι ο κεντρικός υπολογιστής έφυγε. Και δεν πρέπει να απαιτεί σύνδεση, κουκί ή πληρωμή, ώστε μια διαρροή να σας κοστίζει μια γραμμή αρχείου καταγραφής αντί για μια συνεδρία.
Μια στατική σελίδα σε κεντρικό υπολογιστή που ελέγχετε είναι η καθαρή επιλογή. Μια εφεδρική εικονική μηχανή με απλό διακομιστή HTTP είναι σχεδόν εξίσου καλή, και μια δημόσια σελίδα ελέγχου συνδεσιμότητας λειτουργεί αν δεχτείτε ότι η διαθεσιμότητά της είναι εκτός του ελέγχου σας. Σημειώστε τη διεύθυνση, τη θύρα, την οικογένεια διευθύνσεων και αν το αίτημα χρειάζεται αναζήτηση ονόματος, γιατί καθένα από αυτά γίνεται μεταβλητή που ίσως χρειαστεί να απομονώσετε αργότερα.
Καθιερώστε τη γραμμή βάσης πριν αγγίξετε τον διακόπτη. Με το τούνελ ενεργό, το δόλωμα πρέπει να απαντά μέσα από το τούνελ, που αποδεικνύει ότι η διαδρομή πολιτικής λειτουργεί. Με το τούνελ κλειστό και τον αποκλεισμό ανενεργό, πρέπει να απαντά απευθείας, που αποδεικνύει ότι ο προορισμός είναι ζωντανός. Μόνο τότε μια αποτυχία στην αποκλεισμένη κατάσταση σας λέει κάτι.
Εκτελέστε τις μεταβάσεις με σταθερή σειρά
Πάρτε τις μεταβάσεις μία κάθε φορά και δώστε σε καθεμιά λίγα δευτερόλεπτα να σταθεροποιηθεί, γιατί οι πελάτες συχνά γκρεμίζουν και ξαναχτίζουν κανόνες σε αυτό το κενό. Η εκτέλεση του ίδιου σύντομου ελέγχου κάθε φορά κρατά τις παρατηρήσεις συγκρίσιμες:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
Η γραμμή της εξόδου από την εφαρμογή αξίζει δική της εκτέλεση ακόμα και αν δεν κλείνετε ποτέ τον πελάτη σε κανονική χρήση. Αν ο αποκλεισμός απελευθερωθεί στην έξοδο, μια κατάρρευση ή μια αναγκαστική ενημέρωση σας δίνει την ίδια έκθεση, και αυτό είναι γεγονός για την ανάπτυξη, όχι για την υπομονή σας. Στα Windows οι ισοδύναμες δοκιμές είναι Resolve-DnsName decoy.example και curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Ξεχωρίστε έναν αποκλεισμό από έναν χαλασμένο επιλυτή
Μια σελίδα που δεν φορτώνει έχει αρκετές αιτίες, και μόνο μία από αυτές είναι ο διακόπτης που λειτουργεί. Αν το όνομα δεν επιλυθεί, μάθατε ότι το DNS είναι αποκλεισμένο ή χαλασμένο, όχι ότι η διαδρομή δεδομένων είναι αποκλεισμένη. Δοκιμάστε και μια κυριολεκτική διεύθυνση, ώστε η απάντηση να μην εξαρτάται καθόλου από την επίλυση.
Οι κωδικοί εξόδου του curl ξεχωρίζουν αυτές τις περιπτώσεις: 6 είναι αποτυχία επίλυσης ονόματος, 7 σημαίνει ότι η σύνδεση απορρίφθηκε, 28 είναι λήξη χρόνου. Μια αποκλεισμένη διαδρομή εμφανίζεται συνήθως ως λήξη χρόνου ή απόρριψη απέναντι σε μια κυριολεκτική διεύθυνση. Ένας αποκλεισμός μόνο DNS αφήνει το 6 και κρύβει όλα τα άλλα. Μια σελίδα από προσωρινή μνήμη ή μια πύλη σύλληψης ξεγελά το μάτι, γι' αυτό το στοιχείο είναι ο κωδικός εξόδου, όχι η οθόνη.
Επαναλάβετε τη δοκιμή πάνω από IPv6 με κυριολεκτική διεύθυνση. Ένας αποκλεισμός που καλύπτει το IPv4 και αγνοεί το IPv6 είναι αρκετά συνηθισμένος ώστε να αξίζει δική του γραμμή στις σημειώσεις σας, και ένας πελάτης που απενεργοποιεί το IPv6 έξω από το τούνελ θα πρέπει να αποτυγχάνει καθαρά και στις δύο οικογένειες.
Σημειώστε το εύρος που καλύπτει το αποτέλεσμα
Όταν το τούνελ επιστρέψει, επιβεβαιώστε την ανάκτηση: το δόλωμα απαντά μέσα από το τούνελ, ο επιλυτής επιστρέφει απαντήσεις, και η πολιτική μένει εκεί που την αφήσατε. Έπειτα αναιρέστε τα πειράματα. Ένας προσωρινός κανόνας τείχους προστασίας, μια διαδρομή αποσφαλμάτωσης ή ένα δοκιμαστικό προφίλ που έμειναν στη θέση τους θα μπερδέψουν την επόμενη εκτέλεση και μπορούν να επιβιώσουν από την εφαρμογή.
Ένα πέρασμα καλύπτει μία έκδοση πελάτη, ένα προφίλ, μία μετάβαση και μία οικογένεια διευθύνσεων. Γράψτε αυτά τα τέσσερα μαζί με το αποτέλεσμα:
- Έκδοση πελάτη και πλατφόρμα, και αν η ρύθμιση είναι ανά προφίλ ή καθολική.
- Προφίλ, πρωτόκολλο και τυχόν εξαιρέσεις διαιρεμένης σήραγγας.
- Η μετάβαση που δοκιμάστηκε, και πώς την προκαλέσατε.
- Οικογένειες διευθύνσεων και DNS, με τους κωδικούς εξόδου του curl για την αποκλεισμένη και τη μη αποκλεισμένη κατάσταση.
Αν οποιαδήποτε γραμμή είναι κενή, η δοκιμή δεν τελείωσε. Η περιαγωγή σημαίνει επανάληψη της γραμμής αλλαγής δικτύου. Μια επανεκκίνηση χωρίς επίβλεψη σημαίνει έλεγχο ότι οι κανόνες επιστρέφουν, που είναι ερώτημα για τη σειρά επαναφοράς και όχι για τον διακόπτη. Επαναλάβετε την ακολουθία μετά από ενημέρωση πελάτη, γιατί οι διακόπτες σπάνια αλλάζουν ενώ η συμπεριφορά πίσω τους αλλάζει. Κρατήστε το δόλωμα: τίποτα να μην περιστραφεί, και ο επόμενος έλεγχος παίρνει πέντε λεπτά.