Android

Πώς να ρυθμίσετε ένα τείχος προστασίας με firewall σε centos 7

5 Windows 10 Ασφάλεια

5 Windows 10 Ασφάλεια

Πίνακας περιεχομένων:

Anonim

Ένα σωστά ρυθμισμένο τείχος προστασίας είναι μία από τις πιο σημαντικές πτυχές της συνολικής ασφάλειας του συστήματος.

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

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

Προϋποθέσεις

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

Βασικές έννοιες του Firewall

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

Το FirewallD μπορεί να ρυθμιστεί και να διαχειριστεί χρησιμοποιώντας το βοηθητικό πρόγραμμα γραμμής εντολών firewall-cmd .

Ζώνες Firewall

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

Παρακάτω είναι οι ζώνες που παρέχονται από το FirewallD που έχουν ταξινομηθεί σύμφωνα με το επίπεδο εμπιστοσύνης της ζώνης από μη αξιόπιστους σε αξιόπιστους:

  • drop: Όλες οι εισερχόμενες συνδέσεις αποσύρονται χωρίς καμία ειδοποίηση. Επιτρέπονται μόνο εξερχόμενες συνδέσεις. block: Όλες οι εισερχόμενες συνδέσεις απορρίπτονται με μηνύματα icmp6-adm-prohibited με icmp icmp-host-prohibited για IPv4 και icmp6-adm-prohibited για IPv6n. Επιτρέπονται μόνο εξερχόμενες συνδέσεις. κοινό: Για χρήση σε μη αξιόπιστους κοινόχρηστους χώρους. Δεν εμπιστεύεστε άλλους υπολογιστές στο δίκτυο, αλλά μπορείτε να επιτρέψετε επιλεγμένες εισερχόμενες συνδέσεις. εξωτερική: Για χρήση σε εξωτερικά δίκτυα με ενεργοποιημένη NAT masquerading ενεργοποιημένη όταν το σύστημά σας λειτουργεί ως πύλη ή δρομολογητής. Επιτρέπονται μόνο επιλεγμένες εισερχόμενες συνδέσεις. εσωτερική: Για χρήση σε εσωτερικά δίκτυα όταν το σύστημά σας λειτουργεί ως πύλη ή δρομολογητής. Άλλα συστήματα στο δίκτυο είναι γενικά αξιόπιστα. Επιτρέπονται μόνο επιλεγμένες εισερχόμενες συνδέσεις. dmz: Χρησιμοποιείται για υπολογιστές που βρίσκονται στη αποστρατιωτικοποιημένη ζώνη που έχουν περιορισμένη πρόσβαση στο υπόλοιπο δίκτυο. Επιτρέπονται μόνο επιλεγμένες εισερχόμενες συνδέσεις. εργασία: Χρησιμοποιείται για μηχανές εργασίας. Άλλοι υπολογιστές στο δίκτυο είναι γενικά αξιόπιστοι. Επιτρέπονται μόνο επιλεγμένες εισερχόμενες συνδέσεις. σπίτι: Χρησιμοποιείται για οικιακές μηχανές. Άλλοι υπολογιστές στο δίκτυο είναι γενικά αξιόπιστοι. Επιτρέπονται μόνο επιλεγμένες εισερχόμενες συνδέσεις. αξιόπιστες: Όλες οι συνδέσεις δικτύου γίνονται αποδεκτές. Εμπιστευθείτε όλους τους υπολογιστές του δικτύου.

Υπηρεσίες τείχους προστασίας

Οι υπηρεσίες τείχους προστασίας είναι προκαθορισμένοι κανόνες που ισχύουν σε μια ζώνη και καθορίζουν τις απαραίτητες ρυθμίσεις για να επιτρέπουν την εισερχόμενη κίνηση για μια συγκεκριμένη υπηρεσία.

Firewall Runtime και μόνιμες ρυθμίσεις

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

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

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

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

  1. Το Firewalld είναι εγκατεστημένο από προεπιλογή στο CentOS 7, αλλά αν δεν είναι εγκατεστημένο στο σύστημά σας, μπορείτε να εγκαταστήσετε το πακέτο πληκτρολογώντας:

    sudo yum install firewalld

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

    sudo firewall-cmd --state

    Για να ξεκινήσετε την υπηρεσία FirewallD και να την ενεργοποιήσετε στον τύπο εκκίνησης:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Εργασία με Ζώνες Firewall

