Topic: VirtualChroot ne fonctionne pas

Bonjour

J'ai un problème avec la directive VirtualChroot. Il me semble qu'avant elle fonctionnait, mais à présent quand je me connecte je peux voir l'emplacement de mon home.

Je vous montre mon fichier sftp_config :

<Default>
    GlobalDownload        200k    #total speed download for all clients
                    # o -> bytes   k -> kilo bytes   m -> mega bytes
    GlobalUpload        200k    #total speed download for all clients (0 for unlimited)
    StayAtHome        true    #limit client to his home
    VirtualChroot        true    #fake a chroot to the home account
    LimitConnectionByUser    3    #max connection for the account
    IgnoreHidden        true    #treat all hidden files as if they don't exist
    HideNoAccess        true    #Hide file/directory which user has no access
    MaxOpenFilesForUser    3    #limit user to open x files on same time
    MaxWriteFilesForUser    3    #limit user to x upload on same time
    MaxReadFilesForUser    3    #limit user to x download on same time
</Default>

Re: VirtualChroot ne fonctionne pas

Bonjour,

L'utilisateur a bien le shell "/bin/MySecureShell" ?
Lorsque l'utilisateur est connecté, il est possible de voir "MySecureShell" à l'aide de la commande "ps" (ou tout autre visualiseur des applications lancées).

Re: VirtualChroot ne fonctionne pas

Oui, l'utilisateur à bien le shell /bin/MySecureShell puisqu'il ne peut avoir acces à un shell et il est coincé dans son home grâce au StayAtHome

Re: VirtualChroot ne fonctionne pas

Un petit coup de commande "sftp-verif" pour voir si tout es bien en place pour MySecureShell (droits / fichiers / etc...) ?

Sous l'utilisateur, il est possible d'exécuter la commande "MySecureShell -v --configtest" pour voir la configuration ?

Re: VirtualChroot ne fonctionne pas

sftp-verif ne trouve aucun erreur,

lorsque j'execute MySecureShell -v --configtest avec l'utilisateur (en lui donnant un shell), j'obtiens

GlobalDownload = 204800 bytes/s
GlobalUpload = 204800 bytes/s
StayAtHome = true
VirtualChroot =true
LimitConnectionByUser = 3
Home = /MonHome
Shell = /bin/bash
IgnoreHidden = true;
HideNoAccess=true;
MaxOpenFilesForUser = 3
MaxReadFilesForUser = 3
MaxWriteFilesForUser= 3
SftpProtocol = {default}
LogFile = {default}
CanRemoveDir= true
CanRemoveFile = true
CanChangeRights = true
CanChangeTime= true


J'espere que cela vous aidera à comprendre le problème

6 (edited by fastruc 2010-09-21 11:53:25)

Re: VirtualChroot ne fonctionne pas

J'ai regardé dans le sftp-server.log, et il me met Couldn't chroot : Operation not permitted.

Je pense que cela vient de là, mais je ne vois pas pourquoi je n'aurais pas le droit de faire un chroot !?

Re: VirtualChroot ne fonctionne pas

Bonjour,

L'installation de MySecureShell ne doit pas être complète (manque des droits).

C'est bizzare que le script sftp-verif ne dise rien (il faut l'exécuter depuis l'utilisateur "root")...
Vous utilisez quelle version de MySecureShell ? Installation par package ?

Re: VirtualChroot ne fonctionne pas

Quand j'execute MySecureShell --version, j'obtient

MySecureShell is version 1.20 build on Jan 20 2010
Options:
  ACL support: yes
  UTF-8 support: yes

Sftp Extensions:
  Disk Usage
  File Hashing

Il faut exécuter MySecureShell sous le compte root ? Comment ?

Re: VirtualChroot ne fonctionne pas

Juste le script "sftp-verif" depuis "root", via la commande "sudo sftp-verif"

Et un "ls -l /bin/MySecureShell" donne quoi ?

Re: VirtualChroot ne fonctionne pas

LOrsque je fais ls -l /bin/MySecureShell, j'obtiens :

-rwsr-xr-x 1 root root 67436 2010-01-20 19:27 /bin/MySecureShell

La ligne est correct puisque j'obtiens le meme resultat sur un autre serveur sur lequel la directive fonctionne.

Ce doit être la seule directive qui me met cette erreur de permission !!

Re: VirtualChroot ne fonctionne pas

C'est vraiment bizzare...

Pas d'utilisation de programme tels que AppArmor ?

Re: VirtualChroot ne fonctionne pas

Si j'utilise apparmor, mais le fait de l'arrêter ne corrige pas mon problème.

Il n'y a pas moyen d'avoir plus de précision sur l'endroit où ça coince ?

Re: VirtualChroot ne fonctionne pas

Il semblerait que le problème ne viennent pas de MySecureShell (effectivement tout semble correctement en place...).

Est-il possible de vérifier les logs systèmes (/var/log/{messages|dmesg|syslog}) ?

Je n'arrive vraiment pas à comprendre le soucis....

Re: VirtualChroot ne fonctionne pas

