VeryNginx: 简化Web管理,增强网站防御- 精选真开源,释放新价值。
概览
VeryNginx是一个基于lua-nginx-module(openresty)的高效、友好的Nginx版本,专为满足现代Web应用的需求而设计。它不仅提供了强大的Web应用防火墙(WAF)功能,还集成了控制面板和仪表板,让网站管理员能够轻松管理他们的服务器。
主要功能
你可以在线体验:https://alexazhou.xyz/vn/index.html
账号/密码:verynginx / verynginx
- Nginx 运行状态分析
- 自定义行为
VeryNginx 包含强大的自定义功能,可以做很多事情
自定义行为包含两部分, Matcher 和 Action 。 Matcher 用来对请求进行匹配, Action 为要执行的动作
这样的优势在于把所有的前置判断整合在Matcher里一起来实现了,使复杂(组合)规则的实现变成了可能。
Matcher:一个 Matcher 用来判断一个 Http 请求是否符合指定的条件, 一个 Matcher 可以包含一个或者多个约束条件,目前支持以下几种约束。
* Client IP | * Host | * UserAgent |
---|---|---|
* URI | * Referer | * Request Args |
当一个请求没有违反 Matcher 中包含的全部条件时,即命中了这个 Matcher。
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 文件泄露、目录遍历攻击,并拦截常见的扫描工具。
Backend:每个 Backend 会引用一个 Matcher ,当 Matcher 命中时, 请求会通过 Backend 进行处理
目前已经实现了以下 Backend。
* Proxy Pass 将请求反向代理到其它服务器 | * Static File 使用本地文件处理请求 |
---|
- 访问统计
VeryNginx 可以统计网站每个URI的访问情况,包括每个URI的总请求次数、各状态码次数、返回总字节数、每请求平均字节数、总响应时间、平均响应时间并且可以按各种规则排序进行分析。
- 通过web面板对 VeryNginx 进行配置
VeryNginx 启动后,可以通过浏览器访问管理面板来查看状态以及进行配置。
管理面板地址为 http://{{your\_machine\_address}}/verynginx/index.html。
默认用户名和密码是 verynginx / verynginx。
登录之后就可以查看状态,并对配置进行修改了。修改配置后,点击保存才会生效。
信息
截至发稿概况如下:
- 软件地址:https://github.com/alexazhou/VeryNginx
- 软件协议:LGPL 3.0
- 编程语言:
语言 | 占比 |
---|---|
Lua | 48.1% |
JavaScript | 33.6% |
Python | 14.0% |
CSS | 4.1% |
Dockerfile | 0.2% |
- 收藏数量:5.9K
VeryNginx作为Nginx的一个扩展,通过提供Web应用防火墙和安全检查功能,为网站管理员提供了一个更为安全和易于管理的Web服务器选项。它简化了Web服务器的管理流程,同时增强了网站的防御能力。随着Web应用的复杂性增加,如何确保VeryNginx能够适应不断变化的安全威胁?
各位在使用 VeryNginx 的过程中是否发现了什么问题?或者对 VeryNginx 的功能有什么提议?热烈欢迎各位在评论区分享交流心得与见解!!!
声明:本文为辣码甄源原创,转载请标注"辣码甄源原创首发__"__并附带原文链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。