Kennisbank › Firewall › nftables: de Linux-firewall die iptables vervangt
firewall starter 28 August 2026

nftables: de Linux-firewall die iptables vervangt

nftables: de Linux-firewall die iptables vervangt Dit artikel legt uit wat nftables is, hoe het zich verhoudt tot iptables, en hoe je ermee aan de slag gaat —

Het project ontstond uit de beperkingen van iptables. Die vereiste vier verschillende commando's voor IPv4, IPv6, Ethernet-frames en ARP. Het regelmodel was statisch en de interne datastructuren inefficiënt. nftables lost dit op met één daemon, één syntax, één tool (`nft`) en één kernel-architectuur.

Geschiedenis en ontwikkeling

De eerste publieke presentatie van nftables vond plaats op de Netfilter Workshop in 2008 in Parijs. Patrick McHardy, lid van het Netfilter Core Team, bracht de eerste alpha-versie uit op 18 maart 2009. Dit was een vroege ontwikkelversie, maar markeerde de transitie van idee naar functionele software.

Op 16 oktober 2013 diende Pablo Neira Ayuso een "nftables core pull request" in bij de Linux-kernel. De merge werd afgerond op 19 januari 2014, dezelfde dag dat kernel 3.13 uitkwam. Vanaf dat moment was nftables onderdeel van de standaard kernel.

De eerste eindgebruikersversie, 0.099, verscheen op 20 januari 2014 — één dag na de kernelintegratie. Dit gaf gebruikers een stabiele tool om in productieomgevingen met nftables te werken.

De nieuwste release is versie 1.1.6, uitgebracht op 5 december 2025. De nftables-wiki bevestigt dat er releases zijn bijgehouden tot minstens 30 april 2025 (versie 1.1.3). Het project wordt actief onderhouden.

Stappen: aan de slag met nftables

1. Controleer of nftables beschikbaar is

nft --version

Dit toont de versie van de nft-tool. Als het commando niet gevonden wordt, installeer dan eerst het pakket.

2. Bekijk de huidige ruleset

sudo nft list ruleset

Dit toont alle bestaande tabellen, chains en regels. Op een nieuw systeem is dit leeg of toont het alleen de standaardconfiguratie van je distributie.

3. Maak een tabel aan

sudo nft add table inet filter

Dit creëert een tabel genaamd "filter" voor de familie "inet". De familie `inet` behandelt zowel IPv4 als IPv6 in één tabel — dit is het grote voordeel ten opzichte van iptables, waar je aparte tabellen nodig had.

Andere families zijn `ip` (alleen IPv4), `ip6` (alleen IPv6), `arp` en `bridge`.

4. Voeg een chain toe

sudo nft add chain inet filter input { type filter hook input priority 0 \; policy accept \; }

Dit voegt een chain toe met de naam "input" die gekoppeld is aan de input-hook. De policy staat op `accept`, wat betekent dat alle pakketten standaard worden doorgelaten. De backslashes zijn nodig om de accolades en puntkomma's te escapen voor de shell.

Je hebt drie standaard hooks: `input` (inkomende pakketten), `output` (uitgaande pakketten) en `forward` (doorgestuurde pakketten).

5. Voeg een regel toe

sudo nft add rule inet filter input tcp dport 22 accept

Dit accepteert inkomend TCP-verkeer op poort 22 (SSH). De syntax is logisch opgebouwd: eerst de tabel, dan de chain, dan de match-criteria, dan de actie.

Wil je al het andere verkeer blokkeren, voeg dan na deze regel een drop-regel toe:

sudo nft add rule inet filter input drop

6. Sla de configuratie op

sudo nft list ruleset > /etc/nftables.conf

nftables-regels zijn niet persistent na een herstart. Door de ruleset naar het configuratiebestand te schrijven, laadt het systeem de regels automatisch bij het opstarten.

7. Herlaad de configuratie

sudo nft -f /etc/nftables.conf

Dit leest het configuratiebestand en past alle regels toe. Gebruik dit na het bewerken van het bestand of na een herstart van de service.

8. Gebruik sets voor efficiëntere regels

sudo nft add set inet filter blacklist { type ipv4_addr \; }
sudo nft add element inet filter blacklist { 192.168.1.100, 10.0.0.5 }
sudo nft add rule inet filter input ip saddr @blacklist drop

Sets zijn geavanceerde datastructuren die efficiënter zijn dan lineaire regelketens. De kernel evalueert regels via hashtabellen of radixbomen, wat snellere lookup-tijden geeft bij grote regelsets. Je kunt sets ook dynamisch bijwerken zonder de volledige ruleset te herladen — essentieel in cloud- en containeromgevingen.

Verificatie

Controleer of je firewall correct werkt:

sudo nft list ruleset

Dit toont de volledige configuratie. Je zou je tabel, chain en regels moeten zien. Test vervolgens de verbinding naar een geblokkeerd IP-adres:

ping -c 3 192.168.1.100

Als de regel werkt, krijg je geen antwoord. Voor een geautomatiseerde check met JSON-output:

sudo nft -j list ruleset

Dit genereert JSON die je kunt verwerken met monitoringtools of logging-systemen.

Veelgestelde problemen

Probleem: nft commando niet gevonden Installeer het pakket:

sudo apt install nftables

Op RHEL/Fedora:

sudo dnf install nftables

Probleem: foutmelding "Operation not permitted" bij het toevoegen van regels Je hebt root-rechten nodig. Gebruik sudo of log in als root. Controleer ook of de kernel nftables ondersteunt:

cat /proc/net/netfilter/nf_tables

Als dit bestand niet bestaat, ondersteunt je kernel nftables niet of is de module niet geladen.

Probleem: regels zijn verdwenen na herstart Schrijf de ruleset naar het configuratiebestand en zorg dat de service actief is:

sudo systemctl enable nftables
sudo systemctl start nftables

Integratie met andere systemen

firewalld, de standaard firewall-daemon van Red Hat-gebaseerde systemen, gebruikt nftables als standaard backend. Gebruikers die firewalld gebruiken, werken dus al met nftables zonder het te weten.

Docker ondersteunt nftables experimenteel vanaf Docker Engine 29.0.0. Je kunt de backend instellen met:

dockerd --firewall-backend=nftables

Deze ondersteuning is nog experimenteel. De regels voor overlay-netwerken (Docker Swarm) zijn nog niet gemigreerd, dus je kunt nftables niet inschakelen wanneer Docker in Swarm-modus draait.

Monitoring en debugging

Het commando `nft monitor` toont real-time wijzigingen in de firewall:

sudo nft monitor rules

Dit volgt alleen regelwijzigingen — toevoegingen, verwijderingen en aanpassingen. Voor geautomatiseerde systemen:

sudo nft -j monitor

Dit genereert JSON-output die je kunt integreren met monitoringtools.

Beveiliging

nftables vereenvoudigt de kernelinterface tot één systeemoproep (`nft`), wat het aanvalsoppervlak verkleint. Je hebt fijne controle over welke gebruikers of processen regels mogen aanpassen. Dit verbetert het beheer van toegang tot de firewall.

De ontwikkeling van nftables loopt door. Het project past zich aan aan de eisen van moderne netwerkomgevingen — van on-premise servers tot cloudinfrastructuur en containers. Met ondersteuning van Red Hat via firewalld, Docker en de Linux-kernel zelf is nftables geen alternatief meer, maar de standaard. De vraag is niet of je overstapt, maar wanneer je de overstap maakt — en of je legacy iptables-configuraties nog nodig hebt tegen de tijd dat de laatste iptables-ondersteuning verdwijnt.

← Terug naar kennisbank
← Terug naar kennisbank