前言:
今天,汇站将为大家深入讲解如何在宝塔面板上自编译 Nginx 云锁防护模块。我们的测试环境是基于宝塔面板 8.2.0 版本和 Nginx1.20 版本进行的。请注意,我们建议进行编译安装而非快速安装,因为经过多次尝试,我们发现只有 Nginx1.20 版本能够较为顺利地完成安装。事实上,我已经在多个云服务器上应用了这种方法,并且自从启用云锁后,成功抵御了众多 CC 攻击,确保了服务器的稳定运行。 |
编译教程开始:
1、下载云锁并安装到服务器上(建议 CENTOS7 系统且没有升级内核及安装 BBR)
资源附件:
2、配置编译环境(可选操作,非必须,因为你安装宝塔的时候,他就默认安装好了)。
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel
3、进入 root 目录
cd /root
4、下载云锁防护模块压缩包
wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
5、解压云锁防护模块压缩包
unzip nginx-plugin-master.zip
6、查看宝塔编译好的 nginx 加载模块,在重新编译加载云锁防护模块的时候仍需加载这些模块
nginx -V
注意这个命令是大写的 V,如果小写 v 是不会显示模块的,而是显示 nginx 版本号。
7、将./configure arguents:之后的内容复制到记事本备用。
8、进入 nginx 源码目录,对 nginx 进行重新编译,操作之前请确认自己的 nginx 是编译模式安装的,而不是宝塔面板的极速安装,极速安装不存在 src 目录,也无法进行二次编译
cd /www/server/nginx/src
9、执行 configure 生成 Makefile
./configure 上一步记事本中的备用内容 --add-module=/root/nginx-plugin-master
不同的系统环境,模块可能并不相同,上面的例子仅供参考,以实际自己的为准,等待命令结束,需要修改 objs/Makefile 文件和 objs/ngx_modules.c 来支持 post 过滤和内容过滤。
10、首先,在 Makefile 文件中的 CFLAGS=…-Werror -g 后追加宏定义 -DHIGHERTHAN8
如果你不会用 VI,可以在宝塔面板的文件管理打开/www/server/nginx/src/objs/,找到 makefile,使用宝塔进行修改,追加宏定义的目的是使云锁支持 POST 请求检测,非常重要,一定要做这个步骤。
然后,将 ngx_modules.c 中的&ngx_http_yunsuo_module,向下移动到 ngx_http_userid_filter_module 和 ngx_http_headers_filter_module 之间,此步骤的目的是使云锁支持敏感词检测与拦截,如果你不需要这个功能,可以跳过此步骤。
请看以下两张图:
注意是在第三行后面追加,不是另起一行哈,千万别搞错了,否则编译会出错。
11、修改完成后,输入编译命令
make
12、等待编译完成后,执行一键替换命令:
资源附件:
通过 PC 端登陆云锁,PC 端刷新后可以看到云锁 nginx 插件已被识别(图标变为绿色)
13、点击 nginx 后方的绿色自编译图标,选择“网站漏洞防护”
15、点击上方菜单栏中的“系统防护”并点击“防护开关”
16、将开关全部修改为开启
17、输入你的网址后面加上/?order%20by,测试云锁
出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。
18、(可选)部分用户反馈,安装云锁后,会导致网站出现被重置、链接被断开的情况,经过研发确认,是和云锁的一个模块有关,如果你遇到了这个问题,可以尝试关闭这个模块,方法如下:
首先,关闭云锁的:“自身防护功能”;
然后,使用宝塔或 VIM 打开:/usr/local/yunsuo_agent/FilterKernel.xml
将图中这一行删除或注释掉即可,打开 ssh,执行:
service yunsuo restart && service nginx restart
即可解决此问题。
19、(可选)部分用户反馈编译后的 nginx 莫名被替换,可以设置防篡改。
如图这样设置就可以了。
20、(可选)建议开启 RASP 增强防护:
RASP“Runtime application self-protection”应用运行时自我保护技术,是奇安信椒图云锁服务器安全管理系统(简称云锁)web 攻击防护的核心组件之一,是构建在 WEB 语言解释器中的异常行为检测引擎。
RASP 通过 HOOK 函数的方式,可以细粒度的监控应用脚本的行为及函数调用上下文信息,及时发现恶意代码和漏洞利用行为,缩小攻防信息不对称的时间差,有效降低未知安全威胁造成的破坏。
转载请注明:汇站网 » 宝塔 Nginx 环境下自编译云锁 web 防护教程(完整版)