Les logs dmesg, messages et syslog n'enregistre rien lorsque je me connecte en sftp.
Seul sftp-server.log me dit : couldn't chroot : operation not permitted

Re: VirtualChroot ne fonctionne pas

Bah je vois pas pourquoi l'opération n'est pas permise...

De mon point de vue cela ne peut pas être dans MySecureShell... maintenant je ne vois pas comment en savoir plus sur ce soucis.

Je peux avoir toutes les informations de votre distribution linux ? Version ? 32bit / 64bit ? ... etc...

Je testerai ça dès que possible smile

Re: VirtualChroot ne fonctionne pas

La version que j'utilise est ubuntu-server 10.04 32bits
Mais je ne pense pas que c'est dû à la version de ma distribution puisque j'ai essayé sur un autre pc avec la même distribution et ça marche très bien.

C'est sûr que si je réinstalle linux ca devrait fonctionner (enfin je pense) mais il s'agit d'un serveur qui doit rester connecte au web car il héberge plusieurs sites.

Re: VirtualChroot ne fonctionne pas

Je comprend tout à fait... il serait par contre hyper intéressant de trouver le problème, histoire que je rajoute celui-la dans la FAQ  big_smile

Re: VirtualChroot ne fonctionne pas

Salut,

Je crois que j'ai le même problème  hmm

Re: VirtualChroot ne fonctionne pas

booga wrote:

Salut,

Je crois que j'ai le même problème  hmm

Bonjour,

Vous avez testez la commande "sftp-verif" ? Les logs MySecureShell ?

Re: VirtualChroot ne fonctionne pas

Pas l'ordi sous la main mais globalement j'ai les mêmes messages d'erreur que fastruc. J'ai également une ubuntu server 10.04 32bits.
Je reviens avec les logs plus tard.  wink

Re: VirtualChroot ne fonctionne pas

Ok merci big_smile

22 (edited by booga 2010-10-03 08:41:55)

Re: VirtualChroot ne fonctionne pas

Bon...j'avais fait un super post avec tout plein de morceaux de fichiers de config dedans jusqu'au moment d'être submergé par ma conscience professionnelle et de réessayer Filezilla et de m'apercevoir que ça marche.
Je me demande si cen'est pas ce que j'ai rajouté (DisableReadDir, DisableMakeDir...) qui autrait changé la donne ?

<Default>
        GlobalDownload          50k     #total speed download for all clients
                                        # o -> bytes   k -> kilo bytes   m -> mega bytes
        GlobalUpload            0       #total speed download for all clients (0 for unlimited)
        Download                5k      #limit speed download for each connection
        Upload                  0       #unlimit speed upload for each connection
        StayAtHome              true    #limit client to his home
        VirtualChroot           true    #fake a chroot to the home account
        LimitConnection         10      #max connection for the server sftp
        LimitConnectionByUser   1       #max connection for the account
        LimitConnectionByIP     2       #max connection by ip for the account
        Home                    /home/$USER     #overrite home of the user but if you want you can use
                                                #       environment variable (ie: Home /home/$USER)
        IdleTimeOut             5m      #(in second) deconnect client is idle too long time
        ResolveIP               true    #resolve ip to dns
        DisableMakeDir          true
        DisableReadDir          true
        DisableRemoveDir        true
        DisableRemoveFile       true
</Default>

Par ailleurs, j'en profite pour poser une autre question (et pour pourrir le post de fastruc jusq'au bout  big_smile ):
Comment peut-on faire pour que les utilisateurs au home "restreint" aient accès à un dossier public c'est-à-dire qui soit visible par tout le monde ? Utiliser simplement les permissions sur ce dossier est-il une solution envisageable ?

Re: VirtualChroot ne fonctionne pas

booga wrote:

Bon...j'avais fait un super post avec tout plein de morceaux de fichiers de config dedans jusqu'au moment d'être submergé par ma conscience professionnelle et de réessayer Filezilla et de m'apercevoir que ça marche.
Je me demande si cen'est pas ce que j'ai rajouté (DisableReadDir, DisableMakeDir...) qui autrait changé la donne ?

Je ne vois pas pourquoi... (mais bon on ne sait jamais...)

booga wrote:

Comment peut-on faire pour que les utilisateurs au home "restreint" aient accès à un dossier public c'est-à-dire qui soit visible par tout le monde ? Utiliser simplement les permissions sur ce dossier est-il une solution envisageable ?

Pour afficher un répertoire à un utilisateur qui est "chrooté", il est possible d'utilise "mount --bind" (ex: http://mysecureshell.sourceforge.net/fr … #question2) et en jouant avec les droits ca peut être une solution smile

Re: VirtualChroot ne fonctionne pas

Merci pour ton aide !
à++  smile

Re: VirtualChroot ne fonctionne pas

Personnellement, j'ai eu le même souci....
Au final, je n'avais simplement pas commenté cette ligne dans le vsftp_config :

#       Home                    /home/$USER     #overrite home of the user but if you want you can use

Du coup, le home de mon utilisateur n'étant pas sur /home/MonUser, tout fonctionnait sauf le VirtualChroot.
A vérifier donc...

Bon, je suis pas très fier de n'avoir pas vu ca tout de suite !