# [Secu]Empècher les utilisateur de se promener(mini howto)

## zeuss1414

Bonjour a tous, 

j'aurais voulu savoir s'il y avais moyen d'empecher les utilisateurs de sortir de leur home. 

Je m'explique, j'aimerais que quelque pote me dépose des donnée sur mon serveur en utilisant scp (ou winscp). 

Je leur ai donc crée un compte, mais j'aimerais aussi qu'il ne puisse pas se promener sur tout mon serveur. Il faudrait qu'en quelque sorte il ne puisse pas sortir de leur home. Comment faire ? 

Merci d'avance.

----------

## truc

y'a ce thread qui trainait la semaine dernière, je pense que tu veux faire quelque chose de similaire..  :Question: 

----------

## zeuss1414

Merci pour les infos, 

mais il semblerait que les liens données dans ce thread ne fonctionne plus. 

De plus j'aurais bien voulu essayer d'éviter le chroot, l'idée est que le gars qui se connecte sur mon serveur puisse mettre et recuperer des dossier mais ne pas naviguer vers les dossier parent. 

Il doit bien y avoir un autre solution que le chroot non ?

----------

## dapsaille

le ftp ^^

----------

## man in the hill

 *dapsaille wrote:*   

> le ftp ^^

 

vsftp   :Wink:  !

http://vsftpd.beasts.org/

http://www.guidelinux.org/phpBB/viewtopic.php?t=325&sid=55f00a5c7494b9a8707b0185769f6b96

----------

## l_arbalette

Effectivement, les liens que j'avais mis ne fonctionnent déjà plus ! C'est fou ça....

Sinon, il y a celui là, qui dit à peu près la même chose : http://www.commentcamarche.net/faq/sujet-3761-linux-creation-environnement-openssh-chroot

Avec le chroot, ça répond à ton "idée" : la personne qui se connecte ne voit que l'environnement restreint que tu lui as concocté.

Et tu peux quand même partager des dossiers qui ne sont pas dans l'environnement de chroot, en les montant avec la commande mount --bind dans l'environnement en question....

Et si tu veux absolument éviter le chroot, +1 pour le FTP ! (moi, ça me saoulait de mettre un serveur FTP alors que j'avais déjà SSH....paraîtrait que c'est moins rapide, mais franchement, avec les débits qu'on a, je suis pas très regardant)

----------

## zeuss1414

Bon alors après quelques jours de recherche j'ai enfin trouver une solution qui pourrait me convenir. 

il y a toute la doc néxéssaire pour le faire à cette adresse

J'ai fait un script qui ajoute automatiquement un utilisateur : 

```

#!/bin/bash

if test $# -ne 1; then

echo "Usage : sh $0 <username>"

exit

fi

CHROOT_DIR="/mnt/DATA/users"

USER_DIR="$1_chroot"

NAME="$1"

CHROOT="$CHROOT_DIR/$USER_DIR"

echo "Creating user directory"

mkdir -p "$CHROOT"

echo

echo "Adding user $1"

useradd -g users -d "$CHROOT" -s /usr/bin/jail "$NAME"

echo

echo "Creating the Jail environment"

mkjailenv "$CHROOT"  > /dev/null

echo

echo "Adding users to the Jail"

addjailuser "$CHROOT" /home/"$NAME" /bin/bash "$NAME"  > /dev/null

echo

echo "Adding software to Jail"

addjailsw "$CHROOT" > /dev/null

addjailsw "$CHROOT" -P bash \"--version\" > /dev/null

addjailsw "$CHROOT" -P groups \"--version\" > /dev/null

addjailsw "$CHROOT" -P sftp \"--version\" > /dev/null

addjailsw "$CHROOT" -P scp \"--version\" > /dev/null

echo

cp /lib/ld-linux.so.2 "$CHROOT"/lib/

echo

echo "Adding color to bash"

mkdir -p "$CHROOT"/etc/bash

cp /etc/bash/bashrc "$CHROOT"/etc/bash/

cp /etc/profile "$CHROOT"/etc/

cp /etc/DIR_COLORS "$CHROOT"/etc/

addjailsw "$CHROOT" -P whoami > /dev/null

rm -r "$CHROOT".

echo

echo "Changing passwd"

passwd "$NAME"

echo

echo "Jail creation done"

```

et un autre qui le suprime : 

```
#!/bin/bash

if test $# -ne 1; then

echo "Usage : sh $0 <username>"

exit

fi

CHROOT_DIR="/mnt/DATA/users"

USER_DIR="$1_chroot"

NAME=$1

CHROOT="$CHROOT_DIR/$USER_DIR"

echo "Deleting user $NAME"

userdel $NAME

echo

echo "Deleting directory $CHROOT"

rm -r $CHROOT

echo

```

Ces scripts sont assez basiques, mais il me parraissent suffisant pour mon utilisation, et au pire ils pourront tjrs servir de base à d'autres.

De plus les comptes crées ne prenne pas plus de 9Mo sur le disque et marche avec winscp. Seul pb, il est impossible de se connecter en sftp mais je ne sais pas pourquoi.

----------

## NiLuJe

Pour le sftp, me semble qu'il faut ajouter /usr/lib/misc/sftp-server à ton jail (avec les libs qui vont bien, comme d'hab), ainsi qu'éventuellement un /dev/null (mknod -m 777 ./dev/null c 1 3)  :Wink: 

