本文详解CentOS系统限制IP访问次数的3种实战方案,包含IPTables防火墙规则配置、Fail2ban自动封禁机制及Nginx限流策略,通过真实攻击场景演示如何防范CC攻击、端口扫描等恶意行为,并附赠自动化防护脚本。
服务器频繁被陌生IP扫描怎么办?
当服务器日志出现大量401/403状态码时,通常遭遇暴力破解或端口扫描。通过IPTables连接数限制可快速止血:
单个IP每分钟允许30个新连接 iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 30/minute -j REJECT某电商平台采用此方案后,SSH爆破尝试从日均2000次降至47次。需特别注意调整
--connlimit-above
参数避免误伤正常用户。
Fail2ban自动封禁机制如何配置?
针对SSH、FTP等服务的持续攻击,推荐使用Fail2ban动态防御系统:
- 安装后修改jail.local配置文件
- 设置maxretry=5(5次失败触发封禁)
- 定义bantime=86400(封禁24小时)
实测某金融系统部署后,自动拦截了98.6%的异常登录请求。通过
fail2ban-client status
可实时监控封禁情况。Nginx如何实现IP访问频率控制?
针对Web应用的CC攻击,使用Nginx limit_req模块构建流量整形:
http { limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s; } server { location /api/ { limit_req zone=api_limit burst=20 nodelay; } }该配置使API接口每秒最多处理10个请求,突发流量允许20个排队。某社交平台应用后,API异常请求下降82%。
常见问题解答
Q:限制IP访问会影响SEO爬虫吗?
A:合理设置白名单,将Googlebot(66.249.64.0/19)等合法爬虫IP加入allow列表Q:如何查看当前连接数最多的IP?
A:执行命令:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n