Como instalar e configurar o ModSecurity no Nginx

O servidor web Nginx é usado em mais de 30% de site em todo o mundo e crescendo.

Considerando o aumento de ameaças on-line na Web, um dos desafios do engenheiro da Web é estar bem ciente fortalecendo e protegendo o Nginx .

O Nginx é conhecido por seu desempenho e servidor web/proxy leve e usado em muitos sites mais movimentados.

  • Pinterest.com
  • Reddit.com
  • WordPress.com
  • Stackoverflow.com
  • Mail.ru

Se você estiver hospedando seus aplicativos da web no Nginx e preocupado com a segurança, uma das primeiras coisas que você gostaria de implementar é Web Firewall de aplicativo (WAF).

Mod Security é um WAF de código aberto da Trustwave SpiderLabs e foi disponibilizado para Nginx em 2012.

Neste guia, explicarei como download, instalar e configurar Segurança de Mods com Nginx.

A demonstração a seguir é feita no CentOS hospedado com Digital Ocean .

Se você é novo no Nginx, eu recomendaria fazer isso curso fundamental .

Baixar Nginx e ModSecurity

Você pode baixar o nginx diretamente em seu servidor ou em seu PC local e depois transferi-lo.

  • Baixe a versão mais recente no link abaixo

http://nginx.org/en/download.html

  • Se você estiver baixando diretamente no servidor, poderá usar o wget conforme abaixo
wget   http://nginx.org/download/nginx-1.9.15.tar.gz 
  • Extraia-os usando o comando gunzip
gunzip -c nginx-1.9.15.tar.gz | tar xvf –
  • Você verá a nova pasta criada
drwxr-xr-x 8 1001 1001   4096 Apr 19 12:02 nginx-1.9.15
  • Baixe a versão mais recente do Mod Security no link abaixo

https://www.modsecurity.org/download.html

  • Você pode usar os comandos abaixo do servidor diretamente
wget   https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz 
gunzip -c modsecurity-2.9.1.tar.gz | tar xvf –

Vamos instalá-los

Instale o Nginx com Mod Security

É importante compilar o código-fonte de segurança Nginx e mod.

  • Faça login em um servidor e certifique-se de ter permissão de root.

Observação: se você estiver fazendo em um servidor totalmente novo, talvez seja necessário instalar as seguintes bibliotecas.

yum install gcc make automake autoconf libtool pcre pcre-devel libxml2 libxml2-devel curl curl-devel httpd-devel

Primeiro, vamos compilar o mod security. Vá para modsecurity-2.9.1 pasta e use os comandos abaixo.

./configure --enable-standalone-module
make

Próximo instale o Nginx com mod security

./configure --add-module=../modsecurity-2.9.1/nginx/modsecurity
make
make install

Isso conclui que o Nginx está instalado com Mod Security e é hora de configurá-lo.

Configurar Mod Security com Nginx

cópia de modsecurity.conf-recomendado & unicode.mapping arquivo da pasta extraída do código-fonte ModSecurity baixado acima para a pasta nginx conf. Você também pode usar o encontrar comando.

find / -name modsecurity.conf-recommended
find / -name unicode.mapping
(root@tecnologico-Lab conf)# cp /opt/nginx/binary/modsecurity-2.9.1/modsecurity.conf-recommended /usr/local/nginx/conf/
(root@tecnologico-Lab conf)# cp /opt/nginx/binary/modsecurity-2.9.1/ unicode.mapping /usr/local/nginx/conf/
(root@tecnologico-Lab conf)#

vamos renomear modsecurity.conf-recomendado para modsecurity.conf

mv modsecurity.conf-recommended modsecurity.conf
  • Faça um backup do arquivo nginx.conf
  • Abra o arquivo nginx.conf e adicione o seguinte na diretiva “location /”
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;

Então deve aparecer assim

location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
}

Agora, o Mod Security está integrado ao Nginx. Reinicie o Nginx para garantir que está funcionando sem nenhum erro.

Vamos verificar…

Existem dois métodos possíveis para confirmar que o Nginx é compilado com Mod Security.

Primeiro…

Liste o módulo compilado usando –V com o arquivo executável nginx.

(root@tecnologico-Lab sbin)# ./nginx -V 
nginx version: nginx/1.9.15
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
configure arguments: --add-module=../modsecurity-2.9.1/nginx/modsecurity
(root@tecnologico-Lab sbin)#

Segundo…

Vá para a pasta de logs e veja o arquivo de erro, você deve ver o seguinte

2016/05/21 21:54:51 (notice) 25352#0: ModSecurity for nginx (STABLE)/2.9.1 (http://www.modsecurity.org/) configured.
2016/05/21 21:54:51 (notice) 25352#0: ModSecurity: APR compiled version="1.3.9"; loaded version="1.3.9"
2016/05/21 21:54:51 (notice) 25352#0: ModSecurity: PCRE compiled version="7.8 "; loaded version="7.8 2008-09-05"
2016/05/21 21:54:51 (notice) 25352#0: ModSecurity: LIBXML compiled version="2.7.6"

Isso conclui que você configurou o ModSecurity com Nginx com sucesso.

Por padrão, a configuração está apenas no modo de detecção, o que significa que não executará nenhuma ação e proteja seus aplicativos da web .

Em meu próximo artigo, expliquei como configurar Conjunto de regras OWASP e habilitar Mod Security para proteger contra vulnerabilidades de segurança da web.

Artigos relacionados