Назад | Перейти на главную страницу

Установите Mod_Security для Nginx без перекомпиляции

У меня есть все настройки LEMP. Теперь я хотел бы добавить mod_security.

Я попытался исследовать, но все, что я смог найти, это инструкции о том, как перекомпилировать nginx. Есть ли способ добавить mod_security без перекомпиляции?

В настоящее время я использую nginx / 1.9.15, установленный с PPA, потому что я был после HTTP / 2. У меня нет опыта компиляции nginx, и я не знаю, перекомпилирую ли я когда-нибудь, я сломаю nginx, так как получил его из PPA.

Надеюсь, ты сможешь помочь.

Спасибо.

Вы можете сделать это, добавив ModSecurity как динамический модуль.

Требование: NGINX 1.11.5 и новее.

Шаг 1. Установка необходимых пакетов

apt-get install -y apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev

Шаг 2. Загрузите и скомпилируйте исходный код ModSecurity 3

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git submodule init
git submodule update
./build.sh
./configure
make
make install

Примечание. Компиляция занимает около 15 минут, в зависимости от вычислительной мощности вашей системы.

Шаг 3: Загрузите NGINX Connector для ModSecurity и скомпилируйте его как динамический модуль

git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
wget http://nginx.org/download/nginx-1.13.7.tar.gz 
tar zxvf nginx-1.13.7.tar.gz 
cd nginx-1.13.7
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
make modules
cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules

Шаг 4. Загрузите динамический модуль NGINX ModSecurity Connector

Добавьте эту строку в /etc/nginx/nginx.conf

load_module modules/ngx_http_modsecurity_module.so;

Шаг 5. Настройка и включение

Настройте соответствующий файл конфигурации ModSecurity. Здесь мы используем рекомендованную конфигурацию ModSecurity, предоставленную TrustWave Spiderlabs, корпоративным спонсором ModSecurity.

mkdir /etc/nginx/modsec
wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended
wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/unicode.mapping
mv /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Измените директиву SecRuleEngine в конфигурации, чтобы изменить режим по умолчанию «только обнаружение» на активное удаление вредоносного трафика.

sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsec/modsecurity.conf

Настройте одно или несколько правил. Для целей этого блога мы создаем одно простое правило, которое отбрасывает запрос, в котором аргумент URL с именем testparam включает в свое значение строковый тест. Вставьте следующий текст в /etc/nginx/modsec/main.conf

# From https://github.com/SpiderLabs/ModSecurity/blob/master/\
# modsecurity.conf-recommended
#
# Edit to set SecRuleEngine On
Include "/etc/nginx/modsec/modsecurity.conf"


# Basic test rule
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"

Добавьте директивы modsecurity и modsecurity_rules_file в конфигурацию NGINX, чтобы включить ModSecurity:

server {
    # ...
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;
}

источник : nginx.com

Есть доступный пакет из репозитория ppa:phusion.nl/misc. Вот основные шаги по установке:

sudo add-apt-repository ppa:phusion.nl/misc
sudo apt update
sudo apt install libnginx-mod-http-modsecurity

После этого вы можете следовать инструкциям по настройке из другие ответы.

Чтобы пропустить этот длительный процесс ручной установки, я создал скрипт, который позаботится о загрузке необходимых файлов, загрузке и компиляции исходного кода соответствующей версии nginx и всем остальном. Просто выполните следующие простые шаги, чтобы установить и настроить ModSecurity:

# DOWNLOAD INSTALLATION SCRIPT
wget https://gist.githubusercontent.com/Chetan07j/edc16d6a55a25475cafeb6995f9c0857/raw/d1004a71710c263a8f0d0c098eebd21e72e0c101/libModSecurity.sh
​
# MAKE THIS FILE EXECUTABLE
sudo chmod +x libModSecurity.sh
​
# RUN THIS FILE
./libModSecurity.sh
​
# DONE

Установка завершена, теперь вам нужно добавить несколько строк в nginx.conf и в конфигурацию вашего сервера в папке sites-available.

В /etc/nginx/nginx.conf file добавьте эту строку сразу после строки pid:

...
pid /run/nginx.pid;
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so; # ADD THIS LINE

а затем в файле конфигурации вашего сервера под / и т.д. / nginx / сайты-доступные /

server {
    # ...
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;
}

Спасибо.