Normale Ansicht
Docker mit nftables ausprobiert
Die Docker Engine 29 unter Linux unterstützt erstmals Firewalls auf nftables-Basis. Die Funktion ist explizit noch experimentell, aber wegen der zunehmenden Probleme mit dem veralteten iptables-Backend geht für Docker langfristig kein Weg daran vorbei. Also habe ich mir gedacht, probiere ich das Feature einfach einmal aus. Mein Testkandidat war Fedora 43 (eine reale Installation auf einem x86-Mini-PC sowie eine virtuelle Maschine unter ARM).
Inbetriebnahme
Das nft-Backend aktivieren Sie mit der folgenden Einstellung in der Datei /etc/docker/daemon.json:
{
"firewall-backend": "nftables"
}
Diese Datei existiert normalerweise nicht, muss also erstellt werden. Die Syntax ist hier zusammengefasst.
Die Docker-Dokumentation weist darauf hin, dass Sie außerdem IP-Forwarding erlauben müssen. Alternativ können Sie Docker anweisen, auf Forwarding zu verzichten ("ip-forward": false in daemon.json) — aber dann funktionieren grundlegende Netzwerkfunktionen nicht.
# Datei /etc/sysctl.d/99-docker.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
sysctl --system aktiviert die Änderungen ohne Reboot.
Die Docker-Dokumentation warnt allerdings, dass dieses Forwarding je nach Anwendung zu weitreichend sein und Sicherheitsprobleme verursachen kann. Gegebenenfalls müssen Sie das Forwarding durch weitere Firewall-Regeln wieder einschränken. Die Dokumentation gibt ein Beispiel, um auf Rechnern mit firewalld unerwünschtes Forwarding zwischen eth0 und eth1 zu unterbinden. Alles in allem wirkt der Umgang mit dem Forwarding noch nicht ganz ausgegoren.
Praktische Erfahrungen
Mit diesen Einstellungen lässt sich die Docker Engine prinzipiell starten (systemctl restart docker, Kontrolle mit docker version oder systemctl status docker). Welches Firewall-Backend zum Einsatz kommt, verrät docker info:
docker info | grep 'Firewall Backend'
Firewall Backend: nftables+firewalld
Ich habe dann ein kleines Compose-Setup bestehend aus MariaDB und WordPress gestartet. Soweit problemlos:
docker compose up -d
[+] Running 2/2
Container wordpress-sample-wordpress-1 Running 0.0s
Container wordpress-sample-db-1 Running 0.0s
Attaching to db-1, wordpress-1
docker compose ps
NAME IMAGE ... PORTS
wordpress-sample-db-1 mariadb:latest 3306/tcp
wordpress-sample-wordpress-1 wordpress:latest 127.0.0.1:8082->80/tcp
Firewall-Regeln
Auch wenn ich kein nft-Experte bin, wollte ich mir zumindest einen Überblick verschaffen, wie die Regeln hinter den Kulissen funktionieren und welchen Umfang sie haben:
# ohne Docker (nur firewalld)
nft list tables
table inet firewalld
nft list ruleset | wc -l
374
# nach Start der Docker Engine (keine laufenden Container)
nft list tables
table inet firewalld
table ip docker-bridges
table ip6 docker-bridges
nft list ruleset | wc -l
736
Im Prinzip richtet Docker also zwei Regeltabellen docker-bridges ein, je eine für IPv4 und für IPv6. Die zentralen Regeln für IPv4 sehen so aus (hier etwas kompakter als üblich formatiert):
nft list table ip docker-bridges
table ip docker-bridges {
map filter-forward-in-jumps {
type ifname : verdict
elements = { "docker0" : jump filter-forward-in__docker0 }
}
map filter-forward-out-jumps {
type ifname : verdict
elements = { "docker0" : jump filter-forward-out__docker0 }
}
map nat-postrouting-in-jumps {
type ifname : verdict
elements = { "docker0" : jump nat-postrouting-in__docker0 }
}
map nat-postrouting-out-jumps {
type ifname : verdict
elements = { "docker0" : jump nat-postrouting-out__docker0 }
}
chain filter-FORWARD {
type filter hook forward priority filter; policy accept;
oifname vmap @filter-forward-in-jumps
iifname vmap @filter-forward-out-jumps
}
chain nat-OUTPUT {
type nat hook output priority dstnat; policy accept;
ip daddr != 127.0.0.0/8 fib daddr type local counter packets 0 bytes 0 jump nat-prerouting-and-output
}
chain nat-POSTROUTING {
type nat hook postrouting priority srcnat; policy accept;
iifname vmap @nat-postrouting-out-jumps
oifname vmap @nat-postrouting-in-jumps
}
chain nat-PREROUTING {
type nat hook prerouting priority dstnat; policy accept;
fib daddr type local counter packets 0 bytes 0 jump nat-prerouting-and-output
}
chain nat-prerouting-and-output {
}
chain raw-PREROUTING {
type filter hook prerouting priority raw; policy accept;
}
chain filter-forward-in__docker0 {
ct state established,related counter packets 0 bytes 0 accept
iifname "docker0" counter packets 0 bytes 0 accept comment "ICC"
counter packets 0 bytes 0 drop comment "UNPUBLISHED PORT DROP"
}
chain filter-forward-out__docker0 {
ct state established,related counter packets 0 bytes 0 accept
counter packets 0 bytes 0 accept comment "OUTGOING"
}
chain nat-postrouting-in__docker0 {
}
chain nat-postrouting-out__docker0 {
oifname != "docker0" ip saddr 172.17.0.0/16 counter packets 0 bytes 0 masquerade comment "MASQUERADE"
}
}
Diese Tabelle richtet NAT-Hooks für Pre- und Postrouting ein, die über Verdict-Maps (Datenstrukturen zur Zuordnung von Aktionen) später dynamisch auf bridge-spezifische Chains weiterleiten können. Für das Standard-Docker-Bridge-Netzwerk (docker0, 172.17.0.0/16) sind bereits Filter-Chains vorbereitet, die etablierte Verbindungen akzeptieren, Inter-Container-Kommunikation erlauben würden und nicht veröffentlichte Ports blocken, sowie eine Masquerading-Regel für ausgehenden Traffic von Containern, damit diese über die Host-IP auf das Internet zugreifen können. Die meisten Chains sind vorerst leer oder inaktiv (nat-prerouting-and-output, raw-PREROUTING, nat-postrouting-in__docker0). Wenn Docker Container ausführt, interne Netzwerk bildet etc., kommen weitere Regeln innerhalb von ip docker-bridges hinzu.
Zusammenspiel mit libvirt/virt-manager
Vor ca. einem halben Jahr bin ich das erste Mal über das nicht mehr funktionierende Zusammenspiel von Docker mit iptables und libvirt mit nftables gestolpert (siehe hier). Zumindest bei meinen oberflächlichen Tests klappt das jetzt: libvirt muss nicht auf iptables zurückgestellt werden sondern kann bei der Defaulteinstellung nftables bleiben. Dafür muss Docker wie in diesem Beitrag beschrieben ebenfalls auf nftables umgestellt werden. Nach einem Neustart (erforderlich, damit alte iptables-Docker-Regeln garantiert entfernt werden!) kooperieren Docker und libvirt so wie sie sollen. libvirt erzeugt für seine Netzwerkfunktionen zwei weitere Regeltabellen:
nft list tables
table inet firewalld
table ip docker-bridges
table ip6 docker-bridges
table ip libvirt_network
table ip6 libvirt_network
Einschränkungen und Fazit
- Die Docker-Dokumentation weist darauf hin, dass das nftables-Backend noch keine Overlay-Regeln erstellt, die für den Betrieb von Docker Swarm notwendig sind. Docker Swarm funktioniert also aktuell nicht, wenn Sie Docker auf nftables umstellen. Für mich ist das kein Problem, weil ich Docker Swarm ohnedies nicht brauche.
-
Ich habe meine Tests nur unter Fedora durchgeführt. (Meine Zeit ist auch endlich.) Es ist anzunehmen, dass RHEL plus Klone analog funktionieren, aber das bleibt abzuwarten. Debian + Ubuntu wären auch zu testen …
-
Ich habe nur einfache compose-Setups ausprobiert. Natürlich kein produktiver Einsatz.
-
Meine nftables- und Firewall-Kenntnisse reichen nicht aus, um eventuelle Sicherheitsimplikationen zu beurteilen, die sich aus der Umstellung von iptables auf nftables ergeben.
Losgelöst von den Docker-spezifischen Problemen zeigt dieser Blog-Beitrag auch, dass das Zusammenspiel mehrerer Programme (firewalld, Docker, libvirt, fail2ban, sonstige Container- und Virtualisierungssysteme), die jeweils ihre eigenen Firewall-Regeln benötigen, alles andere als trivial ist. Es würde mich nicht überraschen, wenn es in naher Zukunft noch mehr unangenehme Überraschungen gäbe, dass also der gleichzeitige Betrieb der Programme A und B zu unerwarteten Sicherheitsproblemen führt. Warten wir es ab …
Insofern ist die Empfehlung, beim produktiven Einsatz von Docker auf dem Host möglichst keine anderen Programme auszuführen, nachvollziehbar. Im Prinzip ist das Konzept ja nicht neu — jeder Dienst (Web, Datenbank, Mail usw.) bekommt möglichst seinen eigenen Server bzw. seine eigene Cloud-Instanz. Für große Firmen mit entsprechender Server-Infrastruktur sollte dies ohnedies selbstverständlich sein. Bei kleineren Server-Installationen ist die Auftrennung aber unbequem und teuer.
Quellen/Links
- https://kofler.info/dockers-nft-inkompatibilitaet-wird-zunehmend-zum-aergernis/
- https://docs.docker.com/engine/release-notes/29/
- https://docs.docker.com/engine/network/firewall-nftables/
- https://docs.docker.com/engine/network/firewall-nftables/#migrating-from-iptables-to-nftables
- https://docs.docker.com/engine/daemon/
- https://docs.docker.com/engine/security/#docker-daemon-attack-surface
Gewinnspiel: Advent, Advent, ein Raspi brennt
Macht mit bei unserem Weihnachts-Gewinnspiel. Wer es bis Level 10 schafft, kann tolle Preise gewinnen. Dieses Mal erwartet euch eine Schnitzeljagd im Internet.


