# Serveur sftp, shell réduit (rssh) et chroot

**URL:** <https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 10:25 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813 "2016-02-20T22:25:40Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:25 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/1 "2016-02-20T22:25:40Z")

</div>

Salut à tous

Voilà un tuto sur la création d’un serveur sftp, dans lequel les utilisateurs seront “chrootés”, et munis d’un shell réduit.  
J’ai fait ce tuto, car les 4 tutos trouvés sur le net ne fonctionnent pas lorsqu’ils sont pris séparément, et en font trop lorsqu’on les regroupe.

I Présentation  
II Installation de openssh-server et rssh

1. Configuration du serveur ssh
2. Configuration de rssh  
III Création du chroot  
IV Création des utilisateurs  
V Tests
3. en local
4. en réseau  
VI Les logs
5. syslog
6. rsyslog
7. conclusion

[size=150]I Présentation[/size]   
sftp est un programme similaire à ftp, mais au dessus d’un tunnel ssh. Il a donc toutes les fonctionnalité de ftp, mais avec la sécurité de ssh en plus (cryptage des logins, mots de passe et des transferts de données).

–\> Côté serveur: le serveur sftp est fourni par openssh-server.Pour plus de sécurité, nous le couplerons avec rssh, un shell réduit qui ne permettra aux clients connectés à notre serveur de ne faire que du sftp. De plus, nous allons créer un chroot, une technique qui va “enfermer” les clients dans un dossier de notre serveur. Aucune de leurs actions ne pourra avoir de conséquences à l’extérieur de ce dossier.  
–\> Côté client: afin d’utiliser un serveur sftp, le client doit avoir un client sftp (sftp en ligne de commande ou filezilla).

[size=150]II Installation de openssh-server et rssh[/size]

On va tout simplement les installer avec aptitude, qui s’occupera d’installer les dépendances:

```auto

```

1. Configuration du serveur ssh

Le fichier de configuration est: /etc/ssh/sshd\_config.

–\> Tout d’abord, changeons le port d’écoute par défaut (le 22), et mettons, par exemple, le 666. De cette manière, on évitera les robots qui scannent le net à la recherche de serveurs.

`# What ports, IPs and protocols we listen for
   Port 666`  
(N’oubliez pas d’ouvrir le port dans votre firewall, et de rediriger le port si vous êtes derrière un routeur)

–\> Dans la section authentification, on interdit la connection en tant que root:

```auto

```

–\> Inutile dans notre cas d’activer le X11forwarding

```auto

```

–\> On indique à sshd où se trouve sftp-server: sftp-server est appelé par sshd, et gère les requêtes sftp.

```auto

```

2. Configuration de rssh

L’intérêt de rssh est de donner à chaque utilisateur du serveur un shell réduit. Dans notre cas, ce shell sera réduit à sftp, c’est à dire à ttes les commandes dispensées par sftp:  
cd lcd chgrp chmod chown help get lls ln lmkdir lpwd ls lumask mkdir put exit quit rename rmdir rm symlink version !command ! ?

Le fichier de configuration est /etc/rssh.conf Remplaçons celui créé lors de l’installation:

[code]# mv /etc/rssh.conf /etc/rssh.conf.old

# echo “logfacility = LOG\_USER” \> /etc/rssh.conf

# echo “allowsftp” \>\> /etc/rssh.conf

# echo “umask = 066” \>\> /etc/rssh.conf

[/code]  
[size=150]III Création du chroot [/size]  
   
Nous allons “chrooter” nos futurs utilisateurs du serveur sftp dans un dossier, nous nous servirons dans notre cas de /home/sftp:

```auto

```

L’intérêt est que ces utilisateurs verront /home/sftp comme racine, et ne pourront agir que dans celui-là (et uniquement avec les commandes fournies par sftp, étant donné qu’on leur donnera comme shell rssh).

–\> copie des binaires et de leur dépendances

Il va donc falloir installer dans le chroot la commande sftp et ses dépendances.  
On va, pour ce faire, utiliser le script copie\_binaire:

