Χρήση του FirewallD για τη διαχείριση του τείχους προστασίας σας στο CentOS 7

Το FirewallD είναι ένα τείχος προστασίας με δυναμική διαχείριση που παρέχει υποστήριξη για κανόνες τείχους προστασίας IPv4 και IPv6 και ζώνες τείχους προστασίας που είναι διαθέσιμα σε διακομιστές που βασίζονται στο RHEL 7. Είναι μια άμεση αντικατάσταση iptablesκαι λειτουργεί με τον κώδικα του πυρήνα netfilter.

Σε αυτό το άρθρο θα ρίξουμε μια σύντομη ματιά στη διαχείριση του τείχους προστασίας στο CentOS 7 χρησιμοποιώντας την firewall-cmdεντολή.

Έλεγχος εάν εκτελείται το FirewallD

Το πρώτο βήμα είναι να ελέγξετε εάν το FirewallD είναι εγκατεστημένο και εκτελείται. Αυτό μπορεί να γίνει systemdεκτελώντας τα εξής:

$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-03-10 15:07:00 UTC; 1min 30s ago
   ...

Εναλλακτικά, μπορείτε να ελέγξετε χρησιμοποιώντας το firewall-cmdεργαλείο:

$ firewall-cmd --state
running

Διαχείριση ζωνών

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

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

Αναφορά όλων των διαθέσιμων ζωνών

Ίσως χρειαστεί να λάβετε μια λίστα με όλες τις διαθέσιμες ζώνες, από τις οποίες υπάρχουν αρκετές εκτός συσκευασίας. Και πάλι, αυτό μπορεί να γίνει χρησιμοποιώντας firewall-cmd:

$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work

Έλεγχος της προεπιλεγμένης ζώνης

Μπορείτε να ανακαλύψετε την προεπιλεγμένη ζώνη που έχει διαμορφωθεί αυτήν τη στιγμή χρησιμοποιώντας firewall-cmd:

$ firewall-cmd --get-default-zone
public

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

$ firewall-cmd --set-default-zone=home
success

Αυτές οι πληροφορίες θα αντικατοπτρίζονται στο κύριο αρχείο διαμόρφωσης, /etc/firewalld/firewalld.conf. Ωστόσο, συνιστάται να μην τροποποιήσετε με μη αυτόματο τρόπο αυτό το αρχείο και να χρησιμοποιήσετε firewall-cmd.

Έλεγχος των ζωνών που έχουν εκχωρηθεί αυτήν τη στιγμή

Μπορείτε να λάβετε μια λίστα με τις ζώνες στις οποίες έχετε εκχωρήσει διεπαφές εκτελώντας:

$ firewall-cmd --get-active-zones
public
  interfaces: eth0

Μπορείτε επίσης να ελέγξετε τη ζώνη μιας μεμονωμένης διεπαφής ( eth0σε αυτήν την περίπτωση) εκτελώντας:

$  firewall-cmd --get-zone-of-interface=eth0
public

Δημιουργία ζωνών

Εάν οι προεπιλεγμένες προδιαμορφωμένες ζώνες δεν ταιριάζουν απόλυτα στις ανάγκες σας, ο ευκολότερος τρόπος για να δημιουργήσετε μια νέα ζώνη ( zone1) είναι πάλι μέσω firewall-cmd:

$ firewall-cmd --permanent --new-zone=zone1
success

Μετά τη δημιουργία, πρέπει να φορτώσετε ξανά:

$ firewall-cmd --reload
success

Εφαρμογή ζώνης σε διεπαφή

Προκειμένου να αντιστοιχίσετε μόνιμα μια διεπαφή δικτύου σε μια ζώνη, μπορείτε να χρησιμοποιήσετε, firewall-cmdωστόσο, θυμηθείτε να συμπεριλάβετε τη --permanentσημαία για να συνεχιστεί η αλλαγή. Εάν χρησιμοποιείτε NetworkManager, θα πρέπει επίσης να βεβαιωθείτε ότι χρησιμοποιείτε nmcliγια να ορίσετε τη ζώνη σύνδεσης.

$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success

Λήψη της μόνιμης διαμόρφωσης μιας ζώνης

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

$ firewall-cmd --permanent --zone=public --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Διαχείριση υπηρεσιών

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

Καταχώριση υπαρχουσών υπηρεσιών

Ένας αριθμός κοινών υπηρεσιών είναι προρυθμισμένες στο τείχος προστασίας. Αυτά μπορούν να παρατίθενται:

$ firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

Μπορείτε επίσης να λάβετε μια λίστα με τις υπηρεσίες που είναι ενεργοποιημένες για την προεπιλεγμένη ζώνη:

$ firewall-cmd --list-services
dhcpv6-client ssh

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

Μπορείτε να ενεργοποιήσετε publicμόνιμα μια δεδομένη υπηρεσία για μια ζώνη ( ) χρησιμοποιώντας τη --add-serviceσημαία:

$ firewall-cmd --permanent --zone=public --add-service=http
success

Και στη συνέχεια φορτώστε ξανά την τρέχουσα περίοδο λειτουργίας τείχους προστασίας:

$ firewall-cmd --reload
success

Στη συνέχεια, για επαλήθευση προστέθηκε:

$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

Αφαίρεση υπηρεσίας από ζώνη

Μπορείτε να καταργήσετε publicμόνιμα μια δεδομένη υπηρεσία για μια ζώνη ( ) χρησιμοποιώντας τη --remove-serviceσημαία:

$ firewall-cmd --permanent --zone=public --remove-service=http
success

Και στη συνέχεια φορτώστε ξανά την τρέχουσα περίοδο λειτουργίας τείχους προστασίας:

$ firewall-cmd --reload
success

Στη συνέχεια, για επαλήθευση προστέθηκε:

$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh

Προσθήκη/αφαίρεση πολλαπλών υπηρεσιών από μια ζώνη

Μπορείτε να προσθέσετε ή να αφαιρέσετε πολλές υπηρεσίες (για παράδειγμα, httpκαι https) από μια ζώνη είτε μία κάθε φορά είτε όλες ταυτόχρονα, τυλίγοντας τα επιθυμητά ονόματα υπηρεσιών σε σγουρά άγκιστρα ( {, }):

$ firewall-cmd --permanent --zone=public --add-service=
success

$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh

Δημιουργία νέων υπηρεσιών

Μερικές φορές μπορεί να χρειαστεί να προσθέσετε νέες προσαρμοσμένες υπηρεσίες - για παράδειγμα, εάν έχετε αλλάξει τη θύρα για τον δαίμονα SSH. Οι υπηρεσίες ορίζονται χρησιμοποιώντας ασήμαντα αρχεία XML, με τα προεπιλεγμένα αρχεία να βρίσκονται σε /usr/lib/firewalld/services:

$  tree /usr/lib/firewalld/services
/usr/lib/firewalld/services
├── amanda-client.xml
├── bacula-client.xml
├── bacula.xml
├── dhcpv6-client.xml
├── dhcpv6.xml
├── dhcp.xml
├── dns.xml
├── freeipa-ldaps.xml
├── freeipa-ldap.xml
├── freeipa-replication.xml
├── ftp.xml
├── high-availability.xml
├── https.xml
├── http.xml
...

Ο ευκολότερος τρόπος για να δημιουργήσετε μια νέα υπηρεσία είναι να αντιγράψετε ένα από αυτά τα υπάρχοντα αρχεία υπηρεσίας και να το τροποποιήσετε. Οι προσαρμοσμένες υπηρεσίες θα πρέπει να βρίσκονται στο /etc/firewalld/services. Για παράδειγμα, για να προσαρμόσετε την υπηρεσία SSH:

$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml

Τα περιεχόμενα αυτού του αντιγραμμένου αρχείου θα πρέπει να έχουν την εξής μορφή:

$ cat /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

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

$ nano /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH-Custom</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="1234"/>
</service>

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

$ firewall-cmd --reload
success

$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success

Διαχείριση λιμένων

Εκτός από τη χρήση υπηρεσιών, μπορείτε επίσης να επιτρέψετε μη αυτόματα τις θύρες βάσει πρωτοκόλλου. Για να επιτρέψετε τη θύρα TCP 7777για τη publicζώνη:

$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success

Μπορείτε επίσης να προσθέσετε μια περιοχή θυρών:

$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success

Για να αφαιρέσετε (και επομένως να απορρίψετε) τη θύρα TCP 7777για τη publicζώνη:

$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success

Μπορείτε επίσης να αναφέρετε τις επί του παρόντος επιτρεπόμενες θύρες για μια δεδομένη ζώνη ( public) μετά την επαναφόρτωση της τρέχουσας περιόδου λειτουργίας τείχους προστασίας:

$ firewall-cmd --zone=public --list-ports
7000-8000/tcp

Ενεργοποίηση FirewallD

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

$ systemctl enable firewalld

συμπέρασμα

Υπάρχουν πολλές περισσότερες ρυθμίσεις και επιλογές στο FirewallD, όπως η προώθηση θύρας, η μεταμφίεση και η επικοινωνία με το τείχος προστασίας μέσω D-Bus. Ας ελπίσουμε ότι αυτός ο οδηγός σας βοήθησε να κατανοήσετε τα βασικά, ωστόσο, και σας έδωσε τα εργαλεία για να ξεκινήσετε με το τείχος προστασίας από τον διακομιστή σας. Κάποια επιπλέον ανάγνωση παρακάτω θα σας βοηθήσει να αξιοποιήσετε στο έπακρο το τείχος προστασίας σας.

CentOS, Οδηγοί Linux, Λειτουργικά Συστήματα, Ασφάλεια, Διαχειριστής συστήματος

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

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

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

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

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

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

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

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

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

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

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα