• [^] # Re: Changement d'utilisateur

    Posté par (site web personnel) . En réponse au message Application sensible. Évalué à 1.

    Sous FreeBSD, ça se fait avec limits/ulimit et login.conf . Il faut aussi régler le securelevel a au moins 1 et utiliser sysctl.conf pour limiter quelques valeurs [1][2].

    Sous Net/OpenBSD, il y a aussi systrace[3] qui permet de faire de grandes choses.

    Sous Linux comme dit plus haut, il y a ulimit et bien sur selinux et grsecurity que je connais moins bien.

    Dans tout les cas il te faut :
    - un moyen simple d'identifier les processus (par exemple avec un uid distincte par tâche : pour le serveur web, pour php, pour la compil en C, pour l'execution ... Les ACL permettent de bien gérer celà.

    - des quotas disques (pour éviter les écritures de fichier récursives ou les cat /dev/zero ... ).
    - un firewalling sur le sortant pour éviter l'ouverture de socket illégitimes.

    Il ne faut pas négliger les outils simples avec par exemple un cron qui fait :
    - si un processus de tel utilisateur dure + de n minutes ou prends plus de n ressouces cpu (man ps) alors kill $p ; sleep 5; kill -9 $p

    [1]http://www.freebsd.org/doc/en/books/handbook/users-limiting.(...)
    [2]http://wiki.gcu.info/doku.php?id=freebsd:sysctl_avance&s(...)
    [3]http://www.unixgarden.com/index.php/securite/systracesysjail