Τρόπος εκτέλεσης φιλτραρίσματος πακέτων, μετάφρασης διευθύνσεων δικτύου και ορισμού παραμέτρων χρόνου εκτέλεσης πυρήνα - Μέρος 2


Όπως υποσχέθηκε στο Μέρος 1 ("Ρύθμιση στατικής δρομολόγησης δικτύου "), σε αυτό το άρθρο (Μέρος 2 της σειράς RHCE) θα ξεκινήσουμε παρουσιάζοντας τις αρχές του φιλτραρίσματος πακέτων και της μετάφρασης διευθύνσεων δικτύου (NAT) στο Red Hat Enterprise Linux 7, πριν προχωρήσετε στη ρύθμιση παραμέτρων του πυρήνα χρόνου εκτέλεσης για να τροποποιήσετε τη συμπεριφορά ενός τρέχοντος πυρήνα, εάν αλλάξουν ορισμένες συνθήκες ή προκύψουν ανάγκες.

Φιλτράρισμα πακέτων δικτύου στο RHEL 7

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

Όπως πιθανότατα γνωρίζετε, ξεκινώντας με το RHEL 7, η προεπιλεγμένη υπηρεσία που διαχειρίζεται τους κανόνες του τείχους προστασίας είναι το τείχος προστασίας. Όπως και τα iptables, συνομιλεί με τη μονάδα netfilter στον πυρήνα του Linux για να εξετάσει και να χειριστεί τα πακέτα δικτύου. Σε αντίθεση με τα iptables, οι ενημερώσεις μπορούν να τεθούν σε ισχύ αμέσως χωρίς να διακοπούν οι ενεργές συνδέσεις – δεν χρειάζεται καν να επανεκκινήσετε την υπηρεσία.

Ένα άλλο πλεονέκτημα του τείχους προστασίας είναι ότι μας επιτρέπει να ορίζουμε κανόνες με βάση τα προ-ρυθμισμένα ονόματα υπηρεσιών (περισσότερα σε ένα λεπτό).

Στο Μέρος 1, χρησιμοποιήσαμε το ακόλουθο σενάριο:

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

Αρχικά, ας προσθέσουμε έναν μόνιμο κανόνα για να επιτρέπεται η εισερχόμενη κυκλοφορία στο enp0s3 (192.168.0.19) στο enp0s8 (10.0.0.18 ισχυρό>):

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Η παραπάνω εντολή θα αποθηκεύσει τον κανόνα στο /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Στη συνέχεια, ενεργοποιήστε τον κανόνα για να τεθεί σε ισχύ αμέσως:

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Τώρα μπορείτε να μεταβείτε μέσω telnet στον διακομιστή ιστού από το πλαίσιο RHEL 7 και να εκτελέσετε ξανά το tcpdump για να παρακολουθήσετε την κυκλοφορία TCP μεταξύ των δύο μηχανών, αυτή τη φορά με το τείχος προστασίας στον δρομολογητή #2 ενεργοποιημένη.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Τι γίνεται αν θέλετε να επιτρέπετε μόνο τις εισερχόμενες συνδέσεις στον διακομιστή ιστού (θύρα 80) από το 192.168.0.18 και να αποκλείσετε συνδέσεις από άλλες πηγές στο 192.168.0.0/ 24δίκτυο;

Στο τείχος προστασίας του διακομιστή web, προσθέστε τους ακόλουθους κανόνες:

firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

Τώρα μπορείτε να κάνετε αιτήματα HTTP στον διακομιστή ιστού, από το 192.168.0.18 και από κάποιο άλλο μηχάνημα στο 192.168.0.0/24. Στην πρώτη περίπτωση η σύνδεση θα πρέπει να ολοκληρωθεί με επιτυχία, ενώ στη δεύτερη θα λήξει τελικά.

Για να το κάνετε αυτό, οποιαδήποτε από τις ακόλουθες εντολές θα κάνει το κόλπο:

telnet 10.0.0.20 80
wget 10.0.0.20

Σας συμβουλεύω ανεπιφύλακτα να ανατρέξετε στην τεκμηρίωση του Firewalld Rich Language στο Wiki του Έργου Fedora για περισσότερες λεπτομέρειες σχετικά με τους εμπλουτισμένους κανόνες.

Μετάφραση Διεύθυνσης Δικτύου στο RHEL 7

Η Μετάφραση Διεύθυνσης Δικτύου (NAT) είναι η διαδικασία κατά την οποία μια ομάδα υπολογιστών (μπορεί επίσης να είναι μόνο ένας από αυτούς) σε ένα ιδιωτικό δίκτυο εκχωρείται μια μοναδική δημόσια διεύθυνση IP. Ως αποτέλεσμα, εξακολουθούν να αναγνωρίζονται μοναδικά από τη δική τους ιδιωτική διεύθυνση IP εντός του δικτύου, αλλά εξωτερικά όλα «φαίνονται» ίδια.