[quote=“copie\_binaire”] #!/bin/bash  
[size=85]#il prend en argument le chemin absolu de la commande à copier ($1), et le chemin absolu du dossier où il faut la copier ($2)[/size]  
install -D $1 $2$1 [size=85] #copie de la commande dans le répertoire de destination (en y conservant l’arborescence)[/size]  
for i in `ldd $1 | grep -o '/[^[:space:]]*'`; do [size=85] #recherche des dépendances, et, pour chacune d’elles, n’en conserve que le chemin absolu (i)…[/size]   
if [! -e $2$i]; then install -D $i $2$i; fi [size=85] #…puis la copie dans le dossier destination (tjs en conservant l’arborescence)[/size]  
done[/quote]  
Ce script permet de copier un binaire et ses dépendances (et permet d’éviter de tout faire avec ldd et cp “à la main”).  
On le rend au préalable executable: `# chmod a+x ./copie_binaire`  
Copions donc sftp de la manière suivante:

```auto

```

Voila, sftp et ses dépendances sont dans /home/sftp.  
Il faut en plus copier libnss-file.so.2:  
–\> Pour Wheezy, avec une archi 64 bits: `#cp /lib/x86_64-linux-gnu/libnss_files.so.2 /home/sftp/lib/x86_64-linux-gnu/`  
–\> Pour Wheezy, avec une archi 32 bits: `#cp /lib/i386-linux-gnu/libnss_files.so.2 /home/sftp/lib/i386-linux-gnu/`  
–\> Et pour les versions précédentes: #cp /lib/libnss\_files.so.2 /home/sftp/lib

Il faut en plus copier /usr/lib/openssh/sftp-server dans le chroot (excepté si vous êtes sur une lenny/i386):

[code]# mkdir /home/sftp/usr/lib/openssh

# cp /usr/lib/openssh/sftp-server /home/sftp/usr/lib/openssh/[/code]

–\> création de /dev/null dans le chroot  
Pour le bon fonctionnement de sftp, il est nécessaire d’avoir un dev/null dans le chroot:

[code]# cd /home/sftp

# mkdir dev

#mknod dev/null c 1 3[/code] ` #chmod 666 dev/null`

–\> Placer le setuid sur le rssh\_chroot\_helper (et vérifier après chaque mise à jour de rssh qu’il y est toujours):

```auto

```

–\> Ajouter ligne chrootpath /home/sftp dans rssh.conf

```auto

```

Bon, le chroot est prêt, ne manque plus que les clients…

[size=150]IV Création des utilisateurs[/size]

–\> Créons l’utilisateur machin, futur client de notre serveur (en n’oubliant pas de lui donner comme shell rssh)

```auto

```

On vous demande un mot de passe pour cet utilisateur, mettez-en un “béton”, sinon tout ce qui est fait côté “sécu” ne sert à rien.

–\> ajoutons cet utilisateur dans le fichier passwd du chroot

`#mkdir /home/sftp/etc
#grep '^machin:' /etc/passwd >> /home/sftp/etc/passwd`  
–\> et déclarons le comme utilisateur autorisé dans /etc/ssh/sshd\_config:

`#utilisateurs autorisés
AllowUsers machin`

EDIT de Ricardo :  
Ne pas oublier de mettre “machin” dans le groupe “sftp”

# usermod -a -G sftp machin

[size=150]V Tests[/size]  
Nous voilà presque prêt pour les tests. Il faut juste redémarrer sshd au préalable:

```auto

```

1. en local

Testons tout ça directement sur le serveur:  
sur wheezy, squeeze:`$ sftp -P 666 machin@localhost`  
sur lenny:`$ sftp -oPort=666 machin@localhost`

Après avoir entrer votre mot de passe, si tout va bien, vous devez avoir une invite de commande: `>`

2. en réseau   
sur wheezy, squeeze:`$ sftp -P 666 machin@IP_de_votre_serveur`  
sur lenny:`$ sftp -oPort=666 machin@IP_de_votre_serveur`

3. en cas de problèmes

- Vérifier la création du chroot (il manque peut être une librairie dans le chroot, vérification du passwd du chroot…)
- le port est-il ouvert sur le firewall ?
- les utilisateurs créés sont ils bien dans le passwd du chroot ?

[size=150]VI Les logs [/size]

