什么是netfilter.org项目
- netfilter项目是一个社区驱动的协作的FOSS(自由开放源码软件)项目,该项目为2.4.x及后期内核系列Linux内核提供了包过滤功能。netfilter项目通常与iptables和它的接班人nftables配合使用。
- netfilter 项目支持数据包过滤、网络地址 [和端口] 转换 (NA[P]T)、数据包日志记录、用户空间数据包排队和其他数据包处理。
- netfilter hooks 是 Linux 内核中的一个框架,它允许内核模块在 Linux 网络堆栈的不同位置注册回调函数。 然后,为遍历 Linux 网络堆栈中相应挂钩的每个数据包回调注册的回调函数。
- iptables 是一个通用的防火墙软件,允许您定义规则集。 IP 表中的每个规则都由许多分类器(iptables 匹配项)和一个连接的 *** 作(iptables 目标)组成。
- nftables 是 iptables 的继承者,它允许更灵活、可扩展和性能更高的数据包分类。 这是开发所有花哨的新功能的地方。
主要特性
- 无状态数据包包过滤(IPv4 和 IPv6)
- 有状态数据包包过滤(IPv4 和 IPv6)
- 各种网络地址和端口转换,例如 NAT/NAPT(IPv4 和 IPv6)
- 灵活和可扩展的基础设施
- 用于第 3 方扩展的多层 API
我们可以用netfilter做什么?
- 构建基于无状态和有状态包过滤的互联网防火墙
- 部署高可用的无状态和有状态防火墙集群
- 在没有足够的公共 IP 地址的情况下,使用 NAT 和伪装来共享互联网访问
- 使用 NAT 实现透明代理
- 帮助用于构建复杂的 QoS 和策略路由器的 tc 和 iproute2 系统
- 做进一步的数据包 *** 作(修改),比如改变 IP 标头的 TOS/DSCP/ECN 位
nftables提供了什么价值?
-
具有一致语法的单一工具,而不是碎片化的 {ip,ip6,eb,arp} 表和 ipset
-
set 比 ipset 更灵活和强大,maps 进一步推动了这个概念
-
完整的规则集灵活性:
- 没有预定义的表和链
- 可以通过任意数量的用户自定义表将规则集分配到“命名空间”
- 基本链的钩子和优先级是可配置的
-
更灵活的规则:没有强制部分(如计数器),允许多个 *** 作(例如记录和删除)
-
可以通过入口钩子将一条链附加到一个接口,以在TC之后进行早期过滤
-
流表提供了软件快速路径和硬件加速
-
语法中嵌入了一些有限的脚本编写能力(定义变量,包括其他文件),支持通过 JSON 输入和输出进行广泛的脚本编写
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)