Verdict map for port dispatch

vmap maps keys to verdicts in O(1); replaces a chain of dport == rules

nft add rule inet filter input tcp dport vmap '{ 22 : accept, 80 : accept, 443 : accept, 3306 : drop }'

tool
nftables12 commands
tags
nftablesnetworkperformancefirewall

More nftables commands

  • nft -a list ruleset

    -a prints '# handle N' per rule; you need the handle to delete a single rule

  • nft delete rule inet filter input handle 7

    Surgical removal without flushing; get the handle from nft -a list ruleset

  • nft add rule inet filter input tcp dport 22 counter accept comment \"ssh\"

    Inline counter tracks packets/bytes; reset with nft reset counters inet filter

  • nft add rule ip nat postrouting oifname \"eth0\" masquerade

    Source-NAT egress to the iface IP; needs a nat-type postrouting chain to exist

  • nft add rule ip nat prerouting iif \"eth0\" tcp dport 443 dnat to 10.0.0.5:8443

    Destination-NAT inbound to a backend; pair with a forward-chain accept rule

all 12 nftables commands