云 锁 李 明 服务器网站安全防护教程

云锁nginx如何自编译web防护

nginx防护编译详细教程(本教程nginx安装自宝塔面板,版本号为1.14,大部分代码可直接复制#)

宝塔面板使用nginx安装云锁开启web防护后网站打不开是因为需要对nginx进行自编译,加入云锁防护模式,以代替web防护。web防护功能与nginx自编译后功能一样。


1.编译前先在云锁PC客户端关闭操作系统加固功能;然后将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。

# ps -elf | grep nginx

1.png

# cd /www/server/nginx/sbin/

# cp nginx nginx.bak

2.png

2.下载云锁防护模块压缩包

# cd ~

3.png

3.解压云锁防护模块压缩包nginx-plugin-master.zip
# unzip nginx-plugin-master.zip
4.png
4.获取当前云锁模块所在目录的全路径

# cd nginx-plugin-master/

# pwd

5.png

5.查看当前nginx加载的模块,在编译加载云锁防护模块的时候仍需加载这些模块
# cd ~
# /www/server/nginx/sbin/nginx -V

6.png

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

6.进入nginx源码目录,对nginx进行编译(宝塔面板安装的nginx源码位于/www/server/nginx/src);编译时添加云锁防护模块参数,参数路径为第7步获取的云锁防护模块源码全路径“/root/nginx-plugin-master”

备注:编译内容为(./configure ’上一步记事本中的备用内容 --add-module=/root/nginx-plugin-master)

# cd /www/server/nginx/src

# ./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --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 --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_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 --add-module=/root/nginx-plugin-master

7.png

7.Nginx1.8.0 以上和 Tengine 2.1.2 则需要修改objs/Makefile文件来支持post过滤,在Makefile文件中的CFLAGS=...-Werror -g后追加宏定义 -DHIGHERTHAN8

# vi objs/Makefile

备注:按Insert后找到-Werror -g 添加 -DHIGHERTHAN8 ,添加之后按ESC:wq

8.png

其次,将ngx_modules.c中的&ngx_http_yunsuo_module,向下移动到ngx_http_userid_filter_modulengx_http_headers_filter_module之间。(已在此之间的则可忽略)

# vi objs/ngx_modules.c

QQ截图20180907113138.png

# make

8.make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效

# rm -rf /www/server/nginx/sbin/nginx
# cp objs/nginx /www/server/nginx/sbin/
# service nginx restart

友情提示:按照教程操作还是不会的可以直接下载编译好的nginx文件,进行覆盖安装,覆盖安装之前先备份原来的nginx文件。(本版本只适用1.14)

①找到目录:/www/server/nginx/sbin

②备份原文件

③下载已经编译好的nginx文件(下载链接:https://pan.baidu.com/s/1KoMURHh2vTafMa-RO87Spg)

④覆盖安装,重启nginx服务:# service nginx restart


9.到此通过PC端连接到服务器端,在PC端的界面上刷新后可以看到已识别nginx插件(由灰色变为绿色)。
9.png
10.测试防护是否生效
域名+/?order%20by
10.png



作者:liming 分类:云锁使用 浏览:1074 评论:4
留言列表
访客
访客 好用,果然可以  回复
山山
山山 期待新版本尽快发布  回复
安安访客
安安访客 建议写一篇 appnode 面板的编译教程!这个面板用的人也很多!  回复
艺灵
艺灵 宝塔5.9.0,nginx是1.14.0
第5步 /www/server/nginx/sbin/nginx -V后,末尾的内容是:--with-ld-opt=-Wl,-E --with-ld-opt=-ljemalloc,我在最后面按文章教程添加了 --add-module=/root/nginx-plugin-master,到第7步时也不一样,-g后面本身就跟有一个参数-g -DNDK_SET_VAR,同样按文章教程替换后执行make,开始报错  回复
发表评论
来宾的头像