SSH / SSHD - Como defino tentativas máximas de login?

16

Qual é a maneira mais fácil de configurar tentativas máximas de login em um ambiente LAMP (sshd instalado via yum)? Existe um pacote ou regra de firewall simples?

    
por John Himmelman 31.05.2011 / 22:20

5 respostas

10

Eu uso Fail2ban ; Eu usei Denyhosts no passado, e funciona muito bem também. Eu sou a favor do Fail2ban agora porque ele é mais configurável e mais capaz de lidar com vários serviços diferentes - por exemplo, a página de login do seu sshd e do seu aplicativo da web simultaneamente (desde que você registre falhas).

Outro método que você pode considerar é implementar uma regra LIMIT em iptables ; Eu infelizmente não posso ajudá-lo com isso, a menos que você queira instalar Shorewall , e então eu simplesmente apontaria você para a excelente documentação nesse site para saber como configurar uma regra LIMIT para, bem, limitar a habilidade de alguém de forçar brutalmente seu servidor.

    
por 31.05.2011 / 22:27
37

Não gosto de usar ferramentas de terceiros. Daí eu usei uma combinação de configuração ssh e configurações de firewall. Com a seguinte solução, um atacante pode produzir exatamente 3 logins de falhas em 2 minutos, ou ele será bloqueado por 120 segundos.

1) Adicione a seguinte linha a /etc/ssh/sshd_config

MaxAuthTries 1

Isso permitirá apenas 1 tentativa de login por conexão. Reinicie o servidor ssh.

2) Adicione as seguintes regras de firewall

Crie uma nova cadeia

iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP

Bloqueie cada endereço IP por 120 segundos, o que estabelece mais de três conexões em 120 segundos. No caso da quarta tentativa de conexão, a solicitação é delegada à corrente SSHATTACK , que é responsável por registrar o possível ataque ssh e finalmente descarta a solicitação.

iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK

3) Veja as entradas de log de possíveis ataques ssh em /var/log/syslog

Dec 27 18:01:58 ubuntu kernel: [  510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
    
por 27.12.2013 / 18:11
4

Não há um pacote específico associado ao SSH para configurá-lo. Você pode, no entanto, instalar o CSF que é o ConfigServer & Firewall.

CSF

Duas mudanças de configuração que eu sugiro seriam feitas no arquivo: / etc / ssh / sshd_config

Limite o número máximo de conexões não autenticadas que o servidor ssh manipulará ao mesmo tempo. Quanto menor for essa, mais difícil será para as kiddies de script fazer tentativas de cracking paralelas e coordenadas com várias conexões. edite o sshd_config e mude o MaxStartups do padrão de "10" para "3:50:10". Os valores separados por dois pontos informam o servidor ssh para "permitir que 3 usuários tentem efetuar login ao mesmo tempo e soltar aleatoriamente e cada vez mais tentativas de conexão entre 3 e o máximo de 10". Nota: isso deve ser aumentado em servidores com números substanciais de usuários ssh válidos fazendo login.

  • Padrão : MaxStartups 10
  • MaxStartups 3:50:10

Reduza o tempo máximo permitido para o login com sucesso antes de desconectar. O padrão de 2 minutos é muito tempo para manter aberta uma tentativa de conexão não autenticada (veja acima); 30 segundos é tempo mais que suficiente para fazer o login:

  • Padrão : LoginGraceTime 2m
  • LoginGraceTime 30
por 31.05.2011 / 22:27
3

Eu uso essas regras do IPTables para isso:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl  --name SSH -j DROP

Isso permitirá somente 4 pacotes TCP / SYN para a porta 22 de um endereço IP em 5 minutos. Se fizer mais tentativas, a porta estará fechada até que 5 minutos acabem.

    
por 19.08.2012 / 19:05
1

existe uma opção que você pode colocar no seu arquivo sshd_config para o servidor:

 MaxAuthTries
         Specifies the maximum number of authentication attempts permitted per
         connection.  Once the number of failures reaches half this value, additional 
         failures are logged.  The default is 6.
    
por 31.05.2011 / 22:30

Tags