nftables 嘗鮮中 - Linux

By William
at 2014-05-21T19:48
at 2014-05-21T19:48
Table of Contents
昨天稍微嘗試一下 nftables ,基本概念跟 iptables 一樣,因為中
文資料不太多,所以我上來寫一些資料當參考,下面是我這台機器跟
參考資料來源。
發行版:Slackware64 14.1(已更新到 Current)
參考資料: Arch 跟 Gentoo 的 wiki 、netfilter 的 wiki。
安裝套件: nftables 跟 libnftnl
------------------------------------------------------------
我是神煩對齊線 ㄟ (o__ oㄟ) 吃我螳螂拳
------------------------------------------------------------
1.
nftables 最明顯的改變之一就是語法,過去指定參數時要用「 -參
數 資料」,現在簡化成「參數 資料」的格式,不需要多加負號。
2.
過去要打好幾行指令才能完成的動作,現在可以簡化成一行,例如下
面這兩行 iptables 的指令。
> iptables -A input -j LOG
> iptablse -A input -j ACCEPT
在 nftables 簡化成一條。
> nft add rule ip filter input log accept
3.
預設狀態下沒有 table 跟 chain,要自己設定,要類似 iptables
的 table 跟 chain 可以引入 /etc/nftables/ipv4-filter 這份
設定檔,除了跟過去一樣透過 bash 新增規則,也可用 ipv4-filter
的方式新增規則,這設定檔看起來有點像 Lisp ,我喜歡。^_^
4.
新增 family 的概念,一般常用的應該是 ip 跟 ip6 這兩個,前者
指 ipv4,後者指 ipv6 ,而操作 ip 此 family 就相當於直接使用
iptables 新增規則,ipv6 則相當於 ip6tables,以此類推,如果
操作時沒加上 family 則預設為 ip ,因為個別新增有點麻煩,之後
似乎會新增一個 inet family,操作 inet 等於同時操作 ip 跟 ip6
,下面兩個例子分別在 ipv4 跟 ipv6 中新增叫 filter 的 table。
> nft add table filter
> nft add table ip6 filter
5.
某些常用的 port 可以替換成文字,例如 80 可以直接寫 http 而不
是數字。
6.
修改規則有兩種命令,分別是 flush 跟 delete ,想用 delete 刪
除某個 table 或 chain,必須先使用 flush 清空整個 chain 或
table 才能刪除。
------------------------------------------------------------
沒梗富奸中的分隔線
------------------------------------------------------------
其實還有蠻多東西可以寫的,但幾乎都是 nft 實際使用時的命令之
類的,也許之後有機會再寫了,我認為要知道的幾件事寫出來後,就
開始想富奸化,總之先寫到這邊了,之後有想補充會繼續寫在這篇。
--
文資料不太多,所以我上來寫一些資料當參考,下面是我這台機器跟
參考資料來源。
發行版:Slackware64 14.1(已更新到 Current)
參考資料: Arch 跟 Gentoo 的 wiki 、netfilter 的 wiki。
安裝套件: nftables 跟 libnftnl
------------------------------------------------------------
我是神煩對齊線 ㄟ (o__ oㄟ) 吃我螳螂拳
------------------------------------------------------------
1.
nftables 最明顯的改變之一就是語法,過去指定參數時要用「 -參
數 資料」,現在簡化成「參數 資料」的格式,不需要多加負號。
2.
過去要打好幾行指令才能完成的動作,現在可以簡化成一行,例如下
面這兩行 iptables 的指令。
> iptables -A input -j LOG
> iptablse -A input -j ACCEPT
在 nftables 簡化成一條。
> nft add rule ip filter input log accept
3.
預設狀態下沒有 table 跟 chain,要自己設定,要類似 iptables
的 table 跟 chain 可以引入 /etc/nftables/ipv4-filter 這份
設定檔,除了跟過去一樣透過 bash 新增規則,也可用 ipv4-filter
的方式新增規則,這設定檔看起來有點像 Lisp ,我喜歡。^_^
4.
新增 family 的概念,一般常用的應該是 ip 跟 ip6 這兩個,前者
指 ipv4,後者指 ipv6 ,而操作 ip 此 family 就相當於直接使用
iptables 新增規則,ipv6 則相當於 ip6tables,以此類推,如果
操作時沒加上 family 則預設為 ip ,因為個別新增有點麻煩,之後
似乎會新增一個 inet family,操作 inet 等於同時操作 ip 跟 ip6
,下面兩個例子分別在 ipv4 跟 ipv6 中新增叫 filter 的 table。
> nft add table filter
> nft add table ip6 filter
5.
某些常用的 port 可以替換成文字,例如 80 可以直接寫 http 而不
是數字。
6.
修改規則有兩種命令,分別是 flush 跟 delete ,想用 delete 刪
除某個 table 或 chain,必須先使用 flush 清空整個 chain 或
table 才能刪除。
------------------------------------------------------------
沒梗富奸中的分隔線
------------------------------------------------------------
其實還有蠻多東西可以寫的,但幾乎都是 nft 實際使用時的命令之
類的,也許之後有機會再寫了,我認為要知道的幾件事寫出來後,就
開始想富奸化,總之先寫到這邊了,之後有想補充會繼續寫在這篇。
--
Tags:
Linux
All Comments

By Iris
at 2014-05-22T11:45
at 2014-05-22T11:45

By William
at 2014-05-23T08:20
at 2014-05-23T08:20

By Skylar Davis
at 2014-05-28T07:58
at 2014-05-28T07:58

By Lucy
at 2014-05-29T07:36
at 2014-05-29T07:36

By Olga
at 2014-05-31T07:49
at 2014-05-31T07:49

By Emily
at 2014-06-03T08:55
at 2014-06-03T08:55
Related Posts
Additional Add-On Services是什麼意思?

By John
at 2014-05-21T04:18
at 2014-05-21T04:18
Linux mint無法更改開機選單

By Wallis
at 2014-05-20T10:06
at 2014-05-20T10:06
Mint 安裝好 lxc 找不到 template

By Tom
at 2014-05-20T02:51
at 2014-05-20T02:51
HackingThursday 固定聚會 (2014-05-22)

By Kelly
at 2014-05-19T12:06
at 2014-05-19T12:06
kernel module 鍵盤控制螢幕

By Iris
at 2014-05-17T23:42
at 2014-05-17T23:42