Ένα όνομα αλυσίδας δεν είναι άγκιστρο: iptables έναντι nftables
Η αλυσίδα είναι δοχείο· το άγκιστρο αποφασίζει αν ο πυρήνας την εξετάζει. Συγκρίνετε τις ενσωματωμένες αλυσίδες του iptables με τις βασικές αλυσίδες του nftables πριν αλλάξετε κανόνες.
Και τα δύο τείχη προστασίας μπορούν να φιλτράρουν προωθούμενη κίνηση VPN, και συνδέουν τους κανόνες στη διαδρομή του πακέτου με διαφορετικούς τρόπους. Το iptables έχει ενσωματωμένες αλυσίδες μέσα σε έναν πίνακα, άρα το FORWARD υπάρχει ως ονομασμένο σημείο αγκίστρου. Το nftables χωρίζει το όνομα μιας αλυσίδας από τον τύπο, το άγκιστρο και την προτεραιότητά της, που σημαίνει ότι μια συνηθισμένη αλυσίδα με όνομα FORWARD δεν φιλτράρει απολύτως τίποτα. Η σύγκριση των δύο μοντέλων εξηγεί γιατί μια καταχώριση που φαίνεται σωστή σε ένα εργαλείο δεν έχει κανένα αποτέλεσμα στο άλλο.
Η αλυσίδα είναι δοχείο. Το αν ο πυρήνας την εξετάζει εξαρτάται από την υλοποίηση και από το πώς το σύνολο κανόνων τη συνδέει.
Δύο μοντέλα, δύο διαφορετικές συνδέσεις
Στο iptables ο πίνακας filter παρέχει τρεις ενσωματωμένες αλυσίδες, INPUT, FORWARD και OUTPUT, και το -N δημιουργεί μια αλυσίδα ορισμένη από τον χρήστη που ενεργεί μόνο όταν γίνει άλμα σε αυτήν από μία από εκείνες. Το εγχειρίδιο του nftables ορίζει αντίθετα βασικές αλυσίδες, που δηλώνουν τον τύπο, το άγκιστρο και την προτεραιότητά τους, και συνηθισμένες αλυσίδες, που δεν το κάνουν. Μια βασική αλυσίδα μπορεί να φέρει όποιο όνομα θέλετε, και μια συνηθισμένη αλυσίδα με όνομα FORWARD δεν αποκτά καμία ιδιότητα από την ετικέτα της. Αυτή είναι όλη η διαφορά, και είναι αόρατη σε έναν οδηγό που δείχνει μόνο κείμενο κανόνων.
Τα συμβατά backend προσθέτουν έναν δεύτερο λόγο για να μην συμπεραίνει κανείς συμπεριφορά από το όνομα μιας εντολής. Η τεκμηρίωση του iptables αναφέρει λειτουργίες που διαφέρουν στο iptables-nft, οπότε αντιμετωπίστε το γνήσιο nftables, το iptables-nft και ένα παλιό σύνολο κανόνων ως τρία συστήματα και όχι ως τρεις ορθογραφίες ενός.
Διαβάστε το σφάλμα στο πραγματικό του πλαίσιο
Ένας πίνακας που λείπει, μια αποτυχία άδειας, μια μη διαθέσιμη δυνατότητα του πυρήνα και μια ονομασμένη αλυσίδα που λείπει είναι τέσσερα διαφορετικά ευρήματα, και μόνο ένα αφορά την αλυσίδα. Καταγράψτε την έκδοση του εργαλείου, την οικογένεια διευθύνσεων και τον πίνακα που ζητήθηκαν, τον χώρο ονομάτων δικτύου και το πρώτο ακριβές σφάλμα. Έπειτα ελέγξτε ποιο συστατικό κατέχει το σύνολο κανόνων: μια υπηρεσία τείχους προστασίας ή μια πύλη που διαχειρίζεται προϊόν μπορεί να παράγει δικές της αλυσίδες και σειρά. Η προσθήκη μιας γνήσιας αλυσίδας δίπλα τους αφήνει τη διαχειριζόμενη πολιτική ανέπαφη και κάνει την απογραφή πιο μπερδεμένη.
Ο χώρος ονομάτων ενός container μπορεί να περιέχει διαφορετικό σύνολο κανόνων από τον κεντρικό υπολογιστή, οπότε μια εντολή που εκτελείται σε λάθος πλαίσιο δεν μπορεί να δείξει ποια αλυσίδα είδε ένα προωθούμενο πακέτο. Η αύξηση προνομίων επειδή μια αναμενόμενη αλυσίδα δεν ήταν ορατή δεν είναι διάγνωση.
Οι μετρητές αποδεικνύουν εμβέλεια, όχι ετυμηγορία
Οι μετρητές κανόνων σας λένε ότι ένας κανόνας προσεγγίστηκε. Δεν σας λένε ότι ένας μεταγενέστερος κανόνας επέτρεψε την πράξη, και δεν αποδεικνύουν ότι κάθε εναλλακτική διαδρομή απορρίφθηκε. Διαβάστε τους κατά τη διάρκεια μιας ακίνδυνης εξουσιοδοτημένης ροής, μαζί με τη σειρά των κανόνων και τη σύνδεση της αλυσίδας, και αντιμετωπίστε τους ως μία παρατήρηση και όχι ως ετυμηγορία. Ένας μετρητής διάφορος του μηδενός σε κανόνα απόρριψης σημαίνει ότι η κίνηση τον χτύπησε· δεν λέει τίποτα για κίνηση που δεν τον χτύπησε.
Η προώθηση IP στον πυρήνα είναι εντελώς ξεχωριστή ρύθμιση. Η ύπαρξη μιας αλυσίδας δεν ενεργοποιεί την προώθηση, και μια γνωστή ετικέτα που λείπει δεν σημαίνει ότι η προώθηση σταμάτησε.
Περιγράψτε τη ροή που περιμένετε να προστατεύσετε
Γράψτε ένα αίτημα πελάτη μετά την αποενθυλάκωση: την πηγή του, τον προορισμό του, την οικογένεια διευθύνσεων, και αν τερματίζει στην πύλη ή περνά μέσα από αυτήν. Η είσοδος τοπικής υπηρεσίας και η προωθούμενη κίνηση παρατηρούνται σε διαφορετικά σημεία, οπότε χρειάζονται διαφορετικούς κανόνες και διαφορετικές δοκιμές. Για VPN μέσω γέφυρας, επαληθεύστε και τη διαδρομή της γέφυρας, γιατί μια αλυσίδα σε επίπεδο IP δεν ελέγχει αυτόματα πλαίσια Ethernet.
Διατηρήστε ανεξάρτητη πρόσβαση ανάκτησης πριν αλλάξετε μια απομακρυσμένη πύλη. Έπειτα επιβεβαιώστε την επιδιωκόμενη ροή και τις απαιτούμενες απορρίψεις στο ίδιο σύνολο κανόνων. Μια νέα κενή αλυσίδα με γνωστό όνομα δεν είναι επισκευή.
Η σύγκριση τελειώνει σε μία ερώτηση: ποιο άγκιστρο καλεί πραγματικά ο πυρήνας για αυτό το πακέτο; Απαντήστε σε αυτό, και το όνομα της αλυσίδας παύει να έχει σημασία.