Comme le dit man sftp-server:

[quote]For logging to work, sftp-server must be able to access /dev/log. Use of sftp-server in a chroot configuation therefore requires that syslogd (ou rsyslogd) (8)  
establish a logging socket inside the chroot directory.[/quote]  
2 cas vont se présenter: ou vous avez syslog pour gérer les logs, ou rsyslog.

```
 [i][b]1. Syslog[/b][/i]

```

Comme le dit man syslogd:

[quote]-a socket: Using this argument you can specify additional sockets from that syslogd has to listen to.  
This is needed if you’re going to let some daemon run within a chroot() environment.  
[/quote]  
Conclusion: ajouter à /etc/defaut/syslog la ligne SYSLOGD="-a /home/sftp/dev" à /etc/defaut/syslog, puis redémarrer syslogd

`#echo 'SYSLOGD="-a /home/sftp/dev"' >> /etc/defaut/syslog
 #/etc/init.d/sysklogd restart`

Bon, c’est bon, on va avoir des logs, mais ils seront plus lisibles, si on créé un fichier de log pour sftp. Pour cela, on édite /etc/ssh/sshd\_config , pour y faire apparaître les lignes

` # Logging
 SyslogFacility LOCAL6
 LogLevel INFO `  
(ça nous donnera les logs de sshd concernant les connexions )  
et on rajoute -f LOCAL7 -l INFO à la ligne concernant le subsystem:

```auto

```

(ça nous donnera les logs de sftp-server concernant les transferts de fichiers)  
On redémarre ssh: `# /etc/init.d/ssh restart`

Puis, éditer syslog.conf, pour y ajouter les lignes:

`local7.info /var/log/sftp
 local6.info /var/log/sshd`  
Puis on redémarre syslogd:

```auto

```

```
 [i][b]2. rsyslog[/b][/i]

```

C’est la même procédure que pour syslog, mais pas la même syntaxe:  
Ajouter $AddUnixListenSocket /home/sftp/dev/log dans /etc/rsyslog.conf (et vérifier que $ModLoad imuxsock est décommenté au début du fichier, sinon, le décommenter).  
Redémarrer rsyslog et vérifier qu’il a bien créé /dev/log dans le chroot:

[code]#/etc/init.d/rsyslog restart

# ls -al /home/sftp/dev/log

srw-rw-rw- 1 root root 0 7 sept. 11:34 /home/sftp/dev/log  
[/code]  
La suite de la procédure est identique au cas syslog:  
Editer /etc/ssh/sshd\_config , pour y faire apparaître les lignes

` # Logging
 SyslogFacility LOCAL6
 LogLevel INFO `  
Rajouter -f LOCAL7 -l INFO à la ligne concernant le subsystem:

```auto

```

Redémarrer ssh: `# /etc/init.d/ssh restart`

Puis, éditer rsyslog.conf, pour y ajouter les lignes:

`local7.info /var/log/sftp
 local6.info /var/log/sshd`  
Puis on redémarre rsyslog:

```auto

```

3. Conclusion  
Vous pouvez consulter les logs de transferts de fichiers dans /var/log/sftp, et les logs de connexions dans /var/log/sshd.

---

<div class="post-metadata">

**Author:** ![artex](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/bb73d2/32.png) [@artex](https://www.debian-fr.org/u/artex)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/2 "2016-02-20T22:26:01Z")

</div>

woaw quel tuto, super pour moi.

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/3 "2016-02-20T22:26:02Z")

</div>

Merci. Essaye le si tu as le temps. Ce tuto est la transcription de notes qui datent un peu (qques mois), et j’ai peut-être zappé qques trucs (même s’il me semble que non, mais on n’est jamais sûr de rien…).

---

<div class="post-metadata">

