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

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

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

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

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

Спасибо.

2
задан 20 May 2016 в 13:51
3 ответа

Вы можете сделать это, добавив 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

Step 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

5
ответ дан 3 December 2019 в 09:59

Чтобы пропустить этот длительный процесс ручной установки, я создал скрипт который заботится о загрузке необходимых файлов, загрузке и компиляции исходного кода соответствующей версии 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 добавьте эту строку сразу после строки pid:

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

, а затем в файл конфигурации вашего сервера в разделе / etc / nginx / sites-available /

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

Спасибо.

-1
ответ дан 3 December 2019 в 09:59

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

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

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

.
0
ответ дан 3 December 2019 в 09:59

Теги

Похожие вопросы