Πρέπει ο πελάτης OpenVPN σας να χρησιμοποιεί nobind ή σταθερή θύρα;
Το nobind αφήνει τον πυρήνα να επιλέξει τη θύρα προέλευσης για έναν πελάτη που καλεί προς τα έξω. Τρεις συνθήκες καθορίζουν αν το θέλετε αυτό ή μάλλον μια καρφιτσωμένη τοπική θύρα.
Δύο προφίλ που διαφέρουν κατά μία γραμμή συμπεριφέρονται διαφορετικά τη στιγμή που ξεκινά ένας δεύτερος πελάτης στον ίδιο κεντρικό υπολογιστή. Το ένα φέρει nobind και παίρνει όποια τοπική θύρα του δώσει ο πυρήνας· το άλλο δεσμεύει τη 1194, και το δεύτερο στιγμιότυπο πεθαίνει με διεύθυνση που χρησιμοποιείται ήδη. Αυτή η γραμμή καθορίζει ποιος διαλέγει τη θύρα προέλευσης, το οποίο με τη σειρά του καθορίζει αν το προφίλ μπορεί να συνυπάρξει με οτιδήποτε άλλο στο μηχάνημα. Τρεις ερωτήσεις το λύνουν, και η πρώτη απαντά στα περισσότερα προφίλ πριν φτάσετε στις άλλες δύο.
Τι παραλείπει στην πραγματικότητα το nobind
Από προεπιλογή ο πελάτης δεσμεύει ένα τοπικό socket πριν καλέσει, και η τοπική θύρα είναι 1194 εκτός αν το προφίλ λέει διαφορετικά. nobind αφαιρεί αυτή τη δέσμευση, οπότε η στοίβα εκχωρεί μια αχρησιμοποίητη θύρα κατά τη σύνδεση. Είναι εξαίρεση και όχι προεπιλογή, και ένας πελάτης χωρίς τη γραμμή κρατά τη 1194, γι' αυτό ακριβώς συγκρούεται ένα δεύτερο στιγμιότυπο χωρίς καρφίτσα. Τα περισσότερα προφίλ πελατών που διανέμονται φέρουν την οδηγία για αυτόν τον λόγο, και το ότι ένα δείγμα αρχείου κάνει κάτι δεν είναι το ίδιο με το να το κάνει ο μηχανισμός από προεπιλογή.
Αυτό που δεν αλλάζει είναι η μακρινή πλευρά. Ο διακομιστής ακούει ακόμη εκεί όπου το προφίλ λέει ότι ακούει, και η θύρα προορισμού στη διαμόρφωση παραμένει η θύρα προορισμού. Μια δυναμική θύρα προέλευσης αλλάζει τη διεύθυνση επιστροφής του δικού σας socket και τίποτα του διακομιστή.
Επίσης δεν κρύβει τίποτα. Η δημόσια διεύθυνσή σας είναι ό,τι τη μεταφράζει η διαδρομή, το πακέτο εξακολουθεί να διασχίζει το τοπικό δίκτυο, και όποιος διαχειρίζεται αυτό το δίκτυο βλέπει ακόμη μια ροή. nobind δεν είναι ούτε χαρακτηριστικό ιδιωτικότητας ούτε παράκαμψη τείχους προστασίας.
Τρεις συνθήκες που το καθορίζουν
Μία ερώτηση καθορίζει τις άλλες δύο, οπότε απαντήστε την πριν επεξεργαστείτε οτιδήποτε. Αν ο ομότιμος καλεί προς τα έξω, οι υπόλοιπες ερωτήσεις απλώς βελτιώνουν μια απόφαση που έχει ήδη ληφθεί. Αν δέχεται εισερχόμενες συνδέσεις, καμία ρύθμιση της τοπικής θύρας δεν το κάνει προσβάσιμο.
Ξεκινά αυτός ο ομότιμος τη σύνδεση; Αν καλεί προς τα έξω, μια δυναμική θύρα προέλευσης είναι ακίνδυνη και συνήθως προτιμότερη, επειδή η απάντηση ακολουθεί την ίδια ροή πίσω. Αν περιμένει εισερχόμενες συνδέσεις, μια δυναμική θύρα το κάνει μη προσβάσιμο εκτός αν κάτι μπροστά δημοσιεύσει τη θύρα. Αυτή η μία απάντηση χωρίζει κάθε προφίλ πελάτη από κάθε προφίλ διακομιστή.
Φιλτράρει η διαδρομή με βάση τη θύρα προέλευσης; Ένας αυστηρός κανόνας γραμμένος για μία γνωστή θύρα επιβάλλει ρητή τοπική θύρα, και το προφίλ πρέπει να καταγράφει ποιον κανόνα ικανοποιεί. Τα περισσότερα δίκτυα φιλτράρουν μόνο με βάση τον προορισμό, οπότε αυτή η συνθήκη είναι σπανιότερη από την πρώτη. Όπου ισχύει, υπερισχύει της προτίμησης για δυναμική θύρα.
Μοιράζονται πολλά στιγμιότυπα τον κεντρικό υπολογιστή; Μία σταθερή θύρα δεν μπορεί να εξυπηρετήσει δύο από αυτά, και ένα επανεκκινημένο στιγμιότυπο μπορεί να βρει τη 1194 ακόμη σε κατάσταση κλεισίματος. Οι δυναμικές θύρες αφαιρούν αυτή τη σύγκρουση χωρίς να αλλάζουν τίποτα άλλο. Αν δεν μπορείτε να απαντήσετε με βεβαιότητα, υποθέστε ναι και αφήστε τον πυρήνα να διαλέξει.
Όπου μια καρφιτσωμένη θύρα είναι η σωστή απάντηση
Μερικά δίκτυα φιλτράρουν και με βάση τη θύρα προέλευσης και με βάση τον προορισμό, οπότε ένας διαχειριστής μπορεί να έχει γράψει κανόνα που περνά κίνηση μόνο από μία γνωστή θύρα. Το καρφίτσωμα της τοπικής θύρας είναι τότε σωστό, και το προφίλ πρέπει να φέρει σχόλιο που ονομάζει τον κανόνα που ικανοποιεί. Το καρφίτσωμα για συμμετρία με τη θύρα του διακομιστή δεν είναι λόγος, γιατί οι δύο αριθμοί δεν έχουν καμία σχέση μεταξύ τους. Αν το καρφίτσωμα υπάρχει μόνο επειδή το είχε ένα πρότυπο, διαγράψτε το.
Διαφορετικά, μια καρφιτσωμένη θύρα αγοράζει προβλήματα: δύο πελάτες σε ένα μηχάνημα δεν μπορούν να κρατούν και οι δύο τη 1194, και ο δεύτερος αποτυγχάνει με σφάλμα που δείχνει τη θύρα και όχι το προφίλ. Ένα container που επανεκκινεί γρήγορα χτυπά τον ίδιο τοίχο. Η επισκευή είναι η οδηγία που τα διανεμόμενα προφίλ περιείχαν ήδη.
Διακομιστής και πελάτης δεν είναι συμμετρικοί
εγχειρίδιο του OpenVPN 2.6 τοποθετεί nobind δίπλα στο lport, που είναι το επιχείρημα σε μία γραμμή: η μία επιλογή λέει ότι διαλέγει ο πυρήνας, η άλλη ότι διαλέγετε εσείς. Μια δυναμική τοπική θύρα λειτουργεί μόνο για τον ομότιμο που καλεί, γιατί η πλευρά που απαντά δεν μπορεί να γνωρίζει τη θύρα εκ των προτέρων. Γι' αυτό η αντιγραφή ενός προφίλ πελάτη σε διακομιστή παράγει ακροατή που κανείς δεν μπορεί να προσεγγίσει.
Σε κεντρικό υπολογιστή με πολλές διασυνδέσεις δικτύου η διεύθυνση είναι ξεχωριστή απόφαση από τη θύρα. Η δέσμευση συγκεκριμένης τοπικής διεύθυνσης και η δέσμευση συγκεκριμένης θύρας είναι δύο διαφορετικές ρυθμίσεις, και ένας διακομιστής με δύο ζεύξεις ανόδου καρφιτσώνει συνήθως και τις δύο. Ένας πελάτης που καρφιτσώνει και τις δύο έχει αναλάβει την ίδια ακαμψία χωρίς κανένα όφελος.
Η σύνοψη αφορά ρόλους και όχι ασφάλεια: όποιος καλεί μπορεί να είναι ευέλικτος ως προς τη δική του προέλευση, και όποιος απαντά δεν μπορεί. Καμία από τις δύο επιλογές δεν αλλάζει ό,τι μαθαίνει η άλλη πλευρά για την ταυτότητά σας. Γι' αυτό η οδηγία εμφανίζεται σε δείγματα πελατών και σχεδόν ποτέ σε δείγματα διακομιστών.
Επαληθεύστε τη θύρα που διάλεξε ο πυρήνας
Μετά τη σύνδεση, διαβάστε το socket και όχι τη διαμόρφωση, γιατί η διαμόρφωση δηλώνει την πρόθεση και το socket δηλώνει τι συνέβη. Τα γεγονότα που αξίζει να καταγράψετε είναι η τοπική θύρα, το απομακρυσμένο τελικό σημείο και αν κάτι ακούει ακόμη. Σε κεντρικό υπολογιστή Linux και τα τρία απέχουν μία εντολή.
ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn
Ένας πελάτης με nobind εμφανίζει υψηλή τοπική θύρα και τη διαμορφωμένη απομακρυσμένη θύρα, που είναι το αναμενόμενο σχήμα. Ένας διακομιστής εμφανίζει socket που ακούει στη διαμορφωμένη του θύρα, και αν αυτό το socket λείπει, το προφίλ είτε δεν είναι ακροατής είτε απέτυχε να δεσμεύσει. Όταν υπάρχει ροή αλλά δεν επιστρέφουν πακέτα, συγκρίνετε τη θύρα προέλευσης που διάλεξε με οποιοδήποτε φίλτρο θυρών στη διαδρομή πριν επεξεργαστείτε το προφίλ. Αλλάξτε ένα πράγμα, συνδεθείτε ξανά και διαβάστε το socket ξανά.