**Author:** ![artex](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/bb73d2/32.png) [@artex](https://www.debian-fr.org/u/artex)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/4 "2016-02-20T22:26:03Z")

</div>

> [@](#):
>
> Merci. Essaye le si tu as le temps. Ce tuto est la transcription de notes qui datent un peu (qques mois), et j’ai peut-être zappé qques trucs (même s’il me semble que non, mais on n’est jamais sûr de rien…).

Que penses-tu de ce script.

[viewtopic.php?f=1&t=27384](http://forum.debian-fr.org/viewtopic.php?f=1&t=27384)

Ce n’est pas de moi.

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/5 "2016-02-20T22:26:08Z")

</div>

À moins que ça aie changé depuis que j’ai essayé, tu dois indiquer dans rssh.conf que tu veux chrooter ! Soit (d’après [trustonme.net/didactels/318.html](http://www.trustonme.net/didactels/318.html)) en ajoutant chrootpath=/chemin/vers/dossier, soit (d’après [mon vieux script](http://forum.debian-fr.org/viewtopic.php?f=8&t=3548&start=100#p155529)) en ajoutant une entrée par utilisateur indiquant le dossier de chroot.

Ceci expliquerait que tu n’aie pas eu besoin de copier sftp-server.  
En revanche, comme je l’ai écrit quand j’ai publié le script, j’ai vu des tutos dans lesquels on copiait scp et sftp. Je n’ai pas eu besoin de le faire…

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/6 "2016-02-20T22:26:09Z")

</div>

@kna: Pour scp, si je ne copie pas cette commande, c’est simplement dû au fait que je fais vraiment du ftp : mes utilisateurs (qui ont filezilla pour la plupart), ne se servent en fin de compte que de cd, get et put.  
Après suivant l’usage de ce serveur, tu peux copier scp.  
J’ai regardé ton script, et j’avais rencontré cette galère du /lib/libnss\_files.so.2, qui effectivement n’apparait pas dans les dépendances de sftp.  
C’est vrai que l’idée d’automatiser l’installation par un script est intéressante. Si tu dois faire plein d’install, c’est trés utile.  
Le tuto de trustonme fait partie des tutos que j’ai consulté, mais dans celui-ci, nulle part il ne parle de /dev/null pour le chroot. Et sans ça, pas de ssh fonctionnel dans le chroot.

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/7 "2016-02-20T22:26:09Z")

</div>

@kna: je viens de relire ton script, et tu dis:[quote]Dans les différents tutos que j’ai lu, ils copiaient aussi scp et sftp (ainsi que leurs libs). Mais apparement pas besoin.  
[/quote]  
Tu veux dire que ta remarque pour sftp-server le serait aussi pour sftp: l’ajout de chroot-path permet aussi de ne pas copier sftp dans le chroot ?

[edit]: bah apparemment oui: pas besoin de copier sftp dans le chroot: j’ai renommé /home/sftp/usr/bin/sftp en /home/sftp/usr/bin/sftp.old, et le serveur fonctionne nickel. Bon, je modifierai le tuto si ça se confirme (pas le temps maintenant) [/edit]

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/8 "2016-02-20T22:26:12Z")

</div>

Alors, qques tests plus tard…  
lorsqu’on utilise le script copie\_binaire, il copie la commande, et ses dépendances. Apparemment, seul la copie des librairies dont dépend sftp est nécessaire (et pas sftp).  
En faisant #./copie\_binaire /usr/bin/sftp /home/sftp, on créé dans /home/sftp:  
/home/sftp/usr (avec dans usr, les dossiers bin et lib)  
/home/sftp/lib  
Rmq: dans /home/sftp/usr n’apparaît que la commande sftp, et dans les autres les librairies dont dépend sftp.

Les tests:  
mv /home/sftp/usr/bin /home/sftp/usr/bin.old --\> serveur ok  
mv /home/sftp/usr/lib /home/sftp/usr/lib.old --\> serveur out  
mv /home/sftp/lib /home/sftp/lib.old --\> serveur out

Conclusion: seule la copie deslibrairies a l’air nécessaire.

Bon, c’est carrément empirique tout ça, ça demande plus de réflexions…

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/9 "2016-02-20T22:26:14Z")

</div>

[quote=“yanlolot”]…  
Le fichier de configuration est /etc/rssh.conf Remplaçons celui créé lors de l’installation:

[code]# mv /etc/rssh.conf /etc/rssh.conf.old

# echo “logfacility = LOG\_USER” \> /etc/rssh.conf

# echo “allowsftp” \>\> /etc/rssh.conf

