百度云加速如何配置宝塔防火墙进行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}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
在线客服
主机帮
我们将24小时内回复。
2024-11-21 23:38:06
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
176363189
当幸福来敲门
[小黄]
17307799197
[企业邮箱]
sudu@yunjiasu.cc
取消

选择聊天工具: