百度云加速如何配置宝塔防火墙进行CC攻击拦截

经常有站长使用百度云加速的同时使用宝塔的防火墙,不过如何设置不对就会导致结果是无法正常拦截CC攻击,甚至宝塔防火墙拦截百度节点,出现502,520错误的情况,所以正确实配置很重要。

在打开网站防火墙同时使用百度云加速CDN后可能无法获取到用户的真实IP,那么就无法防御,造成服务器防火墙误封CDN IP的情况。

解决办法是获取真实用户IP

一种方法是获取 header中的 X-FORWARDED-FOR 来判断用户IP,但是众所周知这个字段是可以伪造的.

可靠的方法是获取百度云加速中的 CF-CONNECTING-IP 字段,实测这个字段无法伪造,是百度服务器直接发送到用户服务器,那么我们获取这个字段就可以获取到用户的真实IP

开启cdn后,nginx获取真实IP的方法:
原理:使用Nginx自带的Realip模块获取用户真实IP
修改nginx配置:http{}中添加如下:

map $HTTP_CF_CONNECTING_IP  $clientRealIp {
    ""    $remote_addr;
    ~^(?P<firstAddr>[0-9.]+),?.*$    $firstAddr;
}
log_format  main  '$clientRealIp [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '$http_user_agent $remote_addr $request_time';

 

然后在网站记录的日志定义使用main这个日志格式

比如

access_log  /www/wwwlogs/www.bnxb.com.log main;

百度云加速如何配置宝塔防火墙进行CC攻击拦截插图

 

2、PHP获取使用CloudFlare CDN环境下的访客真实IP

<?php
$realip =$_SERVER['HTTP_CF_CONNECTING_IP']; 
echo $realip;
//也可以用下面这个
$clientIP = isset($_SERVER['HTTP_CF_CONNECTING_IP']) ? $_SERVER['HTTP_CF_CONNECTING_IP'] : $_SERVER['REMOTE_ADDR'];
echo $clientIP;
?>

以上就是获取百度云加速环境下真实IP功能

 

最后我们再进入宝塔防火墙设置

步骤:

打开网站防火墙->使用cdn->添加HEADER,把cf-connecting-ip加进去,原来的x-forwarded-for 和x-real-ip都删掉

完工,这样宝塔的防火墙就能利用百度云加速传递过来的真实访客IP对攻击者进行封禁

百度云加速如何配置宝塔防火墙进行CC攻击拦截插图1

最后我们还是需要把百度云加速的IP段加白下到宝塔防火墙哈,以免被防火墙误杀。

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
搜索