nftable防火墙-理论

nftable防火墙-理论

1.简介

  • nftables 是 Linux 内核中的一种现代防火墙框架,旨在替代传统的 iptablesip6tables。它提供了更高效、更灵活和更强大的网络过滤和地址转换功能。

2.理论

1.地址簇

  • 用来定义网络协议类型
  • 常见的地址簇有:IPv4(默认)、IPv6、arp、bridge、inet

2.钩子

  • 用于指定规则在何时触发
  • 常见的钩子点有:
    1. input:数据包到达系统的入口时
    2. output:数据包到达系统的出口时
    3. forward:数据包转发时
    4. prerouting:在数据包到达系统后,但在进行任何路由决策之前
    5. postrouting:在数据包经过路由决策后,但在数据包被发送到网络接口之前。

3.规则集

    1. 表是规则集的最高层次容器,每个表可以包含多个链
    2. 表名大多数用链类型+地址簇命名
    1. 大多以钩子点命名
    2. 链类型:
      • filter:用于过滤
      • nat:用于地址转换
      • route:用于路由
      • mangle:用于修改头部
  • 规则
    1. 条件
      • 源目地址:saddr、daddr
      • 源目端口:sport、sport
      • 协议:tcp、udp、icmp、smtp
      • 出入口:iifname、oifname
      • 标志:SYN、ACK
      • 元数据
    2. 动作
      • 同意、拒绝、丢弃:accept、reject、drop
      • 地址转换:masquerade、dnat、snat
      • 其他:log、return、jump、queue

4.集合

  • 用于存储元素
  • 类型:
    1. ipv4_addr:IPv4
    2. ipv6_addr:IPv6
    3. inet_service:服务端口
    4. ether_addr:以太网MAC
    5. ifname:接口
    6. interval:值区间

5.字典

  • 用于存储键值元素
  • 类型同集合
    • 值类型
    • 键类型

6.元素

  • 存储在集合和字典中
  • 每种元素类型都有其对应的格式

7.备份/恢复

  • 用于备份和恢复规则集

8.优先级

  • 简介
    • 优先级是一个整数值,用于确定链在同一个钩子点上的执行顺序。
    • 优先级数值越小,优先级越高,链会被更早地处理
  • 常见钩子的默认优先级
    • prerouting:
      • 默认优先级: -300
    • input:
      • 默认优先级: 0
    • forward:
      • 默认优先级: 0
    • output:
      • 默认优先级: 0
    • postrouting:
      • 默认优先级: 100
  • 规则集中的优先级
      • 表本身没有优先级,但表中的链可以有不同的优先级。
      • 表的处理顺序通常是按照配置文件中定义的顺序进行的。
      • 链的优先级是一个整数值,用于确定链在同一个钩子点上的执行顺序。
      • 优先级数值越小,优先级越高,链会被更早地处理。
    • 规则
      • 规则按添加的顺序依次执行,直到有一条规则匹配并执行了一个终止动作。

9.数据包处理概述

  • 在 nftables中,数据包的处理流程分为多个阶段,每个阶段由一个钩子点表示。在每个钩子点上,可以有多个链,每个链有一个优先级,系统会根据链的优先级来决定数据包的处理顺序

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

证明你是人: 4   +   3   =