GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine Anleitung für Anfänger zu firewalld unter Linux

Unsere Welt war noch nie so vernetzt wie jetzt. Jede Person, jedes Unternehmen, jede Regierung usw. nutzt das Internet, um zu kommunizieren, Währungen und Daten auszutauschen und im Allgemeinen die Bewegungen des täglichen Lebens und Betriebs zu durchlaufen. Diese Verbindungen sind jedoch nicht von Natur aus sicher, und aus diesem Grund müssen wir Abwehrmaßnahmen ergreifen, um unseren Standort, unsere Informationen und unser Geld zu schützen. Wenn man früher seinen Besitz sichern wollte, errichtete man Tore und Zäune, um Eindringlinge fernzuhalten. Heute erreichen wir dieselben Ziele mit dem Einsatz von Firewalls. Die meisten Linux-Systeme verwendeten die iptables Dienstprogramm, jedoch war eine neue Technologie am Horizont.

Mit der Einführung von Red Hat Enterprise Linux 7.0 (RHEL) im Jahr 2011 wurde iptables als firewalld abgelöst wurde geboren. Im Kern ist firewalld ist eine zonenbasierte Firewall. Zonenbasierte Firewalls sind Netzwerksicherheitssysteme, die den Datenverkehr überwachen und Maßnahmen basierend auf einer Reihe definierter Regeln ergreifen, die auf eingehende/ausgehende Pakete angewendet werden.

Alles über Zonen

Firewalld bietet unterschiedliche Sicherheitsstufen für unterschiedliche Verbindungszonen. Eine Zone ist mindestens einer Netzwerkschnittstelle zugeordnet (eth0 , zum Beispiel). Wir sehen die vorkonfigurierten Zonen mit dem folgenden Befehl:

[tcarrigan@server ~]$ firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work

Wie Sie sehen, sind die standardmäßig aufgelisteten Zonen:

  • blockieren
  • dmz
  • fallen lassen
  • extern
  • Zuhause
  • intern
  • libvirt
  • öffentlich
  • vertrauenswürdig
  • arbeiten

HINWEIS:Ich verwende für diese Demo eine virtuelle RHEL 8.2-Maschine.

Im Allgemeinen besteht die Standardregel einer Firewall darin, alles abzulehnen und nur bestimmte Ausnahmen für benötigte Dienste zuzulassen.

Oft ist es hilfreich zu sehen, welche Dienste einer bestimmten Zone zugeordnet sind. Um diese Informationen anzuzeigen, verwenden Sie den folgenden Befehl:

firewall-cmd --list-all

Beachten Sie, dass, wenn Sie keine Zone angeben, die Standardzone abgefragt wird. Hier ist die Standardzone public Zone.

[tcarrigan@server ~]$ firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Wenn Sie eine Zone angeben möchten, fügen Sie einfach --zone=zonename hinzu

Zum Beispiel, um external zu sehen verwenden Sie Folgendes:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Wenn Sie aus irgendeinem Grund die Standardzone ändern möchten, können Sie dies ganz einfach mit dem folgenden Befehl tun:

firewall-cmd --set-default=zonename

Nach Dienst zulassen und verweigern

Nun, das Gute an Firewalls ist, dass sie unsere Netzwerke schützen. Das Schlimme ist, dass es keine universelle Firewall gibt, die für jede Situation geeignet ist. Aus diesem Grund werden Firewalls an die genauen Anforderungen der Situation angepasst, in der sie eingesetzt werden. Zum Beispiel, wenn ich FTP (File Transfer Protocol)-Übertragungen im external zulassen muss Zone, damit ich eine Datei über Port 21 verschieben kann, könnte ich so etwas verwenden:

firewall-cmd --zone=external --add-service=ftp

Hier ist das aktuelle Beispiel aus meiner VM:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --add-service=ftp
[sudo] password for tcarrigan: 
success

Wir sehen, dass der Daemon Erfolg zurückgegeben hat , also sollten wir den FTP-Dienst im external erlaubt haben Zone. Um dies zu überprüfen, müssen wir den external überprüfen Liste der Zonendienste:

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-services
ftp ssh

