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
[^] # Re: Changement d'utilisateur
Posté par Joris Dedieu (site web personnel) . En réponse au message Application sensible. Évalué à 1.
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