I am getting the error below while compiling and installing the "ModSecurity- Nginx" module.

Installing the "ModSecurity- Nginx" module

#yum install -y gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel lmdb-devel libxml2-devel ssdeep-devel lua-devel libtool autoconf automake

#cd /root

#git clone https://github.com/SpiderLabs/ModSecurity-nginx.git

#yum install libmodsecurity-devel

#cd /root/nginx-1.10.3/

#./configure --prefix=/opt/nginx  --add-module=/root/ModSecurity-nginx

Compiling

#make  **(Now start reporting errors)**

ERROR

/opt/ModSecurity-nginx/src/ngx_http_modsecurity_module.c: In function ‘ngx_http_modsecurity_create_ctx’:

/opt/ModSecurity-nginx/src/ngx_http_modsecurity_module.c:259:9: error: implicit declaration of function ‘msc_new_transrror=implicit-function-declaration] ctx->modsec_transaction = msc_new_transaction_with_id(mmcf->modsec, mcf->rules_set, (char *) s.data, r->conne

/opt/ModSecurity-nginx/src/ngx_http_modsecurity_module.c:259:33: error: assignment makes pointer from integer without ctx->modsec_transaction = msc_new_transaction_with_id(mmcf->modsec, mcf->rules_set, (char *) s.data, r->conne

cc1: all warnings being treated as errors

make[1]: *** [objs/addon/src/ngx_http_modsecurity_module.o] Error 1

make[1]: Leaving directory `/root/nginx-1.16.1'

make: *** [build] Error 2

1

There are 1 answers

0
Jose Fernando Lopez Fernandez On

The ModSecurity nginx connector compilation is failing because it can't find the ModSecurity headers. Every time a ModSecurity function is called, it's the first time the compiler is hearing about the existence of said function, thus making this an "implicit" function declaration.

To make a long story short, you need to specify where the compiler can find the ModSecurity headers and libraries. To do this, you're supposed to set two environment variables before configuring or compiling the connector module.

export MODSECURITY_INC="/opt/ModSecurity/headers/"
export MODSECURITY_LIB="/opt/ModSecurity/src/.libs/"

These paths were taken straight from the documentation, so you'll need to adjust them depending on where yum installed the libmodsecurity-devel package.

You can find the recipes for building the ModSecurity module and the ModSecurity nginx connector here and here, respectively.