nftables 数据包过滤器 0.9.3 发布

发表 数据包过滤器释放 nftables 0.9.3,通过统一 IPv6、IPv4、ARP 和网桥的数据包​​过滤接口,开发作为 iptables、ip6table、a​​rptables 和 ebtables 的替代品。 nftables 软件包包括在用户空间中运行的数据包过滤器组件,而内核级工作由 nf_tables 子系统提供,该子系统自 3.13 版本以来一直是 Linux 内核的一部分。 nftables 0.9.3 版本正常工作所需的更改包含在即将发布的 Linux 5.5 内核分支中。

内核层仅提供通用的与协议无关的接口,提供从数据包中提取数据、执行数据操作和流量控制的基本功能。 过滤逻辑本身和特定于协议的处理程序在用户空间中编译为字节码,然后使用 Netlink 接口将该字节码加载到内核中,并在特殊的虚拟机(例如 BPF(伯克利数据包过滤器))中执行。 这种方法允许您显着减少在内核级别运行的过滤代码的大小,并将用于处理协议的解析规则和逻辑的所有功能移至用户空间。

主要创新:

  • 支持按时间匹配数据包。您可以定义触发规则的时间和日期范围,并配置在一周中的个别日子触发。还添加了一个新选项“-T”以秒为单位显示纪元时间。

    元时间 \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    元时间“17:00”-“19:00”
    元日“星期五”

  • 支持恢复和保存 SELinux 标记 (secmark)。

    ct secmark 设置元secmark
    元安全标记 设置 ct 安全标记

  • 支持同步代理映射列表,允许您为每个后端定义多个规则。

    表 ip foo {
    synproxy https-synproxy {
    女士 1460
    尺度7
    时间戳 sack-perm
    }

    synproxy 其他 Synproxy {
    女士 1460
    尺度5
    }

    链预{
    类型过滤器钩子预路由优先级原始; 政策接受;
    tcp dport 8888 tcp 标志 syn notrack
    }

    链杆{
    类型过滤器钩子转发优先级过滤器; 政策接受;
    ct 状态无效,未跟踪的 synproxy 名称 ip Saddr 映射 { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • 从数据包处理规则中动态删除集合元素的能力。

    nft 添加规则...删除@set5 { ip6 Saddr . ip6 爸爸}

  • 支持通过网桥接口元数据中定义的ID和协议进行VLAN映射;

    元 ibrpvid 100
    元 IBRV 协议 VLAN

  • 选项“-t”(“--terse”)在显示规则时排除集合集合的元素。运行“nft -t listruleset”将输出:

    表 ip x {
    设置 y {
    输入 ipv4_addr
    }
    }

    并使用“nft 列表规则集”

    表 ip x {
    设置 y {
    输入 ipv4_addr
    元素 = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34}
    }
    }

  • 能够在 netdev 链中指定多个设备(仅适用于内核 5.5)以组合常见的过滤规则。

    添加表 netdev x
    添加链 netdev xy { \
    输入过滤器钩子入口设备 = { eth0, eth1 } 优先级 0;
    }

  • 能够添加数据类型的描述。

    #nft 描述 ipv4_addr
    数据类型 ipv4_addr(IPv4 地址)(基本类型整数),32 位

  • 能够使用 linenoise 库而不是 libreadline 构建 CLI 界面。

    ./configure --with-cli=linenoise

来源: opennet.ru

添加评论