Χαλασμένη πρόσβαση στο LAN μέσω OpenVPN; Ελέγξτε ζώνες, διαδρομές και επιστροφή
Ο δρομολογητής απαντά επειδή είναι τοπικός. Για να φτάσετε σε μηχάνημα πίσω του χρειάζεται κανόνας προώθησης, πρόθεμα στον πελάτη και δρόμος επιστροφής για την απάντηση.
Το τούνελ αναφέρει επιτυχή σύνδεση, η σελίδα του ίδιου του δρομολογητή φορτώνει, και η αντιστοίχιση μονάδας δίσκου σε μηχάνημα πίσω από αυτόν λήγει ακόμη. Τίποτα σε αυτόν τον συνδυασμό δεν είναι αντιφατικό: ο δρομολογητής απαντά ως ο εαυτός του, και το να φτάσεις σε κάτι πίσω του είναι άλλη απόφαση που λαμβάνεται σε άλλο σημείο. Εκτελέστε τους ελέγχους παρακάτω με σειρά και σταματήστε στην πρώτη αποτυχία, γιατί ο καθένας στηρίζεται στον προηγούμενο. Όταν περάσουν και οι τέσσερις, το σφάλμα βρίσκεται πάνω από το τούνελ και όχι μέσα του.
Ποιο φίλτρο βλέπει ένα πακέτο προς το LAN
Ένα πακέτο με προορισμό τον δρομολογητή καταναλώνεται τοπικά· ένα πακέτο με προορισμό κεντρικό υπολογιστή πίσω του πρέπει να προωθηθεί, και τα τείχη προστασίας κρίνουν τις δύο περιπτώσεις χωριστά. Άρα η άδεια να φτάσεις στον δρομολογητή δεν λέει τίποτα για την άδεια να τον διασχίσεις. Το firmware που κρύβει τα σύνολα κανόνων του εξακολουθεί να υλοποιεί και τα δύο, συνήθως ως επιλογέα που προσφέρει LAN, διαδίκτυο ή και τα δύο. Αν ο επιλογέας αφήνει έξω το LAN, κανένας μεταγενέστερος έλεγχος δεν θα έχει σημασία.
Το OpenWrt κάνει τον διαχωρισμό ελέγξιμο, και η διάκριση αξίζει μια ανάγνωση. Η ζώνη που τερματίζει το τούνελ χρειάζεται κανόνα προώθησης προς τη ζώνη LAN, ενώ ένας κανόνας εισόδου διέπει μόνο υπηρεσίες του ίδιου του δρομολογητή. Μια σελίδα διαχείρισης που δουλεύει δίπλα σε νεκρό LAN είναι το συνηθισμένο αποτέλεσμα αυτού του απόντος κανόνα προώθησης.
uci show firewall | grep -E "zone\[[0-9]+\]\.(name|input|forward|output)"Κοιτάξτε τον στόχο προώθησης της ζώνης που μεταφέρει το τούνελ: accept είναι αυτό που χρειάζεται η σκάλα, και reject εξηγεί κάθε λήξη από κάτω. Δύο γειτονικές ρυθμίσεις παράγουν το ίδιο σύμπτωμα, οπότε αποκλείστε τις όσο βρίσκεστε εδώ. Η ασύρματη απομόνωση κρύβει ενσύρματους κεντρικούς υπολογιστές από ασύρματους πελάτες, και ένας δρομολογητής που θεωρεί ανενεργούς κεντρικούς υπολογιστές LAN εκτός σύνδεσης μπορεί να ρίχνει τις απαντήσεις ακόμη και αφού δουλέψει η προώθηση.
Γιατί ένα διαχωρισμένο τούνελ χρειάζεται το πρόθεμα να προωθηθεί
Ένας πελάτης που στέλνει όλη την κίνηση μέσω του τούνελ κρατά ήδη το πρόθεμα LAN μέσω της προεπιλεγμένης διαδρομής του, οπότε δεν υπάρχει τίποτα να προστεθεί. Το διαχωρισμένο τούνελ είναι η περίπτωση που απαιτεί το πρόθεμα να δηλωθεί ρητά, γιατί τίποτα άλλο στη διαμόρφωση δεν το αναφέρει. Προσθέστε την οδηγία στη διαμόρφωση του διακομιστή και επαναφορτώστε την υπηρεσία.
push "route 192.168.50.0 255.255.255.0"Τα προφίλ που περιέχουν route-nopull αγνοούν τις προωθημένες διαδρομές, οπότε το ίδιο πρόθεμα ανήκει στο αρχείο του πελάτη. Σε κάθε περίπτωση, επιβεβαιώστε ότι η καταχώριση έφτασε αντί να το υποθέσετε, γιατί μια σιωπηλή παράκαμψη μοιάζει πανομοιότυπη με πρόβλημα τείχους προστασίας.
ip route show | grep 192.168.50Ένας ομότιμος τοποθεσίας-σε-τοποθεσία ζητά περισσότερα από μια προώθηση. Ο διακομιστής πρέπει να μάθει ποια προθέματα βρίσκονται πίσω από αυτόν τον ομότιμο, κάτι που κάνει μια γραμμή iroute στο αρχείο client-config-dir του, και ο δικός του πίνακας χρειάζεται αντίστοιχη διαδρομή μέσα στο τούνελ.
Η απάντηση χρειάζεται μια διεύθυνση που μπορεί να φτάσει
Η προώθηση του αιτήματος είναι μόνο το μισό μιας ανταλλαγής, γιατί ο κεντρικός υπολογιστής του LAN πρέπει να απαντήσει σε μια διεύθυνση από τη δεξαμενή του τούνελ. Οι μικροί δρομολογητές το κανονίζουν συνήθως μεταφράζοντας την πηγή στη ζώνη του τούνελ, ώστε η απάντηση να απευθύνεται στον δρομολογητή και να μη χρειάζεται διαμόρφωση αλλού. Αφαιρέστε αυτή τη μετάφραση και ο κεντρικός υπολογιστής χρειάζεται δική του διαδρομή προς τη δεξαμενή, την οποία παίρνει δωρεάν όταν ο δρομολογητής είναι η προεπιλεγμένη πύλη του. Ένας κεντρικός υπολογιστής με χειροκίνητη διεύθυνση και άλλη πύλη απαντά μέσω εκείνης της πύλης, και ο πελάτης βλέπει μια συνεδρία να ανοίγει και μετά να κολλάει.
tcpdump -ni tun0 host 192.168.50.20Εκτελέστε το στον δρομολογητή ενώ ο πελάτης επαναλαμβάνει το αίτημά του, και διαβάστε τον προορισμό της απάντησης αντί για το ίδιο το αίτημα. Μια απάντηση προς τη δεξαμενή σημαίνει ότι η επιστροφή δουλεύει και το σφάλμα είναι πιο μέσα. Καμία απάντηση σημαίνει ότι ο κεντρικός υπολογιστής δεν δέχτηκε ποτέ το πακέτο, κάτι που σας γυρίζει στο σύνολο κανόνων.
Μια σκάλα που τελειώνει στο σωστό σημείο
Τέσσερις έλεγχοι εντοπίζουν το επίπεδο, και ο καθένας είναι μία εντολή αντί για κρίση. Εκτελέστε τους με σειρά και σταματήστε στην πρώτη αποτυχία. Η σειρά μετράει περισσότερο από τις εντολές, γιατί ένα μεταγενέστερο βήμα που περνά κρύβει τον λόγο που απέτυχε ένα προηγούμενο.
ping -c1 10.8.0.1
ping -c1 192.168.50.20
nc -vz 192.168.50.20 445
getent hosts nas.localΤα ονόματα ανήκουν στο τέλος της σκάλας, ποτέ στην αρχή. Ένας κοινόχρηστος πόρος που απαντά ως 192.168.50.20 αλλά όχι ως nas.local δείχνει σε επίλυση ονομάτων ή σε επίθημα αναζήτησης, και οι αλλαγές τείχους προστασίας δεν αλλάζουν κανένα από τα δύο.
Γράψτε το πρώτο βήμα που απέτυχε, μετά δώστε στις θύρες υπηρεσιών το δικό τους πέρασμα, γιατί ένας ακροατής και μια άδεια κεντρικού υπολογιστή είναι ξεχωριστές απαιτήσεις. Ο διαμοιρασμός αρχείων, η απομακρυσμένη επιφάνεια εργασίας και οι ροές καμερών χρειάζονται και τα δύο, και ένα τείχος προστασίας κεντρικού υπολογιστή που εμπιστεύεται το υποδίκτυο LAN αλλά όχι τη δεξαμενή του τούνελ ρίχνει τον πελάτη ενώ το ping ακόμη πετυχαίνει. Όταν όλοι οι έλεγχοι περνούν και η εφαρμογή αποτυγχάνει ακόμη, το σφάλμα είναι πάνω από το τούνελ: μια υπηρεσία δεσμευμένη σε μία διεπαφή, ή ένας διαμεσολαβητής ρυθμισμένος στον πελάτη.