web-dev-qa-db-fra.com

Comment utiliser à la fois AllowGroups et AllowUsers dans sshd_config?

J'essaie de modifier /etc/ssh/sshd_config sur mon serveur debian7 dédié avec à la fois AllowUsers et AllowGroups. Cependant, je n'arrive pas à faire travailler les deux ensemble.


La mise en place

  • Il y a un utilisateur appelé testuser.
  • Cet utilisateur fait partie d'un groupe appelé ssh-users:

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser tente de se connecter via ssh testuser@<server_ip> et en entrant son mot de passe.

  • Ma sshd_config peut être trouvé ici: http://Pastebin.com/iZvVDFKL - Je pense que les seules modifications que j'ai apportées par défaut étaient:
    • mettre en place PermitRootLogin no
    • et ajoutez deux utilisateurs avec AllowUsers (les noms d'utilisateur réels diffèrent sur mon serveur)
  • service ssh restart est exécuté à chaque fois après avoir modifié sshd_config.

Le problème

  • testuser can connectez-vous avec AllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuser peut [~ # ~] pas [~ # ~] se connecter lors de la configuration AllowGroups pour son groupe:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    ce qui se traduit par Permission denied, please try again. lorsque testuser saisit son mot de passe dans l'invite de mot de passe ssh.


La question

  • AllowUsers remplace-t-il AllowGroups?
  • Quelle est la meilleure façon de résoudre ce problème sans ajouter manuellement le nom d'utilisateur à AllowUsers? Idéalement, j'aimerais pouvoir simplement ajouter des utilisateurs au ssh-users groupe à l'avenir sans avoir à toucher sshd_config encore.
31
Johannes

Oui, AllowUsers a priorité sur AllowGroups. Si spécifié, seuls les utilisateurs qui correspondent au modèle spécifié dans AllowUsers peuvent se connecter à l'instance SSHD.

Selon sshd_configpage de manuel :

Les directives allow/deny sont traitées dans l'ordre suivant: DenyUsers, AllowUsers, DenyGroups et enfin AllowGroups.

Ainsi, la solution à votre problème est probablement d'utiliser l'une ou l'autre, éventuellement les directives d'accès aux groupes si les groupes sont votre façon préférée de gérer les utilisateurs.

26

La réponse de Jeff couvre les détails de la question tels que détaillés, mais j'ai trouvé cette question cherchant à utiliser AllowUsers et AllowGroups dans un scénario légèrement différent. Je voulais restreindre les connexions entrantes aux utilisateurs d'un groupe (ssh) provenant de sous-réseaux spécifiques.

Les règles de connexion dans sshd_config sont un filtre - à mesure que chaque règle supplémentaire est appliquée, l'ensemble d'utilisateurs acceptables ne peut être réduit. PATTERNS in ssh_config (5) expliquer la forme de ces règles.

De plus, selon la section AllowUsers de sshd_config:

Si le modèle prend la forme USER @ Host, USER et Host sont vérifiés séparément, limitant les connexions à des utilisateurs particuliers à partir d'hôtes particuliers. Les critères d'hôte peuvent en outre contenir des adresses à faire correspondre au format d'adresse/masque CIDR.

AllowGroups n'accepte pas le formulaire USER @ Host.

Donc, pour accepter les utilisateurs 1) dans le groupe ssh et 2) à partir de sous-réseaux/hôtes spécifiques:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
6
bjacobowski

Voici une solution que nous avons trouvée efficace:

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
4
vimja