Прикручиваем ModSecurity к Nginx под ISP Manager
13 Oct 2019 | Автор: dd |В ключе той задачи с php7.3 о которой я писал ранее, была также необходимость прикрутить к nginx mod_security.
Вкратце это брандмауэр для Web-приложений (он же Web Application Firewall или кратенько WAF), защищающий наш веб-сервер от различных атак и подсовывается веб-серверу на стадии сборки. Но у нас уже был установлен nginx, что несколько добавляло беспокойства.
Итак, смотрим какой у нас nginx и, главное, как он собран:
# nginx -V
nginx version: nginx/1.13
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx ….
версию поставил на шару, но с ISP по дефолту идет какая то старенькая. В конфиге там есессно огромное выражение с кучей ключей, т.ч я оставил основные для понимания что там будет в выводе.
Обновляем систему и доставляем всякие разные нужные опочки:
# yum -y update
# yum groupinstall -y “Development Tools”
# yum install -y pcre pcre-devel libxml2 libxml2-devel curl curl-devel openssl openssl-devel
Собираем сам ModSecurity
# cd /usr/src/
# git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
# cd ModSecurity
# sed -i ‘/AC_PROG_CC/a\AM_PROG_CC_C_O’ configure.ac
# sed -i ’1 i\AUTOMAKE_OPTIONS = subdir-objects’ Makefile.am
# ./autogen.sh
# ./configure CFLAGS=”-fPIC” –enable-standalone-module –disable-mlogc
# make && make install
Вытягиваем nginx поновее и запускаем его сборку, добавив в конце модсек
# cd /usr/src/
# wget https://nginx.org/download/nginx-1.17.3.tar.gz
# tar -xzvf nginx-1.17.3.tar.gz
# cd nginx-1.17.3
# ./configure –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx ….. –add-module=/usr/src/ModSecurity/nginx/modsecurity
# make && make install
копируем конф модсека в папку к апачу
# cp /usr/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsecurity.conf
и добавляем в конфг нашего виртуального сайта /etc/nginx/vhosts/www-user/site.ru.conf
две строчки в раздел location / {
ModSecurityEnabled on;
ModSecurityConfig /etc/nginx/modsecurity.conf;
После этого можем открыть конфиг modsecurity.conf и поменяем дефолтную директиву обучения SecRuleEngine DetectionOnly стоящую в начале файла на SecRuleEngine On. Но лучше для начала оставить как есть.
Также в файле можно поменять кучу всяких разных настроек, но не о них речь, т.к тогда придется писать огромный трактат. В том числе и по конфигам правил, которые можно подключать дополнительно.
Опционно можно также прикрутить перловую консольку ModSecurity Console для визуализации отчетов.
Теперь рестартим нжинкс и веруем в то, что наш сайт теперь защищен более чем до этого.
Прикручиваем ModSecurity к Nginx под ISP Manager,