• # Solution

    Posté par . En réponse au message Cloisonner utilisateur ssh debian 8 (Résolu). Évalué à 1.

    légende lorsque le prompt est en # =>root si $ =>user (test)
    Vous trouverez les étapes pour chrooter l'utilisateur en ssh. (Nous nous sommes largement inspiré du site suivant: https://debian-facile.org/viewtopic.php?id=9607)

    1)installation du packet bash-static

    #apt-get install bash-static

    2)Pour faciliter l'administration nous allons créer un groupe sshchroot

    #addgroup sshchroot

    3)Création de l'utilisateur test

    #adduser test
    #usermod -d / test
    #usermod -s /bin/bash-static
    #adduser test sshchroot

    4)mettre l'utilisateur root propriétaire du home de test sinon la connexion ssh sera refusée

    #chown root: /home/

    5)petit script qui vous activera des commandes supplémentaire pour le user test

    #cd /home/test
    #vim create.sh
    #!/bin/bash
    mkdir -p {bin,dev,lib,lib64}
    mknod dev/null c 1 3
    mknod dev/zero c 1 5
    chmod 0666 dev/{null,zero}
    TMPFILE1=./temp1
    TMPFILE2=./temp2
    #Definition des commandes que vous souhaitez activer
    APPS="/bin/bash /bin/cp /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /usr/bin/id /usr/bin/rsync /usr/bin/scp /usr/bin/wget /usr/bin/vim /usr/bin/vi /bin/cat /bin/less /usr/bin/tail /usr/bin/clear /bin/chmod"
    for app in $APPS; do
     if [ -x $app ]; then
     app_path=`dirname $app`
     if ! [ -d .$app_path ]; then
     mkdir -p .$app_path
     fi
     cp -p $app .$app
     ldd $app >> ${TMPFILE1}
     fi
    done
    for libs in `cat ${TMPFILE1}`; do
     frst_char="`echo $libs | cut -c1`"
     if [ "$frst_char" = "/" ]; then
     echo "$libs" >> ${TMPFILE2}
     fi
    done
    for lib in `cat ${TMPFILE2}`; do
     mkdir -p .`dirname $lib` > /dev/null 2>&1
     cp $lib .$lib
    done
    cp -r /lib/terminfo ./lib/
    rm -f $TMPFILE1
    rm -f $TMPFILE2

    Lancez le script dans /home/test

    #./create.sh

    6)Editez le fichier de conf ssh pour enfin chrooter la connexion

    #vim /etc/sshd_config 
    Match Group test
     #%u permet de se placer automatiquement dans le home du user 
     ChrootDirectory /home/%u
     AllowTCPForwarding no
     X11Forwarding no

    7)Petit restart du service ssh

    # service ssh reload
    (on ne sait jamais)
    #service ssh restart

    8)Test avec le user test

    I have no name!@x.x.x.x:/$
    I have no name!@x.x.x.x:/$ ls -l
    total 28
    drwxrwxr-x 2 0 1003 4096 Mar 15 15:35 bin
    -rwxr-xr-x 1 0 1003 886 Mar 15 15:21 create.sh
    drwxr-xr-x 2 0 1003 4096 Mar 15 15:23 dev
    drwxr-xr-x 2 1001 1003 4096 Mar 15 15:48 lala
    drwxr-xr-x 4 0 1003 4096 Mar 15 15:23 lib
    drwxr-xr-x 2 0 1003 4096 Mar 15 15:23 lib64
    drwxr-xr-x 4 0 1003 4096 Mar 15 15:23 usr

    9) Je ne peux pas editez dans home de test
    C'est normal seul root doit être propriétaire. Les droits plus permissifs sont les suivants:
    chmod 755 si vous donnez des trop permissifs le ssh chrooter ne fonctionnera pas. Dans ce cas créer un répertoire dont l'utilisateur a full access.
    exemple:

    #mkdir /home/test/test 
    #chown test:test /home/test/test

    Encore merci pour vos propositions, suggestions et votre aide.