Fail2ban é um framework escrito em Python, que pode reduzir as chances de um ataque de Wordlist bem sucedido.
Neste exemplo, vamos mostrar apenas com o serviço sshd. Ele possui configurações padrão com filtros para sshd, Apache, lighttpd, vsftpd, qmail, Postfix e Courier Mail Server.
Instalando no Ubuntu e distros derivadas
Logado como root, digite no terminal:# apt-get install fail2ban
Configurações
Copie o arquivo de configuração em /etc/fail2ban/ do arquivo jail.conf para jail.local:# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Depois, edite o arquivo jail.local:
# vi /etc/fail2ban/jail.local
Com conteúdo:
# "Ignoreip" pode ser um endereço IP, uma máscara de CIDR ou um host DNS
ignoreip = 127.0.0.1 / 8
bantime = 3600
maxretry = 3
ignoreip = 127.0.0.1 / 8
bantime = 3600
maxretry = 3
Notificações de e-mail
Encontre a linha que diz destmail e adicione seu endereço de e-mail:
destemail = seu_email@email.com
Escolha ações padrão. Encontre a linha:
action = %(action_)s
E mude para:
action = %(action_mw)s
Neste caso, usar o Sendmail:
# Email ação. Desde 0.8.1 fail2ban upstream usa sendmail
# MTA para a discussão. Alterar parâmetro de configuração mta ao email
# Se você quiser reverter para 'mail' convencional.
mta = sendmail
# MTA para a discussão. Alterar parâmetro de configuração mta ao email
# Se você quiser reverter para 'mail' convencional.
mta = sendmail
Ativar SSH com Fail2ban
Localize a seção ssh no mesmo arquivo, e ajuste a sua necessidade:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Feito isso, reinicie o Fail2ban para aplicar essas configurações:
# service fail2ban restart
Vamos tentar acessar esse servidor via SSH, com as informações incorretas três vezes. Ele enviará um e-mail de notificação e não poderemos acessar o servidor via SSH pelo período de uma hora, com o mesmo usuário.