web-dev-qa-db-fra.com

vsftpd - restreindre les utilisateurs au répertoire de base

Installez vsftpd facilement

Si je lance cette config:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Ensuite, je reçois un message d'erreur:

500 OOPS: vsftpd: refus de s'exécuter avec une racine en écriture dans chroot ()

Cependant, si j'ajoute allow_writeable_chroot=YES comme suggéré ici , la connexion échoue:

La tentative de connexion a échoué avec "ECONNREFUSED - Connexion refusée par le serveur"

Cependant, si je supprime cette ligne qui vient d'être ajoutée et que j'effectue Sudo chmod a-w sur le répertoire de base des utilisateurs, ceux-ci peuvent désormais se connecter, mais le service est inutile car ils ne peuvent rien télécharger.

Existe-t-il un moyen de limiter les utilisateurs à leur répertoire personnel uniquement, ET de pouvoir se connecter et écrire sur leur répertoire personnel? Désactiver chroot_local_user n'est pas une option car ils peuvent alors parcourir tous les répertoires des autres utilisateurs.

1
Programster

Vous recherchez l'option de configuration allow_writeable_chroot, mais elle n'existe pas dans la version de vsftpd fournie avec 12.04. Voir bug 1065714 pour une demande similaire et les raisons pour lesquelles nous ne pouvons pas avoir cela dans 12.04.

Désactiver chroot_local_user n’est pas une option, car ils peuvent alors parcourir tous les répertoires des autres utilisateurs.

Avez-vous envisagé de passer par défaut aux répertoires d'utilisateurs privés? Si vous ne voulez pas que les utilisateurs puissent parcourir les répertoires d'autres utilisateurs, le moyen de le faire de manière plus sécurisée consiste à utiliser le mécanisme de permission intégré au système plutôt que via chaque service individuel. Reportez-vous à la section section relative à la gestion des utilisateurs du guide du serveur pour plus d'informations sur la procédure à suivre. Désactiver chroot_local_user serait alors une option pour vous?

3
Robie Basak

Plus de détails sur ce qui suit lien .

vous pouvez choisir l’une des trois manières suivantes: 1. Définissez l’option racine_local = dans le fichier de configuration. doit par/home ou un autre chemin du répertoire avec les dossiers des utilisateurs. De cette façon, vsftpd se positionne dans le répertoire/home.

  1. Définissez l'option passwd_chroot_enable = yes dans le fichier de configuration et remplacez le répertoire personnel de l'utilisateur du fichier/etc/passwd par "/ home/user" par "/home/./user" (sans guillemets). De cette façon, vsftpd se connecte au répertoire/home.

  2. Téléchargez les sources des fichiers binaires vsftpd-ext, compilez et écrasez-les ou extrayez-les des référentiels et ajoutez-les à l'option de fichier de configuration allow_writeable_root = yes.

0
OHLÁLÁ