Vsftp sous etch

Bonsoir,

J’ai un petit soucis de configuration des comptes vsftp. J’ai créé des users au niveau de linux, il possède donc un rep de type /home/, mais je voudrai les rediriger vers /var/www/, de cette manière lorsque un user se connecte via FTP, il verrait le rep /var/www/, comment puis-je faire ?

Amicalement,
Nico

bonjour,

Si tu veux que chaque utilisateur ayant un compte linux puisse intervenir avec ftp pour gérer son site web perso (en étant chrooté dedans), le plus simple est: il faut créer un répertoire public_html dans chaque /home/user et configurer apache en conséquence (hôtes virtuels).

Dans ce cas, vsftp est configurable très facilement. Dans son fichier de config /etc/vsftpd.conf, ce sera quelque chose comme:

write_enable=YES
local_enable=YES
chroot_local_user=YES

Si tu veux faire comme tu le dis, vsftp ne sera plus configuré pareil: tes utilisateurs ne seront plus pris comme ayant un compte linux mais comme des utilisateurs virtuels à gérer dans une base de données. Tu pourras définir pour chacun d’entre eux à quel endroit ils ont le droit d’aller et tous les droits que tu leur accordes. Ce n’est pas facile à faire mais c’est possible et ça marche (je l’ai fait il y a quelques jours).

Voir ici: andesi.org/index.php?node=121
(la page n’est pas dispo au moment où je t’écris, mais c’est ce que j’ai utilisé)

ou ici: doc.ubuntu-fr.org/vsftpd

Tyrtamos

Merci pour ta réponse.

Qu’entends-tu par ‘chrooté’ ?

Amicalement,
Nico

[quote=“nicocolt”]Qu’entends-tu par ‘chrooté’ ?
[/quote]

Je dirais emprisonner tes utilisateurs virtuels dans leur répertoire personnel. Il ne devrait pas pourvoir en sortir à moins qu’ils n’accèdent à des droits sur certaines commandes. Les utilisateurs virtuel avec vsftp cela se fait sans problème, la gestion de la base de données Berkeley en est tout aussi facile.

Ok,

J’ai suivi le tuto du premier lien et lorsque que je redémarre le serveur, je n’ai pas de message d’erreur, en revanche le daemon ne tourne pas, je vois pas pourquoi.

Amicalement,
Nico

Relances le une fois de plus, il devrait se lancer. Cela m’arrive de temps en temps.

Cela fait bien 3 ou 4 fois que j’essaye de le lancer, sans succès

Et bien tu as peut-être des logs, tu peux essayer de le lancer avec invoke-rc.d, ou debugguer le script de lancement du service, vérifier qu’il n’y a rien qui traine comme pid. A part cela je n’ai pas d’idées.

Bonjour,

Pour avoir les log de vsftp séparés, il faut le demander dans le fichier de configuration /etc/vsftpd.conf en ajoutant:

syslog_enable=NO log_ftp_protocol=YES xferlog_enable=YES vsftpd_log_file=/var/log/vsftpd.log

avec:

[ul]syslog_enable=NO —> pour avoir un fichier log spécifique

log_ftp_protocol=YES —> pour avoir les traces des demandes-réponses du protocole

xferlog_enable=YES —> pour avoir l’activité de téléchargement (dans les 2 sens)

vsftpd_log_file=/var/log/vsftpd.log —> pour préciser le fichier log à utiliser[/ul]

Et relancer le serveur par “/etc/init.d/vsftpd restart”

Sers-toi des log pour donner plus d’infos parce qu’on n’en a pas assez pour t’aider.

Tyrtamos

J’ai modifié le fichier de conf, et relancé le serveur, mais toujours pas de process qui tourne pas plus que de fichier log…

J’ai remis l’ancien fichier, et là, le process tourne. En revanche, impossible de me connecter

Il faut en dire un peu plus, je ne suis pas sûr de ce que tu as fait.

As-tu utilisé le tuto d’andesi?

Et tu es allé jusqu’au fichier /etc/vsftpd.conf et redémarrage?

Tu as respecté à la lettre le tuto ou tu as adapté?

Si ça ne marche pas, tu as fait une erreur quelque part. Reprend le tuto ligne par ligne et vérifie chacun des résultats de chaque commande.

En particulier, il y a une faute de frappe à “chown root.ftp ~virtual/” => il faut taper “chown root:ftp ~virtual/”.

