Limiter le nombre de processus utilisateur

Un article de ALW - Another Linux Wiki.


[modifier] Introduction

On à toujours besoin de garder le controle sur les utilisateurs de ses machines. Personne n'est à l'abri d'un joyeux drille qui utilise toute la CPU ou qui fait tourner X process en memoire.

Pour ne pas se retrouver avec une machine à genoux rapidement, il faut un minimum de restrictions. C'est bien beau de securiser la machine de l'exterieur mais il faut faire le menage chez soi aussi :)

Nous allons donc limiter le nombre de processus lancés simultanément par un utilisateur ou un groupe ainsi que le % de temps CPU disponible pour lui etc.

[modifier] Configuration

Un seul fichier nous interesse ici c'est /etc/security/limits.conf

File: limits.conf
 
*    soft core      0
*    hard core      0
*    hard nproc     15
*    hard rss       10000
*    -    maxlogins 2
@dev hard core      100000
@dev soft nproc     20
@dev hard nproc     35
@dev -    maxlogins 10
  

Dans cet exemple, chaque personne aura:

  • La taille des coredump limité à 0 en limite soft
  • La taille des coredump limité à 0 en limite hard
  • Le nombre de processus limité à 15 en limite hard
  • rss
  • Le nombre maximum de connection limitée a 2

Les membres du groupe dev auront pour limite:

  • La taille du coredump limité à 100 000 en limite hard
  • Le nombre de processus limité à 20 en limite soft
  • Le nombre de processus limité à 35 en limite hard
  • Le nombre maximum du login limité à 10

Une limite soft genere une alerte mais n'est pas bloquante c'est la raison pour laquelle on definit une limite soft avant de passer en hard. C'est un genre de sommation :) Une limite hard est par contre bloquante pour l'utilisateur.


[modifier] Conclusion

Après une configuration rapide de ce fichier, on arrive a ameliorer la securité du systeme en evitant de un DoS par un script qui fork a outrance par exemple.

Rubriques