安装云锁教程
快速安装
wget https://www.zhujiba.cc/api/yunsuo_agent_64bit.tar.gz && tar xvzf yunsuo_agent_64bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install
分步安装
下载云锁安装包。
在附件里下载后上传yunsuo_agent_64bit.tar.gz到服务器root目录下
解压文件,得到安装包文件。
x64:tar zxvf yunsuo_agent_64bit.tar.gz
给云锁安装文件赋予可执行权限。
chmod +x yunsuo_install/install
执行安装,直到提示“Install Yunsuo Success.”安装完成。
yunsuo_install/install
添加服务器到云中心。
/usr/local/yunsuo_agent/agent_smart_tool.sh -u 你的账号 -p 你的密码
云中心地址:https://console.yunsuo.qianxin.com/login
安装完成后通过PC端进行管理。
pc端管理软件在附件。
查看云锁是否运行
ps -ef | grep yunsuo_agent
云锁启动/停止/重启/状态等命令
service yunsuo start/stop/restart/status
/etc/init.d/yunsuo start/stop/restart/status
卸载云锁
/usr/local/yunsuo_agent/uninstall
致此云锁安装初步完成,需要防c等防御还需自编译。
对于非宝塔面板用户,也可以使用本教程进行编译,过程是一样的,只需要修改路径为正确路径即可。
编译教程
宝塔用户请直接跳到第三步。
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是不会显示模块的
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编译的指令是:
./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
之间(已在此之间的则可忽略)。
请注意:这两个文件的修改非常重要,如果没有修改,会导致云锁防护不完整,其中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插件已经亮起(由灰色变为绿色)
19、点击nginx后方的绿色自编译图标,选择“网站漏洞防护”
20、将右上角的防护模式修改为“防护模式”
21、点击上方菜单栏中的“系统防护”并点击“防护开关”
22、将开关全部修改为开启
23、输入你的网址后面加上/?order%20by
,测试云锁
出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。
没有回复内容