Maintenant tu as remis le fichier vsftpd.conf d’origine. Mais la config de départ de vsftp est celle d’un ftp anonyme: il faut donc te connecter comme anonymous. Essaye!

J’espère que tu ne traverses pas un parefeu?

Tyrtamos

Voici mon fichier vsftpd.conf, je vois pas du tout ce qui cloche dedans

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO 
guest_enable=YES
guest_username=virtual
chroot_local_user=YES
max_client=200
max_per_ip=4
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
syslog_enable=NO
log_ftp_protocol=YES
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.conf

Merci d’avance pour votre aide

Amicalement,
Nico

Ton fichier est identique à celui d’andesi, ce n’est donc pas là que ça coince.

Mais si tu ne réponds pas à mes questions, je ne vois pas comment je peux t’aider.

Tyrtamos

[quote=“tyrtamos”]Il faut en dire un peu plus, je ne suis pas sûr de ce que tu as fait.

As-tu utilisé le tuto d’andesi?

Et tu es allé jusqu’au fichier /etc/vsftpd.conf et redémarrage?

Tu as respecté à la lettre le tuto ou tu as adapté?

Si ça ne marche pas, tu as fait une erreur quelque part. Reprend le tuto ligne par ligne et vérifie chacun des résultats de chaque commande.

En particulier, il y a une faute de frappe à “chown root.ftp ~virtual/” => il faut taper “chown root:ftp ~virtual/”.

Maintenant tu as remis le fichier vsftpd.conf d’origine. Mais la config de départ de vsftp est celle d’un ftp anonyme: il faut donc te connecter comme anonymous. Essaye!

J’espère que tu ne traverses pas un parefeu?

Tyrtamos[/quote]

J’ai utilisé le tuto d’andesi à la lettre. Sans avoir essayé de me connecter, avec le fichier conf d’origine, le daemon démarre, alors qu’avec le fichier du post précédent, le daemon ne démarre pas. Je ne suis pas derrière un pare-feu, il s’agit d’un dédié chez ovh.

Merci pour ton aide, en espérant avoir répondu à toutes tes questions :wink:

Amicalement,
Nico

Si tu veux mettre en place directement les utilisateurs virtuels :

http://smhteam.info/wiki/index.linux.php5?wiki=Vsftpd

C’est du copier/coller. J’ai pas encore eu le temps de mettre le wiki à jour pour la prise en charge des bases de données Berkeley version 4.5, mais il te suffit d’installer db4.5-util au lieu de libdb3-util et d’utiliser les commandes pour la version 4.5. J’ai fait un script qui te permet de gérer ta base de données sans effort. Le script est disponible en bas de page (pour libdb3-util) ; j’ai pas encore uploader la version que j’utilise.

En gros c’est le même tuto qu’andesi ?

Le problème est que le daemon ne démarre pas avec le fichier vsftpd.conf modifié. Si je remet le fichier d’origine, ça fonctionne. En revanche, d’après ce que j’ai compris, il s’agit d’une authentification anonyme.

[quote=“nicocolt”]En gros c’est le même tuto qu’andesi ?
[/quote]

Oui, mais que pour les utilisateurs virtuels et normalement sans erreurs, plus le script de gestion de la base de données Berkeley.

J’ai utilisé le fichier de config d’origine, et j’ai ajouté les paramètres concernant les users virtuels (guest_enable=YES et guest_username=virtual)

Le daemon démarre, la connection au FTP aboutie, mais je n’arrive pas à savoir dans quel rep je suis loggué, je ne peux pas uploader non plus, c’est assez galère…

J’ai pourtant suivi ton tuto, mais l’histoire des rep m’intriguent…

Amicalement,
Nico

Tu as configuré tes utilisateurs ? Ils ont chacun un fichier de configuration qui défini leurs droits.
Tu peux toujours créer toi même un fichier dans chaque répertoire personnel des utilisateurs virtuels si tu veux essayer d’avoir un indice. De base tu tombes dans /home/vsftpd/virtual/tonuser/ si c’est le tuto smhteam.

La configuration pour pouvoir uploader et downloader c’est la suivante :

anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=Yes
local_root=tonuser

et pour uniquement le download :

anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
anon_upload_enable=YES
local_root=tonuser

Je ne vois pas comment je peux t’aider plus, si tu fais exactement le tuto cela fonctionne. Je l’ai validé plus d’une fois sans problème : d’après mes souvenirs :p!