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 21:49:28

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

[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 13:10:42)


Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

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

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
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 22:27:31

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

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


Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

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

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
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 23:54:20

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

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 (23-08-2014 00:11:47)


Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

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

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
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 19:04:32

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

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 19:45:26)


Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

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

kawer
Adhérent(e)
Lieu : Académie de la Croix-Vraie
Distrib. : Debian stable / ArchLinux
Noyau : Current
(G)UI : xfwm4
Inscription : 08-10-2013
Site Web

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

Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

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

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
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