码迷,mamicode.com
首页 > 系统相关 > 详细

linux nftables简介和基础操作

时间:2018-01-27 13:42:52      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:补丁   工具   定义   tab   net   种类型   兼容   决定   速度   

一、什么是nftables?  

nftables 是新的数据包分类框架,新的linux防火墙管理程序,旨在替代现存的 {ip,ip6,arp,eb}_tables。简而言之:

  • 它在 Linux 内核版本高于 3.13 时可用。

  • 它有一个新的命令行工具 ntf,它的语法与 iptables 不同。

  • 它也包含了一个兼容层,让你在新的 nftables 内核框架之上运行 iptables 命令。

  • 它提供了通用的集合基础允许你建立映射和关联。你可以使用这个新特性把你的规则集分类到多维树中,这大大地减少了找到包最终的行为之前需要检查的规则的数量。

二、nftables 特点

  • 拥有一些高级的类似编程语言的能力,例如定义变量和包含外部文件,即拥有使用额外脚本的能力。nftables也可以用于多种地址簇的过滤和处理。

  • 不同于iptables, nftables并不包含任何的内置表。由管理员决定需要哪些表并添加这些表的处理规则。

  • 表包含规则链,规则链包含规则。

三、相比于iptables优点

  • 更新速度更快。在iptables中添加一条规则,会随着规则数量增多而变得非常慢,这也就解释了为什么调用iptables的脚本需要花很久才完成。这种状况对nftables而言就不存在了。nftables使用原子的快速操作来更新规则集合。

  • 内核更新更少。使用iptables,每一个匹配或投递都需要内核模块的支持。因此,如果你忘记一些东西或者要添加新的功能时都需要重新编译内核。nftables就不存在这种状况了。在nftables中,大部分工作是在用户态完成的,内核只知道一些基本指令(过滤是用伪状态机实现的)。例如,icmpv6 支持是通过nft工具的一个简单的补丁实现的。在iptables中这种类型的更改需要内核和iptables都升级才可以。

四、基础操作

1、增

增加表:nft add table fillter 

增加链:nft add chain filter input { type filter hook input priority 0 \; } # 要和hook(钩子)相关连

增加规则:nft add rule filter input tcp dport 22 accept

2、删

只需要把上面的 add 改为 delete 即可

3、改

更改链名用rename

更改规则用replace

4、查

nft list ruleset # 列出所有规则

nft list tables # 列出所有表

nft list table filter # 列出filter表

nft chain filter input # 列出filter表input链

以上命令后面也可以加 -nn  用于不解析ip地址和端口

加 -a 用于显示 handles


操作手册可参考 nftables-wiki  和  nftables-manpage


linux nftables简介和基础操作

标签:补丁   工具   定义   tab   net   种类型   兼容   决定   速度   

原文地址:http://blog.51cto.com/babyshen/2065749

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!