Para proteger um servidor Nginx utilizando o Fail2Ban no Ubuntu, é necessário seguir alguns passos específicos que envolvem a instalação e configuração tanto do Nginx quanto do Fail2Ban. O Nginx é um servidor web amplamente utilizado devido à sua performance e escalabilidade, enquanto o Fail2Ban é uma ferramenta de segurança que ajuda a proteger contra tentativas de ataque por meio de monitoramento de logs e bloqueio de endereços IP suspeitos.
Vamos abordar cada etapa em detalhes:
-
Instalação do Nginx:
Antes de mais nada, é necessário ter o Nginx instalado no seu servidor Ubuntu. Você pode fazer isso utilizando o gerenciador de pacotes apt:sqlsudo apt update sudo apt install nginxApós a instalação, você pode verificar se o Nginx está em execução utilizando o comando:
luasudo systemctl status nginx -
Instalação do Fail2Ban:
O próximo passo é instalar o Fail2Ban, que será responsável por monitorar os logs do Nginx e tomar ações preventivas contra tentativas de ataques. Você pode instalá-lo também utilizando o apt:sudo apt install fail2ban -
Configuração do Fail2Ban para proteger o Nginx:
Agora, precisamos configurar o Fail2Ban para monitorar os logs do Nginx e tomar medidas quando detectar atividades suspeitas. Para isso, vamos criar um arquivo de configuração específico para o Nginx.Primeiro, crie um arquivo de configuração para o Nginx no diretório de configuração do Fail2Ban:
bashsudo nano /etc/fail2ban/jail.d/nginx.confDentro deste arquivo, você pode adicionar as seguintes linhas de configuração:
java[nginx] enabled = true port = http,https filter = nginx-auth logpath = /var/log/nginx/error.log maxretry = 3Isso configura o Fail2Ban para monitorar o arquivo de log de erro do Nginx em busca de tentativas de autenticação mal-sucedidas, permitindo 3 tentativas antes de bloquear o endereço IP.
-
Configuração do filtro do Fail2Ban:
Agora, precisamos criar o filtro que o Fail2Ban utilizará para detectar tentativas de ataque no log do Nginx. Crie um arquivo de filtro para o Nginx:bashsudo nano /etc/fail2ban/filter.d/nginx-auth.confE adicione o seguinte conteúdo ao arquivo:
css[Definition] failregex = ^ \[error\] \d+#\d+: \*\d+ user "\S+":? (password mismatch|was not found|authentication failure) for "\S+"?, client:\s*$ ignoreregex = Este filtro irá detectar mensagens de erro de autenticação no log do Nginx e extrair o endereço IP do cliente.
-
Reiniciar o Fail2Ban:
Depois de configurar o Fail2Ban para monitorar o Nginx, reinicie o serviço para aplicar as alterações:sudo systemctl restart fail2ban
Com essas configurações, o Fail2Ban agora estará monitorando os logs do Nginx em busca de tentativas de autenticação mal-sucedidas e tomará medidas preventivas bloqueando endereços IP suspeitos após um certo número de tentativas. Isso ajuda a proteger o servidor Nginx contra ataques de força bruta e outras formas de acesso não autorizado. Certifique-se de revisar os logs regularmente para garantir que as configurações estejam funcionando conforme o esperado.
“Mais Informações”

Além das configurações básicas mencionadas anteriormente, é possível aprofundar ainda mais a proteção do servidor Nginx utilizando o Fail2Ban através de diversas técnicas e configurações adicionais. Vamos explorar algumas delas:
-
Configuração de Regras Personalizadas:
O Fail2Ban permite a criação de regras personalizadas para monitorar diferentes tipos de atividades suspeitas. Além das tentativas de autenticação mal-sucedidas, você pode criar regras para monitorar outras atividades no log do Nginx, como tentativas de acesso a URLs específicas que não existem, acessos excessivos a recursos específicos, entre outros. -
Configuração de Ações Personalizadas:
Além de simplesmente bloquear o endereço IP suspeito, o Fail2Ban oferece a capacidade de configurar ações personalizadas para lidar com eventos detectados. Por exemplo, você pode configurar o Fail2Ban para notificar o administrador por e-mail ou executar scripts personalizados para lidar com situações específicas de segurança. -
Monitoramento em Tempo Real:
O Fail2Ban possui a capacidade de monitorar os logs em tempo real, o que significa que ele pode detectar e responder a eventos quase que instantaneamente. Isso é especialmente útil para lidar com ataques em andamento, permitindo uma resposta rápida para proteger o servidor. -
Integração com Outras Ferramentas de Segurança:
O Fail2Ban pode ser integrado com outras ferramentas de segurança, como firewalls, sistemas de detecção de intrusão (IDS) e sistemas de prevenção de intrusão (IPS). Essa integração permite uma abordagem mais abrangente para proteger o servidor contra uma variedade de ameaças. -
Análise de Logs e Relatórios:
É importante analisar regularmente os logs do Fail2Ban e do Nginx para identificar padrões de atividade suspeita e ajustar as configurações conforme necessário. Além disso, a geração de relatórios periódicos pode ajudar a manter o controle sobre a eficácia das medidas de segurança implementadas. -
Configuração de Whitelists e Blacklists:
O Fail2Ban permite a configuração de listas de IP permitidos (whitelists) e bloqueados (blacklists). Isso pode ser útil para garantir que endereços IP específicos, como os do próprio administrador, não sejam bloqueados acidentalmente, e também para bloquear endereços IP conhecidos por serem maliciosos. -
Atualizações e Manutenção:
É fundamental manter tanto o Nginx quanto o Fail2Ban atualizados com as últimas correções de segurança e atualizações de software. Além disso, é importante realizar uma manutenção regular do sistema para garantir que todas as configurações de segurança estejam configuradas corretamente e que não haja vulnerabilidades não detectadas.
Ao implementar essas práticas e configurações adicionais, você pode fortalecer significativamente a segurança do seu servidor Nginx e protegê-lo contra uma variedade de ameaças cibernéticas. No entanto, lembre-se de que a segurança é um processo contínuo e em constante evolução, e é importante permanecer vigilante e atualizado sobre as melhores práticas de segurança cibernética.

