logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 22-08-2014 20:49:28

kawer
Membre
Lieu : Earth
Distrib. : Debian Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

[Résolu] Isoler un utilisateur ssh (chroot)

Bonjour,

j' essaie en vain d'isoler un utilisateur ssh du reste du système, j'ai copié le bash et les librairies nécessaire à son fonctionnement dans le dossier /home/user et j'ai modifié le /etc/passwd en conséquence.


Après, nano /etc/ssh/sshd_config :
Match User user
ChrootDirectory /home/user
AllowTCPForwarding no
X11Forwarding no



service ssh restart



Je me connecte avec user en ssh, mais il peut toujours sortir de son répertoire pour aller fouiner dans ceux des autres, une solution pour isoler user à /home/user sans qu'il ne puisse en sortir ?

Dernière modification par kawer (25-08-2014 12:10:42)


ThinkPad T530 - Debian - CoreBoot

Hors ligne

#2 22-08-2014 21:06:12

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Salut,

Tu as regardé si tu trouvais ton bonheur dans http://debian-facile.org/doc:reseau:ssh … ssh-server ?

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 22-08-2014 21:27:31

kawer
Membre
Lieu : Earth
Distrib. : Debian Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Merci captnfab,  j'avance un peu mais je ne peu pas voir le résultat sad

j'ai suivis le wiki pour sshd_config :

UsePAM yes
[...]
Match user user
        ChrootDirectory /home/user/
        ForceCommand internal-sftp
        AllowTCPForwarding no



Mais avec cette configuration je ne peu plus me connecter par ssh avec user :

Permission denied, please try again.



Merci de ton aide


ThinkPad T530 - Debian - CoreBoot

Hors ligne

#4 22-08-2014 22:03:20

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Oui, tu ne dois pas mettre la directive « ForceCommand internal-sftp » dans ton cas smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#5 22-08-2014 22:54:20

kawer
Membre
Lieu : Earth
Distrib. : Debian Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Ne fonctionne toujours pas, je reprend depuis le début :

Création du répertoire

adduser xoxo
cd ./xoxo



script de création de l'environnemt bash et chmod +x puis execution :

#!/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

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



Edition de /etc/passwd

xoxo:x:1001:1001:xxx,,,:/home/xoxo:/bin/bash



Edition de /etc/shells

/home/xoxo/bin/bash



Ensuite nano /etc/ssh/sshd_config :

UsePAM yes
[...]
Match user xoxo
        ChrootDirectory /home/xoxo/
        AllowTCPForwarding no



Redémarrage de ssh

service ssh restart


Ps : le même problème en retirant ForceCommand internal-sftp

Permission denied, please try again.

Dernière modification par kawer (22-08-2014 23:11:47)


ThinkPad T530 - Debian - CoreBoot

Hors ligne

#6 23-08-2014 13:05:21

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Un exemple minimal, testé, qui marche smile

  1. Créer le groupe sshchroot de tous les utilisateurs qui auront un chroot.

    addgroup sshchroot

  2. Créer l'utilisateur xoxo, définir son home et son shell (par exemple, bash-static) en utilisant les chemins absolus depuis le répertoire chrooté et ajouter xoxo au groupe sshchroot.

    adduser xoxo
    usermod -d / xoxo
    usermod -s /bin/bash-static xoxo
    adduser xoxo sshchroot

  3. Donner son home à root (très important, ne fonctionne pas sinon !)

    chown root: /home/xoxo

  4. Copier ce qu'il faut dans son dossier bin/ (par exemple, bash-static)

    apt-get install bash-static
    mkdir /home/xoxo/bin
    cp /bin/bash-static /home/xoxo/bin/

  5. Configurer ssh pour qu'il chroot les membres de sshchroot dans /home/$USER

    Match group sshchroot
            ChrootDirectory /home/%u
            AllowTCPForwarding no
            X11Forwarding no

  6. Relancer ssh

    service ssh restart



Bien sûr, si tu n'as qu'un user qui doit être chrooté, tu peux oublier toutes les commandes qui concernent sshchroot et mettre dans le sshd_config simplement :

Match user xoxo
        ChrootDirectory /home/%u
        AllowTCPForwarding no
        X11Forwarding no


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#7 24-08-2014 18:04:32

kawer
Membre
Lieu : Earth
Distrib. : Debian Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

Re : [Résolu] Isoler un utilisateur ssh (chroot)

Salut smile

Merci à toi pour ton aide précieuse, maintenant ça fonctionne, j'avais oublier de changer les droits du dossier xoxo tout bête.

Maintenant j'ai un acces ssh et les commandes fonctionnent ! Mais j'ai un nouveau problème concernant ce chroot ssh, lorsque j'utilise scp à partir d'une autre machine pour transférer un fichier, il me réponds :

unknown user 1001
lost connection



J'ai ajouté à  /etc/passwd et créer le fichier /home/xoxo/etc/passwd en y mettant la ligne suivante:

xoxo:x:1001:1001:xxx,,,:/home/xoxo:/bin/bash



Tu sais où est le problème ?

Dernière modification par kawer (24-08-2014 18:45:26)


ThinkPad T530 - Debian - CoreBoot

Hors ligne

#8 24-08-2014 22:30:16

kawer
Membre
Lieu : Earth
Distrib. : Debian Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

Re : [Résolu] Isoler un utilisateur ssh (chroot)

J'ai oublié une librairie indispensable pour l'envoi de fichier, libnss_files.so.2 autant pour moi roll

Merci encore de ton aide précieuse captnfab smile

ThinkPad T530 - Debian - CoreBoot

Hors ligne

#9 25-08-2014 09:18:50

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : [Résolu] Isoler un utilisateur ssh (chroot)


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

Pied de page des forums