Компиляция ModSecurity в NGINX OSS

Я пытаюсь скомпилировать ModSecurity для веб-сервера Nginx OSS. Я выполнил все инструкции из их «Краткого руководства», но столкнулся с проблемой. После подключения нового модуля проверка конфигурации завершается неудачно.

Выход ошибки из /var/log/nginx/error.log:

2018/02/10 00:47:51 [emerg] 6026#6026: module "/usr/share/nginx/modules/ngx_http_modsecurity_module.so" is not binary compatible in /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf:1

изначально динамический модуль был скомпилирован с

sh ./configure --with-compat --add-dynamic-module=../ModSecurity-nginx

но это приводит к ошибке.

из того, что я прочитал, мне нужно скомпилировать модуль с теми же параметрами, что и существующий экземпляр Nginx.

Я нашел текущие параметры, используя nginx -V, а затем повторно запустил ./configure, используя все параметры вывода, но это дает ту же ошибку.

Может ли кто-нибудь указать мне правильный путь здесь?

Спасибо за любую помощь.

ОБНОВЛЕНИЕ 29.10.18

Похоже, исходный бинарник тоже нужно скомпилировать с флагом --with-compat. Я отправил отчет об ошибке по этой проблеме, который можно найти здесь:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897926

Может быть, это может получить некоторую тягу.


person Andrew Brown    schedule 10.02.2018    source источник
comment
Привет Эндрю Браун, не могли бы вы решить проблему? Если да, то как? Я тоже столкнулся с той же проблемой. Моя версия Nginx — 1.10.3. Спасибо   -  person Mushfiqur Rahman    schedule 30.11.2018
comment
Я не видел никаких изменений в отчете об ошибке, но, по-видимому, новейший Nginx в репозитории Ubuntu скомпилирован с --with-compat! Ура! Я все еще возился с его полной настройкой, но я продвинулся дальше, чем когда-либо прежде. Вам, вероятно, придется обновиться с 1.10.3.   -  person Andrew Brown    schedule 30.11.2018


Ответы (1)


У меня была аналогичная проблема. Я использовал Nginx 1.10.3, который используется по умолчанию для Debian Stretch. Эта версия не работает с последним коннектором Nginx ModSecurity.

Я удалил версию Nginx по умолчанию и установил последнюю стабильную версию Nginx с http://nginx.org/en/linux_packages.html. После этого я без проблем смог установить и загрузить модуль ModSecurity для Nginx. Я следовал этому руководству: https://www.linuxjournal.com/content/modsecurity-and-nginx для установки модуля ModSecurity для Nginx.

Последняя стабильная версия Nginx 1.14.2 поддерживает флаг --with-compat. При компиляции исходного кода Nginx убедитесь, что вы используете те же параметры компилятора, которые использовались с запущенным Nginx. Чтобы узнать, какие параметры времени компиляции использовались для сборки работающего в данный момент Nginx, выполните команду: nginx -V

person Nadir Latif    schedule 09.04.2019