Viele Linux-Anwender glauben immer noch, sie bräuchten keine Firewall. Das Mantra wurde schließlich jahrzehntelang vor Linux hergetragen. Doch die meisten Linux-Desktopinstallationen sind nicht mehr minimalistisch und bewegen sich auch nicht mehr nur innerhalb des Heimnetzes.

Eine Firewall kann dann Sinn machen, wenn man ein mobiles Gerät besitzt und sich in fremde Netze einwählt. Nennt sich Notebook und dürfte bei den meisten Anwendern der Standardfall sein. Man verweist immer gerne auf Windows mit seinen vermeintlich vielen offenen Ports und Diensten, die man nicht braucht, aber auch bei Linux laufen viele Dienste, die außerhalb des Heimnetzes nicht gebraucht werden: CUPS, Avahi, KDE Connect, ggf. ein Samba-Share. Die Liste ließe sich sicher noch erweitern. Das ist jetzt grundsätzlich kein Problem, aber es schadet auch nicht, diese Ports bei unbekannten Netzwerken zu blockieren. Wer weiß schon, welche Sicherheitslücke demnächst in CUPS oder sshfs gefunden wird.

Distributionen wie Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise oder openSUSE liefern deshalb mit Firewalld schon länger standardmäßig eine aktivierte Firewall aus. Distributionen wie Debian oder Ubuntu bieten eine Nachinstallation aus den Paketquellen an, aber hier ist ufw verbreiteter.

Ein bisschen Nacharbeit ist in jedem Fall notwendig. Bei SUSE kann man dies via YaST machen oder auf der Konsole. KDE bietet seit Neuestem mit Plasma Firewall eine GUI für Firewalls, aber bei mir hat diese nicht funktioniert.

Zonen in Firewalld

Firewalld arbeitet mit vordefinierten Zonen. Die wichtigen Kern-Zonen sind:

  • block – Alle eingehenden Netzwerkverbindungen werden blockiert. Nur vom System aus initiierte Netzwerkverbindungen sind möglich.
  • dmz – Klassische entmilitarisierte Zone (DMZ), die begrenzten Zugang zum Netzwerk bietet und nur definierte eingehende Ports zulässt.
  • drop – Löscht eingehenden Netzwerkverbindungen und erlaubt nur ausgehende Netzwerkverbindungen.
  • external – Nützlich vor allem im Router-Kontext.
  • home – Gedacht für Heimcomputer wie Notebooks und Desktops innerhalb des eigenen Netzwerks, in dem anderen Systemen vertraut werden kann.
  • internal – Für interne Netzwerke, wenn den anderen Servern oder Computern im Netzwerk vertraut werden kann.
  • public – Es wird anderen Systemen im Netzwerk nicht vertraut. Nur erforderliche Ports und Dienste sind erlaubt.
  • trusted – Alle Netzwerkverbindungen werden akzeptiert.
  • work – Äquivalent von Home für den Einsatz am Arbeitsplatz.

Welche Zonen zusätzlich noch verfügbar sind kann mit folgendem Kommando geprüft werden:

# firewall-cmd --get-zones

Dienste für Zonen konfigurieren

Für die klassischen Notebook-Installation sind vor allem zwei Zonen von Firewalld von Interesse: home und public.

Die Standard-Zone sollte public sein, das lässt sich mit folgendem Befehl prüfen:

# firewall-cmd --get-default-zone

Durch die Integration in den NetworkManager lassen sich Netzwerke Zonen zuordnen. Jede neue Verbindung wird automatisch public zugewiesen. Eigene Netzwerke können home zugewiesen werden.

Für Home können dann Dienste freigeschaltet werden, die man im heimischen Netzwerk gerne nutzen möchte.

Mit folgendem Befehl überprüft man, welche Services gerade aktiv sind:

# firewall-cmd --list-services --zone=home

Folgender Befehl kann man die vorkonfigurierten Dienste für Firewalld ausgeben. Diese sind bereits für den Dienst passend konfiguriert und man muss nicht manuell irgendwelche Ports zusammen stellen und freigeben.

# firewall-cmd --get-services

Für meinen persönlichen Bedarf haben die vorkonfigurierten Dienste immer gereicht, aber das hängt natürlich von den eigenen Einsatzszenarien ab.

Mit folgenden beiden Befehlen fügt man einen Dienst hinzu bzw. entfernt ihn wieder. Hier mal am Beispiel von SSH.

# firewall-cmd --zone=home --add-service=ssh --permanent
# firewall-cmd --zone=home --remove-service=ssh --permanent

Nach jeder Anpassung muss man Firewalld neustarten, damit die Änderung greift:

# systemctl restart firewalld

Beispiel für den Einsatz

Mein primäres Notebook kommt mit zwei Zonen aus: home und public. In public ist so wenig die nötig erlaubt, in home einiges mehr, damit ich z. B. KDE Connect nutzen kann oder meinen Drucker erreiche:

GH-Elite:/home/gerrit # firewall-cmd --list-services --zone=home                  
dhcpv6-client kdeconnect kdeconnect-kde mdns samba-client
 
GH-Elite:/home/gerrit # firewall-cmd --list-services --zone=public 
dhcpv6-client

Die Netzwerke eines Erst- und Zweitwohnsitzes sind Home zugewiesen. Alle anderen Netzwerke landen bei der Einrichtung automatisch bei Public. Bisher hatte ich damit keine Probleme.

Moin, meine Name ist Gerrit und ich betreibe diesen Blog seit 2014. Der Schutz der digitalen Identität, die einen immer größeren Raum unseres Ichs einnimmt ist mir ein Herzensanliegen, das ich versuche tagtäglich im Spannungsfeld digitaler Teilhabe und Sicherheit umzusetzen. Die Tipps, Anleitungen, Kommentare und Gedanken hier entspringen den alltäglichen Erfahrungen.

9 Ergänzungen

  1. Danke für den Artikel – endlich Licht im Dunkeln! 🙂 Aber kdeconnect habe ich bei mir im public, kdeconnect-kde gar nirgends freigegeben. KDE Connect läuft trotzdem einwandfrei.

  2. Gibt es auch eine Lern-Variante? So wie es die persönlichen Firewalls unter Windows (bsp. SimpleWall) schon immer anbieten?
    Grundsätzlich hätte ich gerne, dass alle Netzzugriffe erstmal gesperrt sind und beim Erstmaligen zugriff werde ich dann gefragt Erlauben/blockieren/für Xmin erlauben.

  3. Hallo Gerrit. Ich habe mich bisher erst mit UFW beschäftigt und bin damit auch sehr zufrieden. Wenn ich mit Fedora anstatt Debian unterwegs bin, würde Firewalld aber eine beßere Wahl sein. UFW läuft bei mir teilweise im Hardcore Modus. Eingehend (Drop) | Ausgehend (Reject). Danach DNS (53), HTTP (80), HTTPS (443) wieder freigeben. Teilweise ist sogar nur DNS und HTTPS auf die jeweils gewünschte IP eingestellt. Wie funktioniert diese paranoide Konfiguration bei Firewalld? Ich konnte das bisher nirgends finden.

Schreiben Sie eine Ergänzung

Ergänzungen dienen der Diskussion über die Inhalte des Artikels. Nachfragen, Anmerkungen und Ergänzungen sind dezidiert erwünscht. Ergänzungen werden vor der Veröffentlichung moderiert. Wir behalten uns vor Kommentare ohne inhaltlichen Bezug oder abseitige Diskussionen nicht zu veröffentlichen.

Bitte geben Sie Ihre Ergänzung ein!
Bitte geben Sie hier Ihren Namen ein