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

Η κατάσταση είναι συνθήκη αντιστοίχισης, όχι ετυμηγορία

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

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

Διαβάστε τον κανόνα στο περιβάλλον του

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

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

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

Εκφράστε την απαγόρευση ανεξάρτητα από την κατάσταση

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

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

Μια πολιτική που επιτρέπει σκόπιμα απαντήσεις σε πρόσβαση που ξεκινά από απόσταση μέσω WAN είναι υπερασπίσιμη. Απλώς πρέπει να περιγράφεται έτσι αντί να παρουσιάζεται ως πλήρης απομόνωση μόνο μέσω σήραγγας.

Ελέγξτε ποιος είναι πραγματικά μέσα στην ομάδα

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

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

iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED

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

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