最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何配置 iptables 实现特定业务端口的访问限流
时间:2026-06-20 10:31:53 编辑:袖梨 来源:一聚教程网
iptables的hashlimit模块可基于源IP对特定端口新建连接速率精准限流,如SSH端口每分钟最多5次、突发10次,需配合--state NEW、--hashlimit-mode srcip及DROP规则实现节奏控制,避免误断已建连接。
要对特定业务端口做访问限流,关键不是封禁,而是控制单位时间内的连接或请求节奏。iptables 本身不处理应用层逻辑,但通过 hashlimit 模块可基于连接新建速率(如每分钟多少个新 TCP 连接)实现精准、按源区分的限流,适合保护 SSH、API 端口等核心服务。
明确目标端口与限流维度
先确认你要保护的服务端口,例如:
- SSH 管理:TCP 22
- Web 接口:TCP 80 / 443 / 8080
- 数据库:TCP 3306(仅内网)、5432
限流需绑定协议 + 目标端口,并决定按什么维度独立计数——最常用的是 srcip(每个 IP 单独限流),避免误伤正常用户;若同一 IP 访问多个端口需互不影响,可用 srcip,dstport。
基础限流规则写法(以 SSH 为例)
限制单个 IP 对 22 端口的新建连接不超过每分钟 5 次,允许短时突发 10 次:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit-above 5/min --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-name ssh_limit --hashlimit-htable-expire 300000 -j DROP
注意:--state NEW 必须加上,否则会把 ACK、FIN 等包也纳入统计,导致已建立连接被误断。
配合白名单与默认策略更安全
限流规则不能 standalone 使用,必须嵌入完整防护链中:
- 先设置默认策略:
iptables -P INPUT DROP - 再放行基础流量:lo 回环、ESTABLISHED/RELATED 连接、必要 ICMP
- 然后放行业务端口(如 80、443),再插入限流规则(顺序很重要)
- 对管理端口如 22,建议叠加源 IP 限制:
-s 203.0.113.45,双重防护
常见组合与避坑提醒
根据业务场景微调参数:
- Web 端口(80/443)若想防扫描,可降低速率(如
--hashlimit-above 20/min),并设较短过期时间(--hashlimit-htable-expire 60000) - 避免用
--hashlimit-mode dstport单独限端口——它会对所有源 IP 共享一个桶,容易误伤 - 不要混用 hashlimit 和 connlimit:前者控“新建连接频率”,后者控“并发连接数”,用途不同
- 规则生效后用
iptables -L INPUT -n -v查看匹配计数,验证是否触发
相关文章
- 明末渊虚之羽版本奖励错误如何补偿 07-01
- 原神峡谷盈月之镜解谜方法 07-01
- 末日进化如何升级人物卡 07-01
- 魔兽世界卡格罗什的命运背包位置在哪 07-01
- 沙石镇时光体力恢复方法大全 沙石镇时光快速回满体力的实用技巧 07-01
- 空洞骑士寻神者篇章攻略 07-01