前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDN NGINX防止CC攻击 防采集 宝塔面板可用 及识别CDN真实访问者IP并屏蔽思路

CDN NGINX防止CC攻击 防采集 宝塔面板可用 及识别CDN真实访问者IP并屏蔽思路

作者头像
Qicloud
发布2022-01-21 12:32:19
1.5K0
发布2022-01-21 12:32:19
举报
文章被收录于专栏:七云博客七云博客

CC 攻击和采集都是同个IP发起大量访问请求,这个会造成大量请求拥堵,导致服务器资源耗尽,CC攻击主要针对特定服务接口,属于实现 DoS 攻击的一种方式。

如果没有套上CDN,那其实防御思路非常简单,识别出访问量大的IP,直接用服务器的iptable防火墙封禁IP就行了,但是如果使用CDN,那所有访客都是通过CDN连接我们的服务器,这种情况下,服务器封禁IP的话,只能封到CDN的IP,无法阻止CDN后面的真实访客访问,对这部分有攻击行为的访客,只能通过CDN的防火墙,导入IP黑名单方式来屏蔽。

虽然服务器级别的封禁IP,在CDN下有难度,但是通过NGINX还是可以识别到单独的访问进程,通过识别出CDN后的真实IP访问,在处理这部分访问的时候,直接转给他502页面,不进行后续网页输出就行。

说一下NGINX 流控,有两种方式:

limit_req_zone:通过“漏桶”算法限制每个 IP 发起的请求频率。

limit_conn_zone:限制每个 IP 发起的连接数。

实践配置

一般NGINX 部分 配置error_log /www/wwwlogs/nginx_error.log error;

这样才能正确显示到被封禁的错误记录出来个FAIL2BAN使用

然后在 http 部分中配置:

代码语言:javascript
复制
 map $http_x_forwarded_for  $clientRealIp
{
    ""    $remote_addr; 
    ~^(?P<firstAddr>[0-9.]+),?.*$    $firstAddr;
}
limit_req_zone $clientRealIp zone=sym:10m rate=5r/s;
limit_conn_zone $clientRealIp zone=conn_sym:10m;    

然后在需要流控的站点的 location 部分配置:

代码语言:javascript
复制
limit_req zone=sym burst=5;
limit_conn conn_sym 10;

宝塔安装的NGINX按下面配置 先将

代码语言:javascript
复制
error_log  /www/wwwlogs/nginx_error.log  crit;

改成

代码语言:javascript
复制
error_log  /www/wwwlogs/nginx_error.log  error;

然后在http部分

include proxy.conf;下面增加 map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P[0-9.]+),?.*$ $firstAddr; }

将 limit_conn_zone $binary_remote_addr zone=perip:10m; 改成 limit_conn_zone $clientRealIp zone=perip:10m; 这样才能针对使用代理IP刷你的站的人的真实IP进行计数,达到每秒多少个就封禁访问

然后到需要进行防御的网站点设置-流量限制

这里启用流量限制,并将单IP并发数进行限制,一般如果网站页面不复杂设置为10就行。 接下来重启 NGINX 后当有超流客户端请求时将记录在 www/wwwroot/nginx_error.log(不是宝塔面板的话,NGINX默认错误日志在 /var/log/nginx/error.log) 中看到类似记录:

代码语言:javascript
复制
2018/04/27 14:25:27 [error] 6307#0: *1472746 limiting connections by zone "perip", client: 182.161.35.139, server: 104.153.102.68, request: "GET /index.php?10=8 HTTP/1.1"

此时请求已经被 NGINX 限流。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实践配置
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档