Loading
0

百度云加速如何配置宝塔防火墙进行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.cnzzzj.com.log main;

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对攻击者进行封禁

最后我们还是需要把百度云加速的各个IP段加到宝塔防火墙白名单里,以防止被防火墙误杀。

文章声明:
1、本站文章来源于互联网,仅供学习交流使用,严禁用于商业用途,因此造成的一切法律后果自行承担。
2、本站不对文章内容的完整性和安全性负责,请自行辨别,如发现有问题,请及时联系我们进行处理。
3、若文章中有侵权或不适当内容,请留言告知我们,本站会第一时间进行处理。
4、转载请保留原文地址,违者后果自负,本站保留一切法律追责权力。