在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
安全配置建议
- 设置合理的超时时间,通常设置为300秒(5分钟)
- 配置失败连接阈值,如5次尝试后封禁1分钟
- 定期清理recent表,避免内存占用过多
复现步骤
- 使用telnet命令测试SSH连接
- 观察iptables日志确认规则生效
- 检查
/proc/net/xt_recent/目录下的IP列表
此配置可有效防止自动化扫描攻击,但需注意合理设置阈值避免误封正常用户。

讨论