Mehrere Schwachstellen in SonicWall
SonicWall hat mehrere Sicherheitslücken in Email Security und SonicOS SSLVPN geschlossen. Im Ernstfall ist eine komplette Systemkompromittierung möglich.
Linux Coffee Talk 11/2025
Der Linux Coffee Talk ist das entspannte Monatsformat bei fosstopia. Hier fassen wir die spannendsten Ereignisse und Entwicklungen der letzten Wochen für Euch zusammen und ordnen es ein. Also schnappt euch einen Kaffee, Tee oder Euer Lieblingsgetränk, macht es euch gemütlich und lasst uns den November Revue passieren. In dieser Ausgabe blicken wir auf die […]
Der Beitrag Linux Coffee Talk 11/2025 erschien zuerst auf fosstopia.
Podcast: Linux Coffee Talk 11/2025
Der Linux Coffee Talk ist unser entspanntes Monatsformat bei fosstopia. Hier fassen wir die spannendsten Ereignisse und Entwicklungen der letzten Wochen für Euch zusammen und ordnen sie bestmöglich ein. Also schnappt euch einen Kaffee, Tee oder Euer Lieblingsgetränk, macht es euch gemütlich und lasst uns den November Revue passieren.
Der Beitrag Podcast: Linux Coffee Talk 11/2025 erschien zuerst auf fosstopia.
Neuer Maintainer beim Fork von Syncthing for Android erweckt Misstrauen
Neue Forks müssen Vertrauen in die Person des Maintainers und den Code schaffen. Beides wurde beim aktuellen Fork von Syncthing for Android sträflich vernachlässigt.
Raspberry-Pi-Projekte fürs Netz – NAS, Cloud & Router selbst gebaut | c’t uplink
Zum Wochenende: Das Hufeisen
Das Hufeisenschema suggeriert, dass es Gemeinsamkeiten zwischen Linksextremen und Rechtsextremen gibt. Das ist falsch und schadet der Demokratie. Aber ...


