Instale o Mod_Security para o Nginx sem precisar recompilar

1

Eu tenho tudo LEMP configuração. Agora eu gostaria de adicionar mod_security .

Eu tentei pesquisar, mas tudo que consegui encontrar foram instruções sobre como recompilar o nginx. Existe uma maneira de adicionar mod_security sem precisar recompilar?

Atualmente, estou executando o nginx / 1.9.15 instalado com o PPA porque estava atrás do HTTP / 2. Eu não tenho experiência em compilar o nginx e não sei se alguma vez eu recompilei que iria quebrar nginx desde que eu peguei do PPA.

Espero que você possa ajudar.

Obrigado.

    
por julio 20.05.2016 / 12:51

1 resposta

2

Você pode fazer isso adicionando ModSecurity como módulo dinâmico.

Requisito: NGINX 1.11.5 e posterior.

Etapa 1: instalando os pacotes necessários

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

Passo 2: Baixe e Compile o Código Fonte do 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

Nota: A compilação leva cerca de 15 minutos, dependendo do poder de processamento do seu sistema.

Passo 3: Baixe o conector NGINX para ModSecurity e compile-o como um módulo dinâmico

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

Etapa 4: Carregar o Módulo Dinâmico do Conector NGINX ModSecurity

Adicione esta linha ao /etc/nginx/nginx.conf

load_module modules/ngx_http_modsecurity_module.so;

Etapa 5: configurar e ativar

Configure o arquivo de configuração apropriado do ModSecurity. Aqui, estamos usando a configuração recomendada do ModSecurity fornecida pela TrustWave Spiderlabs, os patrocinadores corporativos do ModSecurity.

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

Altere a diretiva SecRuleEngine na configuração para mudar do modo padrão “somente detecção” para o tráfego malicioso.

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

Configure uma ou mais regras. Para os propósitos deste blog, estamos criando uma única regra simples que descarta uma solicitação em que o argumento de URL chamado testparam inclui o teste de string em seu valor. Coloque o seguinte texto em /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"

Adicione as diretivas modsecurity e modsecurity_rules_file à configuração do NGINX para ativar o ModSecurity:

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

fonte: nginx.com

    
por 06.12.2017 / 10:13