Red Hat Training
A Red Hat training course is available for RHEL 8
8.9. 使用 nftables 来限制连接数量
您可以使用 nftables
来限制连接数或限制到建立给定数量连接的块 IP 地址,以防止它们使用太多的系统资源。
8.9.1. 使用 nftables 限制连接数量
nft
工具的 ct count
参数使管理员能够限制连接数。这个步骤描述了如何限制进入的连接的基本示例。
前提条件
-
example_table
中的基础example_chain
存在。
流程
为 IPv4 地址创建动态集合:
# nft add set inet example_table example_meter { type ipv4_addr\; flags dynamic \;}
添加一条规则,该规则只允许从 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
可选:显示上一步中创建的集合:
# nft list set inet example_table example_meter table inet 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 } } }
elements
条目显示当前与该规则匹配的地址。在本例中,elements
列出了与 SSH 端口有活动连接的 IP 地址。请注意,输出不会显示活跃连接的数量,或者连接是否被拒绝。