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

Est il possible de masquer les dossiers systèmes (/dev /etc…) du répertoire de l’utilsateur pour qu’il ne voit, par exemple, qu’un seul répertoire genre “fichier”??

Réponse tardive…
Perso, je n’ai jamais réussi à le faire. Tout ce que j’ai fait, c’est avoir réduit au minimum les droits sur ces dossiers.

qques corrections :
–> la syntaxe est différente pour spécifier un port avec sftp suivant que l’on est sous squeeze ou lenny:
lenny: sftp -oPort=666 …
squeeze: sftp -P 666 …
–> il faut tjs copier /usr/lib/openssh/sftp-server dans le chroot, excepté si l’on est sous lenny/i386 (pas nécessaire dans cet unique cas)
–> une faute d’orthographe (ben ouais, Ricardo est passé par là)
–> et il fallait lire /etc/init.d/ssh restart et pas /etc/init.d/sshd restart

Merci à Ricardo pour les tests effectués sur lenny/amd64 :023

À mon tour de remercier Yanlolot pour cet excellent tuto, comme je les aime, càd, parfaitement expliqué et précis.
S’il paraît un peu long et complexe à la première lecture, le néophyte peut très bien le suivre “à la lettre”, et il s’avérera simple en fin de compte.
Un des avantages de ce tuto, et pas des moindres, c’est son efficacité au niveau “sécurité”.
J’engage tous ceux qui ont des fichiers sensibles à transmettre, à installer ‘sftp’ selon ce tuto, pour ce faire.
J’ajoute un grand ‘Merci’ à Yann pour sa patience et sa disponibilité, jusqu’à “très tard” dans la nuit :006
:023 :023 :023

Oui, très bon tuto, en tous points!!

Salut,
J’ai suivi le tuto, c’est cool, ça fonctionne très bien. Merci
Au passage j’ai corrigé 2/3 petits trucs sur le Wiki.

Je voulais poser une question au sujet des clefs… Cela n’a pas été abordé.

Il faut créer une clef (sans passphrase) chez le client, et copier la clef dans “.ssh/authorized_keys” sur le serveur.
Avec le chroot, comment cela doit fonctionner ?

Faut-il avoir .ssh/authorized_keys dans /home/machin ou /home/sftp ?

Je vais essayer… :wink:

Re,

C’est cool ce truc :smiley:

ssh -p xxxxx isalo
Linux passerelle 2.6.32-5-amd64 #1 SMP Thu Nov 25 18:02:11 UTC 2010 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

This account is restricted by rssh.
Allowed commands: sftp 

If you believe this is in error, please contact your system administrator.[/code]

[code]# sftp -oPort=xxxxx isalo
Connecting to isalo...
sftp> ls 
dev    etc    lib    lib64  usr    
sftp> exit

Il faut coller la clef dans /home/machin/.ssh/authorized_keys pour que ça fonctionne. Dans sftp ça n’a aucune influence.

Salut,
Je voulais préciser un truc…
Par défaut, l’utilisateur se retrouve enfermé dans le dossier /home/sftp parfait ça fonctionne.
Mais il n’a accès à rien en écriture…

Il faut donc lui créer un dossier “perso” dans /home/sftp et faire un chown dessus avec les droits de l’utilisateur en question.

du genre :

[code]# mkdir /home/sftp/machin

chown -R machin:machin /home/sftp/machin[/code]

Ben si tu as suivi le tuto à la lettre, il me semble que c’est prévu, non ?
Moi, je l’ai installé et j’ai testé avec Yann, ça fonctionnait.
Si tu veux en MP !
regarde dans ce §
“IV Création des utilisateurs”

Re,

J’ai suivi les tutos, ceux de T&A et celui du Wiki.
Il n’y a aucun problème, sauf que l’utilisateur machin n’a aucun dossier ou il peut écrire dans /home/sftp
Et je ne crois pas avoir vu quoi que ce soit là-dessus.

vdir /home/sftp/

vdir /home/sftp/

total 24
drwxr-xr-x 2 root root 4096 13 déc. 09:59 dev
drwxr-xr-x 2 root root 4096 13 déc. 10:01 etc
drwxr-xr-x 2 root root 4096 13 déc. 09:32 lib
drwxr-xr-x 2 root root 4096 13 déc. 09:31 lib64
drwxr-xr-x 4 root root 4096 13 déc. 09:31 usr

Il a fallut que J’ajoute un dossier pour que machin puisse envoyer des fichiers dans le chroot.

Oui, moi aussi j’ai créé un dossier “commun” dans sftp et tous les “clients” peuvent y accéder.
Il me semblait que ça ne m’avait pas posé de problème, ce n’est pas indiqué ?

EDIT :
En effet, ce n’est pas précisé.
Comme c’est moi qui ai créé le dossier en premier, je n’ai pas prêté attention.

EDIT 2 :

