Loading... # 编译教程 请直接跳到第三步执行就可以,几乎全程只要复制粘贴即可,非常简单。 1、配置编译环境,宝塔面板默认已有环境,无需再安装。 `yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel` 2、查看nginx位置 `ps -elf | grep nginx` PS:宝塔用户就别看了,位置都是一样的,除非你做了什么改动。 3、进入宝塔nginx目录 `cd /www/server/nginx/sbin/` 4、备份nginx `cp nginx nginx.bak` 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是不会显示模块的 ![](https://www.iminbk.com/usr/uploads/2022/09/2161944581.png) 9、将./configure arguents:之后的内容复制到记事本备用。 10、进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装,极速安装不存在src目录,也无法进行二次编译 `cd /www/server/nginx/src` 11、编译内容 ./configure 上一步记事本中的备用内容 --add-module=/root/nginx-plugin-master ./configure和记事本复制的内容之间有个空格,后面的--add-module前面也有个空格。 ![](https://www.iminbk.com/usr/uploads/2022/09/1326324478.png) 例如:我的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之间(已在此之间的则可忽略)。 ![](https://www.iminbk.com/usr/uploads/2022/09/4274507428.png) 注意是在第三行后面追加,不是另起一行哈,我这张图片实际上是因为分辨率大小问题导致的视觉上的换行 ![](https://www.iminbk.com/usr/uploads/2022/09/3909438436.png) 请注意:这两个文件的修改非常重要,如果没有修改,会导致云锁防护不完整,其中makefile文件的宏定义和post过滤有关,如果没有追加宏定义,无法检测post提交内容,会造成防护失效,ngx_modules.c和云锁的敏感词过滤功能有关,如果不修改,会导致该功能失效,需要注意的是,如果nginx开启了G-ZIP,该功能一样会失效。 13、修改完成后,输入编译命令 `make` 14、等待编译完成(根据服务器性能不同,在5-20分钟左右)完成后将系统中原有的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插件已经亮起(由灰色变为绿色) ![](https://www.iminbk.com/usr/uploads/2022/09/2788941799.png) 19、点击nginx后方的绿色自编译图标,选择“网站漏洞防护”![](https://www.iminbk.com/usr/uploads/2023/06/598499802.png) ![](https://www.iminbk.com/usr/uploads/2023/06/3177600255.png) 20、将右上角的防护模式修改为“防护模式” ![](https://www.iminbk.com/usr/uploads/2023/06/2499237708.png) 21、点击上方菜单栏中的“系统防护”并点击“防护开关”![](https://www.iminbk.com/usr/uploads/2023/06/2827137526.png)22、将开关全部修改为开启 ![](https://www.iminbk.com/usr/uploads/2023/06/233900794.png) 23、输入你的网址后面加上/?order%20by,测试云锁 ![](https://www.iminbk.com/usr/uploads/2022/04/164265345.png) 出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。 28、(可选)部分用户反馈,安装云锁后,会导致网站出现被重置、链接被断开的情况,经过研发确认,是和云锁的一个模块有关,如果你遇到了这个问题,可以尝试关闭这个模块,方法如下: 首先,关闭云锁的:“自身防护功能”; ![image.png](https://www.iminbk.com/usr/uploads/2024/01/1937800609.png) 然后,使用宝塔或VIM打开:/usr/local/yunsuo_agent/FilterKernel.xml![image.png](https://www.iminbk.com/usr/uploads/2024/01/1139842768.png)将图中这一行删除或注释掉即可,打开ssh,执行: `service yunsuo restart && service nginx restart` 即可解决此问题。 # 常见问题: 1.访问网站出现:“您所提交的请求含有不合法的参数,已被网站管理员设置拦截!”是怎么回事? 答:这是云锁帮你成功拦截了攻击而对攻击者展示的页面,如果你未对网站进行渗透入侵,请依次检查:自己输入的url是否合规,清除浏览器cookie后再试,如果依旧不行可能是误报,可以在确认可信的情况下将对方IP加白。 温馨提示:云锁351规则的误报较大且该规则默认开启,建议直接关闭,方法:主页-应用防护-点击web服务器后面的拼图图标或自编译图标,选择“虚拟补丁”,找到编号为351的规则,并点击关闭按钮。 2.为什么安装云锁之后网站依旧被挂马了? 答:云锁免费版基于规则、签名等传统防护手段,只能防护规则库中有相应防御规则攻击和已知webshell且免费版本规则库更新慢,无法覆盖最新已知威胁,而对0day、定向渗透、未知webshell并无防护能力,如果你有更高的安全防护需求,请开通高级防护,高级防护采用RASP等基于行为的防护技术可以增强云锁对抗黑客攻击的能力。 3.开通高级防护也没有效果是怎么回事? 答:高级防护依赖于RASP,请先检查RASP工作是否正常,RASP插件是否已经安装,php语言的RASP请[点击这里](https://www.iminbk.com/archives/122.html),java语言的RASP请[点击这里](https://help.yunsuo.qianxin.com/guide/rasp/),按照教程安装好RASP后进行测试,如果依旧可以被绕过,说明云锁公有云版无法识别出这种攻击方式,如有更高安全需求,请加钱上企业版,企业版介绍:[奇安信网神云锁](https://www.qianxin.com/product/detail/pid/401)。 4.最近,”雷池(社区版)“大火,提到了“智能语义分析引擎”,云锁有类似功能吗? 答:免费版云锁是没有的,不过云锁的“高级防护”功能,由于是RASP,是自应用内部的防护,相对于包括雷池(社区版)在内的一众WAF而言,由于WAF工作在应用外部,只能防护外部的攻击,而对应用本身的安全问题却无能为力,而RASP技术则可以解决应用本身的安全问题以及缺陷,相对于WAF,工作在不同层面,可以做到很好的互补。 最后修改:2024 年 01 月 21 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 3 如果觉得我的文章对你有用,请随意赞赏
1 条评论
学习了,最近也是在搜索这个教程来试一下