Установка modsecurity для Nginx


ModSecurity - своеобразный фаервол для Apache, Nginx и IIS. Это модуль, предоставляющий набор правил для фильтрации трафика. Это модуль из разряда must have для любого сервера.

19 Декабря 2013 года была выпущена версия 2.7.7. Она является наиболее актуальной на момент написания этой заметки. Собирать будем из исходников и настраивать для вэб сервера Nginx.

Как не странно, сначала нужно скомпилировать сам mod_security, а потом включить его при компиляции Nginx.
К сожалению mod_security нельзя подключить к уже установленному Nginx серверу. Nginx должен быть скомпилирован с этим модулем.

Устанавливаем нужное:

yum install libxml2 libxml2-devel httpd-devel libcurl-devel pcre-devel

При установке всякой ерунды я создаю папку /root/install и в ней веду работу:

mkdir /root/install
cd /root/install

Скачиваем архив с исходным кодом mod_security:

wget https://www.modsecurity.org/tarball/2.7.7/modsecurity-apache_2.7.7.tar.gz
tar xf modsecurity-apache_2.7.7.tar.gz
cd modsecurity-apache_2.7.7

Устанавливаем:

./configure --enable-standalone-module
make
make install

На этом этапе будут сгенерированы исходные файлы, которые можно использовать при сборке nginx. Лежать они будут в папке:

nginx/modsecurity/

Инструкцию по установке nginx из исходного кода можно почитать здесь. Надеюсь не поленитесь и посмотрите, поэтому не копирую сюда всю инструкцию.

Нужно выполнить все шаги и этой заметки и на этапе конфигурирования (выполнение ./configure) добавить в строку вот это:

--add-module=/root/install/modsecurity-apache_2.7.7/nginx/modsecurity/

Для этого эксперимента я пропустил подключение модуля geo_ip и результирующая строка конфигурирования Nginx выглядела вот так:

./configure --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_perl_module --http-log-path=/var/log/nginx/ --add-module=/root/install/modsecurity-apache_2.7.7/nginx/modsecurity

Дальше скопируем предложенный файл настроек в папку nginx:

cp /root/install/modsecurity-apache_2.7.7/modsecurity.conf-recommended /etc/nginx/conf/modsecurity.conf

Включается он вот такими строками в описании location:

location / {
    ModSecurityEnabled on;
    ModSecurityConfig modsecurity.conf;
    ModSecurityPass @backend;
       }
Share Button
(Visited 1 329 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *