jxwaf(锦衣盾)

JXWAF (锦衣盾)是一款基于 openresty(nginx+lua) 开发的下一代 web 应用防火墙。「 JXWAF is a next-generation web application firewall based on openresty (nginx+lua). 」

Github stars Tracking Chart

JXWAF

Django
Python3

Introduction 介绍

jxwaf(锦衣盾)是一款开源WEB应用防火墙

Notice 通知

  • 正式版本发布
  • 新增离线部署功能
  • 新增阿里云日志服务接入功能
  • 新增HTTPS证书私钥AES加密

Feature 功能

  • Web应用攻击防护
  • CC攻击智能防护
  • 自定义规则防护
  • IP黑白名单
  • 地区封禁
  • 拦截页面自定义
  • 阿里云日志服务接入功能

Architecture 架构

jxwaf(锦衣盾)由jxwaf客户端与jxwaf管理中心组成:

  • [jxwaf客户端] : 基于openresty开发,由用户部署在自己的服务器上
  • [jxwaf管理中心]:https://www.jxwaf.com

Environment 环境

  • jxwaf
    • Centos 7
    • Openresty 1.13.6.2

Install 安装 (已包含openresty安装包)

将代码下载到/tmp目录,运行install_waf.sh文件,jxwaf将安装在/opt/jxwaf目录,具体如下:

  1. $ cd /tmp
  2. $ git clone https://github.com/jx-sec/jxwaf.git
  3. $ cd jxwaf
  4. $ sh install_waf.sh
  5. $ 运行后显示类似信息即安装成功:
nginx: the configuration file /opt/jxwaf/nginx/conf/nginx.conf syntax is ok

nginx: [alert] [lua] waf.lua:566: init(): jxwaf init success,waf node uuid is 99d977e8-401b-4ede-a427-94f7170638ce

nginx: configuration file /opt/jxwaf/nginx/conf/nginx.conf test is successful
  1. 访问 https://www.jxwaf.com 并注册账号,在全局配置页面获取"api key"和"api password"
  2. $ cd tools
  3. $ python jxwaf_init.py --api_key=a2dde899-96a7-40s2-88ba-31f1f75f1552 --api_password=653cbbde-1cac-11ea-978f-2e728ce88125
  4. api_key 为全局配置页面中"api key"的值,api_password为"api password"的值,运行完成后,显示类似信息即安装成功
config file:  /opt/jxwaf/nginx/conf/jxwaf/jxwaf_config.json
config result:
init success,access_id is a20be899-96a6-40b2-88ba-32f111111111,access_secret is a42ca0ca-80b5-8e4b-f250-3dc309cccccc
auth result:
try to connect jxwaf server auth api_key and api_password,result is True
  1. $ /opt/jxwaf/nginx/sbin/nginx
  2. 启动openresty,openresty会在启动或者reload的时候自动到jxwaf管理中心拉取用户配置的最新规则,之后会定期同步配置,周期可在全局配置页面设置。

Usage 使用

使用详情请参考文档
https://docs.jxwaf.com

TODO 开发计划

  • OTP防护功能发布
  • API安全防护功能发布
  • 业务安全防护功能发布

Articles 文章

更多文章请关注公众号 JXWAF

Contributor 贡献者

  • chenjc 负责WAF引擎开发
  • jiongrizi 负责管理中心前端开发,人机识别功能开发,小程序JXWAF助手开发
  • thankfly 负责日志,大数据分析平台及机器学习平台开发

BUG&Requirement BUG&需求

  • github 提交BUG或需求
  • QQ群 730947092
  • 邮箱 jx-sec@outlook.com
  • 微信/QQ 574604532 添加请备注 jxwaf

Thanks 致谢

  • P4NY(p4ny@qq.com):发现SQL语义识别引擎一处绕过漏洞
  • zhutougg(github):发现上传绕过漏洞
  • Neo(236309539): 发现SQL语义识别引擎一处绕过漏洞
  • 1249648969(QQ号):发现openresty通用绕过
  • kulozzzz(Github): 对比测试JXWAF与某厂商语义引擎,发现XSS绕过

Overview

Name With Ownerjx-sec/jxwaf
Primary LanguageLua
Program languageShell (Language Count: 5)
PlatformLinux
License:GNU General Public License v2.0
Release Count15
Last Release Namev3.3 (Posted on )
First Release Namev3.0 (Posted on )
Created At2017-12-13 09:45:46
Pushed At2024-04-07 01:57:35
Last Commit At2024-04-06 18:44:54
Stargazers Count1k
Watchers Count54
Fork Count251
Commits Count337
Has Issues Enabled
Issues Count52
Issue Open Count6
Pull Requests Count3
Pull Requests Open Count0
Pull Requests Close Count0
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top