Como configurar um intervalo global entre as tentativas de login do SSH?

1

Eu gostaria de tornar impossível fazer mais do que uma única tentativa de login remoto em alguns segundos, independentemente do endereço IP do cliente (exceto alguns endereços confiáveis da lista branca talvez). Assim, se, por exemplo, um usuário do SSH inserir uma senha incorreta, nenhum outro cliente remoto poderá efetuar login até que o intervalo passe.

O objetivo é proteger o sistema contra ataques de senha de força bruta distribuídos (botnet).

Isso é possível?

PS: Eu sei que posso usar apenas certificados e desabilitar o login somente por senha, mas ainda estou curioso.

    
por Ivan 25.07.2014 / 00:13

2 respostas

1

Use fail2ban que usa o firewall para desabilitar o acesso a ssh (e, opcionalmente, outros serviços ) após um certo número de tentativas falhadas. Por padrão, ele bloqueia por 30 minutos após 3 tentativas malsucedidas, mas é configurável usando (acredito) o valor maxretry .

    
por 25.07.2014 / 07:45
0

Se você usar o shorewall como seu firewall, poderá fazer isso com a limitação da taxa de conexão .

Aqui está uma amostra de configuração e explicação:

############################################################################################################################
#ACTION         SOURCE           DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                        PORT    PORT(S)         DEST            LIMIT           GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW

ACCEPT          net:192.168.1.11 $FW             tcp     ssh
ACCEPT          net              $FW             tcp     ssh     -               -               1/min:1

Existem duas regras acima.

A primeira regra sempre permite conexões SSH do endereço IP da lista de permissões 192.168.1.11.

A segunda regra avaliará o limite de conexões SSH de todos os endereços. A taxa limite é definida em 1 conexão por minuto. O link acima descreve como configurar o limite de taxa.

De acordo com a documentação regras do shorewall , a ordem das regras é importante :

For any particular (source,dest) pair of zones, the rules are evaluated in the order in which they appear in this file and the first terminating match is the one that determines the disposition of the request. All rules are terminating except LOG and COUNT rules.

Ou seja, se a primeira regra for disparada, a segunda regra (limitadora de taxa) não deverá ser disparada.

    
por 28.07.2014 / 20:43

Tags