Eine Firewall ist eine Möglichkeit, Ihr System vor unerwünschtem Datenverkehr von externen Netzwerken zu schützen. Kostenlose und kommerzielle Firewall-Tools sind reichlich vorhanden; Einige von ihnen beinhalten Iptables, UFW, Juniper, pfSense, SonicWall und mehr.
Unter ihnen ist FirewallD ein kostenloses Firewall-Softwaretool für das Betriebssystem CentOS/RHEL/Fedora. Es ist ein Frontend-Controller für iptables und bietet eine Befehlszeilenschnittstelle zum Implementieren von Firewall-Regeln. Im Vergleich zu Iptables verwendet FirewallD Zonen und Dienste anstelle von Ketten und Regeln und verwaltet Regelsätze dynamisch. FirewallD stellt das Befehlszeilentool firewall-cmd bereit, um die Laufzeit und die permanente Konfiguration zu verwalten.
Funktionen
- Unterstützung des IPv4- und IPv6-Protokolls
- Vordefinierte Zonenliste
- CLI und grafische Konfiguration
- Vollständige D-Bus-API
- Ethernet-Bridging
- Einfaches Protokoll abgelehnter Pakete
- Anwendungs-Whitelisting
- Puppet-Integration
In diesem Tutorial lernen wir, wie man eine Firewall mit FirewallD unter CentOS 8 einrichtet.
Voraussetzungen
- Ein frischer CentOS 8 VPS auf der Atlantic.Net Cloud Platform
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1:Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2:Installieren Sie Firewalld
dnf install firewalld -y
Starten Sie nach der Installation den FirewallD-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start firewalld systemctl enable firewalld
Sie können den Status von FirewallD auch mit dem folgenden Befehl überprüfen:
firewall-cmd --state
Ausgabe:
running
Schritt 3:Grundlegende FirewallD-Nutzung
FirewallD verwaltet eine Reihe von Regeln mithilfe von Zonen. Jede Zone hat ihre eigene Konfiguration zum Akzeptieren oder Ablehnen von Paketen, abhängig von der Vertrauensstufe, die Sie in die Netzwerke haben, mit denen Ihr Computer verbunden ist.
Mit dem folgenden Befehl können Sie alle verfügbaren Zonen auflisten:
firewall-cmd --get-zones
Sie sollten die folgende Liste sehen:
block dmz drop external home internal public trusted work
Um eine Liste aller aktiven Zonen zu erhalten, führen Sie den folgenden Befehl aus:
firewall-cmd --get-active-zones
Sie sollten die folgende Liste sehen:
public interfaces: eth0 eth1
Sie können den Standardzonensatz für Netzwerkverbindungen mit dem folgenden Befehl auflisten:
firewall-cmd --get-default-zone
Ausgabe:
public
Um die Standardzone mit dem folgenden Befehl von „öffentlich“ zu „home“ zu ändern:
firewall-cmd --set-default-zone=home --permanent
Um weitere Informationen über eine beliebige Zone anzuzeigen, verwenden Sie den folgenden Befehl:
firewall-cmd --info-zone public
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:
Sie können auch alle verfügbaren Dienste auflisten, indem Sie den folgenden Befehl ausführen:
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 kube-apiserver 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 4:Ports mit Firewalld zulassen und verweigern
Firewalld bietet ein Firewall-cmd-Befehlszeilentool zum Hinzufügen und Entfernen von Ports in Ihrem System.
Um beispielsweise die TCP-Ports 80 und 22 in der öffentlichen Zone zuzulassen, führen Sie den folgenden Befehl aus:
firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=22/tcp
Als nächstes laden Sie den FirewallD-Daemon neu, um die Konfiguration zu speichern:
firewall-cmd --reload
Listen Sie nun den hinzugefügten Port mit dem folgenden Befehl auf:
firewall-cmd --info-zone public
Sie sollten die folgende Ausgabe sehen:
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: 80/tcp 22/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Sie können den Port auch ganz einfach mit der Option –remove-port.
ablehnen oder aus der Zone entfernenUm beispielsweise den Port 80 aus der öffentlichen Zone abzulehnen oder zu entfernen, führen Sie den folgenden Befehl aus:
firewall-cmd --zone=public --permanent --remove-port=80/tcp
Schritt 5:Dienste mit FirewallD zulassen und verweigern
Sie können auch anhand des Dienstnamens zulassen und verweigern, anstatt einen Port mit FirewallD zu verwenden.
Lassen Sie beispielsweise den FTP-Dienst in der öffentlichen Zone zu, indem Sie den folgenden Befehl ausführen:
firewall-cmd --zone=public --permanent --add-service=ftp firewall-cmd --reload
Sie können den FTP-Dienst mit dem folgenden Befehl verweigern oder aus der öffentlichen Zone entfernen:
:
firewall-cmd --zone=public --permanent --remove-service=ftp firewall-cmd --reload
Schritt 6:IP-Masquerading mit FirewallD einrichten
IP-Masquerading ist ein Prozess oder eine Methode, die es Ihren Computern in einem Netzwerk mit privaten IP-Adressen ermöglicht, über die Adresse Ihres Servers mit dem Internet zu kommunizieren. Dies ist sehr nützlich, wenn Sie möchten, dass ein anderer Computer mit dem Internet kommuniziert, ohne zusätzliche IPs von Ihrem ISP zu kaufen.
Prüfen Sie vor dem Einrichten von IP-Masquerading mit folgendem Befehl, ob Masquerading aktiv ist oder nicht:
firewall-cmd --zone=public --query-masquerade
Sie sollten sehen, dass IP-Masquerading in der öffentlichen Zone wie unten gezeigt deaktiviert ist:
no
Stellen Sie nun die IP-Maskierung mit dem folgenden Befehl ein:
firewall-cmd --zone=public --add-masquerade firewall-cmd --reload
Sie können das IP-Masquerading auch mit der Option –remove-masquerade:
deaktivierenfirewall-cmd --zone=public --remove-masquerade firewall-cmd --reload
Schlussfolgerung
In der obigen Anleitung haben Sie gelernt, wie Sie FirewallD verwenden, um unerwünschten Datenverkehr in Ihrem System zu blockieren. Sie sollten nun in der Lage sein, alle unnötigen Verbindungen einzuschränken und Ihren Server vor Angreifern zu schützen. Probieren Sie FirewallD auf einem Atlantic.Net-VPS aus!