Linux-Desktop mit Firewalld absichern

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.

9 Kommentare

  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.

Kommentieren Sie den Artikel

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 Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Mehr aus dem Blog

Fedora Silverblue – Toolbox für grafische Anwendungen

Unveränderbare Linux-Systeme wie Fedora Silverblue nutzen als Standard Flatpak für Anwendungsinstallationen. Doch noch liegen nicht alle Anwendungen als Flatpak vor. Diese können dann entweder...

Fedora Silverblue im Praxistest

Ich liebe LTS-Distributionen, aber diese bewahren einen leider nicht vor defekten SSDs im Notebook. Da ich keine Vollsicherung der Systeme mache, sondern nur Datenbackups...

Neues Design bei Mozilla Thunderbird

Die Entwickler von Mozilla Thunderbird wagen sich an eine Modernisierung des überkommenen Designs. Dabei zeigen sich die alten Probleme der Open Source Entwicklung. Mangels...

systemd und TPM – Die Reise geht weiter

Auf der diesjährigen FOSDEM kündigte Lennart Poettering die Weiterentwicklung der TPM-basierten Sicherheitsfunktionen in systemd an. Die Vision eines neuen Linux nimmt immer mehr Gestalt...