2024-11-22
分类:经验分享
阅读(2) 评论(0)
编译教程 其实几乎全程只要复制粘贴即可,非常简单。 1、下载云锁并安装到服务器上(建议CENTOS7系统且没有升级内核及安装BBR) > wget http://down.iminbk.com/v3/new/yunsuo_agent_64bit.tar.gz && tar xvzf yunsuo_agent_64bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install 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版本号。 ![](https://www.iminbk.com/usr/uploads/2022/09/2161944581.png) 7、将./configure arguents:之后的内容复制到记事本备用。 8、进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装,极速安装不存在src目录,也无法进行二次编译 `cd /www/server/nginx/src` 9、执行configure生成Makefile `./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过滤和内容过滤。 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之间,此步骤的目的是使云锁支持敏感词检测与拦截,如果你不需要这个功能,可以跳过此步骤。 ![](https://www.iminbk.com/usr/uploads/2022/09/4274507428.png) 注意是在第三行后面追加,不是另起一行哈,千万别搞错了,否则编译会出错。 ![](https://www.iminbk.com/usr/uploads/2022/09/3909438436.png) 11、修改完成后,输入编译命令 `make` 12、等待编译完成后,执行一键替换命令: > service nginx stop && rm -rf /www/server/nginx/sbin/nginx && cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/ && service nginx start 通过PC端登陆云锁,PC端刷新后可以看到云锁nginx插件已被识别(图标变为绿色) ![](https://www.iminbk.com/usr/uploads/2022/09/2788941799.png) 13、点击nginx后方的绿色自编译图标,选择"网站漏洞防护"![](https://www.iminbk.com/usr/uploads/2023/06/598499802.png) ![](https://www.iminbk.com/usr/uploads/2023/06/3177600255.png) 14、将右上角的防护模式修改为"防护模式" ![](https://www.iminbk.com/usr/uploads/2023/06/2499237708.png) 15、点击上方菜单栏中的"系统防护"并点击"防护开关"![](https://www.iminbk.com/usr/uploads/2023/06/2827137526.png)16、将开关全部修改为开启 ![](https://www.iminbk.com/usr/uploads/2023/06/233900794.png) 17、输入你的网址后面加上/?order%20by,测试云锁 ![](https://www.iminbk.com/usr/uploads/2022/04/164265345.png) 出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。 18、(可选)部分用户反馈,安装云锁后,会导致网站出现被重置、链接被断开的情况,经过研发确认,是和云锁的一个模块有关,如果你遇到了这个问题,可以尝试关闭这个模块,方法如下: 首先,关闭云锁的:"自身防护功能"; ![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` 即可解决此问题。 19、(可选)部分用户反馈编译后的nginx莫名被替换,可以设置防篡改。 ![请输入图片描述](https://img.iminbk.com/i/2024/09/14/66e5812d8fb52.png) 如图这样设置就可以了。 20、(可选)建议开启RASP增强防护: RASP"Runtime application self-protection"应用运行时自我保护技术,是奇安信椒图云锁服务器安全管理系统(简称云锁)web攻击防护的核心组件之一,是构建在WEB语言解释器中的异常行为检测引擎。 RASP通过HOOK函数的方式,可以细粒度的监控应用脚本的行为及函数调用上下文信息,及时发现恶意代码和漏洞利用行为,缩小攻防信息不对称的时间差,有效降低未知安全威胁造成的破坏。 建议[参考本文](https://www.iminbk.com/archives/122.html)一键开启。 # 常见问题: 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://down.iminbk.com/v3/奇安信网神云锁服务器安全管理系统V8.0.5产品白皮书_.pdf)。
众生皆苦,唯有自渡!