lua-resty-coraza

FFI-based Libcoraza binding for LuaJIT

$ opm get potats0/lua-resty-coraza

lua-resty-coraza

[!Tests](https://github.com/potats0/lua-resty-coraza/actions/workflows/CI.yml)

Name

Lua implementation of the libcoraza for modsecurity Web Application Firewall.

dependence

1. libcoraza-nginx

  1. clone the repository git clone https://github.com/potats0/coraza.git

  1. Build the source && Installation

        cd coraza
        ./build.sh
        ./configure
        make
        sudo make install

    libcoraza.so will be installed at /usr/local/lib

2. Coreruleset

coreruleset is an opensource waf rules.

  1. clone the repository git clone --recurse-submodules https://github.com/coreruleset/coreruleset

3. lua-resty-coraza

    opm get potats0/lua-resty-coraza

Synopsis

    init_worker_by_lua_block{
        coraza = require "resty.coraza"
        waf = coraza.create_waf()
        -- add rule from file
        coraza.rules_add_file(waf, "%s/t/coraza.conf")
    
        -- your corerule set, add rule from directive
        coraza.rules_add(waf, "Include %s/t/coreruleset/crs-setup.conf.example")
        coraza.rules_add(waf, "Include %s/t/coreruleset/rules/*.conf")
    }
    
    location /t {
        access_by_lua_block {
            coraza.do_create_transaction(waf)
            coraza.do_access_filter()
            coraza.do_interrupt()
        }
    
        content_by_lua_block {
            ngx.say("passed")
        }
    
        header_filter_by_lua_block{
            coraza.do_header_filter()
            coraza.do_interrupt()
        }
        
        body_filter_by_lua_block{
            coraza.do_body_filter()
        }
    
        log_by_lua_block{
            coraza.do_log()
            coraza.do_free_transaction()
        }
    }

if you need more log for debug, please turn on the debug on nginx.

    error_log logs/error.log debug;

TODO:

  1. block response when detected the event =back

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 125:

=over without closing =back

Authors

potatso

License

apache2

Dependencies

luajit

Versions