Aber was passiert, wenn wir die Firewall-Konfiguration neu laden?

[tcarrigan@server ~]$ sudo firewall-cmd --reload
success

[tcarrigan@server ~]$ firewall-cmd --zone=external --list-all
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Das neue Zulassen Regel überlebt die Neuinitialisierung der firewalld nicht Aufbau. Um sicherzustellen, dass unsere neue Regel bestehen bleibt, müssen wir den --permanent hinzufügen Möglichkeit. Der neue Befehl lautet:

# firewall-cmd --permanent --zone=external --add-service=ftp

Sobald Sie den permanent verwenden Befehl müssen Sie die Konfiguration neu laden, damit die Änderungen wirksam werden.

Um einen Dienst zu entfernen, nehmen wir eine kleine Änderung an der Syntax vor. Hier werde ich den FTP-Dienst aus external entfernen Zone permanent:

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-service=ftp
Warning: NOT_ENABLED: ftp
success

Wir sehen, dass das System mich warnt, dass FTP deaktiviert wurde und dass der Vorgang erfolgreich war.

Zulassen und verweigern nach Port

Was passiert nun, wenn Sie Datenverkehr über einen nicht standardmäßigen Port zulassen müssen? Stellen Sie sich vor, Sie haben einen Backup-Dienst, der über einen dedizierten UDP-Port laufen muss. Wie würden Sie diese Ausnahme zu Ihrer Zone hinzufügen? Die Syntax ist sehr benutzerfreundlich und unterscheidet sich nur geringfügig von der, die wir für Dienste verwendet haben. Um Ihrer Zonenkonfiguration einen Port hinzuzufügen, verwenden Sie Folgendes:

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --add-port=60001/udp
success

Wir prüfen die erlaubten Ports mit folgendem Befehl:

[tcarrigan@server ~]$ sudo firewall-cmd --zone=external --list-ports
60001/udp

Und um die Port-Regel zu entfernen, Sie haben es erraten... wechseln Sie einfach --add-port=x zu --remove-port=x

[tcarrigan@server ~]$ sudo firewall-cmd --permanent --zone=external --remove-port=60001/udp
success

Was kommt als nächstes?

Wenn Sie sich nach dem Lesen dieses Artikels fragen, was Sie mit den Informationen anfangen sollen, empfehle ich Ihnen dringend, Ihre bevorzugte VM (RHEL, Fedora, CentOS usw.) hochzufahren und mit den obigen Befehlen zu experimentieren. Der beste Weg, um zu lernen, ist, praktische Erfahrungen zu sammeln. Wenn Sie diesen Inhalt interessant fanden, behalten Sie Teil 2 von Enable Sysadmin im Auge, in dem Sie in die Erstellung benutzerdefinierter Zonen und die erweiterte Regelerstellung eintauchen.

[ Erleichtern Sie die Netzwerkverwaltung. Sehen Sie sich Netzwerkautomatisierung für alle an, ein kostenloses Buch von Red Hat. ]


Linux
  1. Eine praktische Anleitung zum Erlernen von awk

  2. Linux-Grundlagen:Ein Anfängerleitfaden zur Textbearbeitung mit vim

  3. Eine Anleitung für Anfänger zum gawk

  4. Was ist FirewallD und wie wird es unter Linux implementiert?

  5. Der vollständige Leitfaden für Anfänger zu LVM unter Linux

So verwenden Sie AppImage unter Linux (Anfängerhandbuch)

So installieren und verwenden Sie Curl auf Linux-Distributionen:Ein Leitfaden für Anfänger

Anfängerhandbuch zum Analysieren von Protokollen unter Linux mit dem Befehl journalctl

Anfängerleitfaden für Syslogs unter Linux

PowerShell unter Linux nutzen:Ein Leitfaden für Anfänger

So installieren und verwenden Sie FFmpeg unter Linux-Distributionen | Ratgeber für Anfänger