Code Monkey home page Code Monkey logo

belial's Introduction

Belial

写了个waf 。这个程序是基于 nginx lua module . 运行平台是 linux freebsd 的 nginx 。。 WIN 的 你可以用个 linux 的 nginx 做反向代理 保护后面的服务。

Belial 目前包含的模块有 : GET 、 POST 、 COOKIE SQL注入防御、文件上传控制、POST白名单审核、nginx路径解释防御、封IP、 自动拦截防御 。

1、首先安装 nginx lua 模块。 咋装我这里就不介绍了,自己百度或者谷歌都行 http://dwz.cn/belial

2、 nginx.conf 配置

lua_package_path "/data/?.lua";   #lua路径  
lua_shared_dict belial 100m;   #当开启 post白名单模块 必须设置这个
lua_shared_dict belialAutoDeny 100m; #当开启自动拦截 必须设置这个
init_by_lua_file /data/init.lua;  
lua_need_request_body on;
access_by_lua_file /data/belial.lua;

3、 重启下nginx (*注意 以后修改 配置文件 config.lua 只需要 nginx reload) 然后 belial waf 就启动了。 重启nginx 有错误~ 微博@我吧 http://www.weibo.com/shajj

下面介绍下 belial waf 的所有功能。 模块的开启和关闭都是再 config.lua 里进行配置。 配置完 只需要 nginx reload 就生效鸟

1、全局配置

belialFileLogPath = "/data/cake/log.belial" -- 日志的目录,所有的错误信息和攻击拦截信息所在

isBackend = true -- 如果 belial waf 位于后端 那就true。否则获得的请求IP不准确

attackHtmlPageName = "", --自定义拦截页面 文件路径 例如:/data/belial.html

toLog = "On", -- 攻击信息是否纪录到日志文件,当攻击导致日志疯狂增长你可以暂时关闭

2、文件上传模块

allowUploadFileExtension = {".jpg",".jpeg",".bmp",".gif",".png"}, --允许上传的扩展名。*{}是关闭检测

3、cookie过滤模块

cookieMatch = "On", -- 是否对cookie进行关键字匹配判断

4、post过滤模块

postMatch = "On", -- 是否对post请求进行关键字匹配判断

5、post白名单模块

whiteModule = "On" --是否开POST白名单

getTogether = "Off" --是否开启收集。*可以先开启 收集个几天,然后获得大部分得post白名单之后再关闭。 注意:只有 whiteModule = "On" 和 getTogether = "Off" 后 白名单拦截机制才正式启动

webProjectRootDirectory = "/usr/local/www/nginx", --你网站的www目录(根目录) *记得不带斜杠(/)

allowAccessPostFilePath = "/data/allow.belial", -- 白名单,一个记录一行 支持 # 注释 比如 #/test.php

rejectPostLogPath = "/data/cake/reject.belial", -- post被拦截的记录,可以查看这个名单。如果被拦截POST是正常的,就删除然后添加 到 参数 " allowAccessPostFilePath " 设置的文件里。 然后 nginx reload 就OK了。

6、nginx 畸形路径解释防御

ngxPathInfoFixModule = "On"

7、全局放行的ip,比如你公司的IP

allowIpAccess = {"10.211.55.1"}, --不受拦截ip

8、禁止访问的IP列表

denyIPAccess = "/data/denyAccess.ip"

9、自动拦截:根据攻击次数和访问频率进行拦截

autoDenyIpModule = "On", -- On 开启 Off关闭

accessFrequencySecond = 1, --访问频率 ,达到这个数量就启动计数

attackAmount = 20, --HACK次数

autoDenyRuleExptimeSecond = 120 -- 规则存在的有效时间 秒单位

belial's People

Contributors

nixuehan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.