YaST Firewall: Managing firewalld (Artikel 135)
Konfiguration der Firewall unter SUSE mittels YaST. Erfahren Sie den Umgang mit firewalld Zonen, die Freischaltung von Services und die grafische Verwaltung von Sicherheitsregeln.
# YaST Firewall: Sicherheit grafisch konfigurieren
TL;DR / Management Summary SUSE hat den klassischen
SuSEfirewall2durch das modernere firewalld ersetzt. Das Besondere bei SUSE: Das YaST Firewall-Modul bietet eine der intuitivsten Oberflächen zur Verwaltung von Zonen und Services. Ein Senior Admin nutzt YaST, um Schnittstellen sicher zu segmentieren, ohne die Syntax vonfirewall-cmd(siehe Artikel 091) auswendig lernen zu müssen. Das Ziel: Ein “Deny by Default” Regelwerk mit minimalem Aufwand.
# 1. Einführung & Architektur
Die Brücke zwischen YaST und firewalld.
YaST agiert als Frontend für den firewalld Dämon. Jede Änderung in YaST wird sofort in die XML-Konfigurationsdateien von firewalld geschrieben.
# Die Architektur (Mermaid)
graph TD
A[Admin User] -->|yast2 firewall| B[YaST Module]
B --> C{firewalld Daemon}
C --> D[Active Zone: public]
C --> E[Active Zone: internal]
D --> F[Allow: HTTP, SSH]
E --> G[Allow: All Internal]
C --> H[nftables / iptables Backend]
# 2. Basiskonfiguration in YaST
Zonen und Schnittstellen.
Starten Sie das Modul:
sudo yast2 firewall
# Die wichtigsten Schritte
- Schnittstellen (Interfaces): Ordnen Sie jede Netzwerkkarte einer Zone zu. Eine Karte ohne Zone landet in der “Default”-Zone (meist
public). - Erlaubte Dienste (Allowed Services): Wählen Sie für jede Zone die Dienste aus, die erreichbar sein sollen. YaST liest die Service-Definitionen (z.B.
ssh,http) direkt aus firewalld aus. - Masquerading: Aktivieren Sie dies mit einem Klick, wenn der SUSE-Server als Router/NAT-Gateway fungieren soll.
# 3. SUSE-spezifische Zonen
Vordefinierte Vertrauensstufen.
SUSE nutzt die Standard-Zonen von firewalld, hat aber oft spezifische Standard-Einstellungen:
- public: Die sicherste Zone für Internet-Interfaces.
- home / work: Weniger restriktiv, ideal für interne Büro-Netze.
- trusted: Nutzt SUSE oft für Loopback-Devices – hier ist alles erlaubt.
# 4. Day-2 Operations: Logging & Custom Services
Tiefer in die Konfiguration.
# Eigenen Service anlegen
Wenn Sie einen Non-Standard Port (z.B. 8888 für eine eigene App) freischalten wollen:
- In YaST unter “Services” auf “Add” klicken.
- Port und Protokoll (TCP/UDP) angeben.
- Der Service steht nun permanent in allen Zonen zur Auswahl zur Verfügung.
# Logging von abgelehnten Paketen
Aktivieren Sie das Logging in YaST unter “Options”, um in /var/log/messages zu sehen, wer versucht, die Firewall zu durchbrechen.
# 5. Troubleshooting & “War Stories”
Wenn die Firewall im Weg steht.
# Story 1: “Der hängende YaST-Speichervorgang”
Symptom: Beim Klick auf “Finish” in YaST friert die Oberfläche ein.
Ursache: YaST versucht, die Regeln anzuwenden, aber ein iptables oder nftables Befehl blockiert im Kernel (oft durch hängende Verbindungen oder andere Firewall-Tools wie Docker).
Lösung: Nutzen Sie die Konsole: sudo firewall-cmd --reload. Falls das auch hängt, prüfen Sie, ob andere Security-Tools (z.B. Fail2Ban) gerade massiv Regeln schreiben.
# Story 2: “SSH-Lockout durch Zonenwechsel”
Symptom: Der Admin verschiebt eth0 von der Zone public in die Zone external und verliert sofort die Verbindung.
Ursache: In der Zone external war der SSH-Dienst nicht aktiviert.
Lösung: Nutzen Sie immer erst den Befehl firewall-cmd --runtime-to-permanent, nachdem Sie die Regel im “Runtime”-Modus getestet haben. In YaST: Nutzen Sie die Test-Funktion (Apply) ohne direkt zu speichern.
# 6. Fazit & Empfehlung
- GUI: YaST Firewall ist unschlagbar für komplexe Setups mit vielen Interfaces.
- CLI: Nutzen Sie
firewall-cmdfür Automatisierung und schnelles Debugging. - Best Practice: Dokumentieren Sie die Zuordnung von Interfaces zu Zonen. In einer Enterprise-Umgebung sollte kein Interface unzugeordnet sein.
# Anhang: Cheatsheet
| Aufgabe | YaST / CLI Befehl |
|---|---|
| Modul starten | yast2 firewall |
| Status via CLI | firewall-cmd --state |
| Alle Regeln listen | firewall-cmd --list-all-zones |
| Aktuelle Zone für eth0 | firewall-cmd --get-zone-of-interface=eth0 |
| Dienst temporär erlauben | firewall-cmd --add-service=http |
| Dienst permanent erlauben | firewall-cmd --permanent --add-service=http |