nftables

最後更新: 2022-01-12

前言

在 Rocky8 上行 "iptables -nL" 沒 rule

原因: firewalld 轉用了 nftables backend (以前係用 iptables 的)

所以想看 rules 的話就要

nft list ruleset

Why replace iptables?

1. 在 iptables 年代, kernel 係唔知 rule  的加減及修改的, 每次都係整套 rules 重灌

   (連統計資料都係重灌進去的 @@|| )

2. Atomic rules updates.

 


Install

 

dnf install nftables

Service

systemctl start nftables

systemctl enable nftables

 


Basic CLI

 

nft list ruleset

nft list chain ip filter INPUT      # iptables -L INPUT

nft list chain ip nat PREROUTING    # iptables -t nat -L PREROUTING

 


Scripts

 

/etc/nftables/example_firewall.nft

#!/usr/sbin/nft -f

Variables

define INET_DEV = enp1s0
add rule inet example_table example_chain iifname $INET_DEV tcp dport ssh accept

Include

include "/etc/nftables/rulesets/*.nft"