服务器遭遇DDoS/CC攻击全套应对:从检测到防御的零成本方案
香港服务器因免备案、低延迟的优势被大量站长使用,但同时也是恶意攻击的高发区。一旦遭受DDoS或CC攻击,轻则网站响应变慢,重则直接宕机。本文系统梳理攻击识别方法和防御方案,90%的措施零成本即可实现。
一、DDoS与CC攻击的区别
| 攻击类型 | 原理 | 主要表现 | 防御难度 |
|---|---|---|---|
| DDoS(流量型) | 大量肉鸡发送SYN/UDP/ICMP洪水,打满带宽 | 带宽跑满,服务器无响应 | 高,需硬防 |
| CC攻击(HTTP层) | 模拟正常HTTP请求,消耗CPU和数据库资源 | CPU 100%,页面502/504 | 中,软件可防 |
| 暴力破解 | 高频尝试SSH/后台密码 | auth.log异常,账号锁定 | 低,Fail2ban即可 |
| 慢速攻击 | 极慢发送请求,占满连接数 | 连接数满,新请求超时 | 中,Nginx配置可防 |
二、快速判断是否正在被攻击
检查服务器负载
# 查看实时负载
top
# 或使用htop(需安装)
htop
# 查看连接数(按IP统计)
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20检查网络流量
# 安装nethogs查看实时流量
apt install nethogs -y
nethogs eth0
# 查看当前连接状态统计
ss -s判断标准
- 某个IP的并发连接数超过100:疑似CC攻击来源
- 网络入站流量突然超过正常值的10倍以上:疑似DDoS
- CPU持续100%但正常流量不高:疑似CC或恶意爬虫
三、零成本防御方案(立即可用)
1. Nginx限流配置(防CC)
# nginx.conf http块中添加:
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=20r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
# server块中应用:
server {
limit_conn conn_limit 50; # 单IP最多50个并发连接
location / {
limit_req zone=req_limit burst=50 nodelay;
}
location /wp-login.php {
limit_req zone=req_limit burst=5 nodelay; # 登录页严格限制
}
}2. UFW防火墙封禁攻击IP
# 封禁单个IP
ufw deny from 攻击者IP to any
# 封禁IP段(CIDR)
ufw deny from 192.168.1.0/24 to any
# 查看封禁列表
ufw status numbered3. iptables限制连接频率
# 每秒允许同一IP新建连接不超过20个
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m limit --limit 20/s --limit-burst 100 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j DROP
# 保存规则
iptables-save > /etc/iptables/rules.v44. 使用Cloudflare免费版(强烈推荐)
Cloudflare免费版是防御CC攻击性价比最高的方案:
- 将域名NS服务器改为Cloudflare提供的地址
- 开启"橙云代理",隐藏真实服务器IP
- 开启"Under Attack Mode"(受攻击模式),自动对所有访问者进行JS验证
- 在防火墙规则中屏蔽可疑国家/地区或异常UA
四、中级防御方案(低成本)
5. 安装ModSecurity WAF
apt install libmodsecurity3 libnginx-mod-http-modsecurity -y
# 启用OWASP规则集
git clone https://github.com/coreruleset/coreruleset /etc/nginx/modsecurity/crs6. 宝塔面板内置防CC
若使用宝塔面板:安全 → 网站防火墙 → 防CC攻击,设置30秒内同IP请求超过60次自动封禁,封禁时间600秒。
7. 配置fail2ban针对Web请求
# /etc/fail2ban/jail.local 添加:
[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
logpath = /var/log/nginx/access.log
maxretry = 60
findtime = 30
bantime = 3600五、专业级防御(付费方案)
| 方案 | 防护能力 | 适用场景 | 参考费用 |
|---|---|---|---|
| Cloudflare Pro/Business | 无限DDoS防护 + WAF | 中大型网站 | $20~$200/月 |
| 香港高防服务器 | 10G~100G硬防 | 游戏、金融类高风险业务 | 500元~2000元/月 |
| 阿里云/腾讯云高防IP | T级防护,弹性付费 | 超大流量业务 | 按攻击量计费 |
六、被攻击时的应急处置步骤
- 立即开启Cloudflare受攻击模式(若已配置)
- 检查攻击来源IP段,批量封禁
- 临时关闭高消耗路径(如搜索接口、登录页)
- 联系服务商开启流量清洗或更换IP
- 攻击结束后分析日志,加固防护规则
七、总结
大多数中小型网站遭遇的CC攻击,通过Nginx限流 + Cloudflare免费版即可有效防御,无需额外花费。IDC.Net的香港服务器交付时提供免费基础安全加固,且在非客户原因导致IP被封时提供24小时内免费换IP保障。如需更高防护,可升级至香港高防服务器方案。
版权声明:
作者:后浪云
链接:https://idc.net/help/442690/
文章版权归作者所有,未经允许请勿转载。
THE END
