宝塔使用云锁防护 nginx自编译云锁web防护教程

日期: 栏目:文章分享 浏览:761 评论:0

编译教程

宝塔用户请直接跳到第三步。

1、配置编译环境,宝塔面板默认已有环境,无需再安装。
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel

2、查看nginx位置
ps -elf | grep nginx

3、进入宝塔nginx目录
cd /www/server/nginx/sbin/
说明:如果你不是宝塔用户,或者宝塔并不是安装在/www下,请执行第二步获取实际位置。

4、备份nginx
cp nginx nginx.bak
说明:备份的目的是如果自编译出现问题,可以将nginx还原为原有版本,防止业务瘫痪,如果你是宝塔面板,可以忽略这一步,因为宝塔的特性,如果编译出现问题,可以在宝塔直接重装nginx,且网站数据和配置不受影响,非宝塔用户请一定要备份,以免出现问题后无法补救。

5、进入root目录
cd /root

6、下载云锁防护模块压缩包
wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip

7、解压云锁防护模块压缩包
unzip nginx-plugin-master.zip

8、查看宝塔编译好的nginx加载模块,在重新编译加载云锁防护模块的时候仍需加载这些模块
nginx -V
注意这个命令是大写的V,如果小写v是不会显示模块的 

宝塔使用云锁防护 nginx自编译云锁web防护教程-第1张图片-Ceacer网络


9、将./configure arguents:之后的内容复制到记事本备用。

10、进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装,极速安装不存在src目录,也无法进行二次编译
cd /www/server/nginx/src
说明:如果你不是宝塔用户,或者宝塔并不是安装在/www下,请执行第二步获取实际位置,然后cd 实际路径。

11、编译内容
./configure 上一步记事本中的备用内容 --add-module=/root/nginx-plugin-master

./configure和记事本复制的内容之间有个空格,后面的--add-module前面也有个空格。

宝塔使用云锁防护 nginx自编译云锁web防护教程-第2张图片-Ceacer网络


例如:我的nginx编译的指令是:

./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module --add-module=/root/nginx-plugin-master

等待命令结束,需要修改objs/Makefile文件和objs/ngx_modules.c来支持post过滤和内容过滤。

12、首先,在Makefile文件中的CFLAGS=...-Werror -g后追加宏定义 -DHIGHERTHAN8

CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DHIGHERTHAN8

宝塔用户可以用宝塔面板打开/www/server/nginx/src/objs/(说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改正确。)找到makefile,使用宝塔编辑器进行修改,非宝塔用户或对linux命令行较为熟悉的用户可以通过vi命令使用vim修改,然后,将ngx_modules.c中的&ngx_http_yunsuo_module,向下移动到ngx_http_userid_filter_module和ngx_http_headers_filter_module之间(已在此之间的则可忽略)。

宝塔使用云锁防护 nginx自编译云锁web防护教程-第3张图片-Ceacer网络


宝塔使用云锁防护 nginx自编译云锁web防护教程-第4张图片-Ceacer网络


请注意:这两个文件的修改非常重要,如果没有修改,会导致云锁防护不完整,其中makefile文件的宏定义和post过滤有关,如果没有追加宏定义,无法检测post提交内容,会造成防护失效,ngx_modules.c和云锁的敏感词过滤·功能有关,如果不修改,会导致该功能失效,需要注意的是,如果nginx开启了G-ZIP,该功能一样会失效。

13、修改完成后,输入编译命令
make

14、等待编译完成(根据服务器性能不同,在10分钟左右)完成后将系统中原有的nginx用重新编译生成的nginx文件替换

15、停止nginx
service nginx stop

16、删除原来的nginx
rm -rf /www/server/nginx/sbin/nginx
说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改为正确的路径。

17、复制新编译的nginx
cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/
说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改为正确的路径。

18、启动nginx
service nginx start

通过PC端登陆云锁,PC端刷新后可以看到云锁nginx插件已经亮起(由灰色变为绿色)

宝塔使用云锁防护 nginx自编译云锁web防护教程-第5张图片-Ceacer网络


19、点击nginx后方的绿色自编译图标,选择“网站漏洞防护”宝塔使用云锁防护 nginx自编译云锁web防护教程-第6张图片-Ceacer网络


宝塔使用云锁防护 nginx自编译云锁web防护教程-第7张图片-Ceacer网络


20、将右上角的防护模式修改为“防护模式”

宝塔使用云锁防护 nginx自编译云锁web防护教程-第8张图片-Ceacer网络


21、点击上方菜单栏中的“系统防护”并点击“防护开关”宝塔使用云锁防护 nginx自编译云锁web防护教程-第9张图片-Ceacer网络

22、将开关全部修改为开启


宝塔使用云锁防护 nginx自编译云锁web防护教程-第10张图片-Ceacer网络


23、输入你的网址后面加上/?order%20by,测试云锁

宝塔使用云锁防护 nginx自编译云锁web防护教程-第11张图片-Ceacer网络


出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。


标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看