Το τούνελ λειτουργεί για όλους όσους βρίσκονται πίσω του, η πύλη προωθεί την κίνησή τους, και όμως το ίδιο το μηχάνημα δεν μπορεί να εγκαταστήσει μια ενημέρωση ασφαλείας. Αυτή είναι η συνήθης μορφή του προβλήματος: η άδεια προώθησης δόθηκε στους πελάτες, και οι δικές της εξερχόμενες συνδέσεις της πύλης δεν συμπεριλήφθηκαν ποτέ στο σχέδιο. Ο διαχειριστής πακέτων ανοίγει τις δικές του υποδοχές, από την πύλη, προς ένα αποθετήριο που πιθανότατα δεν έχετε ονομάσει πουθενά στην πολιτική του τείχους προστασίας.

Το κλείδωμα μιας πύλης είναι σωστό. Το κλείδωμά της τόσο σχολαστικά ώστε να σταματήσει να λαμβάνει διορθώσεις είναι άλλη απόφαση, και συνήθως τυχαία.

Η τοπική έξοδος δεν είναι προώθηση πελατών

Οι κανόνες προώθησης διέπουν πακέτα που φτάνουν από αλλού και φεύγουν μέσα από την πύλη. Η δική της κίνηση ενημερώσεων της πύλης δεν ταιριάζει ποτέ με αυτούς· παράγεται τοπικά και ακολουθεί τη διαδρομή εξόδου. Αυτή η διάκριση εξηγεί μια αποτυχία που φαίνεται αδύνατη ενώ η πρόσβαση των πελατών λειτουργεί άψογα.

Εξηγεί επίσης ένα κενό πολιτικής που επιβιώνει από τις δοκιμές, επειδή ένας γρήγορος έλεγχος από φορητό υπολογιστή πίσω από το τούνελ αποδεικνύει ότι η αλυσίδα προώθησης λειτουργεί και δεν λέει τίποτα για τις δικές του συνδέσεις του κεντρικού υπολογιστή. Αντιμετωπίστε την πύλη ως δύο υποκείμενα: έναν δρομολογητή με αλυσίδα προώθησης και έναν κεντρικό υπολογιστή με αλυσίδα εξόδου. Και τα δύο χρειάζονται άποψη, και συνήθως μόνο η μία καταγράφεται.

Ονομάστε το στάδιο που απέτυχε

Τα σφάλματα ενημέρωσης ονομάζουν διαφορετικά όρια, και το να αρπάξετε έναν κανόνα θύρας πριν διαβάσετε ποιο απέτυχε κοστίζει ένα απόγευμα. Ένα όνομα αποθετηρίου που δεν επιλύεται είναι ζήτημα resolver, όχι ζήτημα μεταφοράς.

getent hosts deb.debian.org
curl -sSI https://deb.debian.org/debian/dists/stable/Release | head -n 1
apt-get -o Debug::Acquire::https=true update

Ένα χρονικό όριο μετά από επιτυχή επίλυση μεταφέρει το ζήτημα στη μεταφορά: ποια διεύθυνση, ποια θύρα και ποιον ρυθμισμένο διαμεσολαβητή δοκίμασε στην πραγματικότητα ο διαχειριστής πακέτων. Μια αποτυχία επαλήθευσης TLS είναι τρίτο, εντελώς διαφορετικό πράγμα, και σημαίνει ότι η σύνδεση λειτούργησε αρκετά καλά ώστε να διαπραγματευτεί. Ένα παράπονο για τον έλεγχο ταυτότητας του αρχείου είναι το τέταρτο στάδιο, και αφορά υπογεγραμμένα μεταδεδομένα και όχι προσβασιμότητα. Τέσσερα στάδια, τέσσερις διαφορετικές επισκευές, και ένα ping περιγράφει πάντα μόνο ένα πρωτόκολλο που κανένας διαχειριστής πακέτων δεν χρησιμοποιεί.

Διαβάστε τη λίστα πηγών πριν προσθέσετε κανόνα

Καταγράψτε τα πραγματικά URI των πηγών και την πραγματική διαμόρφωση διαμεσολαβητή, όχι αυτά που θυμάστε. Ένας κανόνας γραμμένος για απλό HTTP είναι άχρηστος όταν η πηγή είναι HTTPS, και ένας διαμεσολαβητής που γνωρίζει το κέλυφος μπορεί να είναι αόρατος σε μια υπηρεσία που ξεκινά κατά την εκκίνηση με άλλο περιβάλλον.

