[心得] nftables 嘗鮮中
昨天稍微嘗試一下 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 實際使用時的命令之
類的,也許之後有機會再寫了,我認為要知道的幾件事寫出來後,就
開始想富奸化,總之先寫到這邊了,之後有想補充會繼續寫在這篇。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.22.52
※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1400672898.A.7F1.html
推
05/22 00:09, , 1F
05/22 00:09, 1F
推
05/22 01:16, , 2F
05/22 01:16, 2F
→
05/22 01:16, , 3F
05/22 01:16, 3F
我個人會期待 Arch 跟 Gentoo 使用者的測試分享,這兩個發行版比
較可能先衝上去。
※ 編輯: drm343 (36.236.23.3), 05/22/2014 19:14:51
→
05/22 22:17, , 4F
05/22 22:17, 4F
→
05/23 23:01, , 5F
05/23 23:01, 5F
→
05/23 23:02, , 6F
05/23 23:02, 6F
推
05/25 12:11, , 7F
05/25 12:11, 7F