Red Hat Training

A Red Hat training course is available for RHEL 8

7.3.7. 在 nftables 链的特定位置插入规则

本节介绍如何在 nftables 链中现有规则前后插入规则。这样,您可以将新规则置于正确的位置。

先决条件

  • 存在您要添加规则的链。

流程

  1. 使用 nft -a list ruleset 命令显示 example_table 中的所有链及其规则,包括其句柄:

    # nft -a list table inet example_table
    table inet example_table { # handle 1
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport 22 accept # handle 2
        tcp dport 443 accept # handle 3
        tcp dport 389 accept # handle 4
      }
    }

    使用 -a 可显示句柄。您需要此信息才能在后续步骤中定位新规则。

  2. example_table 中的 example_chain 链中插入新规则

    • 要在处理 3 前插入允许 port636 上的 TCP 流量的规则,请输入

      # nft insert rule inet example_table example_chain position 3 tcp dport 636 accept
    • 要在句柄 3 后添加允许端口 80 上的 TCP 流量的规则,请输入:

      # nft add rule inet example_table example_chain position 3 tcp dport 80 accept
  3. 另外,还可在 example_table 中显示所有链及其规则:

    # nft -a list table inet example_table
    table inet example_table { # handle 1
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport 22 accept # handle 2
        tcp dport 636 accept # handle 5
        tcp dport 443 accept # handle 3
        tcp dport 80 accept # handle 6
        tcp dport 389 accept # handle 4
      }
    }

其它资源

  • nft(8)man page 中的 地址系列部分
  • n ft(8)man page 中的 Rules 部分