# echo “umask = 022” \>\> /etc/rssh.conf

[/quote]

022 ou 666 ?

[quote=“yanlolot”]  
([i]Mes questions:

- dans certains tuto, il est dit de copier dans le chroot sftp-server. Cela marche très bien chez moi sans cela. Quid ?
- tjs à propos du chroot: j’ai mis mes utilisateurs dans certains groupes, et suivant les dossiers présents dans /home/sftp, ils ont ou non les droits. Tout se passe bien, mais je m’étonne de ne pas avoir eu à copier /etc/group dans le chroot.[/i])[/quote]  
Ben, quand il se connecte,le chrooté est déjà passé par la case /etc, sans le savoir et son pseudo est déjà connu comme faisant partie des groupes qui vont bien, non ?

Sinon, je trouve ce tuto très bien fait et je le testerai sitôt que possible.

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/10 "2016-02-20T22:26:16Z")

</div>

Salut Ricardo  
T’as raison pour le umask, autant être plus restricif: umask=066 (et peut être mettre une petite explication dans le tuto).  
Qt au chroot, j’ai encore du mal a bien comprendre le fonctionnement: pourquoi ne rapatrier que les librairies, et pas la commande elle-même ? Pourquoi ne pas rappatrier /etc/group ? J’imagine le chroot comme un espace indépendant, autonome, et donc, pour moi, il est nécessaire d’y rapatrier tout ce qu’il faut pour que ça marche. Et apparemment, dans le “tout ce qu’il faut”, j’en mets de trop, et je ne comprends pas encore bien pourquoi.

> [@](#):
>
> Sinon, je trouve ce tuto très bien fait et je le testerai sitôt que possible.

Tu sais que venant de toi ça me fait trés plaisir ça…si, si j’t’assure 😉😃

[edit]Bon, dans la page de manuel de rssh, ils disent de lire le document CHROOT qui se trouve dans les soures de rssh. J’ai téléchargé ces sources, et commencé à lire ce doc. Ils redisent encore dedans:

[quote=“CHROOT”]Presumably, rssh detected the scp and sftp-server binaries in those locations,  
and will be looking for them in those locations, RELATIVE TO THE ROOT OF THE  
CHROOT JAIL. So you will need to copy these files into the chroot jail:

# cp /usr/bin/scp /usr/chroot/usr/bin/scp

# cp /usr/libexec/openssh/sftp-server /usr/chroot/usr/libexec/openssh/sftp-server

# cp /usr/local/bin/rssh\_chroot\_helper /usr/chroot/usr/local/bin/rssh\_chroot\_helper

[/quote]  
Ce que je ne fais pas dans le tuto…bizarre qd même non ? Bon, je vais lire ça avec plus d’attention, et je vous tiens au courant.[/edit]

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/11 "2016-02-20T22:26:28Z")

</div>

> [@](#):
>
> > [@](#):
> >
> > Sinon, je trouve ce tuto très bien fait et je le testerai sitôt que possible.
> 
> Tu sais que venant de toi ça me fait trés plaisir ça…si, si j’t’assure 😉😃

J’ai plein de défauts, mais je sais reconnaître la valeur d’une chose, même si celle-ci vient de quelqu’un avec lequel je peux avoir des différends pour d’autres raisons.  
À mon avis, seuls les imbéciles sont bornés et mélangent les genres.  
Or, j’ai une bien trop grande estime de moi-même pour me croire imbécile ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green") ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green") ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/12 "2016-02-20T22:26:36Z")

</div>

