Proteja o Nginx de ataques XSS, SQL injection, spam bots, força bruta, e outros com o 7G firewall.

📢 Atualização Importante: Já está disponível a nova versão deste conjunto de regras: o 8G Firewall para Nginx. O 8G traz regras atualizadas contra novos métodos de exploração, padrões modernos de bots e melhorias de desempenho. Recomendamos conferir o novo guia para manter sua proteção em dia.

O 7G firewall nginx é uma ferramenta que ajuda a proteger o seu servidor web Nginx de ataques maliciosos, neste post, vou mostrar como instalar e configurar o 7G firewall nginx no seu servidor.

O 7G firewall oferece uma proteção leve e eficaz no nível do servidor, o que é ótimo para o desempenho, pois evita a necessidade de carregar o PHP, o MySQL e tudo mais apenas para bloquear uma solicitação ruim.

O que é o 7G firewall nginx?

O 7G firewall nginx é uma versão adaptada do 7G firewall original, desenvolvido para servidores Apache.

O 7G firewall consiste em um conjunto de regras que analisam as requisições HTTP e bloqueiam aquelas que contêm padrões suspeitos ou maliciosos. As regras são divididas em categorias, como:

  • Bad Bots: bloqueia bots que tentam explorar vulnerabilidades ou fazer spam

  • Bad Methods: bloqueia métodos HTTP não permitidos ou perigosos

  • Bad Query Strings: bloqueia strings de consulta que contêm caracteres ou palavras-chave maliciosos

  • Bad Referrers: bloqueia referências que vêm de sites maliciosos ou fraudulentos

  • Bad Requests: bloqueia requisições que contêm cabeçalhos, corpos malformados ou inválidos

O 7G firewall nginx protege o seu servidor de ataques como:

- Path Traversal
- HTTP Response Splitting (XSS)
- Cross-Site Scripting
- Cache Poisoning
- Dual-Header Exploits
- SQL/PHP/Code Injection
- File Injection/Inclusion
- Null Byte Injection
- WordPress exploits como revslider, timthumb, fckeditor, etc.
- Exploits como c99shell, phpshell, remoteview, site copier, etc.
- PHP information leakage

Como instalar o 7G firewall nginx?

Para instalar o 7G firewall nginx no seu servidor, você precisa baixar o arquivo ZIP e colocar os arquivos corretamente, veja como fazer:

1. Baixe o arquivo ZIP do 7G firewall nginx no site do Perishable Press e descompacte-o.

Baixar 7G Firewall

Você vai obter dois arquivos: 7g-firewall.conf e 7g.conf, o primeiro contém as regras do firewall e o segundo contém a lógica condicional para aplicá-las.

2. Copie o arquivo 7g-firewall.conf para o diretório /etc/nginx/conf.d/ do seu servidor.

Esse diretório é usado para armazenar arquivos de configuração adicionais do Nginx.

3. Copie o arquivo 7g.conf para dentro da pasta common, caso não exista essa pasta crie com o comando: mkdir /etc/nginx/common

4. Confira se o arquivo de configuração do nginx /etc/nginx/nginx.conf possui a seguinte linha: include /etc/nginx/conf.d/*.conf;

Isso inclui automaticamente todos os arquivos de configuração adicionais no nginx, caso não tenha essa linha, pode adicionar apenas o arquivo necessário com: include /etc/nginx/conf.d/7g-firewall.conf; esse arquivo tem que ficar dentro do bloco http.

5. Agora é preciso adicionar o arquivo 7g.conf apenas dentro do bloco server.

Geralmente esse arquivo com as configurações do bloco server ficam dentro da pasta /etc/nginx/sites-available/meusite e esse arquivo faz link para a pasta /etc/nginx/sites-enabled/meusite

Chegou a hora de reiniciar o nginx para colocar as novas configurações em prática, mas antes é recomendado testar com o comando: nginx -t

# testar com:
nginx -t

# reiniciar com:
sudo service nginx restart

Você pode tentar acessar URLs que contenham padrões maliciosos para ver se elas são bloqueadas pelo firewall e ele está funcionando corretamente.

Alguns testes com requisições inválidas ou maliciosas. Por exemplo, você pode tentar acessar o seu site com os seguintes parâmetros na URL:

  • ?eval=

  • ?exec=

  • ?cmd=

  • ?base64_

curl -I https://www.seusite.com.br/?eval=
curl -I https://www.seusite.com.br/?exec=
curl -I https://www.seusite.com.br/?cmd=
curl -I https://www.seusite.com.br/?base64_

Se tudo estiver certo, você deve receber um erro 403 (Forbidden) ou uma página em branco. Isso significa que o firewall bloqueou a requisição e protegeu o seu site.

Adicionar o 7G firewall no Nginx é uma forma simples e eficaz de aumentar a segurança do seu site e evitar problemas com hackers, spammers e bots. No entanto, para novas instalações ou atualizações de servidores, recomendamos migrar diretamente para o 8G Firewall no Nginx.

Utilizando um plugin do wordpress

Caso não tenha acesso às configurações do nginx, o desenvolvedor também criou um plugin para wordpress, Blackhole for Bad Bots By Jeff Starr

Baixar plugin