Que usuários têm permissão para efetuar login via SSH por padrão?

18
  1. Quando eu configurei meu Debian 6, fiquei me perguntando, quais usuários além do root cuja senha eu sei pode logar no meu sistema via SSH?

  2. Quando instalo o Apache 2, um usuário chamado www-data é criado. Este usuário tem o direito de fazer login no meu sistema via SSH? Mas se houvesse alguma senha padrão para www-data, todos poderiam fazer login, parece improvável para mim.

  3. Onde tenho uma lista que os usuários podem fazer login no meu sistema via SSH? Não é possível encontrar nada nos arquivos de configuração ssh.

por JohnnyFromBF 18.04.2012 / 22:37

3 respostas

20

Paradeepchhetri não está exatamente correto.

O sshd_config não modificado do Debian tem o seguinte:

PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes

Assim, o login via ssh só funcionaria para usuários que tivessem um campo de senha preenchido em /etc/shadow ou uma chave ssh em ~/.ssh/authorized_keys . Observe que o valor padrão para PubkeyAuthentication é yes e para PermitEmptyPasswords é no , portanto, mesmo que você os remova, o comportamento será o mesmo.

No exemplo da questão, www-data por padrão não terá permissão para efetuar login, já que o instalador do Debian não atribui uma senha nem cria uma chave para www-data .

pam_access , AllowUsers e AllowGroups in sshd_config podem ser usados para um controle mais preciso, se necessário. No Debian é strongmente recomendado para UsePAM .

    
por 19.04.2012 / 00:58
10

Por padrão, o login é permitido para todos os usuários no Debian.

Você pode alterá-lo permitindo que determinados usuários possam efetuar login editando /etc/ssh/sshd_config file.

Como mencionado na man page do sshd_config.

AllowUsers

This keyword can be followed by a list of user name patterns, separated by
spaces. If specified, login is allowed only for user names that match one of the patterns. Only user names are valid; a numerical user ID is not
recognized. By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts. The allow/deny directives are processed in the following order: DenyUsers, AllowUsers, DenyGroup, and finally AllowGroups.

    
por 18.04.2012 / 23:33
7

Por padrão, SSH server nem está instalado. Você teria que instalar o pacote openssh-server antes que alguém pudesse fazer SSH.

Depois disso, qualquer usuário precisa passar por duas verificações:

  • Autenticação SSH
  • Verificações da conta do PAM

A autenticação SSH significa que o usuário deve ter uma senha válida em /etc/shadow ou uma chave pública SSH válida com as permissões corretas no usuário de destino ~/.ssh/authorized_keys .

Senhas válidas são descritas mais adiante na página crypt(3) man, mas basicamente se o segundo campo do usuário em /etc/shadow for qualquer coisa que comece com $NUMBER$ , provavelmente é válido e se é * ou ! , é inválido.

A verificação da conta do PAM basicamente significa que a conta não está expirada. Você pode verificar isso usando chage -l USERNAME .

Então, para responder às suas perguntas, eu sei:

  1. Somente o usuário root e a conta criada durante o assistente de instalação podem efetuar login em um novo sistema
  2. Não, porque www-data tem uma senha com hash de * e não há ~www-data/.ssh/authorized_keys file
  3. Não há uma lista única, porque há vários requisitos, mas para ter uma ideia, você pode tentar executar grep -v '^[^:]*:[!*]:' /etc/shadow
por 19.04.2012 / 05:19