From 1981cebade0a3e7620ff97d3545da10dc153c80d Mon Sep 17 00:00:00 2001 From: Thanwer Date: Sat, 26 Oct 2024 21:30:16 -0300 Subject: [PATCH] Add pt-br translation for fail2ban basics. --- content/posts/fail2ban-basics.pt.md | 91 +++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 content/posts/fail2ban-basics.pt.md diff --git a/content/posts/fail2ban-basics.pt.md b/content/posts/fail2ban-basics.pt.md new file mode 100644 index 0000000..b0f5f51 --- /dev/null +++ b/content/posts/fail2ban-basics.pt.md @@ -0,0 +1,91 @@ ++++ +date = '2024-10-23T20:43:44-03:00' +title = 'Melhorando a segurança do seu servidor com o Fail2ban' +description = "Post no blog do Thanwer sobre como usar o Fail2ban" +tags = [ + "webserver", + "GNU/Linux", + "Basics Series", +] ++++ + +[Fail2ban](https://github.com/fail2ban/fail2ban) é um software que escaneia arquivos de logs como o `/var/log/auth.log` e bane IPs com muitas falhas de login. + +Isso é apenas uma camada de segurança e deve ser utilizada em conjunto com outras ferramentas como o iptables e melhorias na configuração do SSH. + +Eu sempre configuro uma jail para SSH usando o fail2ban em meus servidoresGNU/Linux. + +Hoje, vou mostrar como configurar uma jail simples para o SSH. + +## Instalando o fail2ban + +Primeiramente voce deve (obviamente) instar o pacote fail2ban. + +```bash +apt install fail2ban # Para Ubuntu/Debian +yum install fail2ban # Para CentOS/RHEL +``` + +## Configurando o fail2ban + +A configuração do fail2ban é muito simples, os arquivos estão todos localizados em: `/etc/fail2ban` + +O `fail2ban.conf` contem a configuração default, é uma boa pratica não editar esse arquivo, mas sim criar uma cópia com o nome `fail2ban.local`, que sobrescreve o `fail2ban.conf`: + +```bash +cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local +``` + +O padrão deve nos atender, então vamos pular isso por enquanto. + +Depois, temos o arquivo `jail.conf` , que é onde configuramos as nossas "jails" como o nome sugere. + +Aqui vamos fazer algumas alterações, primeiro vamos criar um arquivo `jail.local` com o seguinte conteudo: + +``` +[DEFAULT] +bantime.multipliers = 5 15 30 60 300 720 1440 2880 +bantime = 86400 +findtime = 86400 +maxretry = 2 +ignoreip = 192.2.0.0/24, 2001:0DB8::/32 + +[sshd] +backend=systemd +enabled=true +mode=aggressive +action = iptables[name=SSH, port=22, protocol=tcp] +``` + +As configurações são autoexplicativas, na seção `[DEFAULT]` mudamos alguns parametros, como o tempo que devemos banis os atacantes, e definimos IPs confiaveis. Lembre-se de alterar os valores para os que fazem sentido para o seu ambiente, principalmente o `ignoreip`. + +Invista seu tempo para estudar e melhorar esses parametros. + +## Ativando e testando o fail2ban + +Ative e inicie o serviço fail2ban: +```bash +systemctl enable --now fail2ban +``` + +Para testar as jails SSH, basta tentar o login com a senha incorreta por algumas vezes. + +Voce pode ver o status com os seguintes comandos: +```bash +fail2ban-client status +fail2ban-client status sshd +``` + +![Exemplo de uma jail em um servidor de produção](/images/fail2ban-bans.png) + +Como voce pode ver, o serviço SSH em uma VPS em cloud é constantemente atacada, meu servidor já tem mais de 400 IPs banidos. + +## Mais jails! + +Hoje eu mostrei como proteger o seu serviço SSH em uma maquina GNU/Linux, mas não acabou, voce pode usar o fail2ban para qualquer serviço! + +Voce pode até mesmo integrar a proteção do fail2ban com o [Cloudflare](https://github.com/nesrual/fail2ban-cloudflare!) se voce usa os serviços deles! + +Eu sugiro que voce veja o diretório `/etc/fail2ban/filter.d`, que contem os filtros default para varios serviços populares, como Apache, Asterisk, serviços de servidor de e-mail, etc... + +Tambem leia a [documentação oficial](https://github.com/fail2ban/fail2ban/wiki).