Η τεκμηρίωση της μεταφοράς HTTP στο APT καλύπτει ρυθμίσεις διαμεσολαβητή περιβάλλοντος και ειδικές για το APT, συμπεριλαμβανομένων επιλογών ανά κεντρικό υπολογιστή, και η μεταφορά HTTPS έχει τις δικές της ρυθμίσεις επαλήθευσης. Η διαδρομή ενός περιηγητή και η διαδρομή του διαχειριστή πακέτων είναι ξεχωριστές διαδρομές, ακόμη και στο ίδιο μηχάνημα.

Σημειώστε σε ποιες οικογένειες επιλύονται οι πηγές. Ένας κανόνας που επιτρέπει μόνο IPv4 θα συνεχίσει να αποτυγχάνει σε κεντρικό υπολογιστή του οποίου οι πηγές προτιμούν μια εγγραφή AAAA, και το σφάλμα φαίνεται διακοπτόμενο επειδή εξαρτάται από το ποια απάντηση φτάνει πρώτη.

Διαλέξτε μία διαδρομή συντήρησης και κρατήστε την

Υπάρχουν τρεις υπερασπίσιμες επιλογές: κίνηση συντήρησης μέσω του τούνελ, μέσω διαχειριζόμενου διαμεσολαβητή ενημερώσεων ή μέσω μιας στενής άμεσης εξαίρεσης. Διαλέξτε μία συνειδητά και κάντε τον resolver να συμφωνήσει, επειδή ένας διαχωρισμός όπου τα ονόματα επιλύονται προς μία κατεύθυνση και οι συνδέσεις πηγαίνουν προς άλλη παράγει αποτυχίες που κανείς δεν μπορεί να εξηγήσει.

Ό,τι κι αν διαλέξετε, δεν πρέπει να γίνει απεριόριστη εφεδρική λύση. Αν η άμεση εξερχόμενη κίνηση απαγορεύεται όταν το τούνελ είναι κάτω, μια εξαίρεση συντήρησης που επιτρέπει σιωπηρά τα πάντα είναι αλλαγή πολιτικής μεταμφιεσμένη σε διόρθωση. Κρατήστε το δικό του τελικό σημείο του τούνελ και τις ανάγκες bootstrap σε ξεχωριστή κατηγορία από την πρόσβαση σε αποθετήρια, επειδή δείχνουν σε διαφορετικούς προορισμούς και αποτυγχάνουν με διαφορετικούς τρόπους, ώστε μία εξαίρεση δεν μπορεί να καλύψει την άλλη.

Επαληθεύστε χωρίς να αποδυναμώσετε τους ελέγχους

Εφαρμόστε το εύρος μέσω του τείχους προστασίας που κατέχει ήδη την πολιτική, αντί να προσθέσετε δεύτερο διαχειριστή επειδή τον χρησιμοποίησε ένας οδηγός. Στη συνέχεια εκτελέστε μια ανανέωση μεταδεδομένων και μία πραγματική συναλλαγή πακέτων υπό τη συντηρούμενη πολιτική, και διαβάστε την έξοδο, όχι μόνο την κατάσταση εξόδου.

Η επιτυχής μεταφορά δεν είναι άδεια να χαλαρώσετε την επαλήθευση. Ο έλεγχος ταυτότητας του αρχείου και η ταυτότητα του διακομιστή TLS είναι ξεχωριστές εγγυήσεις, και η απενεργοποίηση οποιουδήποτε από τα δύο για να σωπάσει ένα σφάλμα αλλάζει αυτό που εμπιστεύεστε, όχι αυτό που μπορείτε να φτάσετε.

Ολοκληρώστε δοκιμάζοντας σκόπιμα την περίπτωση χωρίς τούνελ. Το να ξέρετε πώς συμπεριφέρεται η πύλη χωρίς το τούνελ της είναι μέρος του σχεδιασμού, το να το ανακαλύψετε κατά τη διάρκεια μιας διακοπής δεν είναι. Κατεβάστε το τούνελ, εκτελέστε την ανανέωση μεταδεδομένων και επιβεβαιώστε ότι ο κεντρικός υπολογιστής αποτυγχάνει με τον τρόπο που σκοπεύατε, αντί να πέφτει σιωπηρά πίσω σε μια ανοιχτή διαδρομή. Κρατήστε τα διαπιστευτήρια των αποθετηρίων και του διαμεσολαβητή έξω από κοινόχρηστα διαγνωστικά και αφήστε ένα σημείωμα που ονομάζει ποιος κατέχει τη διαδρομή ενημερώσεων.

Σχετικά άρθρα