Um dos vetores de ataque mais comuns contra servidores são as tentativas de login de força bruta. É aqui que os invasores tentam acessar o seu servidor, tentando combinações infinitas de nomes de usuário e senhas.
Para esses tipos de problemas a solução mais rápida e eficaz é limitar o número de tentativas e bloquear o acesso ao usuário ou ao IP por um certo tempo. Também é importante saber que, para isso, existem também aplicativos de código aberto especificamente desenvolvidos para a defesa contra esse tipo de ataque.
Na postagem de hoje, Vou apresentar um é chamado Fail2Ban. Originalmente desenvolvido por Cyril Jaquier em 2004, o Fail2Ban é uma estrutura de software de prevenção de intrusão que protege os servidores de ataques de força bruta.
Sobre Fail2ban
Fail2ban verifica arquivos de log (/ var / log / apache / error_log) e proíbe IPs que mostram atividades maliciosas, como muitas senhas com falha e pesquisa de vulnerabilidades, etc.
Em geral, Fail2Ban é usado para atualizar as regras de firewall para rejeitar endereços IP por um determinado período de tempo, embora qualquer outra ação arbitrária (por exemplo, enviar um e-mail) também possa ser configurada.
Instalando Fail2Ban no Linux
O Fail2Ban é encontrado na maioria dos repositórios das principais distribuições Linux e mais especificamente nos mais utilizados para uso em servidores, como CentOS, RHEL e Ubuntu.
No caso do Ubuntu, basta digitar o seguinte para instalação:
sudo apt-get update && sudo apt-get install -y fail2ban
Enquanto no caso de Centos e RHEL, eles devem digitar o seguinte:
yum install epel-release
yum install fail2ban fail2ban-systemd
Se você tiver SELinux, é importante atualizar as políticas com:
yum update -y selinux-policy*
Uma vez feito isso, eles devem saber em primeiro plano que os arquivos de configuração Fail2Ban estão em / etc / fail2ban.
A configuração de Fail2Ban é principalmente dividido em dois arquivos principais; eles são fail2ban.conf e jail.conf. fail2ban.confes o arquivo de configuração Fail2Ban maior, onde você pode definir configurações como:
- O nível de log.
- O arquivo para fazer login.
- O arquivo de soquete do processo.
- O arquivo pid.
jail.conf é onde você configura opções como:
- A configuração dos serviços a defender.
- Quanto tempo para banir se eles deveriam ser atacados.
- O endereço de e-mail para enviar relatórios.
- A ação a ser executada quando um ataque é detectado.
- Um conjunto predefinido de configurações, como SSH.
configuração
Agora vamos passar para a parte de configuração, A primeira coisa que faremos é uma cópia de backup do nosso arquivo jail.conf com:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
E passamos a editar agora com o nano:
nano /etc/fail2ban/jail.local
Dentro, vamos para a seção [Padrão], onde podemos fazer alguns ajustes.
Aqui na parte "ingoreip" estão os endereços IP que serão deixados de fora e serão completamente ignorados pelo Fail2Ban, que é basicamente o IP do servidor (o local) e os demais que você acha que deveriam ser ignorados.
A partir daí os outros IPs que não conseguirem acessar estarão à mercê de serem banidos e aguarde o número de segundos que será banido (por padrão é 3600 segundos) e que fail2ban só atua após 6 tentativas malsucedidas
Após a configuração geral, vamos agora indicar o serviço. O Fail2Ban já possui alguns filtros predefinidos para vários serviços. Então, faça algumas adaptações. Aqui está um exemplo:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Com as alterações relevantes feitas, você finalmente precisará recarregar o Fail2Ban, executando:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
Feito isso, vamos fazer uma verificação rápida para ver se o Fail2Ban está em execução:
sudo fail2ban-client status
Desbanir um IP
Agora que banimos com sucesso um IP, e se quisermos cancelar o banimento de um IP? Para fazer isso, podemos usar novamente o fail2ban-client e dizer a ele para cancelar o banimento de um IP específico, como no exemplo abaixo.
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
Onde "xxx ...." Será o endereço IP que você indicou.