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.