Bloqueando Ataque SSH com Fail2Ban Centos 7
Hoje em dia quem sobe uma VPS na internet sabe que a primeira coisa que acontece é tentativa de acesso SSH por Brute Force por isso vamos estar Bloqueando Ataque SSH com Fail2Ban Centos 7!
Mesmo que você faça as configuração para acesso ao seu servidor somente via chaves ou tenha uma senha super segura aqueles acessos vão te perturbar! Acima de tudo tenha em mente que alguém que está te atacando via SSH pode fazer um Scan em outras portas para tentar conseguir te prejudicar de alguma forma.
Antes de tudo o Fail2ban é uma ferramenta simples que promete acabar com essa dor de cabeça. Ele basicamente fica lendo os logs de acesso SSH (ou qualquer outro log que você quiser configurar) e passando expressões regulares pré configuradas do programa no log. Nesse sentido caso algum desses logs “case” com a expressão regular ele executa uma ação, que no nosso caso vai ser adicionar um regra no Firewalld do servidor bloqueando por um período de tempo o IP que executou tal ação não permitida.
Instalando Fail2ban
Para instalar ele no centos 7 é simples, antes de tudo você tem que garantir que o repositório epel-release está instalado, então execute abaixo:
yum install epel-release -y
Após isso execute a instalação do fail2ban-firewalld:
yum install fail2ban-firewalld -y
Configurando Fail2ban
Por default o Fail2ban não vem com nenhuma regra ativa, então vamos ativar somente a regra para monitorar os acessos SSH. Para isso abra o arquivo de configuração do Fail2Ban /etc/fail2ban/jail.conf e vá até a area de sshd e deixe da seguinte maneira:
[sshd]
mode = normal
# modo de operação, você pode escolher entre normal (default), ddos, extra or aggressive ou combinar todos.
maxretry = 2
# quantidade de vezes que o ip pode "casar" com a expressão regular e não ser bloqueado.
bantime = 365d
# Tempo que o IP ficará banido no Firewalld
enabled = true
# Habilitar a regra [ssd]
port = ssh
# porta do ssh, nesse caso é a padrão
logpath = %(sshd_log)s
# arquivo de log o fail2ban vai ficar lendo, nesse caso /var/log/secure
backend = %(sshd_backend)s
Após essa configuração você precisa dar um start no fail2ban e habilitar ele inicialização do sistema:
systemctl start fail2ban.service
systemctl enable fail2ban.service
Conferindo se Está tudo Certo.
Agora vamos conferir se ele já está bloqueando os ips você pode executar o comando:
[root@vps211 fail2ban]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 16
| |- Total failed: 136
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 12
|- Total banned: 12
`- Banned IP list: 210.105.82.53 200.44.50.155 206.189.127.6 49.88.112.116 222.186.30.76 14.63.174.149 210.251.213.165 203.110.163.205 51.38.70.175 183.62.197.115 201.234.238.10 188.131.140.32
Ali você pode ver que já temos Ips bloqueados no Firewalld.
Algumas configurações:
- Caso você precise instalar em outra distribuição no arquivo jail.conf existe uma configuração before = paths-fedora.conf que você precisa alterar pois nomes e diretórios dos arquivos de log são diferentes.
- Dentro de /etc/fail2ban/actions.d/ são configuradas o tipo de ação que o fail2ban vai fazer caso “case” algum tipo de log na sua expressão regular.
- Dentro de /etc/fail2ban/filter.d/ estão os arquivos de configurações contendo as expressões regulares de cada regra e se por acaso você sentir necessidade de uma regra especial, você pode usar por exemplo o https://regexr.com/ para testar sua própria expressão regular. Eu mesmo já fiz isso inúmeras vezes.
- Em /var/log/fail2ban.log você pode ver detalhes do que o Fail2ban está fazendo! É legal você dar uma olhada nesse arquivo.
Enfim, por hoje é isso! Espero que você já esteja Bloqueando Ataque SSH com Fail2Ban Centos 7.
Nesse meio tempo você pode gostar também: 5 Dicas úteis de Configuração do Nginx