netwerkbeveiliging

Firewall instellen met nftables

nftables is de opvolger van iptables en is standaard beschikbaar op moderne Linux-distributies zoals Debian 12, Ubuntu 22.04 en Fedora. De syntax is overzichtelijker en de prestaties zijn beter dankzij één kernel-interface voor IPv4 én IPv6.

Installeren en inschakelen

sudo apt install nftables        # Debian/Ubuntu
sudo systemctl enable --now nftables

Huidige regels bekijken

sudo nft list ruleset

Na een verse installatie is de ruleset leeg.

Een basisconfiguratie

Sla het volgende op als /etc/nftables.conf:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        # Bestaande verbindingen toestaan
        ct state established,related accept

        # Loopback altijd toestaan
        iif lo accept

        # SSH openhouden
        tcp dport 22 accept

        # HTTP en HTTPS
        tcp dport { 80, 443 } accept

        # ICMP (ping)
        ip  protocol icmp   accept
        ip6 nexthdr  icmpv6 accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Laad de configuratie:

sudo nft -f /etc/nftables.conf

Een poort tijdelijk openen

sudo nft add rule inet filter input tcp dport 8080 accept

Dit is niet persistent — na een herstart vervalt de regel. Voeg de regel toe aan /etc/nftables.conf voor een permanente instelling.

Een specifiek IP-adres blokkeren

sudo nft add rule inet filter input ip saddr 203.0.113.5 drop

Regels opslaan en herladen

sudo nft list ruleset > /etc/nftables.conf   # opslaan
sudo systemctl restart nftables              # herladen

Vergelijking met iptables

iptablesnftables
iptables -A INPUT -p tcp --dport 22 -j ACCEPTnft add rule inet filter input tcp dport 22 accept
Aparte commando's voor IPv4/IPv6Één tabel voor beide
Geen ingebouwde setsSets en mappen ingebouwd

Voor bestaande iptables-regels biedt het pakket iptables-translate een automatische vertaaltool.