Red Hat Training

A Red Hat training course is available for RHEL 8

47.9.2. 在一分钟内尝试超过十个进入的 TCP 连接的 IP 地址

您可以在一分钟内临时阻止建立十个 IPv4 TCP 连接的主机。

流程

  1. 创建具有 ip 地址系列的 filter 表:

    # nft add table ip filter
  2. filter 表中添加 input 链:

    # nft add chain ip filter input { type filter hook input priority 0 \; }
  3. 添加一条规则,其丢弃来自源地址的所有数据包,并尝试在一分钟内建立十个 TCP 连接:

    # nft add rule ip filter input ip protocol tcp ct state new, untracked meter ratemeter { ip saddr timeout 5m limit rate over 10/minute } drop

    timeout 5m 参数定义 nftables 在五分钟后自动删除条目,以防止计量被过时的条目填满。

验证

  • 要显示 meter 的内容,请输入:

    # nft list meter ip filter ratemeter
    table ip filter {
      meter ratemeter {
        type ipv4_addr
        size 65535
        flags dynamic,timeout
        elements = { 192.0.2.1 limit rate over 10/minute timeout 5m expires 4m58s224ms }
      }
    }