服务器遭遇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 numbered

3. 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.v4

4. 使用Cloudflare免费版(强烈推荐)

Cloudflare免费版是防御CC攻击性价比最高的方案:

  1. 将域名NS服务器改为Cloudflare提供的地址
  2. 开启"橙云代理",隐藏真实服务器IP
  3. 开启"Under Attack Mode"(受攻击模式),自动对所有访问者进行JS验证
  4. 在防火墙规则中屏蔽可疑国家/地区或异常UA

四、中级防御方案(低成本)

5. 安装ModSecurity WAF

apt install libmodsecurity3 libnginx-mod-http-modsecurity -y

# 启用OWASP规则集
git clone https://github.com/coreruleset/coreruleset /etc/nginx/modsecurity/crs

6. 宝塔面板内置防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元/月
阿里云/腾讯云高防IPT级防护,弹性付费超大流量业务按攻击量计费

六、被攻击时的应急处置步骤

  1. 立即开启Cloudflare受攻击模式(若已配置)
  2. 检查攻击来源IP段,批量封禁
  3. 临时关闭高消耗路径(如搜索接口、登录页)
  4. 联系服务商开启流量清洗或更换IP
  5. 攻击结束后分析日志,加固防护规则

七、总结

大多数中小型网站遭遇的CC攻击,通过Nginx限流 + Cloudflare免费版即可有效防御,无需额外花费。IDC.Net的香港服务器交付时提供免费基础安全加固,且在非客户原因导致IP被封时提供24小时内免费换IP保障。如需更高防护,可升级至香港高防服务器方案。

THE END