Μπορεί ένας περιοδεύων πελάτης VPN να φιλοξενήσει υπηρεσία για το γραφείο;
Ένας περιοδεύων πελάτης μπορεί να εξυπηρετήσει συστήματα του γραφείου μόνο όταν η πύλη δρομολογεί προς αυτόν, η πολιτική του κεντρικού υπολογιστή το επιτρέπει και η συσκευή παραμένει προσβάσιμη αρκετά.
Ο φορητός του γραφείου μπορεί να συνδεθεί από το σπίτι και να εξακολουθεί να παρέχει κάτι που χρειάζεται το γραφείο, αλλά μόνο όταν συμπέσουν τρεις ξεχωριστές αποφάσεις. Το τούνελ είναι μεταφορά, η εσωτερική διεύθυνση είναι ο προορισμός και η πολιτική αποφασίζει ποιος επιτρέπεται να χτυπήσει. Αν αντιμετωπίσεις οποιοδήποτε από αυτά ως την πλήρη απάντηση, προκύπτει το γνωστό παράπονο: ο κεντρικός υπολογιστής απαντά στα ping αλλά η εφαρμογή δεν συνδέεται ποτέ. Οι ρόλοι δεν είναι ίδιοι και η διαφορά βρίσκεται ακριβώς εκεί όπου κατοικεί η εργασία σχεδιασμού.
Η κατεύθυνση κλήσης δεν λέει τίποτα για την κατεύθυνση της υπηρεσίας
Όταν ένας πελάτης ξεκινά ένα τούνελ, ανοίγει μια διαδρομή που μπορούν να χρησιμοποιήσουν και οι δύο κατευθύνσεις μόλις υπάρξει. Το αν μια νέα σύνδεση επιτρέπεται να εισέλθει από τον κόμβο προς αυτόν τον πελάτη είναι ζήτημα πολιτικής της πύλης, όχι ιδιότητα εκείνου που κάλεσε. Σε κόμβο OpenVPN με δρομολόγηση, για παράδειγμα, ο διακομιστής χρειάζεται διαδρομή προς την εσωτερική διεύθυνση του πελάτη και προώθηση που επιτρέπει τη σχέση ομοτίμων.
Φαντάσου ένα σύστημα απογραφής που ερωτά έναν πράκτορα σε περιοδεύοντες φορητούς, ή έναν προγραμματιστή που χρειάζεται δοκιμαστικό API από σταθμό εργασίας στο σπίτι. Και οι δύο θέλουν η πλευρά του γραφείου να ξεκινήσει τη συνομιλία, κάτι που είναι το αντίστροφο του συνήθους μοτίβου πελάτη προς διακομιστή.
Τα φιλοξενούμενα προϊόντα απομακρυσμένης πρόσβασης διαφέρουν εδώ, και η διαφορά δεν είναι σφάλμα. Ορισμένα διαχειριζόμενα VPN μπλοκάρουν σκόπιμα μη ζητημένες συνδέσεις προς συνδεδεμένους πελάτες, επειδή το μοντέλο τους είναι πελάτης προς πόρο, όχι πόρος προς πελάτη. Διάβασε την τεκμηριωμένη αρχιτεκτονική του προϊόντος πριν υποσχεθείς σε συνάδελφο ότι ο φορητός του μπορεί να λειτουργήσει ως διακομιστής.
Ακολούθησε τη διαδρομή επιστροφής πριν ανοίξεις θύρα
Η διαδρομή έχει τρία μέρη: μια διαδρομή στην πύλη που δείχνει στην εσωτερική διεύθυνση του πελάτη, πολιτική που επιτρέπει τον συγκεκριμένο καλούντα και μια υπηρεσία που ακούει στον στόχο. Κάθε μέρος αποτυγχάνει διαφορετικά, γι' αυτό το «το VPN είναι ενεργό» δεν λέει σχεδόν τίποτα.
Τα καλά νέα είναι ότι η εσωτερική διαδρομή δεν χρειάζεται προώθηση θύρας στον οικιακό δρομολογητή του πελάτη. Αυτό είναι το νόημα της δημοσίευσης της υπηρεσίας στη διεύθυνση του τούνελ αντί για τη WAN διεύθυνση του σπιτιού, όπου η έκθεση και οι κανόνες NAT θα ήταν εντελώς διαφορετικοί. Ένας οικιακός δρομολογητής μπορεί επίσης να αρνηθεί το hairpin μιας σύνδεσης που φτάνει από το γραφείο, οπότε η διαδρομή WAN αποτυγχάνει για λόγους άσχετους με το VPN σου. Κρατώντας την κίνηση μέσα στο τούνελ αποφεύγονται και τα δύο προβλήματα μαζί.
Έλεγξε και την πλευρά του στόχου. Μια υπηρεσία δεσμευμένη μόνο στο 127.0.0.1 δεν μπορεί να δεχτεί σύνδεση που φτάνει στη διεπαφή του τούνελ, όσο σωστές κι αν είναι οι διαδρομές της πύλης. Ένας κανόνας τείχους προστασίας του κεντρικού υπολογιστή που επιτρέπει τη θύρα μόνο από το τοπικό υποδίκτυο θα απορρίψει επίσης την κίνηση του γραφείου, και ο κανόνας αυτός είναι ανεξάρτητος από την πολιτική VPN πάνω από αυτόν.
Τα ονόματα και οι διευθύνσεις είναι αποφάσεις σχεδιασμού
Μια διεύθυνση μέσα στο τούνελ δεν είναι αυτόματα όνομα. Μια ιδιωτική εγγραφή DNS που ελέγχεις είναι σαφέστερη από την ελπίδα ότι ένα πρωτόκολλο ανακάλυψης θα διασχίσει το τούνελ, γιατί η επίλυση ονομάτων με multicast τοπικού συνδέσμου μένει στο τοπικό τμήμα και δεν γίνεται DNS μεταξύ υποδικτύων.
Η σταθερότητα της διεύθυνσης μετράει εξίσου. Αν οι πελάτες VPN παίρνουν από μια δεξαμενή με σύντομες μισθώσεις, η εσωτερική διεύθυνση του φορητού αλλάζει μεταξύ συνεδριών και κάθε σελιδοδείκτης, εύρος τείχους προστασίας και έλεγχος παρακολούθησης που βασίζεται σε αυτήν σπάει σιωπηλά. Χρησιμοποίησε δέσμευση ή τεκμηριωμένη διαδρομή δυναμικής ενημέρωσης.
Συμφώνησε το όνομα με όποιον κατέχει την ταυτότητα του VPN, ώστε η εγγραφή, η εκχώρηση διεύθυνσης και η πολιτική πρόσβασης να αλλάζουν μαζί και όχι σε τρία ξεχωριστά αιτήματα.
Δοκίμασε την υπηρεσία, όχι τη συνδρομή
Από τον στόχο, επιβεβαίωσε τι ακούει και σε ποια διεύθυνση, έπειτα επιβεβαίωσε την άποψη της πύλης για την επιστροφή:
$ ss -ltnp | grep 8080
LISTEN 0 128 10.80.0.23:8080 0.0.0.0:*
$ ip -4 addr show tun0 | grep inet
inet 10.80.0.23/24 scope global tun0
$ ip route get 10.80.0.1
10.80.0.1 dev tun0 src 10.80.0.23
Τώρα δοκίμασε από την πλευρά του γραφείου με πραγματικό αίτημα αντί για ηχώ. Ένα επιτυχές curl προς την υπηρεσία αποδεικνύει διαδρομή, πολιτική και ακροατή ταυτόχρονα, ενώ ένα επιτυχές ping αποδεικνύει μόνο ότι επιτρέπεται το ICMP. Αν το αίτημα αποτύχει, πήγαινε προς τα πίσω στα τρία μέρη αντί να διευρύνεις το τείχος προστασίας και να ελπίζεις.
Η διαθεσιμότητα ανήκει στην ίδια συζήτηση. Ένας φορητός κοιμάται, περιοδεύει μεταξύ δικτύων και αποσυνδέεται στο τέλος της ημέρας. Μια υπηρεσία που πρέπει να απαντά οποιαδήποτε ώρα ανήκει σε κεντρικό υπολογιστή που μένει πάντα ανοιχτός, ενώ μια υπηρεσία καλύτερης προσπάθειας μπορεί να μείνει στον πελάτη με τον περιορισμό γραμμένο.
Δημοσίευσε τον πόρο σκόπιμα, με όνομα, λίστα επιτρεπόμενων καλούντων και ιδιοκτήτη, και η απομακρυσμένη συσκευή γίνεται υποστηριζόμενη υπηρεσία αντί για τυχαίο διακομιστή.