GNU/Linux >> Tutoriels Linux >  >> Linux

Limiter le nombre de connexions SSH par utilisateur/groupe/système

Comme vous le savez probablement, nous pouvons SSH dans un système Linux distant par le même utilisateur plusieurs fois. Il n'y a pas de limites! Vous pouvez simplement ouvrir plusieurs fenêtres de terminal (ou plusieurs onglets dans le terminal) et lancer plusieurs sessions SSH à partir de chaque onglet par le même compte d'utilisateur. Et si vous vouliez changer ce comportement ? Par exemple, vous pouvez autoriser une seule session SSH active pour un utilisateur. C'est ce que nous allons voir maintenant. Ce bref tutoriel explique comment limiter le nombre de connexions SSH par utilisateur, groupe ou système sous Linux.

Dans la plupart des distributions Linux, il existe un fichier appelé limits.conf où vous pouvez définir le nombre maximal de sessions SSH simultanées pour un utilisateur ou un groupe d'utilisateurs. Si l'utilisateur particulier essaie de se connecter en SSH au système plus que les connexions SSH autorisées, l'accès lui sera refusé.

Limiter le nombre de connexions SSH par utilisateur ou groupe sous Linux

Le fichier limits.conf le fichier est généralement situé sous /etc/security/ répertoire sur les systèmes basés sur RPM et DEB.

Accédez à votre système distant et modifiez /etc/security/limits.conf fichier avec sudo ou racine utilisateur :

$ sudo nano /etc/security/limits.conf

Pour limiter le nombre de sessions SSH simultanées pour un utilisateur spécifique , par exemple ostechnix , Ajoutez la ligne suivante à la fin :

ostechnix hard maxlogins 1

Ici,

  • ostechnix - Nom de l'utilisateur sur mon serveur CentOS 8.
  • maxlogins 1 - Nombre maximum de connexions pour cet utilisateur. Dans mon cas, c'est 1 . Vous pouvez augmenter cette valeur pour autoriser un maximum de non. de sessions SSH actives par utilisateur.
  • difficile - Appliquer des limites strictes.

Si vous souhaitez limiter le nombre de connexions SSH pour un groupe d'utilisateurs , ajoutez ceci :

@mygroup hard maxlogins 1

Remplacez @mongroupe avec le nom de votre groupe. Dans ce scénario, tous les utilisateurs du mygroup ne peuvent pas se connecter via SSH plus d'une fois.

Si vous souhaitez limiter les sessions SSH de tous les utilisateurs (globaux) du système, ajoutez plutôt cette ligne :

* hard maxlogins 1

Ici, l'astérisque signifie global (c'est-à-dire tous les utilisateurs du système). Une fois que vous avez défini le nombre maximum de sessions SSH par utilisateur/groupe ou pour l'ensemble du système, enregistrez et fermez le fichier.

Essayez maintenant de vous connecter en SSH au système avec le même utilisateur plus d'une fois. Vous verrez un message d'erreur comme ci-dessous.

Trop de connexions pour 'ostechnix'. 

Comme vous le voyez dans la sortie ci-dessus ;

  1. Tout d'abord, je me connecte en SSH au serveur CentOS 8 distant en tant qu'utilisateur root via SSH et la connexion a été établie avec succès.
  2. Ensuite, j'ai ouvert un nouvel onglet et SSH sur le même serveur que l'utilisateur normal "ostechnix" et la connexion a réussi.
  3. Enfin, j'ai essayé de me connecter en SSH sur le même serveur avec le même utilisateur (c'est-à-dire ostechnix) et cette fois la connexion a été refusée. L'utilisateur "ostechnix" ne peut pas SSH dans le système plus d'une fois . Parce que son nombre maximum de sessions SSH autorisées pour cet utilisateur est un seul temps. Par conséquent, la connexion SSH est refusée pour cet utilisateur.

Dans cet exemple, nous avons limité le nombre total de sessions SSH actives pour un utilisateur ou un groupe ou tous les utilisateurs du système. Il est également possible de limiter les sessions SSH par système. Par exemple - nous ne pouvons autoriser qu'une seule connexion SSH à partir d'un système, pas par utilisateur ou groupe.

Limiter le nombre total de sessions SSH par système

Pour limiter le nombre total de connexions SSH actives par système, ajoutez la ligne suivante dans /etc/security/limits.conf fichier :

* hard maxsyslogins 1

Ici, maxsyslogins fait référence au nombre maximum de connexions sur le système, et non par utilisateur ou par groupe.

Essayez de vous connecter en SSH au système et vous ne pourrez pas accéder au système plus que le nombre maximum de connexions autorisées sur le système.

Voir? L'utilisateur "ostechnix" ne peut même pas SSH pour la première fois. Parce que le nombre total de connexions SSH autorisées n'est qu'un pour le système. Cette fois, la connexion SSH établie par l'utilisateur root a également été prise en compte. Ainsi, le nombre maximum de connexions SSH a dépassé la limite définie et l'utilisateur "ostechnix" s'est vu refuser l'accès. J'espère que vous comprenez.

Veuillez noter que cette restriction s'applique uniquement aux utilisateurs normaux. L'utilisateur root peut toujours se connecter via SSH un certain nombre de fois.

Lire connexe :

  • Autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux
  • Restreindre l'accès aux serveurs Linux à l'aide d'encapsuleurs TCP
  • Exécuter des commandes sur des systèmes Linux distants via SSH
  • Comment créer un alias SSH sous Linux
  • Comment se connecter en SSH à un répertoire particulier sous Linux

Linux
  1. Conseil rapide :ajoutez un utilisateur au groupe sudoers

  2. Limite pratique du nombre d'instantanés Btrfs ?

  3. La fonction de la racine du groupe d'utilisateurs ? ?

  4. Modifier le numéro de port du serveur SSH par défaut

  5. Comment afficher les processus en cours d'exécution de n'importe quel utilisateur dans SSH ?

Comment limiter l'accès de l'utilisateur au système Linux

Désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique

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

Les effets de l'ajout d'utilisateurs à un système Linux

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment faire en sorte que ssh se connecte avec le bon utilisateur ?