Was sonst noch unwichtig war in der Kalenderwoche 48/25
Fünf fabelhafte Fakten der Woche, die es irgendwie nicht zu einer Meldung auf Linux-Magazin Online geschafft haben – und warum eigentlich nicht.
Was sonst noch unwichtig war in der Kalenderwoche 48/25
Fünf fabelhafte Fakten der Woche, die es irgendwie nicht zu einer Meldung auf Linux-Magazin Online geschafft haben – und warum eigentlich nicht.
Alle wichtigen Linux-Distributionen im Überblick (2025)

Wenn Du das Video unterstützen willst, dann gib bitte eine Bewertung ab, und schreibe einen Kommentar. Vielen Dank!
Links:
-------------------------------------
- Debian Tutorial: https://youtu.be/bHxtFrMPUCw
- CachyOS vs Debian: https://youtu.be/iWESD9jDShU
- CachyOS vs EndeavourOS: https://youtu.be/O9y-IVx8oZM
- AnduinOS vorgestellt: https://youtu.be/hPLUn4_gboY
- Linux-Guides Merch*: https://linux-guides.myspreadshop.de/
- Professioneller Linux Support*: https://www.linuxguides.de/linux-support/
- Linux-Arbeitsplatz für KMU & Einzelpersonen*: https://www.linuxguides.de/linux-arbeitsplatz/
- Linux Mint Kurs für Anwender*: https://www.linuxguides.de/kurs-linux-mint-fur-anwender/
- Offizielle Webseite: https://www.linuxguides.de
- Forum: https://forum.linuxguides.de/
- Unterstützen: http://unterstuetzen.linuxguides.de
- Mastodon: https://mastodon.social/@LinuxGuides
- X: https://twitter.com/LinuxGuides
- Instagram: https://www.instagram.com/linuxguides/
- Kontakt: https://www.linuxguides.de/kontakt/
Inhaltsverzeichnis:
-------------------------------------
00:00 Begrüßung
01:10 Debian-Familie
17:42 Arch-Familie
30:46 Fedora / Red Hat
37:10 openSUSE, Alpine, NixOS
41:35 Was soll ich nehmen?
Haftungsausschluss:
-------------------------------------
Das Video dient lediglich zu Informationszwecken. Wir übernehmen keinerlei Haftung für in diesem Video gezeigte und / oder erklärte Handlungen. Es entsteht in keinem Moment Anspruch auf Schadensersatz oder ähnliches.
*) Werbung
#linuxguides #linux #linuxdistro #archlinux #debian #fedora #steamos
Markdown-Import via Collabora Desktop
Mit der gerade erschienen Collabora-Desktop-Version können Markdown-Dateien auf einfache Weise importiert und ergänzt werden.


