Red Hat Training

A Red Hat training course is available for RHEL 8

7.8. 使用 nftables 来限制连接数量

您可以使用 nftables 来限制连接数量或阻止建立给定连接量的 IP 地址,以防止它们使用过多的系统资源。

7.8.1. 使用 nftables 限制连接数量

nft 实用程序的 ct count 参数允许管理员限制连接数量。这个步骤描述了如何限制进入的连接的基本示例。

先决条件

  • example_table 中的基本 example_chain 存在。

流程

  1. 添加一条规则,该规则只允许从 IPv4 地址同时连接到 SSH 端口(22),并从同一 IP 拒绝所有后续连接:

    # nft add rule ip example_table example_chain tcp dport ssh meter example_meter { ip saddr ct count over 2 } counter reject
  2. 另外,还可以显示上一步中创建的 meter:

    # nft list meter ip example_table example_meter
    table ip example_table {
      meter example_meter {
        type ipv4_addr
        size 65535
        elements = { 192.0.2.1 : ct count over 2 , 192.0.2.2 : ct count over 2  }
      }
    }

    元素 条目显示目前与该规则匹配的地址。在本例中,元素 列出了已连接到 SSH 端口的 IP 地址。请注意,输出不会显示活跃连接的数量,或者连接是否被拒绝。