Comment limiter le nombre de connexions actives par utilisateur?

12

Comment puis-je limiter le nombre de connexions actives par utilisateur?

J'ai déjà vu cela sur différents serveurs, et je me demandais comment je pouvais le configurer moi-même. Peut-être que dans ces cas, cela a été accompli en limitant le nombre de connexions SSH actives par utilisateur? Et je suppose que ce serait la voie à suivre. Comment pourrais-je configurer cela?

Sildoreth
la source

Réponses:

10

/etc/security/limits.conf, au moins sur Debian. Le chemin peut varier un peu selon la distribution. Il y a un exemple dans le fichier pour limiter tous les membres du studentgroupe à 4 connexions (commenté):

#<domain>      <type>   <item>          <value>
@student       -        maxlogins       4

Vous pourriez faire à la *place d'un groupe, mais assurez-vous de ne pas frapper les utilisateurs que vous ne voulez pas limiter (par exemple, un membre du personnel)

derobert
la source
3
Pour les googleurs rapides: @studentsignifie les membres du groupe "étudiant". Pour limiter uniquement l'utilisateur "étudiant", supprimez le " @" au début.
peterh
5

Selon l' homme de limits.confvous, vous pouvez définir des restrictions dans /etc/security/limits.conf:

maxsyslogins 
maximum number of all logins on system 

Vous pouvez donc définir (2 connexions):

* hard maxsyslogins 2

Dans un autre poste, il est dit de ne pas utiliser /etc/security/limits.conf. Je n'ai rien trouvé de similaire à cela, sauf cette valeur qui est définie dans/etc/security/limits.d/*.conf fichier remplacera la même valeur dans /etc/security/limits.conf.

De l'homme pag de pam_limits :

Par défaut, les limites sont extraites du fichier de configuration /etc/security/limits.conf. Ensuite, les fichiers individuels * .conf du répertoire /etc/security/limits.d/ sont lus. Les fichiers sont analysés les uns après les autres dans l'ordre des paramètres régionaux "C". L'effet des fichiers individuels est le même que si tous les fichiers étaient concaténés ensemble dans l'ordre d'analyse. Si un fichier de configuration est explicitement spécifié avec une option de module, les fichiers du répertoire ci-dessus ne sont pas analysés.

taliezin
la source
maxsyslogins est la limite totale, pas celle par utilisateur qui a été demandée ...
Gert van den Berg
1

Sur les systèmes GNU / Linux modernes, pam_limitspeut limiter le nombre de sessions par utilisateur.

Afin de limiter le nombre de sessions par utilisateur, vous pouvez ajouter des entrées à un fichier dans /etc/limits.d/(disons /etc/limits.d/maxlogins.conf)

# Some of the lines in this sample might conflict and overwrite each other
# The whole range is included to illustrate the possibilities
#limit users in the users group to two logins each
@users       -       maxlogins     2
#limit all users to three logins each
*            -       maxlogins     3
#limit all users except root to 20 simultaneous logins in total
*            -       maxsyslogins     20
#limit in the users group to 5 logins in total
%users       -       maxlogins     2
#limit all users with a GID >= 1000 to two logins each
1000:        -       maxlogins     2
#limit user johndoe to one login
johndoe      -       maxlogins     2

D'autres systèmes d'exploitation et systèmes de type Unix sans le module pam_limits seraient différents.

Gert van den Berg
la source