Zwei Drittel aller Deutschen nutzen regelmäßig KI
In einer Forsa-Umfrage im Auftrag des TÜV-Verbandes gaben 65 Prozent von 1000 Befragten an, regelmäßig generative KI zu benutzen.
Proxmox Backup Server 4.1 verfeinert Administration
Die Proxmox Server Solutions GmbH bringt mit der Open-Source-Serverlösung Proxmox Backup Server 4.1 ein auf Debian 13.2 „Trixie“ basierendes Update.
iX-Workshop: Linux-Server absichern – effektiv und umfassend
Raspberry Pi OS aktualisiert
Raspberry Pi OS ist ein Erhaltungsrelease mit wenigen neuen Funktionen. So wurde dem Control-Panel die Steuerung von HiDPi-Displays spendiert und die Firmware aktualisisert
Raspberry Pi Imager 2.0
Die Raspberry Pi Foundation hat vor einigen Tagen eine komplett reorganisierte Implementierung Ihres Raspberry Pi OS Imager vorgestellt. Das Programm hilft dabei, Raspberry Pi OS oder andere Distributionen auf SD-Karten für den Raspberry Pi zu schreiben. Mit der vorigen Version hatte ich zuletzt Ärger. Aufgrund einer Unachtsamkeit habe ich Raspberry Pi OS über die Windows-Installation auf der zweite SSD meines Mini-PCs geschrieben. Führt Version 2.0 ebenso leicht in die Irre?
Installation unter Linux
Der Raspberry Pi Imager steht für Windows als EXE-Datei und für macOS als DMG-Image zur Verfügung. Installation und Ausführung gelingen problemlos.
Unter Linux ist die Sache nicht so einfach. Die Raspberry Pi Foundation stellt den Imager als AppImage zur Verfügung. AppImages sind ein ziemlich geniales Format zur Weitergabe von Programmen. Selbst Linux Torvalds war begeistert (und das will was sagen!): »This is just very cool.« Leider setzt Ubuntu auf Snap-Pakete und die Red-Hat-Welt auf Flatpaks. Dementsprechend mau ist die Unterstützung für das AppImage-Format.
Ich habe meine Tests unter Fedora 43 durchgeführt. Der Versuch, den heruntergeladenen Imager einfach zu starten, führt sowohl aus dem Webbrowser als auch im Gnome Dateimanager in das Programm Gnome Disks. Fedora erkennt nicht, dass es sich um eine App handelt und bietet stattdessen Hilfe an, in die Image-Datei hineinzusehen. Abhilfe: Sie müssen zuerst das Execute-Bit setzen:
chmod +x Downloads/imager_2.2.0.amd64.AppImage
Aber auch der nächste Startversuch scheitert. Das Programm verlangt sudo-Rechte.

