logs SSH eu não entendo: tentativas máximas de autenticação excedidas

6

Estou tentando descriptografar todos os meus logs ssh (para dar a eles tags razoáveis com logstash). Mas eu encontrei um caso que eu realmente não entendo:

Oct 23 07:43:47 sshd[59830]: Connection from 74.194.6.5 port 60126 on 213.67.100.148 port 22
Oct 23 07:43:51 sshd[59830]: error: maximum authentication attempts exceeded for root from 74.194.6.5 port 60126 ssh2 [preauth]
Oct 23 07:43:51 sshd[59830]: Disconnecting authenticating user root 74.194.6.5 port 60126: Too many authentication failures [preauth]

Como é possível alcançar o máximo de tentativas de autenticação sem dar qualquer sinal de tentativa de autenticação?

Geralmente eu recebo coisas como antes da linha "máxima autenticação ..." aparecer.

Oct 23 08:54:06 sshd[62392]: Failed keyboard-interactive/pam for [...]
Oct 23 08:52:41 sshd[49690]: Failed publickey for [...]

Mas nem sempre.

Por favor note, eu não tenho problemas para fazer login ..

    
por Peter 23.10.2017 / 10:20

2 respostas

3

Essa mensagem de erro é acionada, entre outros, quando o cliente ssh tenta um login baseado em chave e oferece mais de MaxAuthTries chaves inválidas. O servidor SSH interromperá a conexão. Isso pode ser causado por um cliente (mal-intencionado) que não possui chaves válidas, ou por usuários válidos que simplesmente têm muitos pares de chaves diferentes e o número MaxAuthTries é alcançado antes que a chave válida possa ser trocada. Quando isso acontece, a conexão será encerrada e nem chegará ao estágio em que os métodos alternativos de login serão oferecidos / tentados.

(No nível de log padrão) o servidor ssh não grava as chaves com falha get são trocadas e, portanto, a mensagem de erro " error: maximum authentication attempts exceeded for ... ssh2 [preauth] " parece aparecer sem nenhuma tentativa de autenticação prévia no arquivo de log.

Você pode facilmente simular isso com:

for n in $(seq 1 10 ) ; do ssh-keygen -b 2048 -t rsa -f /tmp/sshkey-$n -q -N "" ; done
ssh  -v -i /tmp/sshkey-1  -i /tmp/sshkey-2  -i /tmp/sshkey-3  ... user@host

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /tmp/sshkey-1
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Offering RSA public key: /tmp/sshkey-2
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Offering RSA public key: /tmp/sshkey-3
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Offering RSA public key: /tmp/sshkey-4
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Offering RSA public key: /tmp/sshkey-5
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Offering RSA public key: /tmp/sshkey-6
debug2: we sent a publickey packet, wait for reply
Received disconnect from hostn port 22:2: Too many authentication failures
Authentication failed

O valor padrão para MaxAuthTries é 6 .

sshd[19032]: error: maximum authentication attempts exceeded for login from 10.9.8.7 port 54956 ssh2 [preauth]
sshd[19032]: Disconnecting: Too many authentication failures [preauth]

Aumentar o sshd_config LogLevel para VERBOSE gerará os eventos de log extras que fazem um pouco mais de sentido:

sshd[19271]: Connection from 10.9.8.7 port 58823 on 10.9.8.8 port 22
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:QGnu...fpY
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:cjje...dDo
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:IIWe...d1M
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:xrQs...Et0
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:0Zln...UI4
sshd[19271]: Failed publickey for login from 10.9.8.7 port 58823 ssh2: RSA SHA256:hhsj...7Q4
sshd[19271]: error: maximum authentication attempts exceeded for login from 10.9.8.7 port 58823 ssh2 [preauth]
sshd[19271]: Disconnecting: Too many authentication failures [preauth]

    
por 30.10.2017 / 12:12
1

De acordo com a página man do sshd

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.

Como você pode ver, o limite é válido por conexão e nem todas as tentativas são registradas. Você também pode escolher quantas informações deseja em logs

LogLevel
Gives the verbosity level that is used when logging messages from sshd(8). The possible values are: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3. The default is INFO. DEBUG and DEBUG1 are equivalent. DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with a DEBUG level violates the privacy of users and is not recommended.

Em OpenSSH / Registro e solução de problemas , você pode ver exemplos de registros nos quais você pode ver que a parte de rejeição é semelhante ao que você mostrou:

...
Mar 19 11:11:10 server sshd[54798]: Failed password for root from 122.121.51.193 port 59928 ssh2
Mar 19 11:11:10 server sshd[54798]: error: maximum authentication attempts exceeded for root from 122.121.51.193 port 59928 ssh2 [preauth]
Mar 19 11:11:10 server sshd[54798]: Disconnecting authenticating user root 122.121.51.193 port 59928: Too many authentication failures [preauth]

Resumindo, as tentativas de autenticação malsucedidas nem sempre são enviadas aos logs. O befaviour pode ser configurado no arquivo conf para httpd.

E agora, da minha experiência não muito feliz de expor o ssh à internet, deixe-me dar algumas recomendações gerais:

  • Por favor, não permita acesso de usuário / senha. Você deve usar apenas pares de chaves privadas / públicas. Há muitos bandidos por aí.
  • Em qualquer caso, o root não deve poder entrar por meio do SSH.
  • Pense em instalar o fail2ban ou algo semelhante que possa proibir os IPs de acessar seu sistema
por 29.10.2017 / 10:46

Tags