Bonjour,
Le problème que je vais soumettre se manifeste sur un serveur Ubuntu 10.4 Ah !!!, ici, on est chez Debian ! Je sais, et c’est d’ailleurs cette distro que j’utilise habituellement. Mais là, chez Ubuntu, où j’ai déjà exposé le problème, ça ne réagit pas trop. Alors, comme ces distros sont cousines, je viens solliciter les debian users… Si vous le permettez.
Donc :
J’ai installé vsftp sur un serveur version 10.04, en suivant ces 2 tutoriaux : http://doc.ubuntu-fr.org/vsftpd et http://www.andesi.org/reseau/vsftpd-un-serveur-ftp-securise-et-simple.
L’accès depuis un client FTP (Filezilla) avec le user virtuel se fait exactement comme attendu et décrit dans le tutoriel d’Andesi.
Par contre les local users n’ont pas accès à leur home, si la constante guest_enable est valorisée à YES, une tentative de connexion avec le client FTP renvoie ces informations :
Commande : USER agamemnon
Réponse : 331 Please specify the password.
Commande : PASS **********
Réponse : 230 Login successful.
Commande : OPTS UTF8 ON
Réponse : 200 Always in UTF8 mode.
Statut : Connecté
Statut : Récupération du contenu du dossier…
Commande : PWD
Réponse : 257 "/"
Statut : Succès de la lecture du contenu du dossier
Statut : Récupération du contenu du dossier…
Commande : TYPE I
Réponse : 200 Switching to Binary mode.
Commande : PASV
Réponse : 227 Entering Passive Mode (88,125,71,124,103,116).
Commande : LIST
Réponse : 150 Here comes the directory listing.
Réponse : 226 Transfer done (but failed to open directory).
Statut : Succès de la lecture du contenu du dossier.
Sauf que la lecture du dossier est impossible ; d’ailleurs, il est bien précisé “but failed to open directory”.
Ce problème ne se manifeste absolument pas quand guest_enable vaut NO.
Mais bien sûr, je souhaite que les 2 types de users, local et virtuel puissent utiliser le ftp.
Mais fichiers de conf :
/etc/vsftpd.conf (pour le post, je n’ai laissé que les constantes)
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=300
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
max_clients=3
setproctitle_enable=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf
/etc/pam.d/vsftpd. J’ai renseigné le fichier /etc/vsftpd/login avec les login/passwd des local users, en plus de ceux du user virtuel.
# Authentification des utilisateurs virtuels
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
# authentification des utilisateurs locaux
auth sufficient pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth sufficient pam_shells.so
account sufficient pam_unix.so
session sufficient pam_unix.so
Dernière chose, que je n’explique pas : quand la constante anon_world_readable_only dans /etc/vsftpd.conf est dé-commentée et vaut NO, alors les local users accèdent (uniquement) au répertoire du user virtuel, (avec les mêmes droits, mais ça je comprends pourquoi) !!
J’ai pas mal creusé. J’ai même trouvé des post où on dit qu’il n’est pas possible d’utiliser les 2 types de users, local et virtuel, avec vsftp ; mais ça je n’y crois pas. Je constate bien qu’il ne s’agit pas d’un problème de log in du local user, mais plutôt, d’un ls qui est interdit pour une raison que j’ignore.
Voilà, si vous avez des idées, je suis preneur.