fail2ban me bane após uma série de logins * bem sucedidos *

4

Eu criei um login ssh sem senha para um dos meus servidores usando o arquivo authorized_keys.

O servidor tem fail2ban, e notei que depois de vários logins bem-sucedidos eu não consegui mais logar (tempo limite de conexão). Se eu desabilitar o fail2ban, posso logar novamente. Existe uma maneira de configurar o fail2ban? contar meus logins bem sucedidos contra mim?

Obrigado!

    
por Tom 17.03.2011 / 02:15

4 respostas

5

Eu tive uma situação semelhante. Mesmo quando ocorre um login bem-sucedido, uma mensagem 'Falha' aparece no arquivo de log sshd (/ var / log / messages) É causada por essa expressão regular (consulte a resposta de Chris S):

^%(__prefix_line)sFailed [-/\w]+ for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$

correspondendo linhas como esta no arquivo / var / log / messages:

Apr 18 14:07:02 hostname sshd[20972]: Failed none for root from 123.45.67.89 port 
50472 ssh2

Quando um usuário efetua login com êxito, a mensagem "Falha em nenhum" ainda aparece no arquivo de mensagens.

Para resolver isso eu mudei o arquivo sshd_config (/ etc / ssh / sshd_config) para especificar

LogLevel INFO

em vez de

LogLevel VERBOSE

Isso interrompe a mensagem "Falha em nenhum" para logons bem-sucedidos, mas a mantém para falhas de login.

Eu também considerei atualizar o arquivo de configuração sshd.conf fail2ban e adicionar algo à linha 'ignoreregex', mas a atualização do sshd é uma solução mais limpa.

    
por 18.04.2011 / 16:26
3

Você pode usar a opção ignoreip config para dizer ao fail2ban para ignorar seu IP.

link

Em /etc/fail2ban/jail.conf adicione algo como

ignoreip = 127.0.0.1 192.168.0.0/24
    
por 17.03.2011 / 02:21
2

Meu arquivo sshd.local tem essa linha para corrigir um problema semelhante. Compare o seu, deve ser semelhante:

failregex = ^%(__prefix_line)s(?:error: PAM: )?[A|a]uthentication (?:failure|error) for .* from <HOST>\s*$
            ^%(__prefix_line)sDid not receive identification string from <HOST>$
            ^%(__prefix_line)sFailed [-/\w]+ for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$
            ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
            ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
            ^%(__prefix_line)sUser \S+ from <HOST> not allowed because not listed in AllowUsers$
            ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
            ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)$
    
por 17.03.2011 / 03:38
1

Isso não está resolvendo seu problema, mas esperamos que você saiba por que isso acontece.

O cliente ssh está usando chaves ssh como você descreveu. Eu suponho que seu cliente tem mais de uma chave ssh no agente ssh listado (ssh-add -l). Em tal configuração, o cliente ssh está se conectando ao servidor e tenta autenticar usando "uma das chaves".

Então, o que acontece é que o cliente ssh tenta uma chave após a outra até que uma seja aceita pelo servidor.

Assumindo 3 chaves ssh, o pior caso resultaria em duas tentativas falhadas seguidas por um login bem-sucedido. Conectando várias vezes com o "findtime" do fail2ban ... E você está banido.

Atualmente, estou procurando uma solução também. Quando eu encontrei, eu vou compartilhar. ;)

    
por 10.02.2016 / 11:36

Tags