Επιστροφή στο blog

Ρύθμιση τείχους προστασίας με το FirewallD στο CentOS 7

Ρύθμιση τείχους προστασίας με το FirewallD στο CentOS 7

Εισαγωγή

Firewalld είναι μια λύση διαχείρισης τείχους προστασίας που είναι διαθέσιμη για πολλές διανομές Linux. Χρησιμεύει ως διεπαφή για το σύστημα φιλτραρίσματος πακέτων iptables που παρέχεται από τον πυρήνα Linux. Σε αυτόν τον οδηγό, θα μάθετε πώς να διαμορφώσετε ένα τείχος προστασίας για τον διακομιστή σας. Θα σας δείξουμε επίσης τα βασικά της διαχείρισης του τείχους προστασίας με το εργαλείο διαχείρισης firewall-cmd.

Βασικά στοιχεία του Firewalld

Το FirewallD χρησιμοποιεί τις έννοιες των ζωνών και των υπηρεσιών, αντί για τις αλυσίδες και τους κανόνες του iptables. Ανάλογα με τις ζώνες και τις υπηρεσίες που διαμορφώνετε, μπορείτε να ελέγχετε ποια κίνηση επιτρέπεται ή δεν επιτρέπεται από και προς το σύστημα. Το FirewallD μπορεί να διαμορφωθεί και να διαχειριστεί χρησιμοποιώντας το βοηθητικό πρόγραμμα γραμμής εντολών firewall-cmd.

Εγκατάσταση και ενεργοποίηση του τείχους προστασίας κατά την εκκίνηση

Στις περισσότερες διανομές Linux το firewallD είναι ήδη εγκατεστημένο. Ωστόσο, εάν πρέπει να το εγκαταστήσετε μόνοι σας, πληκτρολογήστε την παρακάτω σύνταξη:

Μπορείτε να ενεργοποιήσετε την υπηρεσία και να επανεκκινήσετε τον διακομιστή σας μόλις εγκατασταθεί το firewalld:

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

check firewall state FirewallD

Το αποτέλεσμα δείχνει ότι η προεπιλεγμένη ρύθμιση του τείχους προστασίας λειτουργεί.

Έλεγχος των προεπιλογών

Μπορείτε να ελέγξετε τη ζώνη που έχει επιλεγεί από τον διακομιστή χρησιμοποιώντας αυτήν την εντολή:

check firewall default zone

Επαληθεύστε την ενεργή ζώνη πληκτρολογώντας:

firewall active zones

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

list all rules FirewallD

Το αποτέλεσμα υποδεικνύει ότι αυτή η ζώνη είναι τόσο η προεπιλεγμένη όσο και η ενεργή ζώνη. Δείχνει επίσης ότι οι διεπαφές eth0 και eth1 έχουν εκχωρηθεί σε αυτήν τη ζώνη.

Έλεγχος εναλλακτικών ζωνών

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

firewall check other zones

Ελέγξτε τη συγκεκριμένη διαμόρφωση που έχει εκχωρηθεί σε μια ζώνη προσθέτοντας την παράμετρο –zone= στην εντολή –list-all:

check zone configuration FirewallD

 Αλλαγή της ζώνης διεπαφής

Μπορείτε εύκολα να αλλάξετε τη ζώνη διεπαφής χρησιμοποιώντας την επιλογή –change-interface σε συνδυασμό με την επιλογή –change-interface. Η ακόλουθη εντολή θα εκχωρήσει τη διεπαφή eth1 στον χώρο εργασίας:

Μπορείτε να επαληθεύσετε τις αλλαγές πληκτρολογώντας:

changing firewall interface zones FirewallD

Αλλαγή της προεπιλεγμένης ζώνης

Για να αλλάξετε την προεπιλεγμένη ζώνη, χρησιμοποιήστε το –set-default-zone ακολουθούμενο από το όνομα της ζώνης που θέλετε να ορίσετε ως προεπιλογή. Για παράδειγμα, για να αλλάξετε την προεπιλεγμένη ζώνη για να ξεκινήσετε, θα πρέπει να εκτελέσετε την ακόλουθη εντολή:

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

firewall change default zone

Ορισμός κανόνων για τις εφαρμογές σας

Ας δούμε τα βασικά στοιχεία που απαιτούνται για τον ορισμό εξαιρέσεων τείχους προστασίας για τις υπηρεσίες:

Προσθήκη υπηρεσίας στις ζώνες σας

