terça-feira, 16 de setembro de 2014

Integrando com NGINX e Vendo algumas configurações

Dando sequencia a nossa serie, vamos instalar o mod_security no web server NGINX.
Se tiver feito a instalação do NGINX usando o repositorio, podem verificar se o módulo para o mod_security esta habilitado, com o comando:

- strings /usr/sbin/nginx | grep -i sec //Pasta onde se encontra o binario do NGINX

se não tiver retorno, sera necessario recompilar o NGINX, caso ja esteja instalado ou fazer uma instalação usando os fontes.
No momento dessa materia, a versão abaixo era a mais atual (http://wiki.nginx.org/Install)

- wget http://nginx.org/download/nginx-1.6.0.tar.gz
**Sera abortado a instalação do NGINX, apenas, de maneira superficial, pois, não é o nosso objetivo**

Instalação do ModSecurity( A instalação é baseada em derivados RedHat)

Primeiro vamos instalar todas as dependencias
- yum install gcc make libxml2 libxml2-devel httpd-dev pcre-devel curl-devel
Para a instalação do mod_security, vamos usar o git (yum install git), e baixar a versão mais recente do projeto.
- git clone git://github.com/SpiderLabs/ModSecurity.git
- cd ModSecurity
- ./autogen.sh
- ./configure --enable-standalone-module --disable-mlogc
- make
- make install


**Em caso de duvidas durante a instalação, favor voltar em nosso primeiro artigo.**

Sendo bem sucedida a nossa instalação, vamos instalar ou recompilar o NGINX
- tar zxvf nginx-1.6.0.tar.gz
- cd nginx-1.6.0/
- ./configure --add-module=../ModSecurity/nginx/modsecurity
- make && make install


Agora se executarmos o comando abaixo, nos temos um retorno

- strings /usr/local/nginx/sbin/nginx | grep -i modsec
As configurações do mod_security são definidas dentro de nginx.conf
Adicione as seguintes linhas dentro da diretiva location /

- ModSecurityEnabled on;
- ModSecurityConfig modsecurity.conf;

    ex.
     location / {
            ModSecurityEnabled on;
            ModSecurityConfig modsecurity.conf;
            root   html;
            index  index.html index.htm;
        }



Bom, agora que ja temos o mod_sec compilado e pronto para rodar no web server de nossa preferencia,
vamo começar a olhar as configurações do mod_security.
Nesse primeiro momento vou apenas mostrar algumas das principais seções do arquivo de configuração e
a partir do proximo artigo, ja ir explicando de uma maneira um pouco mais detalhada.
É importante dizer que é bom passarmos por todas as configurações, porque, mesmo que não va usar nesse momento, voce pode
vir a precisar e é bom sabermos que temos a disposição.
Volto a dizer que:

    O OBJETIVO DESSES ARTIGOS É EXPLICAR COMO O MOD_SECURITY FUNCIONA E COMO É SUA ESTRUTURA,
    PARA QUE NÃO FIQUEMOS REFENS DE REGRAS ALHEIAS, TENDO EM VISTA QUE CADA UM TEM A SUA NECESSIDADE


Abaixo temos uma visão geral das diretivas padrões do mod_securit
**Tentei traduzir os itens abaixo, mas não ficou com e resolvi deixar em ingles mesmo.**

SecArgumentSeparator ---------- Sets the application/x-www-form-urlencoded parameter separator
SecCookieFormat ---------- Sets the cookie parser version
SecDataDir ---------- Sets the folder for persistent storage
SecRequestBodyAccess ---------- Controls request body buffering
SecRequestBodyInMemoryLimit ---------- Sets the size of the per-request memory buffer
SecRequestBodyLimit ---------- Sets the maximum request body size ModSecurity will accept
SecRequestBodyLimitAction ---------- Controls what happens once the request body limit is reached
SecRequestBodyNoFilesLimit ---------- Sets the maximum request body size, excluding uploaded files
SecResponseBodyAccess ---------- Controls response body buffering
SecResponseBodyLimit ---------- Specifies the response body buffering limit
SecResponseBodyLimitAction ---------- Controls what happens once the response body limit is reached
SecResponseBodyMimeType ---------- Specifies a list of response body MIME types to inspect
SecResponseBodyMimeTypesClear ---------- Clears the list of response body MIME types
SecRuleEngine ---------- Controls the operation of the rule engine
SecTmpDir ---------- Sets the folder for temporary files

No proximo artigo vamos continuar a ver a estrutura do mod_security e detalhar um pouco mais.
É muito importante vermos esses conceitos, para entendermos como o mod_security funciona.



Ref:
ModSecurity HandBook -- https://www.feistyduck.com/books/modsecurity-handbook/
http://blog.spiderlabs.com/

Um comentário: