Aller au contenu

Pb users virtuels vsftpd


rjcb

Messages recommandés

Salut,

Cela fait environ 10h que je pete un cable sur les utilisateurs virtuels sur vsftpd:

Pour l'instant cela marche avec les users normals.

J'ai trouvé deux sites:

http://www.labo-linux.org/index.php?page=pas&id=512&p=2

http://www.andesi.org/index.php?node=121

Le pb c'est que ce n'est pas tt a fait la meme chose.

J'ai essayé les deux mais sans succès.

Donc tout d'abord voici mon vsftpd.conf:

#---Paramètres de connexion---

ftpd_banner=Welcome to RJCSERVEUR FTP service.

dirmessage_enable=yes

#---Configuration connexion---

local_umask=022

connect_from_port_20=yes

#listen_port=21

pasv_enable=yes

pasv_max_port=61000

pasv_min_port=60000

#---Gestion des Clients---

#Time out pour établissement d'une connexion

accept_timeout=120

#Time out pendant lequel aucune activité

data_connection_timeout=240

#Time out pendant lequel choix du port

connect_timeout=120

#Time out pendant lequel le client n'effectue plus de commande

#idle_session_timeout=500

listen=yes

one_process_model=no

#---Gestion Authentification et Droits---

anonymous_enable=no

anon_upload_enable=no

anon_mkdir_write_enable=no

anon_other_write_enable=no

chown_uploads=no

write_enable=no

download_enable=no

#userlist_enable=yes

#userlist_file=/etc/vsftpd/vsftpd_user.deny

chroot_local_user=yes

local_enable=yes

guest_enable=yes

guest_username=virtual

#user_config_dir=/etc/vsftpd/vsftpd_user_conf

ascii_upload_enable=no

ascii_download_enable=no

#---Options---

xferlog_enable=yes

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

tcp_wrappers=YES

ls_recurse_enable=no

pam_service_name=vsftpd

Ensuite, j'ai bien créé l'utilsateur virtual dans le groupe ftp et qui a pour rep perso /ftp ac les droits 777 (pr etre sur)

J'ai créer le fichier .db ac:

db_load -T -t hash -f /etc/vsftpd/virtual_users_list /etc/vsftpd/vsftpd_login.db

Puis

chmod 600 /etc/vsftpd/vsftpd_login.db

Ensuite, j'ai fais ceci:

Créons maintenant un fichier 'vsftpd.pam' qui dira à PAM d'utiliser notre base de données pour authentifier les utilisateurs:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

Par contre j'ai écrasé le fichier qu'il y avait avant.

Maintenant j'arrive plus a me connecter ac les utilisateurs locaux, ni ac les virtuels:

[root@RJCSERVEUR ~]# ftp localhost

Connected to localhost.localdomain.

220 Welcome to RJCSERVEUR FTP service.

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:root): groupe

331 Please specify the password.

Password:

530 Login incorrect.

Login failed.

Sur l'autre lien , il dise:

6. Configuration de PAM

VsFTPd utilise PAM pour l'authentification des utilisateurs. Voici comment configurer PAM

vim /etc/pam.d/ftp

# Authentification des utilisateurs virtuels

account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login

auth sufficient pam_userdb.so db=/etc/vsftpd/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

Alors qu'y croire??

Dans mon ftpusers j'ai juste mit root

Merci

Lien vers le commentaire
Partager sur d’autres sites

Pour t'aider dans ta recherche... car moi également j'ai pété les plombs pendant 10h la semaine dernière sur vsftpd !

1- vsftpd en mode virtuel utilise et nécessite "un" compte Linux réel.

Créer un compte Linux réel avec le minimum de droits:

useradd -d /home/virtual -s /sbin/nologin virtual

2- configuré vsftpd.conf pour qu'il utilise les comptes virtuels au-lieu des réels.

NOTE IMPORTANTE: Un usager virtuel est considéré comme anonyme pour ses droits de base. Donc les règles comme local_umask ne sont pas pour les usagers virtuels, mais anon_umask si !

anonymous_enable=NO
local_enable=YES
ftpd_banner=Welcome to RJCSERVEUR FTP service.
dirmessage_enable=YES
anon_umask=0022
connect_from_port_20=YES
listen_port=21
pasv_enable=YES
pasv_max_port=61000
pasv_min_port=60000
accept_timeout=120
data_connection_timeout=240
connect_timeout=120
idle_session_timeout=500
listen=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf
ascii_upload_enable=no
ascii_download_enable=no
xferlog_enable=yes
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
tcp_wrappers=YES
ls_recurse_enable=no
pam_service_name=vsftpd

