以下方法只适用与轻量的CC攻击防护,对于大规模的CC攻击,建议配合硬件防火墙或服务器集群来防护CC攻击。
使用 iptables 防护 CC 攻击
(1)限制同一 IP 每秒访问次数(超过即丢弃包)
例如:同一 IP 1 秒内请求80端口超过 20 次,则丢弃包:
sudo iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 1 --hitcount 20 -j DROP
(2)使用 Nginx 防护 CC 攻击 使用 limit_req 限制请求速率 编辑 Nginx 配置(*/nginx/nginx.conf 或站点配置):
http {
...
limit_req_zone $binary_remote_addr zone=cc_zone:10m rate=5r/s;
...
server {
location / {
limit_req zone=cc_zone burst=10 nodelay;
...
}
}
}
参数说明:
rate=5r/s:限制单 IP 每秒最多请求 5 次
burst=10:允许突发请求 10 次
nodelay:超过速率立即返回 503
修改后需要重载或重启nginx服务。
Copyright © 2013-2024 8a.hk All Rights Reserved. 八艾云 版权所有 中山市八艾云计算有限公司 粤ICP备14095776号 粤公网安备 44200002445359号
增值电信业务经营许可证编号:B1-20222012
代理域名注册服务机构:西部数码