• 欢迎访问圣洁的白莲!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

宝塔+云锁nginx自编译web防护

Linux 菜根譚 5个月前 (06-05) 79次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

前言

由于这几天博主的博客,每天都遭受到次数不多的攻击,因此博主在百度上找寻了一些防护办法,在浩瀚的搜索中最终采用了云锁的解决方案,云锁能自动调整安全策略,帮助用户有效抵御CC攻击、SQL注入、XSS跨站攻击、溢出攻击、暴力破解、提权等黑客攻击,及病毒、木马、后门等恶意代码。

编译nginx

本教程是博主亲测之后才写出来的,分享给不会编译云锁nginx自编译模块的用户。

 

首先在操作前,请确认已经配置好宝塔面板,并采用编译方法配置的nginx环境!(不是极速安装,是编译安装)

 

1.备份nginx文件

你可以使用SSH工具以ROOT权限登陆之后下载备份nginx,也可以直接使用命令备份nginx

 

    1.查看nginx位置

ps -elf | grep nginx

进入宝塔安装的nginx目录

cd /www/server/nginx/sbin/

    2.备份nginx文件

cp nginx nginx.bak

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

    1.进入root目录:

cd /root

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

wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip

 

    3.解压云锁防护模块压缩包

unzip nginx-plugin-master.zip

    4.查看宝塔编译好的nginx加载模块

在重新编译加载云锁防护模块的时候仍需加载这些模块

nginx -V

注意:这个命令是大写的V,如果小写v是不会显示模块的。

3.编译

    1.备份./configure文件

./configure arguents:之后的内容复制到记事本备用,比如我的是:

--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 --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_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 --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc

 

(我的仅供参考,实际以自己的为准)

     2.重新编译

进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装

cd /www/server/nginx/src

 

    3.编译内

 

./configure 记事本中的备用内容 加上 –add-module=/root/nginx-plugin-master

 

./configure和记事本复制的内容之间有个空格,后面的–add-module前面也有个空格,比如我的编译命令为

./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 --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_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 --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --add-module=/root/nginx-plugin-master

4.post过滤和内容过滤

注意:

Nginx1.8.0 以上则需要修改objs/Makefile文件和objs/ngx_modules.c来支持post过滤和内容过滤。

    1.修改Makefile

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

vim Makefile
CFLAGS =   -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DHIGHERTHAN8 -Wno-error -DNDK_SET_VAR

 

vim ngx_modules.c
ngx_module_t *ngx_modules[] = {
   &ngx_core_module,
   ......
   &ngx_http_upstream_keepalive_module,
   &ngx_http_upstream_zone_module,
-----------下面这行向下移动----------------   
   &ngx_http_yunsuo_module,
------------------------------------------     
   &ngx_http_stub_status_module,
   ......
   &ngx_http_userid_filter_module,
---------------移动到该位置-----------------  
   &ngx_http_yunsuo_module,
-------------------------------------------
   &ngx_http_headers_filter_module,
   &ngx_http_copy_filter_module,
   &ngx_http_range_body_filter_module,
   &ngx_http_not_modified_filter_module,
   NULL
};

char *ngx_module_names[] = {
   "objs/ngx_modules.c" 186L, 6441C
   ......
};

5.编译make

编译 nginx (注意:如果原本已经有 nginx, 只执行 make 即可,make install 会覆盖掉你的 nginx.conf),输入make,开始进行编译。

make

 

停止NGINX

systemctl stop nginx

6.替换nginx文件

完成后将系统当前使用中的nginx二进制文件替换为刚刚编译好的包含了云锁模块的nginx文件,替换后重启nginx使新编译nginx生效。

    1.删除原来的nginx

操作之前请确认自己的nginx已经备份

rm -rf /www/server/nginx/sbin/nginx

 

    2.复制新编译的nginx

cp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/

    3.启动nginx

systemctl start nginx

 

 

Linux服务器端安

注意:安装前需要保证服务器端与云锁云中心的443端口通信保持畅通,可以通过命令telnet apiv3.yunsuo.com.cn 443检查是否连通,连通则按照下面步骤进行安装;如不通则检查防火墙规则或云主机安全策略,将入站的443端口放开。

1.安装云锁

    1.快速安装

 

x86:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_32bit.tar.gz && tar xvzf yunsuo_agent_32bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install
 
x64:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_64bit.tar.gz && tar xvzf yunsuo_agent_64bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install

 

    2.分步安装

 

下载云锁安装包

x86:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_32bit.tar.gz
 
x64:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_64bit.tar.gz

 

解压文件

    得到安装包文件。

x86:tar zxvf yunsuo_agent_32bit.tar.gz
 
x64:tar zxvf yunsuo_agent_64bit.tar.gz

 

赋予可执行权限

     给云锁安装文件赋予可执行权限。

chmod +x yunsuo_install/install

    执行安装,直到提示“Install Yunsuo Success.”安装完成。

yunsuo_install/install

 

3.添加服务器到云中心

/usr/local/yunsuo_agent/agent_smart_tool.sh -u cloud_name -p cloud_passwd

 

PS:cloud_name:云中心账户名;cloud_passwd:云中心登录密码

 

PC端管理工具

1.PC端安装

    点击下面的连接,下载Windows管理工具。

https://www.yunsuo.com.cn/download.html

下载完成后,进行安装,在这里安装的步骤就不介绍了。

如果不在Windows上安装管理客户端,也可以选择web页面管理。

https://console.yunsuo.com.cn/login      

下面的页面就是我在Windows上安装的客户端管理的服务器。

2.查看服务器

Linux中安装云锁的服务器版本,绑定了账户后再客户端中就会自动加载,不需要手动添加。

宝塔+云锁nginx自编译web防护

宝塔+云锁nginx自编译web防护

点击进入管理后,就可以查看服务器的信息以及一些防护操作。

宝塔+云锁nginx自编译web防护

结语

 

这次博客安全防护就介绍到这里,如果你也喜欢折腾,我们可以相互交流探讨。

 

 

 


圣洁的白莲 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:宝塔+云锁nginx自编译web防护
喜欢 (2)
[]
分享 (0)
关于作者:
浩瀚学海,虔诚分享!

您必须 登录 才能发表评论!