Μετά την ενεργοποίηση της υπηρεσίας FirewallD για πρώτη φορά, η public ζώνη ορίζεται ως προεπιλεγμένη ζώνη. Μπορείτε να δείτε την προεπιλεγμένη ζώνη πληκτρολογώντας:

sudo firewall-cmd --get-default-zone

public

Για να λάβετε μια λίστα με όλες τις διαθέσιμες ζώνες, πληκτρολογήστε:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

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

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

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

Μπορείτε να εκτυπώσετε τις ρυθμίσεις διαμόρφωσης ζώνης με:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Από την παραπάνω έξοδο, μπορούμε να δούμε ότι η δημόσια ζώνη είναι ενεργή και ορίζεται ως προεπιλογή, που χρησιμοποιείται από τις διεπαφές eth0 και eth1 . Επίσης, επιτρέπονται οι συνδέσεις που σχετίζονται με το πρόγραμμα-πελάτη DHCP και SSH.

sudo firewall-cmd --list-all-zones

Η εντολή εκτυπώνει μια τεράστια λίστα με τις ρυθμίσεις όλων των διαθέσιμων ζωνών.

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

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

sudo firewall-cmd --zone=work --change-interface=eth1

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

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

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

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

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

sudo firewall-cmd --set-default-zone=home

Επαληθεύστε τις αλλαγές με:

sudo firewall-cmd --get-default-zone

home

Άνοιγμα θυρίδας ή υπηρεσίας

Με το FirewallD μπορείτε να επιτρέψετε την κυκλοφορία για συγκεκριμένες θύρες βάσει προκαθορισμένων κανόνων που ονομάζονται υπηρεσίες.

Για να λάβετε μια λίστα με όλες τις προεπιλεγμένες διαθέσιμες υπηρεσίες:

sudo firewall-cmd --get-services

Μπορείτε να βρείτε περισσότερες πληροφορίες για κάθε υπηρεσία ανοίγοντας το σχετικό αρχείο.xml στον κατάλογο /usr/lib/firewalld/services . Για παράδειγμα, η υπηρεσία HTTP ορίζεται ως εξής:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Για να επιτρέπεται η εισερχόμενη κυκλοφορία HTTP (θύρα 80) για διασυνδέσεις στη δημόσια ζώνη, μόνο για την τρέχουσα περίοδο λειτουργίας (διαμόρφωση χρόνου εκτέλεσης) πληκτρολογήστε:

sudo firewall-cmd --zone=public --add-service=http Αν --zone την προεπιλεγμένη ζώνη, μπορείτε να αφήσετε εκτός της επιλογής --zone .

Για να επαληθεύσετε ότι η υπηρεσία προστέθηκε με επιτυχία, χρησιμοποιήστε την επιλογή --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

sudo firewall-cmd --permanent --zone=public --add-service=http

Χρησιμοποιήστε τις --list-services μαζί με την επιλογή --permanent για να επαληθεύσετε τις αλλαγές σας:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Η σύνταξη για την κατάργηση της υπηρεσίας είναι η ίδια με τη σύνταξη μιας υπηρεσίας. Απλώς χρησιμοποιήστε την --remove-service αντί της επιλογής --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

Η παραπάνω εντολή καταργεί την υπηρεσία http από τη μόνιμη διαμόρφωση δημόσιας ζώνης.

Τι συμβαίνει εάν εκτελείτε μια εφαρμογή όπως ο διακομιστής Plex Media Server για τον οποίο δεν υπάρχει διαθέσιμη κατάλληλη υπηρεσία;

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

Για παράδειγμα, ο διακομιστής Plex Server ακούει στη θύρα 32400 και χρησιμοποιεί το TCP, για να ανοίξει τη θύρα στη δημόσια ζώνη για την τρέχουσα περίοδο λειτουργίας χρησιμοποιώντας την επιλογή --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Τα πρωτόκολλα μπορούν να είναι είτε tcp είτε udp .

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