[quote]ricardo@serveur:~$ ls -al /home/sftp
total 32
drwxr-xr-x 8 root root 4096 déc. 6 01:50 .
drwxr-xr-x 6 root root 4096 déc. 12 17:16 …
drwxr-xr-x 2 root root 4096 nov. 26 02:11 dev
drwx–x— 2 root sftp 4096 nov. 26 14:26 etc
drwx–x— 2 root sftp 4096 nov. 26 02:08 lib
drwx–x— 2 root sftp 4096 nov. 26 02:05 lib64
drwxrws— 2 root sftp 4096 déc. 10 01:41 commun
drwx–x— 5 root sftp 4096 nov. 27 12:36 usr[/quote]

Voir les droits de ce dossier, les “membres” acceptés étant dans le groupe qui va bien.
Je me souviens maintenant, avoir eu plusieurs échanges avec Yann sur le sujet des droits un peu particuliers

EDIT :
pour mémoire, les droits des dossiers dans sftp/commun sont “2770” avec le SetGID qui va bien drwxrws—

[quote=“ricardo”]Oui, moi aussi j’ai créé un dossier “commun” dans sftp et tous les “clients” peuvent y accéder.
Il me semblait que ça ne m’avait pas posé de problème, ce n’est pas indiqué ?[/quote]

Non, mais ce n’est pas du tout un souci. Le tuto est parfait, c’est juste une précision.

J’ai remis un EDiT de plus.

@lol
–> concernant les clés, je n’ai rien dit dans le tuto. C’est vrai qu’on pourrait en parler et donc y intégrer ta remarque.
Je le ferai dans le tuto de T&A dès que possible.
–> concernant le répertoire auquel pourrait accéder un ou des utilisatuers, c’est aussi vrai qu’il faudrait en parler. Vais m’y atteler un de ces 4. A ce propos, les droits des dossiers que donnent Ricardo correspondent aussi aux miens:

drwxr-xr-x 8 root root 4096 déc. 6 01:50 . drwxr-xr-x 6 root root 4096 déc. 12 17:16 .. drwxr-xr-x 2 root root 4096 nov. 26 02:11 dev drwx--x--- 2 root sftp 4096 nov. 26 14:26 etc drwx--x--- 2 root sftp 4096 nov. 26 02:08 lib drwx--x--- 2 root sftp 4096 nov. 26 02:05 lib64 drwxrws--- 2 root sftp 4096 déc. 10 01:41 commun drwx--x--- 5 root sftp 4096 nov. 27 12:36 usr
restriction sur etc,usr lib et lib64, et création d’un dossier commun. Tous les utilisateurs du serveur sont dans le groupe sftp.
@Ricardo
C’est quoi l’EDIT dont tu parles, je ne le vois pas.

Juste ce que tu reprends :

[quote]
EDIT 2 :
Citer:
ricardo@serveur:~$ ls -al /home/sftp
total 32
drwxr-xr-x 8 root root 4096 déc. 6 01:50 .
drwxr-xr-x 6 root root 4096 déc. 12 17:16 …
drwxr-xr-x 2 root root 4096 nov. 26 02:11 dev
drwx–x— 2 root sftp 4096 nov. 26 14:26 etc
drwx–x— 2 root sftp 4096 nov. 26 02:08 lib
drwx–x— 2 root sftp 4096 nov. 26 02:05 lib64
drwxrws— 2 root sftp 4096 déc. 10 01:41 commun
drwx–x— 5 root sftp 4096 nov. 27 12:36 usr

Voir les droits de ce dossier, les “membres” acceptés étant dans le groupe qui va bien.
Je me souviens maintenant, avoir eu plusieurs échanges avec Yann sur le sujet des droits un peu particuliers[/quote]

[quote=“lol”][code]

vdir /home/sftp/

total 24
drwxr-xr-x 2 root root 4096 13 déc. 09:59 dev
drwxr-xr-x 2 root root 4096 13 déc. 10:01 etc
drwxr-xr-x 2 root root 4096 13 déc. 09:32 lib
drwxr-xr-x 2 root root 4096 13 déc. 09:31 lib64
drwxr-xr-x 4 root root 4096 13 déc. 09:31 usr[/code][/quote]

J’ai du louper un truc tous mes dossier sont root:root…
Je vais reprendre!

@Ricardo: ah oui, ok, je pensais que c’était dans le tuto
@lol: ce truc des droits n’est pas dans le tuto, c’est ce que j’ai fait sur mon serveur, et ce qu’à fait Ricardo sur le sien suite à nos MP. Si tu suis le tuto, tous des dossiers serot root:root. Perso, j’ai modofié les droits, créé un goupe sftp…mais je n’en parle pas dans le tuto. Je le rajouterai un de ces 4.

Depuis la migration de mon pc vers la nouvelle stable, la connection sftp ne fonctionne plus…

“Impossible d’établir une connection au serveur”

J’ai eu aussi un problème il y a peu et je crois qu’il était aussi lié au passage à squeeze, que j’avais fait avant l’heure.
J’arrive quand même à me connecter avec mon user mais pas avec un “étranger”.
Ayant eu d’autres choses à faire, j’ai laissé en suspend.
Yan n’est plus très présent en ce moment mais s’il passe par là … :006

Ton user, c’est celui que tu as créé sur ton serveur??

Parce que pour moi, le user créé sur mon serveur ne fonctionne pas non plus…