Bon, j’ai apporté une correction au tuto: dans le II 1) conf de ssh: ajout de subsystem (je ne la mettais qu’en fin de tuto pour les logs).  
Mes critiques sur mon tuto:  
je suis convaincu que je n’effectue pas un véritable chroot des utilisateurs:  
pour moi, avec un véritable chroot, non seulement les utilsateurs voient le répertoire “chrooté” (ici /home/sftp) comme racine (ça c’est ok), mais ttes les commandes qu’ils utilisent doivent être dans le chroot, et pas ailleurs (ça, c’est pas ok).  
Lorsque je mets tout le nécessaire dans le chroot (commandes sftp, sftp-server et leurs dpdces…c’est ce qui est conseillé par les dev de rssh dans le doc CHROOT des sources de rssh), et que je renomme en .old ces mêmes commandes qui ne sont pas dans le chroot (histoire d’être sûr), je me fais envoyer promener par mon serveur (bon, ces temps ci, j’ai n pris l’habitude de me faire envoyer sur les roses ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green") ). Je pense que c’est un pb de librairie que je n’ai pas rappatriée, je cherche encore…  
Mais bon, pour l’instant ce tuto permet qd même d’avoir un sftp fonctionnel, mais un peu bancal je trouve…  
A suivre…

[edit 1]Bon, voila où j’en suis:  
je raptrie dans le chroot (avec les dpdces): sftp, sftp-server, rssh\_chroot\_helper, ssh.  
indique à sshd où se trouve sftp-server: Subsystem sftp /home/sftp/usr/lib/openssh/sftp-server , redémarre sshd.  
Je mets bien le setuid sur sftp-server et rssh\_chroot\_helper.  
Je monte le nvx de log de sshd à debug,essaye le serveur: marche pô.Et voilà ce que me sort les logs de sshd:

[quote="/var/log/sftp\_connexion"]May 19 16:05:06 bouzin sshd[12263]: Connection from 127.0.0.1 port 43809  
May 19 16:05:06 bouzin sshd[12263]: Failed none for xxxxxx from 127.0.0.1 port 43809 ssh2  
May 19 16:05:11 bouzin sshd[12263]: Accepted password for xxxxxx from 127.0.0.1 port 43809 ssh2  
May 19 16:05:11 bouzin sshd[12263]: User child is on pid 12266  
May 19 16:05:11 bouzin sshd[12266]: subsystem request for sftp  
May 19 16:05:11 bouzin sshd[12266]: Connection closed by 127.0.0.1  
May 19 16:05:11 bouzin sshd[12266]: Transferred: sent 1960, received 1424 bytes  
May 19 16:05:11 bouzin sshd[12266]: Closing connection to 127.0.0.1 port 43809[/quote]  
le mot de passe est accepté, et dès que sshd appelle sftp-server, la connection est fermée.  
C’est sftp-server qui m’emmer$%@## (ou une de ses dpdces).  
[/edit]

[edit 2]Bon, ça avance un peu: un strace sur sftp-server m’a donné qques trucs qu’il ouvre et qui ne font pas partie de ces dépendances ex: /etc/nsswitch.conf. Y en a qques uns (pas des caisses) comme ça. Vais rappatrier ça dans le chroot, pour voir.  
A suivre…[/edit]

[edit 3]Bon, bah ça a pas suffit…Je ferais le même truc pour sftp, etc…mais pas maintenant…[/edit]

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 11:24 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/13 "2016-02-20T23:24:28Z")

</div>

Juste qques mises à jours concernant squeeze:

- ajout d’une librairie indispensable dans le chroot: /usr/lib/openssh/sftp-server
- la gestion des log est passée de syslog (lenny) à rsyslog (squeeze), d’où quelques adaptations …

---

<div class="post-metadata">

