bana o IP em tentativas múltiplas de login do ssh do faild

0

Existe uma maneira fácil de bloquear um IP que executa um ataque de login brutforce no meu sshd? Talvez apenas um tempo crescente para o prompt de login aparecer.

Eu sei o fail2ban, mas ele parou quando tentei. Também precisa de semdmail, que eu não quero configurar na minha área de trabalho. E eu não quero enviar um email pela internet quando algo está acontecendo. Se o fail2ban pudesse usar notificações de desktop (D-Bus), seria ótimo. Mas eu me pergunto por que tenho que instalar algo separado apenas para algo assim? Por que não pode fazer isso? (Aumente o tempo de espera quando o mesmo IP tiver várias tentativas de login com falha.)

    
por panzi 17.09.2012 / 16:34

4 respostas

2

Uma alternativa para fail2ban é DenyHosts que atualiza /etc/hosts.deny em vez de gerenciar as regras netfilter .

    
por 17.09.2012 / 16:47
0

Você não fornece muitas informações sobre sua configuração, mas, se estiver usando um roteador, geralmente poderá programá-las com um filtro de entrada que fará com que ele bloqueie qualquer coisa de um determinado IP ou intervalo de IPs. Por exemplo, com o meu D-Link, eu vou para a guia Configurações avançadas e selecione a página Filtro de entrada.

    
por 17.09.2012 / 16:44
0

Você deve criar suas próprias ações e filtros do fail2ban. Deixe-me mostrar um exemplo

Basta adicionar linhas para sua nova ação de notificação de desktop em /etc/fail2ban/jail.conf

[ssh-with-desktop-notification]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
         ssh-with-desktop-notification[title=<Title Here>, content=<Content Here>]
logpath = /var/log/secure
maxretry = 3

Crie um novo arquivo com o nome /etc/fail2ban/actions.d/ssh-with-desktop-notification.conf e adicione qualquer comando ao actionstart, actionstop eventos. Por exemplo, suponho que você esteja usando o GNOME como um ambiente de área de trabalho,

actionban =  'which notify-send' <content>

Após todas essas novas linhas, não esqueça de reiniciar o serviço fail2ban.

/etc/init.d/fail2ban restart

Em conclusão, essa nova ação fail2ban verifica o arquivo de log / var / log / secure para tentativas de interrupção. Após 3 ações com falha, ele executará iptables com três parâmetros (nome, porta e protocolo). Depois de executar o iptables, o fail2ban procurará a pasta /etc/fail2ban/actions.d para o arquivo ssh-with-descktop-notifications.conf . Se o arquivo existir, ele procurará arquivar o evento actionban . Então, se o evento actionban existir, o fail2ban executará comandos actionban com parâmetros (título e conteúdo) ao banir um IP.

Nota: Por favor, verifique os comandos são executados com direitos de usuário fail2ban.

    
por 15.07.2014 / 15:22
-1

A melhor maneira de fazer isso é usar os recursos internos do netfilter. Você deseja tempo limite se a porta TCP for atingida muitas vezes em um determinado período de tempo.

Existe um carimbo de hora visto pela última vez para cada anfitrião ...

$ sudo iptables -A INPUT  -p tcp -m tcp --dport 22 -m state \
    --state NEW -m recent                                   \
    --update --seconds 60 --hitcount 4 --name DEFAULT --rsource -j DROP

Leia o artigo completo aqui. link

Existem também vários plugins mais sofisticados para o netfilter que fazem isso.

Não use hosts.deny , que é antigo. Isso é TCP Wrappers, que é antigo e requer suporte de programação.

Eu usei essa técnica em firewalls de produção e ela funciona bem.

    
por 14.03.2013 / 05:33

Tags