Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:comment_se_proteger_des_fork_bomb [Le 06/07/2007, 15:30] mimilustutoriel:comment_se_proteger_des_fork_bomb [Le 20/11/2017, 16:30] (Version actuelle) – {{tag>tutoriel}} scaph
Ligne 1: Ligne 1:
 +{{tag>tutoriel sécurité BROUILLON}}
  
 +----
 +
 +====== Comment se protéger des Fork Bomb ? ======
 +
 +===== Introduction =====
 +
 +==== Qu'est-ce qu'une fork bomb ? ====
 +
 +Une //fork bomb// (parfois appelée //logic bombe//, bombe logique), est une attaque par déni de service qui peut aller jusqu'à rendre votre ordinateur complètement inutilisable. Elle agit en se dupliquant infiniment jusqu'à saturer la table des processus.
 +
 +Elle peut autant être le fruit d'une attaque (sur un serveur par exemple), que celui d'une erreur de programmation. Heureusement, il existe des moyens de se protéger des //fork bomb//.
 +
 +A titre d'exemple (et donc à ne pas tester ;-)), une //fork bomb// pour le shell Bash :
 +
 +<code>:(){ :|:& };:</code> 
 +
 +<note warning>
 +Comme expliqué précédemment, la commande ci-dessus va rapidement faire planter votre système : son utilisation est donc à proscrire...
 +</note>
 +
 +
 +
 +==== Comment s'en protéger ? ====
 +
 +Vu qu'une //fork bomb// a pour but de saturer la table des processus, un moyen simple et efficace de s'en prémunir consiste à limiter le nombre de processus que peut exécuter un utilisateur (sachant que par défaut il n'y a pas de limite). Pour cela, il suffit de modifier le fichier **/etc/security/limits.conf** comme je vous propose de le faire ci-dessous.
 +===== Limiter le nombre de processus =====
 +
 +Il va falloir [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] ** /etc/security/limits.conf ** en super utilisateur, avec par exemple :
 +
 +<code>gksudo gedit /etc/security/limits.conf</code>
 +
 +Le fichier qui s'ouvre est entièrement commenté. Afin de limiter le nombre de processus que peuvent exécuter les utilisateurs, il va falloir rajouter la ligne suivante :
 +
 +<file>             hard    nproc           500</file>
 +
 +Juste avant :
 +
 +<file># End of file </file>
 +
 +<note important>
 +Cette ligne limite à 500 le nombre de processus, vous pouvez modifier ce chiffre à votre convenance.
 +
 +**Attention toutefois d'utiliser cette commande avec parcimonie, celle-ci peut bloquer votre ordinateur si vous mettez une valeur trop basse, voir ici :**
 +[[http://forum.ubuntu-fr.org/viewtopic.php?id=399827]]
 +</note>
 +
 +Redémarrez ensuite votre ordinateur pour que les nouveaux paramètres soient pris en compte. Pour le vérifier (non, n'allez pas tester la //fork bomb// :-P), utilisez la commande :
 +
 +<code>ulimit -u</code>
 +
 +Qui doit renvoyer : ''500''.
 +
 +Si c'est le cas, les //fork bomb// ne sont plus qu'un mauvais souvenir !
 +
 +<note tip>
 +Si cela ne fonctionne toujours pas, vérifiez que vous avez bien la ligne <code>session required /lib/security/pam_limits.so</code> dans  
 +  * **/etc/pam.d/common-session**
 +  * **/etc/pam.d/login**
 +  * **/etc/pam.d/su**
 +  * **/etc/pam.d/xdm**
 +  * **/etc/pam.d/gdm**
 +  * **/etc/pam.d/kde** (Pour Kubuntu)
 +  * **/etc/pam.d/sshd** 
 +Pour ssh, pensez à mettre l'option <code>UsePAM yes</code>dans **/etc/ssh/sshd_config**
 +;-) (Sous la verison 8.04 Server, je ne les avais pas.)
 +</note>
 +
 +===== Quelques liens =====
 +
 +  * [[http://fr.wikipedia.org/wiki/Fork_bomb|Article de Wikipédia sur les fork bomb]]
 +  * [[http://www.debian.org/doc/manuals/securing-debian-howto/ch4.en.html#s-user-limits|Le fichier limits.conf dans la documentation Debian]]
 +
 +----
 +// Contributeurs : [[utilisateurs:Nicoz]]//