Ένα firewall είναι μια συσκευή ασφαλείας (υλικό/λογισμικό) που προστατεύει το δίκτυο φιλτράροντας την κίνηση και αποκλείοντας την ανεπιθύμητη/μη εξουσιοδοτημένη πρόσβαση σε ιδιωτικά δεδομένα. Η ύπαρξη ενός κατάλληλου τείχους προστασίας είναι σημαντική για την προστασία των διακομιστών και της υποδομής σας. Μπορεί όχι μόνο να αποκλείσει την ανεπιθύμητη κίνηση αλλά και να εμποδίσει το κακόβουλο λογισμικό να μολύνει το σύστημα.
Στο οικοσύστημα του Linux, iptables είναι ένα δημοφιλές τείχος προστασίας που συνδέεται με το netfilter πλαίσιο στον πυρήνα Linux. Τα περισσότερα από τα σύγχρονα συστήματα Linux διαθέτουν αυτά τα εργαλεία προεγκατεστημένα. Για να αξιοποιήσετε στο έπακρο αυτά τα συστήματα, είναι απολύτως απαραίτητο να κατανοήσετε την αρχιτεκτονική τους. Διαφορετικά, η ανάπτυξη αξιόπιστων πολιτικών τείχους προστασίας μπορεί να είναι αποθαρρυντική. Θα μπορούσε να οδηγήσει στη δημιουργία περίπλοκων συντάξεων, αλληλένδετων μερών στο πλαίσιο, κ.λπ.
Αυτός ο οδηγός θα εμβαθύνει στην αρχιτεκτονική του iptables για να βοηθήσει τους χρήστες που πρέπει να δημιουργήσουν τις δικές τους πολιτικές τείχους προστασίας. Θα εξερευνήσουμε επίσης πώς iptables συνδέεται με το netfilter και πώς τα διάφορα εξαρτήματα ταιριάζουν μεταξύ τους.
Iptables και Netfilter
Στο Linux, το iptables τείχος προστασίας είναι το πιο κοινό. Λειτουργεί συνδεόμενο με τα άγκιστρα φιλτραρίσματος πακέτων στη στοίβα δικτύωσης του πυρήνα Linux. Αυτά τα άγκιστρα του πυρήνα αναφέρονται συλλογικά ως το netfilter πλαίσιο.
Κάθε εισερχόμενο/εξερχόμενο πακέτο στο σύστημα θα ενεργοποιεί αυτά τα άγκιστρα καθώς προχωρά στη στοίβα. Έτσι, τα προγράμματα που είναι καταχωρισμένα σε αυτά τα άγκιστρα μπορούν να αλληλεπιδρούν με την κίνηση σε βασικά σημεία. Τέλος, τα αρθρώματα του πυρήνα που σχετίζονται με το iptables συνδέονται με αυτά τα άγκιστρα για να επιβάλουν τους καθορισμένους κανόνες του τείχους προστασίας.
Άγκιστρα Netfilter
Για να συνδεθούν τα προγράμματα, υπάρχουν πέντε διαφορετικά netfilter άγκιστρα. Καθώς τα πακέτα προχωρούν στη στοίβα, τα άγκιστρα ενεργοποιούν τα αρθρώματα του πυρήνα που είναι καταχωρισμένα σε αυτά. Η συνθήκη ενεργοποίησης εξαρτάται από συνθήκες, όπως: η κατεύθυνση του πακέτου (εισερχόμενο/εξερχόμενο), ο προορισμός του πακέτου, εάν το πακέτο απορρίφθηκε/απορρίφθηκε σε προηγούμενο σημείο, κ.λπ.
Αυτά είναι τα άγκιστρα που αντιπροσωπεύουν διάφορα καλά καθορισμένα σημεία στη στοίβα δικτύου:
-
NF_IP_PRE_ROUTING: Αυτό το άγκιστρο ενεργοποιείται από οποιαδήποτε εισερχόμενη κίνηση. Η ενεργοποίηση πραγματοποιείται πριν ληφθεί οποιαδήποτε απόφαση δρομολόγησης σχετικά με τον προορισμό του πακέτου.
-
NF_IP_LOCAL_IN: Αυτό το άγκιστρο ενεργοποιείται μετά τη δρομολόγηση ενός εισερχόμενου πακέτου. Το πακέτο πρέπει επίσης να προορίζεται για το τοπικό σύστημα.
-
NF_IP_FORWARD: Αυτό το άγκιστρο ενεργοποιείται επίσης μετά τη δρομολόγηση ενός εισερχόμενου πακέτου. Ωστόσο, ενεργοποιείται εάν το πακέτο πρόκειται να δρομολογηθεί σε άλλον κεντρικό υπολογιστή.
-
NF_IP_LOCAL_OUT: Οποιαδήποτε τοπική εξερχόμενη κίνηση, μόλις φτάσει στη στοίβα δικτύου, ενεργοποιεί αυτό το άγκιστρο.
-
NF_IP_POST_ROUTING: Αυτό το άγκιστρο ενεργοποιείται από οποιαδήποτε εξερχόμενη/προωθούμενη κίνηση μετά τη δρομολόγηση, προτού το πακέτο φτάσει στο καλώδιο.
Τα αρθρώματα πυρήνα που επιθυμούν να καταχωριστούν σε αυτά τα άγκιστρα πρέπει να παρέχουν έναν αριθμό προτεραιότητας. Αυτή η τιμή βοηθά στον καθορισμό της σειράς με την οποία θα κληθούν μόλις ενεργοποιηθεί το άγκιστρο. Ένας τέτοιος μηχανισμός επιτρέπει σε πολλαπλά αρθρώματα (διαφορετικά αρθρώματα ή πολλαπλά αντίγραφα του ίδιου αρθρώματος) να συνδέονται σε καθένα από τα άγκιστρα με καθορισμένη σειρά. Κάθε άρθρωμα θα επιστρέψει μια απόφαση στο netfilter πλαίσιο μετά την επεξεργασία των πακέτων.
Πίνακες και Αλυσίδες στο Iptables
Για να οργανώσει τους κανόνες του, το iptables τείχος προστασίας χρησιμοποιεί πίνακες. Οι πίνακες κατηγοριοποιούν τους κανόνες με βάση τον τύπο των αποφάσεων που λαμβάνουν. Για παράδειγμα, εάν ένας κανόνας αφορά το NAT (μετάφραση διευθύνσεων δικτύου), τότε ο κανόνας τοποθετείται κάτω από τον πίνακα nat . Παρομοίως, εάν ένας κανόνας αποφασίζει εάν θα επιτρέψει/απορρίψει ένα πακέτο στον προορισμό του, προστίθεται στον filter πίνακα.
Μέσα σε κάθε πίνακα του iptables, οι κανόνες οργανώνονται περαιτέρω σε ξεχωριστές “αλυσίδες”. Ενώ ο πίνακας αντιπροσωπεύει τον τύπο των κανόνων που περιέχει, οι αλυσίδες περιγράφουν τα netfilter άγκιστρα που ενεργοποιούν τους κανόνες. Με λίγα λόγια, οι αλυσίδες καθορίζουν πότε θα αξιολογηθεί ο κανόνας.
Εδώ είναι οι ενσωματωμένες αλυσίδες του iptables. Είναι ενδιαφέρον ότι τα ονόματα των αλυσίδων αντικατοπτρίζουν επίσης το όνομα του σχετιζόμενου netfilter hooks:
| Αλυσίδα (iptables) | Χρήση |
| PREROUTING | NF_IP_PRE_ROUTING |
| INPUT | NF_IP_LOCAL_IN |
| FORWARD | NF_IP_FORWARD |
| OUTPUT | NF_IP_LOCAL_OUT |
| POSTROUTING | NF_IP_POST_ROUTING |
Χρησιμοποιώντας τις αλυσίδες, οι διαχειριστές μπορούν να καθορίσουν σε ποιο στάδιο της παράδοσης του πακέτου θα αξιολογηθεί ο κανόνας. Καθώς κάθε πίνακας περιέχει πολλαπλές αλυσίδες, μπορεί επίσης να επεκτείνει την επιρροή του σε πολλαπλά σημεία της επεξεργασίας. Ορισμένες αποφάσεις έχουν νόημα μόνο σε συγκεκριμένα σημεία της στοίβας δικτύου. Έτσι, κάθε πίνακας δεν θα έχει μια αλυσίδα καταχωρισμένη σε κάθε hook του πυρήνα.
Το netfilter framework προσφέρει μόνο 5 hooks πυρήνα. Ως εκ τούτου, αλυσίδες από πολλαπλούς πίνακες καταχωρίζονται σε κάθε σημείο των hooks. Για παράδειγμα, εάν τρεις αλυσίδες έχουν τις αλυσίδες PREROUTING , τότε είναι καταχωρισμένες στο NF_IP_PRE_ROUTING hook. Κάθε μία από αυτές πρέπει να παρέχει μια προτεραιότητα που αποφασίζει με ποια σειρά θα καλείται η αλυσίδα κάθε πίνακα PREROUTING . Η αλυσίδα PREROUTING με την υψηλότερη προτεραιότητα αξιολογείται πρώτη, η αλυσίδα με την αμέσως επόμενη υψηλότερη προτεραιότητα αξιολογείται δεύτερη, και ούτω καθεξής.
Οι Πίνακες του iptables
Ας κάνουμε ένα βήμα πίσω και ας ρίξουμε μια ματιά στους πίνακες που προσφέρει το iptables . Όπως αναφέρθηκε προηγουμένως, κάθε πίνακας αντιπροσωπεύει διαφορετικά σύνολα κανόνων, οργανωμένα ανά τομέα ενδιαφέροντος, για την αξιολόγηση των πακέτων.
-
Πίνακας filter
Στο iptables , ο filter είναι ένας από τους πιο δημοφιλείς. Χρησιμοποιείται για να καθορίσει εάν ένα πακέτο θα επιτραπεί να συνεχίσει στον προορισμό του ή όχι. Στην ορολογία των firewalls, αυτή η διαδικασία είναι γνωστή ως “φιλτράρισμα” πακέτων.
Είναι οι λειτουργίες του filter πίνακα στις οποίες αναφέρεται ο κόσμος όταν συζητά για firewalls (ως επί το πλείστον).
-
Πίνακας nat
Αυτός ο πίνακας εφαρμόζει κανόνες που ρυθμίζουν το NAT. Όταν τα πακέτα εισέρχονται στη στοίβα δικτύου, οι κανόνες που περιγράφονται σε αυτόν τον πίνακα αποφασίζουν πώς θα τροποποιηθεί η διεύθυνση πηγής/προορισμού του πακέτου, επηρεάζοντας τη δρομολόγηση του πακέτου και οποιαδήποτε κίνηση απόκρισης.
Συχνά, ο nat χρησιμοποιείται για τη δρομολόγηση πακέτων σε δίκτυα όπου δεν υπάρχει απευθείας πρόσβαση.
-
Πίνακας mangle
Αυτός ο πίνακας περιέχει τους κανόνες που τροποποιούν τις κεφαλίδες IP των πακέτων με διάφορους τρόπους. Για παράδειγμα, μπορεί να τροποποιήσει την τιμή TTL (Time to Live) ενός πακέτου επιμηκύνοντας/μειώνοντας τον αριθμό των έγκυρων αλμάτων δικτύου που μπορεί να αντέξει το πακέτο. Επιπλέον, ο πίνακας mangle μπορεί να τροποποιήσει άλλες κεφαλίδες IP με παρόμοιο τρόπο.
Αυτός ο πίνακας επιτρέπεται επίσης να τοποθετεί ένα εσωτερικό “σημάδι” του πυρήνα στο πακέτο, το οποίο άλλοι πίνακες και εργαλεία δικτύου μπορούν να λάβουν για περαιτέρω επεξεργασία. Αυτό το σημάδι δεν αγγίζει το ίδιο το πακέτο, αλλά μάλλον προσθέτει το σημάδι στην αναπαράσταση του πακέτου από τον πυρήνα.
-
Πίνακας raw
Το iptables firewall είναι stateful, πράγμα που σημαίνει ότι τα πακέτα αξιολογούνται στο πλαίσιο της σχέσης τους με προηγούμενα πακέτα. Η δυνατότητα παρακολούθησης σύνδεσης που αναπτύχθηκε πάνω από το πλαίσιο netfilter επιτρέπει στο iptables να βλέπει τα πακέτα ως μέρος μιας συνεχιζόμενης σύνδεσης ή συνεδρίας και όχι ως μια ροή διακριτών, άσχετων πακέτων. Γενικά, η λογική παρακολούθησης σύνδεσης εφαρμόζεται πολύ σύντομα αφού το πακέτο φτάσει στη διεπαφή δικτύου.
Ο raw συνοδεύεται από μια πολύ στενά καθορισμένη λειτουργία. Ο μοναδικός σκοπός αυτού του πίνακα είναι να παρέχει έναν μηχανισμό για τη σήμανση πακέτων προκειμένου να εξαιρεθούν από την παρακολούθηση σύνδεσης.
-
Πίνακας security
Ο security πίνακας τοποθετεί εσωτερικά σήματα πλαισίου ασφαλείας SELinux στα πακέτα. Αυτό, με τη σειρά του, επηρεάζει τον τρόπο με τον οποίο το SELinux (ή οποιαδήποτε άλλη εφαρμογή που ερμηνεύει τα πλαίσια ασφαλείας SELinux) θα χειριστεί τα πακέτα.
Τα σήματα SELinux μπορούν να εφαρμοστούν ανά πακέτο ή ανά σύνδεση.
Αλυσίδες που Υλοποιούνται σε Κάθε Πίνακα
Μέχρι στιγμής, έχουμε μιλήσει για πίνακες και αλυσίδες ξεχωριστά. Ώρα να δούμε ποιες αλυσίδες είναι διαθέσιμες σε κάθε πίνακα. Αυτό το θέμα επεκτείνει τη συζήτηση σχετικά με τη σειρά αξιολόγησης των αλυσίδων που είναι καταχωρισμένες στο ίδιο hook. Για παράδειγμα, τι συμβαίνει εάν τρεις πίνακες έχουν αλυσίδες PREROUTING ; Ποια είναι η σειρά αξιολόγησής τους;
Στη συνέχεια, ρίξτε μια ματιά στον ακόλουθο πίνακα. Υποδεικνύει τις αλυσίδες που είναι διαθέσιμες σε κάθε iptables πίνακα.
| PREROUTING | INPUT | FORWARD | OUTPUT | POSTROUTING | |
|
(απόφαση δρομολόγησης) |
✓ | ||||
|
raw |
✓ | ✓ | |||
|
(ενεργοποιημένη παρακολούθηση σύνδεσης) |
✓ | ✓ | |||
|
mangle |
✓ | ✓ | ✓ | ✓ | ✓ |
|
nat (DNAT) |
✓ | ✓ | |||
|
(απόφαση δρομολόγησης) |
✓ | ✓ | |||
|
filter |
✓ | ✓ | ✓ | ||
|
security |
✓ | ✓ | ✓ | ||
|
nat (SNAT) |
✓ | ✓ |
Όταν διαβάζεται από αριστερά προς τα δεξιά, περιγράφει ποιοι πίνακες περιέχουν ποιες αλυσίδες. Για παράδειγμα, ο raw πίνακας έχει και τις δύο PREROUTING και OUTPUT αλυσίδες. Όταν διαβάζεται από πάνω προς τα κάτω, περιγράφει με ποια σειρά καλείται κάθε αλυσίδα όταν ενεργοποιείται το σχετικό netfilter hook.
Σημειώστε ότι ο nat πίνακας χωρίστηκε μεταξύ των λειτουργιών DNAT (τροποποίηση του προορισμού ενός πακέτου) και των λειτουργιών SNAT (τροποποίηση της πηγής ενός πακέτου) για να καθοριστεί η σειρά τους με μεγαλύτερη σαφήνεια. Ο πίνακας περιλαμβάνει επίσης σημεία αναπαράστασης όπου λαμβάνονται αποφάσεις δρομολόγησης και όπου είναι ενεργοποιημένη η παρακολούθηση σύνδεσης.
Τα hooks (στήλες) που θα ενεργοποιήσει ένα πακέτο βασίζονται στη φύση του πακέτου (εισερχόμενο/εξερχόμενο), στις αποφάσεις δρομολόγησης που λαμβάνονται και στο αν ένα πακέτο πληροί τα κριτήρια φιλτραρίσματος.
Ορισμένα συμβάντα μπορούν να παρακάμψουν την αλυσίδα ενός πίνακα κατά την επεξεργασία. Για παράδειγμα, μόνο το πρώτο πακέτο σε μια σύνδεση θα αξιολογηθεί έναντι των κανόνων NAT, όπως περιγράφεται από τον nat πίνακα. Κάθε επόμενο πακέτο στην ίδια σύνδεση θα έχει τις ίδιες αποφάσεις nat να εφαρμόζονται χωρίς καμία πρόσθετη αξιολόγηση. Οι απαντήσεις στις συνδέσεις NAT θα έχουν αυτόματα εφαρμοσμένους τους αντίστροφους κανόνες NAT για τη σωστή δρομολόγηση.
Σειρά διέλευσης αλυσίδας
Υποθέτοντας ότι ο διακομιστής γνωρίζει τους κανόνες δρομολόγησης πακέτων και οι κανόνες του τείχους προστασίας επιτρέπουν τη μετάδοση, οι ακόλουθες ροές αντιπροσωπεύουν τον τρόπο με τον οποίο θα διανυθούν οι διάφορες διαδρομές:
-
Εισερχόμενα πακέτα με προορισμό το τοπικό σύστημα: PREROUTING >> INPUT
-
Εισερχόμενα πακέτα με προορισμό άλλον κεντρικό υπολογιστή: PREROUTING >> FORWARD >> POSTROUTING
-
Τοπικά παραγόμενα πακέτα: OUTPUT >> POSTROUTING
Συμπερασματικά, συνδυάζοντας όλες τις πληροφορίες που έχουμε συζητήσει μέχρι τώρα, μπορούμε να δούμε ότι οποιοδήποτε εισερχόμενο πακέτο με προορισμό το τοπικό σύστημα θα αξιολογηθεί έναντι των αλυσίδων PREROUTING των πινάκων raw, mangle, και nat. Στη συνέχεια, θα περάσει μέσα από τις αλυσίδες INPUT των πινάκων mangle, filter, security, και nat προτού φτάσει τελικά στην τοπική υποδοχή.
Κανόνες Iptables
Οι κανόνες του τείχους προστασίας iptables τοποθετούνται μέσα σε μια συγκεκριμένη αλυσίδα ενός συγκεκριμένου πίνακα. Όταν καλείται μια αλυσίδα, το εν λόγω πακέτο θα αξιολογείται έναντι κάθε κανόνα στην αλυσίδα. Κάθε κανόνας έχει δύο συνιστώσες: μια συνιστώσα αντιστοίχισης και μια συνιστώσα ενέργειας.
-
Αντιστοίχιση
Το μέρος της αντιστοίχισης ενός κανόνα καθορίζει τις προϋποθέσεις που πρέπει να πληροί ένα πακέτο προτού εκτελεστεί η καθορισμένη ενέργεια (ή “στόχος”).
Το σύστημα αντιστοίχισης προσφέρει απίστευτη ευελιξία. Η λειτουργικότητά του μπορεί επίσης να επεκταθεί με τη βοήθεια των επεκτάσεων iptables. Οι κανόνες μπορούν να περιγραφούν ώστε να αντιστοιχούν πακέτα ανάλογα με τον τύπο πρωτοκόλλου, τη διεύθυνση πηγής/προορισμού, τη θύρα πηγής/προορισμού, το δίκτυο πηγής/προορισμού, τη διεπαφή εισόδου/εξόδου, τις κεφαλίδες, την κατάσταση σύνδεσης και άλλα κριτήρια. Ένας κανόνας μπορεί επίσης να έχει έναν συνδυασμό αυτών των συνθηκών, με αποτέλεσμα πολύπλοκα σύνολα κανόνων για τη διαφοροποίηση μεταξύ διαφορετικών τύπων κίνησης.
-
Στόχοι
Ένας στόχος είναι η ενέργεια που λαμβάνεται όταν ένα πακέτο πληροί τα κριτήρια αντιστοίχισης ενός κανόνα. Γενικά, οι στόχοι χωρίζονται σε δύο ομάδες:
-
-
Τερματικοί στόχοι: Τερματίζει τη διαδικασία αξιολόγησης εντός της αλυσίδας και επιστρέφει τον έλεγχο στο hook netfilter. Με βάση την τιμή επιστροφής, το hook είτε θα επιτρέψει στο πακέτο να συνεχίσει τη διαδρομή του είτε θα το απορρίψει.
-
Μη τερματικοί στόχοι: Ο στόχος εκτελεί μια ενέργεια και η αξιολόγηση στην αλυσίδα συνεχίζεται. Αν και κάθε αλυσίδα πρέπει να περάσει από μια τελική απόφαση τερματισμού, οποιοσδήποτε αριθμός μη τερματικών στόχων μπορεί να λάβει χώρα εκ των προτέρων.
-
Η διαθεσιμότητα κάθε στόχου εντός των κανόνων εξαρτάται από το πλαίσιο. Για παράδειγμα, η αλυσίδα και ο τύπος πίνακα ενδέχεται να επηρεάσουν τη διαθεσιμότητα των στόχων. Άλλοι πιθανοί παράγοντες περιλαμβάνουν τις ενεργοποιημένες επεκτάσεις στον κανόνα και τις ρήτρες αντιστοίχισης.
Αλυσίδες Οριζόμενες από τον Χρήστη
Υπάρχει επίσης μια ειδική κατηγορία μη τερματικών στόχων: ο στόχος μετάβασης (jump target). Οι στόχοι μετάβασης είναι ενέργειες που εκτελούνται όταν η αξιολόγηση μεταβαίνει από μια αλυσίδα σε μια άλλη για πρόσθετη επεξεργασία. Μέχρι στιγμής, έχουμε μιλήσει για ενσωματωμένες αλυσίδες που συνδέονται στενά με τις netfilter hooks που τις καλούν. Ωστόσο, iptables επιτρέπει επίσης στους διαχειριστές να δημιουργούν τις δικές τους προσαρμοσμένες αλυσίδες.
Οι κανόνες στις αλυσίδες που ορίζονται από τον χρήστη είναι επίσης παρόμοιοι με εκείνους στις ενσωματωμένες αλυσίδες. Η βασική διαφορά είναι ότι οι αλυσίδες που ορίζονται από τον χρήστη είναι προσβάσιμες μόνο με “μετάβαση” σε αυτές από έναν κανόνα. Αυτό συμβαίνει επειδή οι αλυσίδες που ορίζονται από τον χρήστη δεν συνδέονται με κανένα netfilter hooks.
Μπορείτε να σκεφτείτε τις αλυσίδες που ορίζονται από τον χρήστη ως επεκτάσεις της αλυσίδας που τις κάλεσε αρχικά. Για παράδειγμα, σε μια αλυσίδα ορισμένη από τον χρήστη, η αξιολόγηση θα επιστρέψει στην καλούσα αλυσίδα εάν φτάσει στο τέλος της λίστας κανόνων ή εάν ένας κανόνας αντιστοίχισης εκτελέσει έναν στόχο RETURN target. Είναι ενδιαφέρον ότι μια αλυσίδα ορισμένη από τον χρήστη μπορεί επίσης να “μεταβιβάσει” την αξιολόγηση σε μια άλλη αλυσίδα ορισμένη από τον χρήστη.
Αυτό το χαρακτηριστικό θέτει τις βάσεις για καλύτερη οργάνωση και το απαραίτητο πλαίσιο για ισχυρή διακλάδωση.
Παρακολούθηση Σύνδεσης
Κατά τη συζήτηση για τον πίνακα raw και τα κριτήρια αντιστοίχισης κατάστασης σύνδεσης, συζητήσαμε το σύστημα παρακολούθησης σύνδεσης που υλοποιείται πάνω από το πλαίσιο netfilter framework. Αυτή η δυνατότητα επιτρέπει στο iptables να βλέπει πακέτα στο πλαίσιο μιας συνεχιζόμενης σύνδεσης. Το σύστημα παρακολούθησης σύνδεσης παρέχει επίσης στο iptables την απαραίτητη λειτουργικότητα που απαιτείται για την εκτέλεση λειτουργιών “stateful”.
Αμέσως μετά την είσοδο ενός πακέτου στη στοίβα δικτύωσης, εφαρμόζεται παρακολούθηση σύνδεσης. Οι αλυσίδες του πίνακα raw και ορισμένοι βασικοί έλεγχοι ορθότητας είναι όλη η λογική που απαιτείται για τη συσχέτιση των πακέτων με μια σύνδεση.
Το σύστημα ελέγχει κάθε πακέτο σε σχέση με ένα σύνολο υπαρχουσών συνδέσεων. Εάν χρειάζεται, το σύστημα θα ενημερώσει την κατάσταση των υπαρχουσών συνδέσεων ή θα δημιουργήσει νέες. Τα πακέτα που έχουν σημανθεί με τον στόχο NOTRACK σε οποιεσδήποτε αλυσίδες του πίνακα raw θα παρακάμψουν τις περαιτέρω διαδικασίες παρακολούθησης σύνδεσης.
-
Διαθέσιμες Καταστάσεις
Στις συνδέσεις που παρακολουθούνται από το σύστημα παρακολούθησης σύνδεσης θα εκχωρηθεί οποιαδήποτε από τις ακόλουθες καταστάσεις:
-
-
NEW : Κατά την άφιξη ενός πακέτου που δεν σχετίζεται με μια υπάρχουσα σύνδεση αλλά δεν είναι άκυρο ως πρώτο πακέτο, μια νέα σύνδεση προστίθεται στο σύστημα με αυτήν την ετικέτα. Αυτό συμβαίνει τόσο για πρωτόκολλα με επίγνωση σύνδεσης (TCP, για παράδειγμα) όσο και για πρωτόκολλα χωρίς σύνδεση (UDP, για παράδειγμα).
-
ESTABLISHED: Η κατάσταση μιας σύνδεσης ενημερώνεται από NEW σε ESTABLISHED όταν λαμβάνει μια έγκυρη απάντηση από την αντίθετη κατεύθυνση. Για συνδέσεις TCP, σημαίνει ένα SYN/ACK. Για την κίνηση UDP και ICMP, σημαίνει μια απάντηση όπου η πηγή και ο προορισμός του αρχικού πακέτου έχουν αντιστραφεί.
-
RELATED: Πακέτα που δεν αποτελούν μέρος μιας σύνδεσης αλλά σχετίζονται με μια καθιερωμένη σύνδεση λαμβάνουν την ετικέτα RELATED . Μπορεί να σημαίνει μια βοηθητική σύνδεση (για παράδειγμα, στη σύνδεση μετάδοσης δεδομένων FTP) ή απαντήσεις ICMP σε προσπάθειες σύνδεσης από άλλα πρωτόκολλα.
-
INVALID: Πακέτα που δεν αποτελούν μέρος μιας καθιερωμένης σύνδεσης, θεωρούνται ακατάλληλα για το άνοιγμα μιας νέας σύνδεσης, δεν μπορούν να αναγνωριστούν, δεν είναι δρομολογήσιμα κ.λπ. λαμβάνουν την ετικέτα INVALID.
-
UNTRACKED: Ένα πακέτο μπορεί να επισημανθεί ως UNTRACKED εάν στοχοποιήθηκε σε μια αλυσίδα πίνακα raw για παράκαμψη της παρακολούθησης.
-
SNAT: Σημαίνει μια εικονική κατάσταση που ορίζεται όταν η διεύθυνση πηγής τροποποιείται από μια λειτουργία NAT. Διαχειρίζεται από το σύστημα παρακολούθησης σύνδεσης, έτσι ώστε οι διευθύνσεις πηγής να μεταφράζονται στα πακέτα απάντησης.
-
DNAT: Παρόμοιο με το SNAT, σημαίνει μια εικονική κατάσταση όταν η διεύθυνση προορισμού τροποποιείται από μια λειτουργία NAT. Το σύστημα παρακολούθησης σύνδεσης το χειρίζεται έτσι ώστε να γνωρίζει να μεταφράσει τη διεύθυνση προορισμού πίσω κατά τη δρομολόγηση των πακέτων απάντησης.
-
Αυτές οι καταστάσεις που παρακολουθούνται από το σύστημα παρακολούθησης σύνδεσης επιτρέπουν στους διαχειριστές να δημιουργούν συγκεκριμένους κανόνες που στοχεύουν σε συγκεκριμένα σημεία στη διάρκεια ζωής μιας σύνδεσης. Παρέχει την απαραίτητη λειτουργικότητα για πιο λεπτομερείς και ασφαλείς κανόνες.
Τελικές Σκέψεις
Στο Linux, το netfilter πλαίσιο και το iptables τείχος προστασίας χρησιμεύουν ως βάση για τα περισσότερα τείχη προστασίας. Τα netfilter hooks είναι αρκετά κοντά στη στοίβα δικτύωσης ώστε να επιτρέπουν ισχυρό έλεγχο των πακέτων που επεξεργάζεται το σύστημα. Αξιοποιώντας αυτές τις δυνατότητες, το iptables τείχος προστασίας προσφέρει έναν ευέλικτο τρόπο επικοινωνίας των απαιτήσεων πολιτικής με τον πυρήνα.
Αυτός ο οδηγός αναλύει σε βάθος την εσωτερική δομή του netfilter πλαισίου και του iptables τείχους προστασίας. Επιπλέον, συζητά το σύστημα παρακολούθησης σύνδεσης. Κατανοώντας πώς αυτά τα κομμάτια ταιριάζουν μεταξύ τους, μπορείτε να τα χρησιμοποιήσετε καλύτερα για να δημιουργήσετε πιο ισχυρά και ασφαλή περιβάλλοντα διακομιστών.
Τέλος, ενώ αυτός ο οδηγός ασχολείται με την εσωτερική λειτουργία, δείτε αυτόν τον οδηγό για τη διαμόρφωση του iptables για να τα εφαρμόσετε στην πράξη. Επιπλέον, μπορείτε να δείτε πώς το UFW firewall απλοποιεί περαιτέρω το iptables. Επιπλέον, θα είναι χρήσιμο να μάθετε πώς να προβάλλετε και να διαγράφετε κανόνες του τείχους προστασίας iptables.
Καλή υπολογιστική!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.