• [^] # Re: Securite basique d'une machine

    Posté par . En réponse à la dépêche Noyau Linux, 3xpl01t r00t & DoS. Évalué à 10.

    Je ne connais pas de moyen d'avoir une machine multi-utilisateurs fonctionnelle pour une tache comme le developpement, et insensibles aux DoS.

    Un DoS tres simple est un tres simple programme qui fait des fork et des malloc rapides et brutaux. Une machine qui possede beaucoup de swap (genre les serveurs) freeze en beaute, et est irrecuperable. Apparemment quand t'as pas, ou pas trop de swap tu peux reussir a reprendre la main mais c'est chaud. La seule maniere de lutter contre ca, a priori, est d'utiliser ulimit (man bash / search ulimit), mais si tu fais cela tu peux dire au revoir au developpement pour lequel tu as besoin de plusieurs centaines de Mo de memoire pour compiler certains logiciels, par exemple du C++ avec des template en -O3.

    Apres quelques tests j'avais trouve que les limites suivantes permettaient de ne pas se faire niquer par un DoS a base de fork et malloc mais bien sur tu peux plus rien faire en utilisateur normal.

    # (/etc/services) fuck them all except root and me
    if [ "$UID" != "0" ] && [ "$UID" != "576" ]; then
    ulimit -t 1
    ulimit -u 5
    ulimit -v 5000
    ulimit -s 1000
    ulimit -n 15
    ulimit -f 1000
    ulimit -d 1000
    ulimit -l 1000
    ulimit -m 500
    echo "Consult your ulimit before any work on this host :-)"
    fi