Recherche de site Web

Autoriser ou refuser l'accès SSH à un utilisateur ou groupe particulier sous Linux


Ce guide rapide vous expliquera les étapes pour autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux et les systèmes d'exploitation Unix.

Nous apprendrons également comment désactiver la connexion SSH en tant que root sous Linux. Désactiver la connexion SSH en tant que root renforce la sécurité en réduisant le risque d'attaques par force brute contre le compte root, qui, s'il est compromis, donne un contrôle total sur le système.

Introduction

Il y a quelque temps, nous avons discuté de la manière de limiter l'accès d'un utilisateur au système Linux en utilisant le shell restreint. Une fois que nous avons mis les utilisateurs en mode restreint, ils ne peuvent rien faire sauf ce qu'ils sont autorisés à faire.

Cela sera utile lorsque vous voudrez permettre à un utilisateur particulier d'exécuter uniquement un ensemble spécifique de commandes.

Dans cet article, nous allons activer ou désactiver l'accès SSH pour un utilisateur ou un groupe en apportant quelques modifications au fichier de configuration par défaut de SSH.

Autoriser ou refuser l'accès SSH à un utilisateur ou groupe particulier sous Linux

Le fichier de configuration par défaut d'openSSH comporte deux directives pour autoriser et refuser l'accès SSH à un ou plusieurs utilisateurs ou à un groupe.

Tout d'abord, voyons comment permettre ou activer l'accès SSH pour un utilisateur et un groupe. Veuillez noter que toutes les commandes données ci-dessous doivent être exécutées en tant que root ou utilisateur sudo.

1. Autoriser l'accès SSH à un utilisateur ou à un groupe

Pour autoriser l'accès SSH à un utilisateur particulier, par exemple sk, modifiez le fichier /etc/ssh/sshd_config :

$ sudo vi /etc/ssh/sshd_config

Appuyez sur "i" pour entrer en mode insertion et ajouter ou modifier la ligne suivante :

AllowUsers sk

Modifier le fichier de configuration ssh pour permettre l'accès ssh à un utilisateur particulier

Remplacez "sk" par votre nom d'utilisateur. Veuillez faire attention à l'indentation par espace entre "AllowUsers" et "sk". Vous devriez utiliser la touche Tab au lieu de la barre d'espace. Cela signifie - ajoutez le mot "AllowUsers" et appuyez sur la touche Tab, puis spécifiez le nom d'utilisateur.

Vous pouvez également spécifier plusieurs utilisateurs comme indiqué ci-dessous.

AllowUsers user1 user2

Pour autoriser l'accès SSH à un groupe entier, par exemple root, ajoutez/modifiez la ligne suivante :

AllowGroups root

Ce paramètre permettra à tous les membres du groupe "root" de se connecter en ssh au serveur Linux.

Appuyez sur la touche ESC pour quitter le mode insertion et tapez :wq pour enregistrer et quitter le fichier de configuration SSH. Redémarrez le service SSH pour que les modifications prennent effet.

$ sudo systemctl restart sshd

Maintenant, l'utilisateur sk et tous les membres du groupe "root" sont autorisés à se connecter en ssh sur votre serveur Linux. Les autres utilisateurs (sauf sk et les membres du groupe "root") ne sont pas autorisés à accéder au système via ssh.

Pour le vérifier, essayez de vous connecter en ssh au serveur Linux en tant que l'un des utilisateurs non autorisés :

$ ssh ostechnix@192.168.225.52

Vous recevrez le message d'erreur suivant :

ostechnix@192.168.225.52's password: 
Permission denied, please try again.
Permission d'accès SSH refusée

2. Refuser l'accès SSH à un utilisateur ou un groupe

Pour désactiver ou refuser l'accès SSH à un utilisateur ou à un groupe, vous devez ajouter/modifier les directives suivantes dans le fichier /etc/ssh/sshd_config de votre serveur distant.

  1. DenyUsers
  2. DenyGroups

Pour refuser l'accès SSH à un utilisateur spécifique appelé "sk", modifiez le fichier /etc/ssh/sshd_config :

$ sudo vi /etc/ssh/sshd_config

Ajoutez/modifiez la ligne suivante :

DenyUsers sk

Assurez-vous que l'indentation par espace est correcte. N'utilisez pas la barre d'espace. Appuyez sur la touche Tab et ajoutez le nom d'utilisateur.

De même, pour refuser l'accès SSH à plusieurs utilisateurs, spécifiez les noms d'utilisateur séparés par des espaces comme indiqué ci-dessous.

DenyUsers user1 user2

De même, pour refuser l'accès SSH à un groupe entier, par exemple root, ajoutez :

DenyGroups root

Enregistrez et quittez le fichier de configuration ssh. Redémarrez le service ssh pour que les modifications prennent effet.

$ sudo systemctl restart sshd

Essayez maintenant de vous connecter en SSH à votre machine Linux depuis un compte utilisateur bloqué, par exemple sk :

$ ssh sk@192.168.225.52

Vous recevrez le message suivant :

sk@192.168.225.52's password: 
Permission denied, please try again.
sk@192.168.225.52's password:

3. Désactiver la connexion SSH en tant que root

L'accès SSH root est considéré comme une mauvaise pratique en termes de sécurité. Il est donc fortement recommandé de désactiver la connexion SSH pour l'utilisateur root afin de sécuriser votre système.

Pour désactiver la connexion SSH en tant que root, éditez le fichier /etc/ssh/sshd_config :

$ sudo vi /etc/ssh/sshd_config

Trouvez la ligne suivante, décommentez-la et définissez la valeur sur no.

PermitRootLogin no

Redémarrez le service SSH pour que les modifications prennent effet immédiatement :

$ sudo systemctl restart sshd

Conclusion

Vous savez maintenant comment accorder et restreindre l'accès SSH à certains utilisateurs ou à un groupe sous Linux. Vous avez également appris comment refuser ou désactiver la connexion SSH en tant que root sous Linux. C'est l'une des pratiques de sécurité recommandées que tout administrateur Linux devrait mettre en œuvre lors de la configuration d'un serveur Linux.

Lecture connexe :

  • Désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique
  • Limiter le nombre de connexions SSH par utilisateur/groupe/système
  • Comment se connecter en SSH à un répertoire particulier sur Linux
  • Comment autoriser ou refuser l'accès sudo à un groupe sous Linux