sshd: Problema ao desabilitar a autenticação de senha de LAN externa

2

Eu tenho um servidor CentOS 7 com 2 NICs, um dentro da LAN com um IP privado 192.168.1.1 (lan0) e outro com um IP de internet pública (ppp0)

Para conexões originadas de dentro da LAN, quero que a senha ou autenticação de chave pública esteja disponível.

Para conexões originadas da Internet, eu quero apenas a chave pública. Eu fiz isso assim em / etc / ssh / sshd_config

PasswordAuthentication No

E as últimas linhas são:

Match address 192.168.1.0/24
    PasswordAuthentication yes

Então, para testar, eu faço logon em outra máquina que eu tenho que, é VPS na internet e tentar ssh dentro Como esperado eu recebo isso:

Permission denied (publickey).

Mas o que eu não entendo é por que meu / var / log / secure está cheio de tentativas de força bruta como esta: (IP's mudou)

Apr 22 09:57:36 linuxhost1 sshd[15149]: input_userauth_request: invalid user webmaster [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15149]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15151]: Invalid user webmaster from a.b.c.d
Apr 22 09:57:36 linuxhost1 sshd[15151]: input_userauth_request: invalid user webmaster [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15151]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15153]: Invalid user webpop from a.b.c.d
Apr 22 09:57:36 linuxhost1 sshd[15153]: input_userauth_request: invalid user webpop [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15153]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15155]: Invalid user web from a.b.c.d
Apr 22 09:57:36 linuxhost1 sshd[15155]: input_userauth_request: invalid user web [preauth]
Apr 22 09:57:36 linuxhost1 sshd[15155]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]
Apr 22 09:57:37 linuxhost1 sshd[15157]: Invalid user william from a.b.c.d
Apr 22 09:57:37 linuxhost1 sshd[15157]: input_userauth_request: invalid user william [preauth]
Apr 22 09:57:37 linuxhost1 sshd[15157]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]
Apr 22 09:57:37 linuxhost1 sshd[15159]: Invalid user windowserver from a.b.c.d
Apr 22 09:57:37 linuxhost1 sshd[15159]: input_userauth_request: invalid user windowserver [preauth]
Apr 22 09:57:37 linuxhost1 sshd[15159]: Received disconnect from a.b.c.d: 11: Bye Bye [preauth]

Como esses atacantes de força bruta permitiram até mesmo inserir um username ?

    
por Aditya K 22.04.2016 / 11:55

2 respostas

2

A autenticação da chave pública é por usuário . Você precisa de um nome de usuário e sua chave. Na verdade, você pode fazer login em dois usuários diferentes no mesmo servidor usando a mesma chave.

Se você estiver tentando ssh [email protected] (com ou sem uma chave válida), também receberá "Permissão negada", além do erro no log do servidor.

Portanto, esse comportamento é intencional e, na verdade, não precisa fazer nada com a autenticação de chave pública em si.

    
por 22.04.2016 / 12:11
2

How were these brute force attackers allowed to even input a username?

Você escreve o nome de usuário na linha de comando (ou o atual é usado por padrão). Você sempre precisa inserir o nome de usuário. Você não bloqueou a conexão por isso (existe firewalld ou iptables para isso), mas somente a autenticação por senha.

Para pessoas mais ansiosas em detalhes, há RFC4252, seção 5 , que descreve a mensagem SSH_MSG_USERAUTH_REQUEST , que segue a troca de chaves. Tem campos com nome de usuário solicitado. Solicitando password autenticação, que será rejeitada, usando pubkey authentication (será rejeitada também, a menos que sua chave seja roubada) ou none (seção 5.2), que basicamente é necessário listar os métodos disponíveis (e deve seja o primeiro a ser tentado).

    
por 22.04.2016 / 11:58

Tags