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

Was ist FirewallD und wie wird es unter Linux implementiert?

Was ist Firewalld?

Firewalld ist eine Firewall-Verwaltungslösung für viele Linux-Distributionen, darunter Ubuntu, Debian, CentOS, RHEL und Fedora. Es fungiert als Frontend für das vom Linux-Kernel bereitgestellte iptables-Filtersystem. Es ist protokollunabhängig, dh es unterstützt IPv4, IPv6, Ethernet-Bridges und IP-Sets.

Grundkonzept von Firewalld

FirewallD verwendet Zonen und Dienste anstelle von iptables-Ketten und -Regeln. Zonen sind eine Reihe von Regeln, die angeben, welcher Datenverkehr abhängig von der Vertrauensstufe, die Sie in einem Netzwerk haben, mit dem Ihre Computer verbunden sind, zugelassen werden soll. Netzwerkschnittstellen, denen eine Zone zugewiesen wurde, um ein Verhalten vorzuschreiben, das die Firewall zulassen sollte.

Die Firewalld wird mit dem Befehlszeilentool firewall-cmd verwaltet. Es bietet eine Schnittstelle zum Verwalten der Laufzeit und der permanenten Konfiguration.

Firewallzonen

In der Firewalld gibt es 9 vordefinierte Zonen je nach Vertrauensstufe in aufsteigender Reihenfolge.
Eine kurze Erklärung jeder Zone finden Sie unten:

  • Ablegen : Diese Zone hat die geringste Vertrauensebene und wird verwendet, um den gesamten eingehenden Datenverkehr zu verwerfen, ohne eine Bestätigung an den Absender zu senden.
  • Blockieren : Diese Zone ist der Dropzone sehr ähnlich, der eingehende Datenverkehr wird abgewiesen und der Absender erhält eine Nachricht.
  • Öffentlich : Lässt Datenverkehr von bestimmten öffentlichen Netzwerken zu.
  • Extern : Diese Zone wird verwendet, wenn Ihr System als Gateway oder Router fungiert.
  • Intern : Der Satz von Regeln, die für die Computer in Ihrem privaten internen Netzwerk gelten.
  • DMZ: Diese Zone ist ein isolierter Bereich von Computern in Ihrem internen Netzwerk, der möglicherweise nicht auf andere interne Ressourcen zugreift.
  • Arbeit: Diese Zone wird für Arbeitsmaschinen verwendet. Das Vertrauensniveau ist hoch.
  • Startseite : Die meisten Computer in dieser Zone vertrauen einander. Das Vertrauensniveau ist höher als die Arbeit.
  • Vertrauenswürdig : Diese Zone hat die höchste Vertrauensstufe. Alle Computer im Netzwerk sind vertrauenswürdig.

Schritt 1 – Installation von Firewalld

Standardmäßig ist Firewalld auf den meisten Betriebssystemen vorinstalliert. Aber einige der minimalen Betriebssysteminstallationen enthalten kein fiWenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

sudo yum install firewalld        # CentOS/RHEL 8/7/6 
sudo dnf install firewalld        # Fedora and CentOS/RHEL 8 
sudo apt install firewalld        # Ubuntu and Debian  

Nach der Installation von firewalld müssen Sie es starten und aktivieren, damit es nach dem Systemneustart gestartet werden kann.

sudo systemctl start firewalld
sudo systemctl enable firewalld

Führen Sie den folgenden Befehl aus, um den Status von firewalld

zu überprüfen
systemctl status firewalld
[OR] 
firewall-cmd --state

Schritt 2 – Arbeiten mit Zonen und Diensten

Standardmäßig ist public die Standardzone in firewalld und alle Netzwerkschnittstellen sind mit der öffentlichen Zone konfiguriert. Sie können die Standardzone mit dem folgenden Befehl auflisten:

firewall-cmd --get-default-zone

Ausgabe:

public

Führen Sie als Nächstes den folgenden Befehl aus, um eine Liste der aktiven Zonen abzurufen:

firewall-cmd --get-active-zones

Sie sollten die folgende Ausgabe erhalten:

public
  interfaces: eth0 eth1

Führen Sie den folgenden Befehl aus, um eine Liste aller verfügbaren Zonen zu erhalten:

firewall-cmd --get-zones

Sie sollten die folgende Ausgabe erhalten:

block dmz drop external home internal public trusted work

Mit dem folgenden Befehl können Sie alle Dienste auflisten, die einer öffentlichen Zone zugeordnet sind:

firewall-cmd --list-all

Sie sollten die folgende Ausgabe erhalten:

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

Führen Sie den folgenden Befehl aus, um die Standardzone von „Öffentlich“ in „Arbeit“ zu ändern:

firewall-cmd --set-default-zone=work

Sie können jetzt Ihre Standardzone mit dem folgenden Befehl überprüfen:

firewall-cmd --get-default-zone

Ausgabe:

work

Mit dem folgenden Befehl erhalten Sie eine Liste aller verfügbaren Dienste in Ihrem System:

firewall-cmd --get-services

Sie sollten die folgende Ausgabe erhalten:

RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

Schritt 3 – Dienste in Firewalld zulassen und ablehnen

Sie können eingehenden Datenverkehr basierend auf vordefinierten Diensten in firewalld zulassen oder ablehnen.

Um beispielsweise den gesamten eingehenden Datenverkehr für den http-Dienst in der öffentlichen Zone zuzulassen, führen Sie den folgenden Befehl aus:

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

Ausgabe:

success

Führen Sie den folgenden Befehl aus, um eingehenden Datenverkehr für den FTP-Dienst in der öffentlichen Zone zuzulassen:

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

Ausgabe:

success

Der obige Befehl fügt den HTTP- und FTP-Dienst temporär hinzu und ist bei Neustarts nicht dauerhaft. Sie müssen den --permanent verwenden Option, um sie dauerhaft zu machen, wie unten gezeigt:

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

Führen Sie als Nächstes den folgenden Befehl aus, um die Änderungen zu implementieren:

firewall-cmd --reload

Sie können jetzt mit dem folgenden Befehl eine Liste der hinzugefügten Dienste abrufen:

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

Sie sollten die folgende Ausgabe sehen:

cockpit dhcpv6-client ftp http ssh

Sie können die Detailinformationen zur öffentlichen Zone auch mit dem folgenden Befehl überprüfen:

firewall-cmd --info-zone public

Ausgabe:

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

Wenn Sie die oben genannten Dienste von der Firewall entfernen/ablehnen möchten, verwenden Sie den --remove-service Möglichkeit:

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

Führen Sie als Nächstes den folgenden Befehl aus, um die Änderungen zu übernehmen:

firewall-cmd --reload

Schritt 4 – Ports in Firewalld zulassen und verweigern

Sie können auch basierend auf dem Port in firewalld eingehenden Datenverkehr zulassen oder ablehnen.

Lassen Sie beispielsweise den gesamten eingehenden Datenverkehr auf den Ports 8080 und 443 zu und führen Sie den folgenden Befehl aus:

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp

Führen Sie als Nächstes den folgenden Befehl aus, um die Änderungen zu übernehmen:

firewall-cmd --reload

Überprüfen Sie als Nächstes die hinzugefügten Ports mit dem folgenden Befehl:

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

Ausgabe:

443/tcp 8080/tcp

Entfernen/verweigern Sie auf ähnliche Weise die oben genannten Ports von der Firewalld, verwenden Sie die Option –remove-port:

firewall-cmd --permanent --zone=public --remove-port=443/tcp
firewall-cmd --permanent --zone=public --remove-port=8080/tcp

Führen Sie als Nächstes den folgenden Befehl aus, um die Änderungen zu übernehmen:

firewall-cmd --reload

Schritt 5 – Portweiterleitung mit Firewalld

Portweiterleitung ist der Prozess, der Anfragen von einer IP/Port-Kombination umleitet und sie an eine andere IP und/oder einen anderen Port umleitet. Diese Technik ermöglicht Remote-Rechnern, sich mit einem bestimmten Dienst innerhalb eines privaten Netzwerks zu verbinden.

Bevor Sie die Portweiterleitung konfigurieren, müssen Sie die Maskerade in der gewünschten Zone aktivieren. Sie können es mit --add-masquerade aktivieren Möglichkeit:

firewall-cmd --zone=public --add-masquerade

Führen Sie als Nächstes den folgenden Befehl aus, um den Datenverkehr von Port 80 an Port 8080 auf demselben Server weiterzuleiten:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

Wenn Sie Datenverkehr vom lokalen Port 80 an Port 8080 auf einem Remote-Server mit der IP-Adresse 192.168.1.200 weiterleiten möchten, führen Sie den folgenden Befehl aus:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200

Führen Sie als Nächstes den folgenden Befehl aus, um die Änderungen zu übernehmen:

firewall-cmd --reload

Wenn Sie die obigen Regeln entfernen möchten, ersetzen Sie –add durch –remove, wie unten gezeigt:

firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.200
firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080

Schlussfolgerung

In der obigen Anleitung haben Sie das Grundkonzept von Firewalld und die Implementierung auf dem Linux-Betriebssystem kennengelernt. Ich hoffe, Sie können jetzt unnötigen eingehenden Datenverkehr mit firewalld einschränken.


Linux
  1. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  2. So installieren und konfigurieren Sie Fail2ban unter Alma Linux 8

  3. Flatpak unter Linux:Was es ist und wie man Apps damit installiert

  4. Was ist Podman und wie installiere ich Podman unter Linux?

  5. Was ist IP-Weiterleitung in Linux? Wie aktiviere ich die IP-Weiterleitung?

So installieren und verwenden Sie Firewalld unter Almalinux 8

So installieren und verwenden Sie Firewalld unter Rocky Linux 8

So konfigurieren Sie FirewallD in RHEL, CentOS und Fedora

Was ist PPA in Ubuntu Linux und wie verwende ich sie?

Was ist Source Command in Linux und wie funktioniert es?

So ändern Sie Datum, Uhrzeit und Zeitzone in Linux Mint 20