Enfin, c'est ce que je fais chez moi pour que ça marche, mais perso j'utilise le truc du chroot via l'USE chroot d'openssh, avec un shell rssh configuré pour n'accepter que le scp & le sftp. (Et donc pour le scp j'ai aussi besoin d'ajouter /usr/bin/scp aux cages, et de mémoire ça marche niquel avec winscp en mode sftp, en mode scp j'ai un doute, le kio sftp:/ de kde, et le sshfs de FUSE, et évidemment du scp & sftp en shell)

----------

## zyprexa

J'ai testé également rssh, c'était pas trop sorcier mais fallait créer la prison.

Je me suis également intéressé à ceci :

```
* app-misc/jail 

     Available versions:  1.9-r1 1.9-r2

     Homepage:            http://www.jmcresearch.com/projects/jail/

     Description:         Jail Chroot Project is a tool that builds a chrooted environment and automagically configures and builds all the required files, directories and libraries

```

Là c'est du pré-mâché, mais la dernière version date de 2004 dommage   :Rolling Eyes: 

Pour pousser la paranoïa un peu plus loin, vaut mieux changer le port par défaut, et mettre un fail2ban.

Les plus motivés pourront ajouter un knock et mettre le tout dans un domU(xen) ou un vz(openvz)   :Laughing: 

----------

## l_arbalette

 :Rolling Eyes:   je vois pas trop en quoi c'est une solution qui n'utilise pas chroot ?

----------

## zeuss1414

J'ai jamais dis que ca n'utilisait pas le chroot, mais je trouve que c'est super facile a mettre en place.

tu emerge jail et tu modifie un peu mes script pour qu'il correspond à la ou tu veux stoker les chroot des utilisateur et hop tu peu faire un accès sur ton serveur ou sur ton pc à tes potes sans te prendre la tête et c'est quand même pas mal sécuriser.

Sinon pour le sftp je vais tester vite fait et je vous tien au courrant.

----------

## ultrabug

Salut,

J'ai mis en place un serveur sftp qui fait exactement ce que tu recherches. Regardes du coté de scponly et tu trouveras ton bonheur  :Smile: 

Bon courage

----------

## l_arbalette

 *zeuss1414 wrote:*   

> J'ai jamais dis que ca n'utilisait pas le chroot, mais je trouve que c'est super facile a mettre en place.
> 
> tu emerge jail et tu modifie un peu mes script pour qu'il correspond à la ou tu veux stoker les chroot des utilisateur et hop tu peu faire un accès sur ton serveur ou sur ton pc à tes potes sans te prendre la tête et c'est quand même pas mal sécuriser.
> 
> Sinon pour le sftp je vais tester vite fait et je vous tien au courrant.

 

Ben en fait, la solution que j'ai mis en place est exactement la même sauf que j'ai pas eu besoin d'installer jail, puisque c'est une fonctionnalité en patch disponible dans openssh....on s'est peut être pas compris.

Le résultat, et la méthode, sont les mêmes. Je croyais avoir compris que tu ne voulais pas de chroot....

 *zeuss1414 wrote:*   

> De plus j'aurais bien voulu essayer d'éviter le chroot

 

Je connaissais Jail (j'en parlais dans mon thread), mais je voulais éviter, puisque OpenSSH était déjà installé sur mon PC, et était censé faire la même chose....

Et franchement, même si j'ai galéré à cause de mon manque de connaissance, une fois que tu as compris, c'est très simple !

Voili voilà. Mais en tout cas, content que tu ai trouvé ton bonheur !

----------

