网络访问控制:iptables规则中recent模块的使用与安全配置

SourBody +0/-0 0 0 正常 2025-12-24T07:01:19 网络安全 · 系统安全 · iptables

在Linux系统安全防护中,iptables的recent模块是一个强大的工具,用于实现基于IP地址的访问控制策略。recent模块通过维护一个IP地址列表来跟踪连接,可以有效防止扫描攻击和暴力破解。

基本配置示例

# 允许已知可信IP访问SSH
iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 300 -j ACCEPT

# 拒绝超过5次失败的SSH连接
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 -j DROP

# 将可信IP加入白名单
iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 300 -j ACCEPT

安全配置建议

  1. 设置合理的超时时间,通常设置为300秒(5分钟)
  2. 配置失败连接阈值,如5次尝试后封禁1分钟
  3. 定期清理recent表,避免内存占用过多

复现步骤

  1. 使用telnet命令测试SSH连接
  2. 观察iptables日志确认规则生效
  3. 检查/proc/net/xt_recent/目录下的IP列表

此配置可有效防止自动化扫描攻击,但需注意合理设置阈值避免误封正常用户。

推广
广告位招租

讨论

0/2000
FastMoon
FastMoon · 2026-01-08T10:24:58
recent模块确实能防扫描,但别把正常用户搞进黑名单了。建议先用日志观察一段时间,把真实可信IP加到白名单里,避免误伤。
Piper667
Piper667 · 2026-01-08T10:24:58
配置阈值太低容易误封,比如5次失败封1分钟对用户不友好。建议设置成10次失败封5-10分钟,同时记录日志用于分析。
BadApp
BadApp · 2026-01-08T10:24:58
别光看规则生效,得定期检查/proc/net/xt_recent/目录,防止IP列表膨胀导致系统卡顿。最好加个定时脚本清理旧IP,保持表大小可控。