Gecko64 Posté 12 Janvier 2008 Posté 12 Janvier 2008 (modifié) En pensant sécurité, je me suis toujours demandé quel était la meilleure solution de se proteger d'un Forkbomb? Pour celui qui ne saurait pas de quoi il s'agit, c'est en fait un principe très simple qui consiste a creer sur un serveur un processus parent qui en creer d'autre fils qui ces fils la en creent encore d'autres et ainsi de suite mais avec la grande particularité, c'est que les fils renient leur famille Vous tuez le parent, les fils restent en vie (tres embêtant...) Alors inutile de vous imaginer ce genre de réaction en chaine se lancer sur un CPU hyper rapide... En resumé, ca donne la mémoire vive saturée, la swap avec et au final un beau plantage du serveur... Alors j'avais vu qu'on pouvait par utilisateur diminuer le nombre de process qu'un user pouvait lancer mais je me demandais si, il n'existerait pas une solution plus propre? Celui qui a un PC test Linux et qui voudrait déclencher ceci pour voir, tapez cette chaine ci en console sans les doubles quotes "){ :|:& };:" Mettez un top -u "user qui lance le fork" -d 1 en parallèle, vous allez rire Merci d'avance Modifié 12 Janvier 2008 par Gecko64
baulet Posté 12 Janvier 2008 Posté 12 Janvier 2008 en effet ! 5 secondes suffisent à planter le systeme
Dan Posté 12 Janvier 2008 Posté 12 Janvier 2008 La seule manière de limiter cela est en limitant les processes utilisateur avec l'appel à ulimit. Par défaut, le nombre de processes est illimité sur la plupart des releases. Il suffit donc, par exemple pour Debian, d'ajouter des limites au début du fichier /etc/bash.bashrc (ou du fichier /etc/profile) : ulimit -u 512 ---> limitera le nombre de processes à 512 par utilisateur. On peut y mettre une valeurs plus faible, bien évidemment. Par exemple "ulimit -u 20" Je ne vois pas ce que tu considèrerais comme "plus propre" ?
Gecko64 Posté 12 Janvier 2008 Auteur Posté 12 Janvier 2008 Bha comme plus propre, un systeme qui les détectent et qui les coupent tout seul mais je crois que pour ca, je peux toujours rever Peut en créant un alias sur la commande en shell? Genre le gars fait cette commande et ca lui renvoie un joli echo "Pas bieeeeeennn !!!" Sinon moi je connaissais aussi sous Debian le /etc/security/limits.conf Enfin, je note aussi ta solution Dan Merci !
Dan Posté 12 Janvier 2008 Posté 12 Janvier 2008 /etc/security/limits.conf est une autre manière de régler les limites sur un serveur. Il joue sur les sessions PAM, dans la mesure où la ligne "session required pam_limits.so" existe bien dans le fichier "/etc/pam.d/ssh" Une ligne telle que: @users hard nproc 64 mettra une limite HARD au nombre de processes (64) qui peuvent être lancés par un membre du groupe users Comme quoi "tous les chemins mènent à Rome" ... Attention toutefois à ne pas mettre une limite trop basse !!!
Gecko64 Posté 13 Janvier 2008 Auteur Posté 13 Janvier 2008 Oui c'est sur ! En tout cas encore merci pour ta solution Dan qui me semble moins complexe à mettre en place et que je ne connaissais pas
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant