tldr/pages/linux/nft.md

1.1 KiB

nft

Allows configuration of tables, chains and rules provided by the Linux kernel firewall. Nftables replaces iptables. More information: https://wiki.nftables.org/wiki-nftables/index.php/Main_Page.

  • View current configuration:

sudo nft list ruleset

  • Add a new table with family "inet" and table "filter":

sudo nft add table {{inet}} {{filter}}

  • Add a new chain to accept all inbound traffic:

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

  • Add a new rule to accept several TCP ports:

sudo nft add rule {{inet}} {{filter}} {{input}} {{tcp}} {{dport \{ telnet, ssh, http, https \} accept}}

  • Add a NAT rule to translate all traffic from the 192.168.0.0/24 subnet to the host's public IP:

sudo nft add rule {{nat}} {{postrouting}} ip saddr {{192.168.0.0/24}} {{masquerade}}

  • Show rule handles:

sudo nft --handle --numeric list chain {{family}} {{table}} {{chain}}

  • Delete a rule:

sudo nft delete rule {{inet}} {{filter}} {{input}} handle {{3}}

  • Save current configuration:

sudo nft list ruleset > {{/etc/nftables.conf}}