У меня есть все настройки LEMP. Теперь я хотел бы добавить mod_security .
Я пытался исследовать, но все, что я смог найти, - это инструкции по перекомпиляции nginx. Есть ли способ добавить mod_security без перекомпиляции?
В настоящее время я использую nginx / 1. 9.15 установлен с PPA, потому что я был после HTTP / 2. У меня нет опыта компиляции nginx, и я не знаю, перекомпилирую ли я когда-нибудь, я бы сломал nginx, так как получил его из PPA.
Надеюсь, вы можете помочь.
Спасибо.
Вы можете сделать это, добавив ModSecurity в качестве динамического модуля.
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
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 минут, в зависимости от вычислительной мощности вашей системы.
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
Добавьте эту строку в /etc/nginx/nginx.conf
load_module modules/ngx_http_modsecurity_module.so;
Настройте соответствующий файл конфигурации 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
Чтобы пропустить этот длительный процесс ручной установки, я создал скрипт который заботится о загрузке необходимых файлов, загрузке и компиляции исходного кода соответствующей версии 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;
}
Спасибо.
Доступен пакет из репозитория ppa:phusion.nl/misc
. Вот основные шаги по установке:
sudo add-apt-repository ppa:phusion.nl/misc
sudo apt update
sudo apt install libnginx-mod-http-modsecurity
После этого вы можете следовать инструкциям по настройке из других ответов.
.