VeryNginx
基于lua_nginx_module(openrestry)
开发,实现了高级的防火墙、访问统计和其他的一些功能。 集成在Nginx
中运行,扩展Nginx
本身的功能,并提供了友好的Web
交互界面。VeryNginx
基于 OpenResty
,所以安装VeryNginx
需要先安装好OpenResty
。但是VeryNginx
也支持安装在Nginx
中,但是需要lua-nginx-module
,http_stub_status_module
,http_ssl_module
3个模块的支持。刚好宝塔面板已默认编译了这3个模块,所以我们只需要安装VeryNginx
软件即可使用。
系统:CentOS Linux 7.7.1908 (Core)
、宝塔BT 7.1.1
、Nginx 1.17.5
克隆VeryNginx
仓库到本地, 然后进入仓库目录,具体命令如下:
git clone https://github.com/alexazhou/VeryNginx.git cd VeryNginx python install.py install verynginx
根据官网的设置要求,我们需要设置Nginx
配置文件,添加三条Include
指令来实现功能,分别为:
include /opt/verynginx/verynginx/nginx_conf/in_external.conf; #http 配置块外部 include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; #http 配置块内部 include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; #server 配置块内部
以上三条指令分别放在Nginx
配置文件的http
配置块外部,http
配置块内部,Server
配置块内部,在修改时请保留这三条。如果添加了新的Server
配置块或http
配置块,也需要在新的块内部加入对应的include
行。
宝塔面板→ Nginx
→设置 → 配置修改,将以下2条代码放到正确的位置。
include /opt/verynginx/verynginx/nginx_conf/in_external.conf; #http 配置块外部 include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; #http 配置块内部
宝塔面板→ 网站→当前网站→设置 → 配置文件,将以下代码放到配置文件中的root /www/wwwroot/www.xxxx.com;
下面位置即可。。
include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;
宝塔面板→Nginx
→服务→重载/重启Nginx
:至此已经完成
VeryNginx
安装了。
VeryNginx
启动后,可以通过浏览器访问管理面板来查看状态以及进行配置。管理面板地址为http://网站域名/verynginx/index.html
。默认用户名和密码是verynginx/verynginx
。
登陆界面如下:
尝试添加自定义动作,浏览器校验,设置个cookie
验证上去。保存之后,去刷新你的网址,看看是否多了一个叫verynginx_sign_cookie
的cookie
值。如何下图:
现在刷新自己的网站看看是否有verynginx_sign_cookie的cookie值(浏览器开发者调试模式或F12)如下图:看到这个cookie包含VeryNginx就已经正常运行。
VeryNginx
设置cc
防御的规则,在自定义动作→拦截频率中可以设置。
如下图:
保存设置后通过攻击手段测试网站效果如下图:
cc
防御已经起作用封禁设置为300秒后会自动解封。
通过VeryNginx
控制面板保存新配置之后,会立刻生效,并不需要restart/reload Nginx
。VeryNginx
把配置保存在 /opt/verynginx/verynginx/configs/config.json
里面。状态页面图表默认带有动画效果,如果有卡顿,可以点右上角齿轮图标关掉动画效果如果因为配错了什么选项,导致无法登录,可以手动删除config.json
来清空配置,或者手动编辑这个文件来修复。
要先pull github
上最新的代码到本地,然后通过以下命令来进行更新:
#更新 Verynginx python install.py update verynginx #更新 OpenResty python install.py update openresty
修改配置后,页面底部会出现一个浮动条,提示保存,在点击浮动条上的保存按钮之后,配置才会进行写入。如果遇到无法保存配置的问题,可能是文件目录权限的问题,设置成权限为755
、所有者为www
就可以了,如下图:或者是
Nginx
设置的client body
太小,导致请求体被缓存到文件,导致lua
代码没有获取到请求体,保存时会提示请求失败。在nginx.conf
中http
部分增加一句,client_body_buffer_size 128k
;
VeryNginx
可以设置浏览器验证功能,可以选择cookie
或者JavaScript
验证,可以有效避免被采集。
本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!