**Author:** ![Gervais](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/65b543/32.png) [@Gervais](https://www.debian-fr.org/u/Gervais)\
**Post date:** [Février 20, 2016, 11:45 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/14 "2016-02-20T23:45:11Z")

</div>

Bonjour,

J’ai réalisé ce tuto avec syslog-ng et j’ai un problème mes logs ont un décalage de deux heures.

J’utilise OpenNTPD pour le réglage de l’heure. Quand je fais un “date” tout est nickel. Mes logs “classiques” sont à la bonne heure.

Mais les logs du sftp sont décalés de deux heures…

Que faire ?

OS Debian Lenny

---

<div class="post-metadata">

**Author:** ![Gervais](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/65b543/32.png) [@Gervais](https://www.debian-fr.org/u/Gervais)\
**Post date:** [Février 20, 2016, 11:48 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/15 "2016-02-20T23:48:27Z")

</div>

J’ai trouvé il faut copier /etc/localtime dans le chroot /chroot/etc/localtime !

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 20, 2016, 11:48 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/16 "2016-02-20T23:48:28Z")

</div>

Merci beaucoup pour ce tuto, je profite de la réinstall" de ma sid pour utiliser ce procéder sftp

Il est préférable de suivre ton tuto sur le wiki peut être??

---

<div class="post-metadata">

**Author:** ![yanlolot](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/f14d63/32.png) [@yanlolot](https://www.debian-fr.org/u/yanlolot)\
**Post date:** [Février 20, 2016, 11:48 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/17 "2016-02-20T23:48:29Z")

</div>

@M3t4linux: non, il faut suivre ce tuto. Celui du wiki est plein de petites erreurs, pas à jour, et moins complet.  
@Gervais: merci pour ta contribution. Je ne connaissais pas syslog-ng. Peux-tu indiquer ce que tu as dû faire pour avoir les logs avec syslog-ng (à part /etc/localtime dans le chroot /chroot/etc/localtime). Je le rajouterais dans le tuto (qd j’aurais le temps…)

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 12:01 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/18 "2016-02-21T00:01:05Z")

</div>

Bon, j’ai suivis ton tuto est résultat : j’ai foutu man config’ sid en l’air!!! 👿

Voici ce que j’ai en prompt :

> [@](#):
>
> 0:02 @localhost ~%

Le user n’apparaît plus.

En tty, j’ai des messages d’erreurs notemment de fetchmail :

[quote]0:02 @localhost ~% fetchmail  
fetchmail: You don’t exist. Go away.[/quote]

Comment revenir en arrière??

J’ai dû planter les fichiers passwd et group peut être???

Déjà, j’ai dû renommer le passwd à partir d’un live CD  
Il avait été renommé en passwd~

De l’aide svp ![:010](https://www.debian-fr.org/uploads/default/original/1X/98ce3f897f002ccc6f6d284f726d489ec74eda89.gif "triste")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:01 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/19 "2016-02-21T00:01:05Z")

</div>

Envoie nous le contenu de /etc/passwd.

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 12:01 UTC](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813/20 "2016-02-21T00:01:05Z")

</div>

[quote]root:x:0:0:root:/root:/bin/zsh  
daemon:x:1:1:daemon:/usr/sbin:/bin/sh  
bin:x:2:2:bin:/bin:/bin/sh  
sys:x:3:3:sys:/dev:/bin/sh  
sync:x:4:65534:sync:/bin:/bin/sync  
games:x:5:60:games:/usr/games:/bin/sh  
man:x:6:12:man:/var/cache/man:/bin/sh  
lp:x:7:7:lp:/var/spool/lpd:/bin/sh  
mail:x:8:8:mail:/var/mail:/bin/sh  
news:x:9:9:news:/var/spool/news:/bin/sh  
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh  
proxy:x:13:13:proxy:/bin:/bin/sh  
www-data:x:33:33:www-data:/var/www:/bin/sh  
backup:x:34:34:backup:/var/backups:/bin/sh  
list:x:38:38:Mailing List Manager:/var/list:/bin/sh  
irc:x:39:39:ircd:/var/run/ircd:/bin/sh  
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh  
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh  
libuuid:x:100:101::/var/lib/libuuid:/bin/sh  
Debian-exim:x:101:103::/var/spool/exim4:/bin/false  
statd:x:102:65534::/var/lib/nfs:/bin/false  
genpashiro:x:1000:1000:genpashiro,:/home/genpashiro:/bin/zsh  
messagebus:x:103:106::/var/run/dbus:/bin/false  
gdm:x:105:108:Gnome Display Manager:/var/lib/gdm:/bin/false  
usbmux:x:106:46:usbmux daemon,:/home/usbmux:/bin/false  
haldaemon:x:107:109:Hardware abstraction layer,:/var/run/hald:/bin/false  
logcheck:x:108:111:logcheck system account,:/var/lib/logcheck:/bin/false  
fetchmail:x:104:65534::/var/lib/fetchmail:/bin/false  
sshd:x:109:65534::/var/run/sshd:/usr/sbin/nologin  
jerome:x:1001:1001::/home/jerome:/usr/bin/rssh[/quote]

Mon login est genpashiro

[Page suivante](https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813.md?page=2)
