VeryNginx安装及使用

VeryNginx简介

VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了高级的防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。

Github:https://github.com/alexazhou/VeryNginx
VeryNginx在线实例:http://alexazhou.xyz/vn/index.html (用户名/密码: verynginx/verynginx)
VeryNginx Github WiKi:https://github.com/alexazhou/VeryNginx/wiki/%E7%9B%AE%E5%BD%95

v0.2 版本之后,控制台入口被移动到 /verynginx/index.html

Nginx 运行状态分析

  • 每秒请求数
  • 响应时间
  • 网络流量
  • 网络连接数

自定义行为

VeryNginx 包含强大的自定义功能,自定义行为包含两部分,MatcherAction。Matcher用来对请求进行匹配,Action为要执行的动作

这样的优势在于把所有的前置判断整合在Matcher里一起实现,使复杂(组合)规则的实现变成可能

(1)Matcher

一个 Matcher 用来判断一个 Http 请求是否符合指定的条件,一个 Matcher 可以包含一个或者多个约束条件,目前支持以下几种约束:

  • Client IP
  • Host
  • UserAgent
  • URI
  • Referer
  • Request Args

当一个请求没有违反 Matcher 中包含的全部条件时,即命中这个 Matcher

(2)Action

每个 Action 会引用一个 Matcher,当 Matcher 命中时,Action 会被执行

目前已经实现以下 Action

  • Scheme Lock 将访问协议锁定为 Https 或者 Http
  • Redirect 对请求进行重定向
  • URI Rewrite 对请求的 URI 进行内部重写
  • Browser Verify 通过set-cookies 和 js 验证客户端是否为浏览器,并拦截非浏览器流量。本功能可能会阻拦搜索引擎爬虫,建议仅在被攻击时开启,或者针对搜索引擎编写特别的规则
  • Frequency Limit 访问频率限制
  • Filter(waf) 过滤器

因为 Matcher 可以对请求进行细致的匹配,所以结合 Filter Action,就可以实现一个高级的WAF,可以利用Matcher中所有的条件来对请求进行过滤,并返回指定状态码

VeryNginx 预置了常用的过滤规则,可以在一定程度上阻止常见的 SQL 注入、Git 及 SVN 文件泄露、目录遍历攻击,并拦截常见的扫描工具。

(3)Backend

每个 Backend 会引用一个 Matcher,当 Matcher 命中时,请求会通过 Backend 进行处理

目前已经实现以下 Backend

  • Proxy Pass 将请求反向代理到其它服务器
  • Static File 使用本地文件处理请求

安装和使用说明

VeryNginx 自身提供了脚本来进行安装工作

安装 VeryNginx

克隆 VeryNginx 仓库到本地, 然后进入仓库目录,执行以下命令

python install.py install  //只安装VeryNginx及OpenResty
python install.py install verynginx  //只安装VeryNginx

即可一键安装 VeryNginx 和 以及依赖的 OpenResty

使用自己的 Nginx

VeryNginx 可以自动安装依赖的 OpenResty,通常情况下没有必要再自己安装 OpenResty。

但如果想要使用自己编译的 Nginx(OpenResty),也是可以的。具体方法请阅读Wiki中的这篇说明:Use own nginx

# vim /usr/local/nginx/conf/nginx.conf
# nginx -s reload
# 在 全局 配置段中加入
include /opt/verynginx/verynginx/nginx_conf/in_external.conf;
http {
    # 在 http 配置段中加入
    include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf;
    server {
        listen       80; 
        server_name  localhost; 
        # 在 server 配置段中加入
        include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;
     }
}

登录 VeryNginx

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

访问:http://server_address/verynginx/index.html

默认用户名和密码都是 verynginx

在这个Dashboard中,可见到目前TCP连接数及响应时间和网络流量等相关数值,在Config中也可以根据相应用户请求进行进行一些规则匹配实现自定义防火墙的功能。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/24/verynginx-installation-and-use/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
VeryNginx安装及使用
VeryNginx简介 VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了高级的防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本……
<<上一篇
下一篇>>
文章目录
关闭
目 录