Mit sudo funktioniert es schließlich:
sudo Downloads/imager_2.2.0.amd64.AppImage
Tipp: Beim Start mit
sudomüssen Sieimager_n.n.AppImageunbedingt einen Pfad voranstellen! Wenn Sie zuerst mitcd Downloadsin das Downloads-Verzeichnis wechseln und dannsudo imager_n.n.AppImageausführen, lautet die Fehlermeldung Befehl nicht gefunden. Hingegen funktioniertsudo ./imager_n.n.AppImage.
Bedienung
Ist der Start einmal geglückt, lässt sich das Programm einfach bedienen: Sie wählen zuerst Ihr Raspberry-Pi-Modell aus, dann die gewünschte, dazu passende Distribution und schließlich das Device der SD-Karte aus. Vorsicht!! Wie schon bei der alten Version des Programms sind die Icons irreführend. In meinem Fall (PC mit zwei zwei SSDs und einer SD-Karte) wird das SD-Karten-Icon für die zweite SSD verwendet, das USB-Icon dagegen für die SD-Karte. Passen Sie auf, dass Sie nicht das falsche Laufwerk auswählen!! Ich habe ein entsprechendes GitHub-Issue verfasst.


In den weiteren Schritten können Sie eine Vorabkonfiguration von Raspberry Pi OS vornehmen, was vor allem dann hilfreich ist, wenn Sie den Raspberry Pi ohne Tastatur und Monitor (»headless«) in Betrieb nehmen und sich direkt per SSH einloggen möchten.

Bei den Zusammenfassungen wäre die Angabe des Device-Namens der SD-Karte eine große Hilfe.

Fazit
Die Oberfläche des Raspberry Pi Imager wurde überarbeitet und ist ein wenig übersichtlicher geworden. An der Funktionalität hat sich nichts geändert. Leider kann es weiterhin recht leicht passieren, das falsche Device auszuwählen. Bedienen Sie das Programm also mit Vorsicht!
Quellen/Links
Filmarchiv mit der ArchivistaBox
Dieser Artikel zeigt auf, wie die ArchivistaBox als Medien-Archiv aufgesetzt und eingerichtet wird. Die neue ArchivistaBox steht unter der AGPLv3 Lizenz.


GNOME 49.2 bringt Pflege für den Linux Desktop
Das GNOME Projekt hat die Version 49.2 veröffentlicht und liefert damit das zweite Pointrelease für die aktuelle Brescia Serie. Rund sechs Wochen nach dem letzten Release folgt nun eine Sammlung von Verbesserungen und Fehlerkorrekturen, die den Alltag vieler Nutzer spürbar erleichtern sollen. Besonders auffällig sind die Änderungen an der Eingabe und Darstellung. Sticky Keys und […]
Der Beitrag GNOME 49.2 bringt Pflege für den Linux Desktop erschien zuerst auf fosstopia.
Collabora bringt Collabora Online auf den Desktop
Die Firma Collabora Productivity Ltd stellt mit Collabora Office eine leicht abgespeckte Version von LibreOffice mit modernisierter Oberfläche für den Desktop bereit.
Warner beendet Urheberrechtsstreit mit Suno
Im Juni 2024 hatten sich einige der größten Musiklabel, darunter Sony Music, Universal Music Group und Warner Music Group (WMG) zusammengetan, um zwei Start-ups zu verklagen, Suno und Udio, die…
Deutsches Start-up veröffentlicht neues Bildmodell der Oberliga
Das Freiburger Start-up Black Forest Labs hat mit Flux 2 ein Text-zu-Bild-Modell veröffentlicht, das auf Augenhöhe mit Googles ebenfalls noch brandneuen Modell Nano Banana Pro operiert.