nftables

最後更新: 2022-01-12

前言

在 Rocky8 上執行 "iptables -nL" 看不到 rule 輸出 ?!

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

所以想看 rule 的話就要行

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 用於 filtering and classification

nft -v

nftables v1.0.2 (Lester Gooch)

nft list ruleset

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

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

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

 

Include

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

 

 

Creative Commons license icon Creative Commons license icon