Eu escrevi um programa para bloquear endereços IP como você está pedindo há alguns anos atrás, mas o fiz para um cliente como um trabalho contratado. Uma vez que acabei com algum tempo "livre" esta noite, optei por reimplementar a coisa toda, escrever uma documentação útil e, geralmente, torná-la um programa apresentável. Desde que eu ouvi de várias pessoas que isso seria uma coisa útil para ter parece que provavelmente vale a pena o tempo. Espero que você e outros membros da comunidade consigam algum uso disso.
Windows sshd_block
sshd_block é um programa VBScript que atua como um coletor de eventos WMI para receber entradas do Log de Eventos do Windows registradas pelo sshd. Ele analisa essas entradas de log e age sobre elas da seguinte maneira:
-
Se o endereço IP tentar fazer logon com um nome de usuário sinalizado como "banir imediatamente", o endereço IP será banido imediatamente.
-
Se o endereço IP tentar fazer logon com mais freqüência do que o permitido em um determinado período de tempo, o endereço IP será banido.
Os nomes de usuário e limites "banidos imediatamente" associados a repetidas tentativas de logon são configuráveis na seção "Configuração" do script. As configurações padrão são as seguintes:
- Proibir imediatamente nomes de usuários - administrador, raiz, convidado
- Tentativas de logon permitidas - 5 em 120 segundos (2 minutos)
- Duração da proibição - 300 segundos (5 minutos)
Uma vez por segundo, quaisquer endereços IP que tenham sido banidos durante a duração da proibição serão desbanidos (com a rota do buraco negro removida da tabela de roteamento).
Você pode baixar o software aqui e pode navegar pelo arquivo aqui .
Editar:
A partir de 2010-01-20 eu atualizei o código para suportar o uso do "Firewall Avançado" no Windows Vista / 2008/7/2008 R2 para executar o bloqueio de tráfego através da criação de regras de firewall (que é muito mais alinhado com o comportamento de "fail2ban"). Eu também adicionei algumas strings de correspondência adicionais para capturar as versões do OpenSSH que "usuário inválido" ao invés de "usuário ilegal".