VeryNginx 是一个基于openrestry(其实是基于nginx的lua扩展)的开发程序,实现了高级的防火墙,可以做访问统计和其他的一些防护功能。 VeryNginx 扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面

VeryNginx安装需要支持lua模块支持,具体包括:lua-nginx-module,http_stub_status_module,http_ssl_module这3个模块。如果想在nginx中使用VeryNginx ,就需要安装以上模块,不过宝塔面板已经默认编译了这3个模块,宝塔面板一般都安装 lua模块,也支持安装openrestry。所以我们只需要安装VeryNginx单个软件即可。

测试环境:

宝塔面板7.0.3(其他版本大同小异)、nginx1.17.5、统:CentOS Linux 7.7.1908 (Core)

VeryNginx相关页面

github:https://github.com/alexazhou/VeryNginx

中文使用文档:https://github.com/alexazhou/VeryNginx/blob/master/readme_zh.md

安装方法

git克隆下载,并且进行安装:

git clone https://github.com/alexazhou/VeryNginx.gitcd VeryNginx python install.py install verynginx

出现下面 successfuly,就代表OK了




宝塔nginx防盗链使用时间控间链 宝塔nginx防火墙_github


配置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 配置块内部

1、前两条命令:

设置Nginx配置文件 宝塔面板→ Nginx →设置 → 配置修改,将以下2条代码放到正确的位置,如下图。注意,前两条防止的位置


宝塔nginx防盗链使用时间控间链 宝塔nginx防火墙_github_02

配置VeryNginx


2、第三条命令:

宝塔面板→ 网站→当前网站→设置 → 配置文件,将以下代码放到 root /www/wwwroot/ 下面即可。具体如图:


宝塔nginx防盗链使用时间控间链 宝塔nginx防火墙_查看防火墙状态nginx_03


3、重启nginx,或者重新加载下配置都行。宝塔面板→nginx→服务→重载/重启Nginx:

VeryNginx 进行配置

VeryNginx 启动后,可以通过浏览器访问管理面板来查看状态以及进行配置。

管理面板地址为 http://{{your_machine_address}}/verynginx/index.html。

默认用户名和密码是 verynginx / verynginx。

登录之后就可以查看状态,并对配置进行修改了。修改配置后,点击保存才会生效.

设置cc防御(举例):在自定义动作→拦截频率中可以设置。如图:


宝塔nginx防盗链使用时间控间链 宝塔nginx防火墙_github_04


然后,我们重新打开下我们的网站,进行测试cc攻击了,是不是被拦截返回了。

VeryNginx总结

VeryNginx是一个高级nginx扩展程序,他的强大之处在于VeryNginx 包含强大的自定义功能,可以做很多事情,比如waf防火墙功能。

他的 自定义行为包含两部分, Matcher 和 Action 。 Matcher 用来对请求进行匹配, Action 为要执行的动作 这样的优势在于把所有的前置判断整合在Matcher里一起来实现了,使复杂(组合)规则的实现变成了可能。更多具体,需要去摸索。