Ο πιο απλός τρόπος είναι προσθέτοντας τις θύρες ή τις υπηρεσίες που χρειάζεστε στις ζώνες που χρησιμοποιείτε. Ομοίως, μπορείτε να χρησιμοποιήσετε την επιλογή –get-services για να δείτε όλες τις διαθέσιμες υπηρεσίες:

firewall get services FirewallD

Μπορείτε να ενεργοποιήσετε την υπηρεσία για μια ζώνη με την παράμετρο –add-service =. Η ενέργεια στοχεύει στην προεπιλεγμένη ζώνη ή σε οποιαδήποτε ζώνη ορίζεται από την παράμετρο –zone =. Από προεπιλογή, διαμορφώνεται μόνο η τρέχουσα συνεδρία του τείχους προστασίας. Μπορείτε να ρυθμίσετε μια μόνιμη διαμόρφωση τείχους προστασίας ενεργοποιώντας τη σημαία –permanent. Για παράδειγμα, εάν εκτελείτε έναν διακομιστή ιστού που παρέχει κανονική κίνηση HTTP, μπορείτε να επιτρέψετε αυτήν την κίνηση για διεπαφές στη “public” ζώνη μας για αυτήν τη συνεδρία εισάγοντας:

Μπορείτε να παραλείψετε το –zone = εάν θέλετε να αλλάξετε την προεπιλεγμένη ζώνη. Μπορείτε να ελέγξετε την επιτυχία της λειτουργίας με τις λειτουργίες –list-all ή –list-services:

add service to zone

Μόλις επαληθεύσετε ότι όλα λειτουργούν όπως αναμένεται, πιθανότατα θα θέλετε να αλλάξετε τους μόνιμους κανόνες του τείχους προστασίας για να κάνετε την υπηρεσία σας διαθέσιμη ακόμα και μετά από επανεκκίνηση. Μπορούμε να κάνουμε την αλλαγή στη “public” ζώνη μας μόνιμα εισάγοντας τη σύνταξη:

Μπορείτε να ελέγξετε αν αυτό ήταν επιτυχές προσθέτοντας τη σημαία –permanent στη λειτουργία –list-services. Πρέπει να χρησιμοποιήσετε το sudo για –all μόνιμες λειτουργίες:

Η “public” ζώνη σας επιτρέπει τώρα την κίνηση HTTP στη θύρα 80. Μπορείτε να το προσθέσετε στην τρέχουσα συνεδρία και στο σύνολο μόνιμων κανόνων χρησιμοποιώντας την παρακάτω εντολή:

Εάν δεν υπάρχουν υπηρεσίες που να καλύπτουν τις απαιτήσεις σας, έχετε δύο εξαιρετικές επιλογές για να χειριστείτε αυτήν την κατάσταση:

  1. Άνοιγμα μιας θύρας για τις ζώνες σας

Ο πιο απλός τρόπος για να προσθέσετε υποστήριξη για τη συγκεκριμένη εφαρμογή σας είναι να ανοίξετε τις θύρες που χρησιμοποιούνται σε κάθε ζώνη. Είναι τόσο απλό όσο ο καθορισμός μιας θύρας ή ενός εύρους θυρών και του αντίστοιχου πρωτοκόλλου για τις θύρες που πρέπει να ανοίξετε. Για παράδειγμα, εάν η εφαρμογή σας εκτελείται στη θύρα 5000 και χρησιμοποιεί TCP, μπορείτε να την προσθέσετε στη “public” ζώνη για αυτήν τη συνεδρία με την παράμετρο –add-port =. Τα πρωτόκολλα μπορεί να είναι TCP ή UDP:

Για να ελέγξετε ότι η λειτουργία είναι επιτυχής, χρησιμοποιήστε τη λειτουργία –list-ports:

Μπορείτε επίσης να καθορίσετε ένα εύρος για τη σειριακή διεπαφή διαχωρίζοντας τις θύρες έναρξης και λήξης στο εύρος με μια παύλα. Για παράδειγμα, εάν η εφαρμογή σας χρησιμοποιεί θύρες UDP από 4990 έως 4999, μπορείτε να τις ανοίξετε στη “public” ζώνη γράφοντας:

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

adding ports to permanent firewall

  1. Ορισμός μιας υπηρεσίας

