Como usar AllowGroups e AllowUsers em sshd_config?

21

Estou tentando modificar /etc/ssh/sshd_config no meu servidor debian7 dedicado com AllowUsers e AllowGroups . No entanto, não consigo fazer com que ambos trabalhem juntos.

A configuração

  • Há um usuário chamado testuser .
  • Esse usuário está em um grupo chamado ssh-users :

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser está tentando se conectar por meio de ssh testuser@<server_ip> e digitando sua senha.

  • Meu sshd_config pode ser encontrado aqui: link - Acho que basicamente as únicas alterações que eu fiz do padrão foram:
    • para definir PermitRootLogin no
    • e adicione dois usuários com AllowUsers (os nomes de usuários reais diferem no meu servidor)
  • service ssh restart é executado toda vez depois de modificar sshd_config .

O problema

  • testuser pode conectar-se quando definido com AllowUsers :

    AllowUsers user1 user2 testuser
    
  • testuser can NÃO conecte-se ao definir AllowGroups para o grupo:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    que resulta em Permission denied, please try again. quando testuser digita sua senha no prompt de senha ssh.

A questão

  • AllowUsers override AllowGroups ?
  • Qual é a melhor maneira de corrigir isso sem adicionar manualmente o nome de usuário a AllowUsers ? Idealmente, gostaria de poder adicionar usuários ao grupo ssh-users no futuro sem ter que tocar em sshd_config novamente.
por Johannes 01.08.2014 / 00:39

2 respostas

19

Sim, AllowUsers tem precedência sobre AllowGroups . Se especificado, somente os usuários que corresponderem ao padrão especificado em AllowUsers poderão se conectar à instância do SSHD.

De acordo com sshd_config página de manual :

The allow/deny directives are processed in the following order: DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups.

Assim, a solução para o seu problema provavelmente é usar uma ou outra, possivelmente as diretivas de acesso de grupo, se os grupos forem sua maneira preferida de gerenciar usuários.

    
por 01.08.2014 / 01:41
4

A resposta de Jeff cobre as especificidades da pergunta, conforme detalhado, mas achei essa pergunta procurando usar AllowUsers e AllowGroups em um cenário ligeiramente diferente. Eu queria restringir conexões de entrada para usuários em um grupo (ssh) vindo de sub-redes específicas.

As regras de conexão em sshd_config são um filtro - como cada regra adicional é aplicado, o conjunto de usuários aceitáveis só pode ser reduzido. PATTERNS em ssh_config (5) explica a forma dessas regras. / p>

Além disso, de acordo com a seção AllowUsers de sshd_config :

If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts. HOST criteria may additionally contain addresses to match in CIDR address/masklen format.

AllowGroups não aceita o formulário USER @ HOST.

Então, para aceitar usuários 1) no grupo ssh e 2) de sub-redes / hosts específicos:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
    
por 25.08.2017 / 17:53