17.2. 在一分钟内尝试超过十个进入的 TCP 连接的 IP 地址
您可以临时阻止在一分钟内建立十个 IPv4 TCP 连接的主机。
流程
创建具有
ip地址系列的filter表:nft add table ip filter
# nft add table ip filterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 向
filter表中添加input链:nft add chain ip filter input { type filter hook input priority 0 \; }# nft add chain ip filter input { type filter hook input priority 0 \; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
filter表中添加一个名为denylist的集合:nft add set ip filter denylist { type ipv4_addr \; flags dynamic, timeout \; timeout 5m \; }# nft add set ip filter denylist { type ipv4_addr \; flags dynamic, timeout \; timeout 5m \; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令为 IPv4 地址创建动态设置。
timeout 5m参数定义nftables在五分钟后自动删除条目,以防止集合被过时的条目填满。添加一条规则,该规则将在一分钟内试图建立十多个新 TCP 连接的主机源 IP 地址添加到
denylist集中:nft add rule ip filter input ip protocol tcp ct state new, untracked add @denylist { ip saddr limit rate over 10/minute } drop# nft add rule ip filter input ip protocol tcp ct state new, untracked add @denylist { ip saddr limit rate over 10/minute } dropCopy to Clipboard Copied! Toggle word wrap Toggle overflow