Limiter les utilisateurs

De SeRoM - Wiki
Aller à : navigation, rechercher

Limites offertes par PAM

Un boucle Fork est très facile à faire. Voici donc une petite astuce assez utile pour éviter qu'une attaque de type DoS(Deny of Service) ne soit lancer par un utilisateur sur votre machine. On va établir des limites sur le nombre de processus que les utilisateurs peuvent lancer. Pour d'autre raison, il peut être intéressant de répartir les ressources CPU entre processus.

Ces divers besoin peuvent être réaliser avec la mise en place de règles dans limits.conf, méthode fournir par PAM.

Syntaxe de limits.conf

Tout ce passe dans le fichier de configuration /etc/security/limits.conf. On peut le voir comme un tableau où chaque ligne se constitue comme ceci:

 <domain>  <type>  <item>  <value>
  • <domain> indique à qui s'applique la règle.
    • *: s'applique à tous,
    • @group: s'applique au groupe)
  • <type> indique le type de limite (Bloquant ou non).
    • soft: Juste une alerte. N'est pas une limite bloquante.
    • hard: La vrai limite bloquante.
  • <item> indique sur quoi s'applique la limite.
    • core - limits the core file size (KB)
    • data - max data size (KB)
    • fsize - maximum filesize (KB)
    • memlock - max locked-in-memory address space (KB)
    • nofile - max number of open files
    • rss - max resident set size (KB)
    • stack - max stack size (KB)
    • cpu - max CPU time (MIN)
    • nproc - max number of processes
    • as - address space limit
    • maxlogins - max number of logins for this user
    • maxsyslogins - max number of logins on the system
    • priority - the priority to run user process with
    • locks - max number of file locks the user can hold
    • sigpending - max number of pending signals
    • msgqueue - max memory used by POSIX message queues (bytes)
    • nice - max nice priority allowed to raise to
    • rtprio - max realtime priority
  • <value> indique la valeur de cette limite (0, 2, 5, 100, ...)

Exemple

Mise en place de quota d'espace disque

...

Limiter les access en fonctions des utilisateurs

Interdire la connection SSH en root

La première chose à faire est d'interdire la connection de root en SSH. Comme cela on va forcer l'utilisateur à se logger avec son propre compte pour ensuite faire un su ou sudo. Ainsi on peut identifier dans les log qui à fait quoi.

L'astuce est très simple, il suffit de mettre la variable PermitLoginRoot à no dans le fichier /etc/ssh/sshd_config.