Compilation
As with other Linux software that comes as source, you need to compile ModSecurity to be able to use it. Compilation will result in a file called mod_security2.so
, which is a binary shared module used by the Apache server in a plugin-like fashion. This module file contains all the functionality of ModSecurity.
Note
The fact that ModSecurity is an Apache module and not a stand-alone application (it could have been written as a reverse proxy server, filtering requests and then passing them to Apache) confers many advantages. One of these is the ability to inspect SSL connections and see data compressed using mod_deflate
without having to write any additional code to decrypt or decompress the data first.
To get started compiling the source, change to the root user as you will require root privileges to install ModSecurity. Then change to the apache2
subfolder of the directory where you unpacked ModSecurity (for example, /home/download/modsecurity-apache/apache2/
). This directory contains the source files and all the files needed to build the binary module.
To be able to compile the binary, you need a Makefile
, which is a file that contains details of your particular server setup such as which compiler is available and what options it supports. To generate the Makefile
, run the following command:
[apache2]$ ./configure ... config.status: creating Makefile config.status: creating build/apxs-wrapper config.status: creating mod_security2_config.h
If the configure script stops with an error indicating that the PCRE library cannot be found, this is usually because you have compiled Apache from source and it has used the PCRE library that is bundled with the Apache distribution. Running configure --with-pcre=/path/to/apache-src/srclib/pcre
should solve the problem (if it doesn't, edit Makefile
and change the PCRE_CFLAGS
and PCRE_LIBS
variables to point to the pcre
directory).
After this command has completed, check for the presence of a file called Makefile
in the current directory. After making sure it exists you can go ahead and compile the binary:
[apache2]$ make
You should see a fairly long list of messages written to the terminal as the compilation takes place, and if everything goes well there should be no error messages (though you may get a few compiler warnings, which you can ignore).