Μια υπηρεσία είναι μια συλλογή θυρών με ένα σχετικό όνομα και περιγραφή. Οι υπηρεσίες είναι ευκολότερο να διαχειριστούν από τις θύρες, αλλά απαιτείται λίγη αρχική εργασία. Ο πιο απλός τρόπος για να ξεκινήσετε είναι να αντιγράψετε ένα υπάρχον σενάριο (στο / usr / lib / firewalld / services) στον κατάλογο /etc/firewalld/services. Για παράδειγμα, μπορείτε να αντιγράψετε τον ορισμό της υπηρεσίας SSH για να τον χρησιμοποιήσετε στον ορισμό της υπηρεσίας “example” ως εξής. Το όνομα του αρχείου χωρίς την κατάληξη XML καθορίζει το όνομα της υπηρεσίας στη λίστα των υπηρεσιών του τείχους προστασίας:

Σε αυτό το σημείο, μπορείτε να προσαρμόσετε τον ορισμό στο αντιγραμμένο αρχείο:

Αρχικά, το αρχείο περιέχει τον ορισμό SSH που αντιγράψατε:

Το μεγαλύτερο μέρος αυτού του ορισμού αποτελείται από μεταδεδομένα. Πρέπει να αλλάξετε το σύντομο όνομα της υπηρεσίας στις ετικέτες <short>. Αυτό είναι ένα ευανάγνωστο όνομα υπηρεσίας. Φανταστείτε ότι για την υπηρεσία “example”, πρέπει να ανοίξουμε τη θύρα 7777 για TCP και την 8888 για UDP. Μπορείτε να αλλάξετε τον υπάρχοντα ορισμό εισάγοντας τη λειτουργία INSERT πατώντας i:

Στη συνέχεια, πατήστε ESC και πληκτρολογήστε :x για να αποθηκεύσετε και να κλείσετε το αρχείο. Έπειτα, πληκτρολογήστε την παρακάτω εντολή για να επανεκκινήσετε το τείχος προστασίας σας, ώστε να έχετε πρόσβαση στη νέα σας υπηρεσία:

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

get services

Αυτή η υπηρεσία είναι πλέον διαθέσιμη στη ζώνη σας.

Δημιουργία των Ζωνών σας

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

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

Μπορείτε να επιβεβαιώσετε ότι υπάρχουν στη μόνιμη διαμόρφωσή σας χρησιμοποιώντας αυτήν την εντολή:

firewall zones

Επαναφορτώστε το τείχος προστασίας για να φέρετε αυτές τις νέες ζώνες στην ενεργή διαμόρφωση:

Τώρα, μπορείτε να αντιστοιχίσετε τις κατάλληλες υπηρεσίες και θύρες στις ζώνες σας. Για παράδειγμα, για τη ζώνη “publicweb” ίσως θέλετε να προσθέσετε τις υπηρεσίες SSH, HTTP και HTTPS:

list public web zone

 

Επίσης, μπορείτε να προσθέσετε την υπηρεσία DNS στη ζώνη σας “privateDNS” χρησιμοποιώντας αυτήν την εντολή:

list privateDNS zone FirewallD

Στη συνέχεια, μπορείτε να αλλάξετε τις διεπαφές σας σε αυτές τις νέες ζώνες για να τις δοκιμάσετε:

Δοκιμάστε τη διαμόρφωση για να δείτε αν λειτουργεί. Εάν αυτές οι τιμές λειτουργούν για εσάς, πρέπει να προσθέσετε τους ίδιους κανόνες στη μόνιμη διαμόρφωση. Μπορείτε να το κάνετε αυτό εφαρμόζοντας ξανά τους κανόνες με την ένδειξη —permanent:

 

Αφού εφαρμόσετε αυτούς τους κανόνες μόνιμα, μπορείτε να επανεκκινήσετε το δίκτυό σας και να επαναφορτώσετε την υπηρεσία firewall:

Ελέγξτε ότι οι ζώνες αντιστοιχίστηκαν σωστά:

check active zones FirewallD

Επιπλέον, βεβαιωθείτε ότι και οι δύο ζώνες έχουν τη σωστή υπηρεσία:

Εάν θέλετε να ορίσετε μία από τις ζώνες σας ως προεπιλεγμένη για άλλες διεπαφές, πρέπει να διαμορφώσετε αυτήν τη συμπεριφορά με την παράμετρο –set-default-zone= χρησιμοποιώντας αυτήν την εντολή:

Συμπέρασμα

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

Καλή συνέχεια!

 

author

Akshay Nagpal

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.