maintenant que le fichier vsftpd.conf est configuré pour "l'ensemble" des usagers virtuels, chaque usager virtuel peut avoir des droits différents depuis un fichier à son nom qui se retrouve dans /etc/vsftpd/vsftpd_user_conf/user1, /etc/vsftpd/vsftpd_user_conf/user2, /etc/vsftpd/vsftpd_user_conf/user3, ...

*** Ces droits utilisent les mêmes options que vsftpd.conf, mais pas tous les options fonctionneront (ex.: listen=YES n'est pas valide, mais writ_enable=YES sera une option valide.)

3- Configurer PAM correctement pour l'authentification des usagers virtuels.

le fichier /etc/pam.d/vsftpd doit contenir ces 2 lignes uniquement:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4- Créer un fichier login.txt qui contient les users (1 ligne username, 1 ligne le mot de passe, 1 ligne le username, ....)

5- Convertir le fichier texte des login en base de données Berkeley DB3 (important: il faut DB3-Utils ,et non DB4 d'installé d'après vsftpd)

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db

et changer les droits à 600 comme tu avais fait !

Lancer le service et redémarrer le PC

Les packages indispensabls pour vsftpd:

vsftpd

libcap

db3-utils

tcl

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Ca c'est de la réponse parfaite.

Donc en fait remarque importante:

Convertir le fichier texte des login en base de données Berkeley DB3 (important: il faut DB3-Utils ,et non DB4 d'installé d'après vsftpd)

Moi sur ma FC4 j'ai db4 et pad DB3 et j'arrive pas a trouver db3 pour fc4

Merci

Lien vers le commentaire
Partager sur d’autres sites

(important: il faut DB3-Utils, et non DB4 d'installé d'après vsftpd)

Même si vsftpd spécifie cette remarque... si le package vsftpd que tu utilises provient de la distribution que tu as installée logiquement les outils nécessaires sont là. Mais j'avoue que Fedora ou bien vsftpd n'ont peut être pas regardé le côté "virtual user", mais simplement les usagers réels et anonymes :iloveyou:

Par contre en suivant les étapes que je t'ai donné et en utilisant db_load de la version 4 de db-utils, le résultat pourrait quand même fonctionner, c'est à essayer.

Il y a le site : http://fr2.rpmfind.net/linux/rpm.org/db3/

qui contient des RPM de db3-utils, tu pourrais les installer pour tester. Mais fait attention de ne pas écraser db4-utils. Tu peux spécifier à rpm de l'installer dans un dossier différents et en ne remplaçant pas l'autre version.

http://rpmfind.net/linux/RPM/fedora/1/i386....14-2.i386.html

Sur ce lien c'est un package de compatibilité pour DB4 vs. DB3...

mais en bout de ligne faudrait savoir c'est quoi la différence entre générer la BD avec db_load de DB4 au-lieu de DB3. c'est peut-être simplement un paramètre de plus ou de moins à spécifier qui te permettra de faire ce que tu veux.

Lien vers le commentaire
Partager sur d’autres sites

Salut!

J'avance ptit a ptit:

Donc maintenant cela marche (j'avais pas le package tcl)

Donc j'arrive a me connecter mais encore p'tit pb:

Name (localhost:root): groupe

331 Please specify the password.

Password:

500 OOPS: reading non-root config file

Login failed.

421 Service not available, remote server has closed connection

ftp>

Et si j'enlève l'option user_config_dir=/etc/vsftpd/vsftpd_user_conf ca marche nikel, sauf que les users sont tous dans le meme répertoire.

Je vois pas le pb la ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

500 OOPS: reading non-root config file
Login failed.

Ça semble être exactement ce que le programme retourne comme erreur...

Le dossier /etc/vsftpd/vsftpd_user_conf a quel droits et quel propritaire ? Et les fichiers de config pour chaque utilisateurs également ?

Normallement tout devrait être à root en -rw-r--r-- pour les fichiers et drwxr-xr-x pour les dossiers.

Peux-tu également envoyer une copie du contenu d'un des fichiers qui se trouve dans le dossier "vsftpd_user_conf " ?

Lien vers le commentaire
Partager sur d’autres sites

De rien !

En pasant, tu dis:

Et si j'enlève l'option user_config_dir=/etc/vsftpd/vsftpd_user_conf ca marche nikel, sauf que les users sont tous dans le meme répertoire.

Tu es capable de donner un répertoire racine différent pour chacun de tes usagers virtuels avec VSFTPD ?

Si c'est bien ça, est que tu pourrais m'envoyer comment tu fais ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut!

Mon user virtual a le répertoire /ftp et dedans j'ai créé des dossiers pour chaque utilisateurs.

Puis dans les fichiers des droits des users dans (user_config_dir) je me local_root=dossier du user.

ou c'est root_local=dossier du user.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Si je comprends bien tu spécifies (exemple):

/etc/vsftpd/user_conf/user1

root_local=/ftp/user1/

/etc/vsftpd/user_conf/user2

root_local=/ftp/user2/

....

Ce qui est le plus étrange c'est que sur le site de VSFTPD cet option n'existe même pas (root_local=) ... :francais:

Héhé... j'ai trouvé, ce n'est pas root_local, mais local_root ! :non:

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour bonjour!!!!

Deja merci à vous deux!!

J'aimerai savoir s'il est possible de réglé un taux de download sur le ftp.

En fait j'aimerai limité ce que j'envoi à 60Ko/s.

Deuxième question; j'ai essayé d'utiliser un autre port que le 21 et cela ne fonctionne pas (sauf en local), il me dit sur le client: port invalide.

Alors voila j'aimerai savoir quels sont les ports valides pour le protocole FTP.

Merci beaucoup! @+++

Lien vers le commentaire
Partager sur d’autres sites

Deuxième question; j'ai essayé d'utiliser un autre port que le 21 et cela ne fonctionne pas (sauf en local), il me dit sur le client: port invalide.

Alors voila j'aimerai savoir quels sont les ports valides pour le protocole FTP.

Tu dois pouvoir utiliser n'importe quel port, seulement il faut que tu précises à ton client FTP sur quel port se connecter au niveau du serveur. Et pour ton probleme de truc qui marche que en local, faut peut-être voir si ton port est bien configuré au niveau de ton routeur. :iloveyou:

Lien vers le commentaire
Partager sur d’autres sites

Je viens de voir que le ftp "classique" n'utilise pas que le port 21, mais 2 ports en TCP et UDP !

Le 20 en TCP et UDP pour les données et le 21 en TCP et UDP pour les commandes.

De plus, je crois me rappeler que ça a un rapport avec le mode PASV ou non...

Donc tu peux voir de ce côté-là, peut-être qu'il te manque des ports pour faire tourner le service.

Mais par contre rensigne-toi précisément avant, pas la peine de tout ouvrir et de transformer ton PC en passoire :francais:

Lien vers le commentaire
Partager sur d’autres sites

Je viens de voir que le ftp "classique" n'utilise pas que le port 21, mais 2 ports en TCP et UDP !

Le 20 en TCP et UDP pour les données et le 21 en TCP et UDP pour les commandes.

De plus, je crois me rappeler que ça a un rapport avec le mode PASV ou non...

Donc tu peux voir de ce côté-là, peut-être qu'il te manque des ports pour faire tourner le service.

Mais par contre rensigne-toi précisément avant, pas la peine de tout ouvrir et de transformer ton PC en passoire :byebye:

Je vais voir ca, merci!

Lien vers le commentaire
Partager sur d’autres sites

Je ne confirme pas à 100%, mais effectivement lorsqu'une connexion FTP est créé en utilisant le mode PORT certains logiciels serveur et/ou client ne supporte pas que le port soit différent de TCP:21. Mais si tu utilises le mode PASV tu ne devrais avoir aucune restriction sur le choix du port de connexion TCP.

Tout sur VSFTPD:

http://vsftpd.beasts.org/vsftpd_conf.html

et des exemples de config:

ftp://vsftpd.beasts.org/users/cevans/unta...-2.0.3/EXAMPLE/

----------------------------------------------------

Pour limiter la vitesse:

anon_max_rate c'est bien écrit dans l'aide de VSFTPD !

J'ai jamais testé, mais ça devrait fonctionner !!!

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

AH mince j'ai crée un nouveau poste par erreur, je re ici...

[bonjour à tous, je rencontre le même genre de problème que eux sus-cités, mon serveur me semble correctement configuré, à partir des méthodes évoquées plus haut, mais je ne parviens pas à me logger, ne serait qu'en localhost : voici mon vsftpd.conf

anonymous_enable=NO

local_enable=YES

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_per_ip=10

max_clients=50

secure_chroot_dir=/var/run/vsftpd

pam_service_name=/etc/pam.d/vsftpd/vsftpd.pam

# chmod_enable=YES

connect_from_port_20=NO

ssl_enable=YES

force_local_data_ssl=NO

force_local_logins_ssl=NO

ssl_tlsv1=YES

ssl_sslv2=YES

ssl_sslv3=YES

rsa_cert_file=/etc/ssl/certs/vsftpdc.pem

ftpd_banner=Bien le salut bien tres beaucoup oui oui

passwd_chroot_enable=YES

chroot_local_user=YES

userlist_enable=YES

userlist_deny=NO

write_enable=NO

xferlog_enable=YES

listen=YES

listen_port=12444

pasv_enable=YES

pasv_min_port=32000

pasv_max_port=32500

userlist_enable=NO

#userlist_file=/etc/vsftpd.user_list

vsftpd_log_file=/var/log/vsftpd.ssl.log

xferlog_enable=yes

xferlog_file=/var/log/xferlog

J'y suis depuis deux jours , je n'y comprends plus rien, est'ce un problème de droits sur un repertoire ou un fichier???

/home/ftp/virtual est en chmod 600

de même pour le vsftpd.pam

Par contre je ne sais pas bien si le service(si c'en est un) pam, tourne correctement, et s'il suffit de lui indiquer le vsftpd.pam, pour qu'il sache ou trouver les login et mdp....

merci d'avance si quelqu'un a un indice

*

@ ++

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

AH mince j'ai crée un nouveau poste par erreur, je re ici...

[bonjour à tous, je rencontre le même genre de problème que eux sus-cités, mon serveur me semble correctement configuré, à partir des méthodes évoquées plus haut, mais je ne parviens pas à me logger, ne serait qu'en localhost : voici mon vsftpd.conf

anonymous_enable=NO

local_enable=YES

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_per_ip=10

max_clients=50

secure_chroot_dir=/var/run/vsftpd

pam_service_name=/etc/pam.d/vsftpd/vsftpd.pam

# chmod_enable=YES

connect_from_port_20=NO

ssl_enable=YES

force_local_data_ssl=NO

force_local_logins_ssl=NO

ssl_tlsv1=YES

ssl_sslv2=YES

ssl_sslv3=YES

rsa_cert_file=/etc/ssl/certs/vsftpdc.pem

ftpd_banner=Bien le salut bien tres beaucoup oui oui

passwd_chroot_enable=YES

chroot_local_user=YES

userlist_enable=YES

userlist_deny=NO

write_enable=NO

xferlog_enable=YES

listen=YES

listen_port=12444

pasv_enable=YES

pasv_min_port=32000

pasv_max_port=32500

userlist_enable=NO

#userlist_file=/etc/vsftpd.user_list

vsftpd_log_file=/var/log/vsftpd.ssl.log

xferlog_enable=yes

xferlog_file=/var/log/xferlog

J'y suis depuis deux jours , je n'y comprends plus rien, est'ce un problème de droits sur un repertoire ou un fichier???

/home/ftp/virtual est en chmod 600

de même pour le vsftpd.pam

Par contre je ne sais pas bien si le service(si c'en est un) pam, tourne correctement, et s'il suffit de lui indiquer le vsftpd.pam, pour qu'il sache ou trouver les login et mdp....

merci d'avance si quelqu'un a un indice

*

@ ++

Salut,

Donc d'après ta configuration tu as un serveur FTP qui fonctionnera qu'en mode PASV et répondra sur le port 12444. De plus, tu as activé le mode SSL donc tu as un serveur FTP/SSL, les requêtes provenant d'un client ne supportant pas le SSL seront donc rejetées.

Je te dirais d'enlever tous les paramètres concernant le SSL et de redémarrer le deamon de VSFTPD pour essayer en mode plus "standard". Avec un client tu tapes bien une requêtes vers "ftp.monserveur.com:12444 " ?

Pour ce qui est de PAM, c'est un service (agent) intégré à Linux qui s'occupe de l'authentification entre les programmes. Le fichier /etc/pam.d/vsftpd.pam contient les lignes qui diront comment PAM doit interpréter l'authentification des usagers de VSFTPD virtuels. Par défaut, il utilises une base de données db4 je crois mais le contenu de vsftpd.pam peut être modifié comme tu veux pour que l'authentification des usagers se fasse avec n'importe quel autre système (ex.: une base de données MySQL qui contient les users et mot de passe.)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...