sudo firewall-cmd --zone=public --list-ports

32400/tcp

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

Η σύνταξη για την αφαίρεση μιας θύρας είναι η ίδια με τη σύνταξη μιας θύρας. Απλά χρησιμοποιήστε το --remove-port αντί της επιλογής --add-port .

sudo firewall-cmd --zone=public --remove-port=32400/tcp

Δημιουργία νέας υπηρεσίας FirewallD

Όπως έχουμε ήδη αναφέρει, οι προεπιλεγμένες υπηρεσίες αποθηκεύονται στον κατάλογο /usr/lib/firewalld/services . Ο ευκολότερος τρόπος για να δημιουργήσετε μια νέα υπηρεσία είναι να αντιγράψετε ένα υπάρχον αρχείο υπηρεσίας στον κατάλογο /etc/firewalld/services , ο οποίος είναι ο τόπος για υπηρεσίες που έχουν δημιουργηθεί από τους χρήστες και να τροποποιήσετε τις ρυθμίσεις του αρχείου.

Για παράδειγμα, για να δημιουργήσετε έναν ορισμό υπηρεσίας για τον Plex Media Server μπορούμε να χρησιμοποιήσουμε το αρχείο υπηρεσίας SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

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

Στο παρακάτω παράδειγμα, ανοίγουμε τις θύρες 1900 UDP και 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Αποθηκεύστε το αρχείο και επαναλάβετε τη φόρτωση της υπηρεσίας FirewallD:

sudo firewall-cmd --reload

Τώρα μπορείτε να χρησιμοποιήσετε την υπηρεσία plexmediaserver στις ζώνες σας όπως και κάθε άλλη υπηρεσία.

Προώθηση θύρας με τείχος προστασίας

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

sudo firewall-cmd --zone=external --add-masquerade

  • Προώθηση επισκεψιμότητας από μια θύρα σε άλλη στον ίδιο διακομιστή

Στο ακόλουθο παράδειγμα, προωθούμε την κίνηση από τη θύρα 80 στη θύρα 8080 στον ίδιο διακομιστή:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

  • Προώθηση επισκεψιμότητας σε άλλο διακομιστή

Στο ακόλουθο παράδειγμα προωθούμε την κίνηση από τη θύρα 80 στη θύρα 80 σε ένα διακομιστή με IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

  • Προώθηση επισκεψιμότητας σε άλλο διακομιστή σε διαφορετική θύρα

Στο ακόλουθο παράδειγμα προωθούμε την κίνηση από τη θύρα 80 στη θύρα 8080 σε ένα διακομιστή με IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Δημιουργία μιας σειράς κανόνων με FirewallD

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

  1. Αλλάξτε την προεπιλεγμένη ζώνη σε dmz

    Θα χρησιμοποιήσουμε τη ζώνη dmz (αποστρατιωτικοποιημένη) επειδή από προεπιλογή επιτρέπει μόνο την κίνηση SSH. Για να αλλάξετε την προεπιλεγμένη ζώνη σε dmz και να την αντιστοιχίσετε στη διεπαφή eth0 , εκτελέστε τις ακόλουθες εντολές:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Άνοιγμα θυρών HTTP και

    Για να ανοίξετε θύρες HTTP και HTTPS, προσθέστε μόνιμους κανόνες υπηρεσίας στη ζώνη dmz:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Κάντε τις αλλαγές αμέσως αποτελεσματικές επαναφορτώνοντας το τείχος προστασίας:

    sudo firewall-cmd --reload

    Επαληθεύστε τις αλλαγές

    Για να ελέγξετε τον τύπο ρυθμίσεων διαμόρφωσης ζώνης dmz:

    sudo firewall-cmd --zone=dmz --list-all

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Η παραπάνω έξοδος μας λέει ότι το dmz είναι η προεπιλεγμένη ζώνη, εφαρμόζεται στην διεπαφή eth0 και οι θύρες ssh (22) http (80) και https (443) είναι ανοιχτές.

συμπέρασμα

Έχετε μάθει πώς να ρυθμίσετε και να διαχειριστείτε την υπηρεσία FirewallD στο σύστημα CentOS.

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

firewall firewall iptables centos ασφάλεια