Autorisations VSFTPD


#1

Salut

J’ai installé un serveur vsftpd et il y a qq chose que je n’arrive pas a faire:
Je voudrais que certains users puissent juste upload et download . (aucunes modif possible comme effacer des fichiers)
Les users sont bloqués dans leurs rep perso.J’ai essayé de changer les permissions de leur rep perso mais si j’autorise juste la lecture impossible de download.
Merci.

A juste 1 ptit truk: le vsftpd.conf

ftpd_banner=Welcome to RJC FTP service.

#L’anonnyme
anonymous_enable=no
anon_upload_enable=no
anon_mkdir_write_enable=no
anon_other_write_enable=no

local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES

#Sécurité
userlist_enable=YES
userlist_file=/etc/vsftpd/vsftpd_user.deny
chroot_list_enable=yes
chroot_local_user=no
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
ls_recurse_enable=no
guest_enable=no

#Caractéristiques
#ascii_upload_enable=no
#ascii_download_enable=YES
listen=YES
tcp_wrappers=YES
chown_uploads=no
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
#max_client=10
pam_service_name=vsftpd
#pasv_max_port = 61000
#pasv_min_port = 60000
#pasv_enable = yes

#Performance
one_process_model=no
idle_session_timeout=120
connect_timeout=60

Je ne comprends pas pk lorsque j’active les fonctions pasv_mod le ftp ne se lance plus.

Le probléme, c’est lorsque je fais ceci et que je redémarre le FTP il m’indique:
vsftpd est mort mais subsys est vérouillé.
Le testparm me dit que tout est bien!
Je travail sur une redhat V9

Merci de votre aide


#2

Eh serieux, si tu veux de l’info correcte, choisis un serveur ftp un peu standard (c’est VRAIMENT de l’humour! )…
Bon, sinon, tu es en présence de deux systèmes de droits qui cohabitent en parrallèle, et qui te cassent les pieds:

  • la partie qui concerne l’interface vers l’exterieur, qui est configurable dans la partie du serveur ftp,
  • la partie droit d’accés aux fichiers locaux, sur laquelle tes utilisateurs locaux (réels ou virtuels), ont d’autre droits, en fonction de la manière du serveur de considèrer la connection ftp…
    ++
    à ton avis, donc, ou se situe ton probléme ?
    dans la partie “je suis bien identifié et j’arrive à déposer un fichier, mais plus à le modifier”, ou bien, “je ne suis pas reconnu sur le serveur, je suis en connection anonyme, et la, je n’arrive pas à faire ce que je veux ?”.
    la partie concernant le PASV (ftp passif) correspond à des problèmes de ‘ls’ quand tu fais du ftp sur une passerelle qui fait du “masquerading” linux. Ca ne concerne pas un problème de"droits d’accés".

#3

Salut!

Mon pd d’accès doit se régler au niveau de mon FTP avec la variable local_umask, je pense, mais celle ci autorise aussi la lecture et l’écriture.
Il me faut l’autorisation entre les 2. :cry:
Je n’ai autorisé aucune connections anonymes.Je vais jeté un coup d’oeil mais je ne crois pas que l’option upload_enable existe.

Pour le pb du passif je ne comrpends pas top pk cela ne veut pas fonctionner, j’ai suivi les instructions dans le mappage du fichier.
Merci


#4

C’est pas clair ton problème.
Est ce que tu veux que tes users soient restreint dans leur répertoire, ou pas ?
que donne une connection du type
ftp://user:password@tonserveur/..
?
sinon, à moins que tu aies spécifiquement des fonctionnalités de ton serveur qui permettent de différencier les droits entre la modification, la suppression, et la création d’un nouveau fichier, linux lui même ne sait pas le faire: soit tu donnes des droits à tes users pour tout faire, soit tu leur interdit toutes les modifs.
concernant la configuration de ton mode passif, as tu essayé de configurer juste ‘pasv_enable = yes’ sans activer les autres options pasv, juste pour voir…
sinon, je ne vois pas ce que testparm vient faire dans l’histoire: c’est un composant de samba… A moins qu’il y ait aussi un testparm pour VSFTPD
Sinon, ca serait plus simple si disais quel premier objectif tu veux atteindre précisément, par ce que je te promets, ce n’est pas trés clair, ce que tu cherches à faire :slightly_smiling:


#5

:wink:

[quote]Je voudrais que certains users puissent juste upload et download [/quote].
Cad qu’ils ne peuvent pas faire de la suppression de la modif etc…
Juste “donner ou prendre”.

Pr le passif j’ai essayé tt les possibiltés mais sans succès.
Le testparm fonctionne avec vsftps afin de savoir si toutes les instructions sont valides.

Merci


#6

[quote]Je voudrais que certains users puissent juste upload et download [/quote].
Cad qu’ils ne peuvent pas faire de la suppression de la modif etc…
Juste “donner ou prendre”.[/quote]
en lisant tes posts sur commentcamarche.net, j’ai suivi la réfèrence que te donnait oye, et j’ai donc lu pour toi la doc de vsftpd. Tu as donc une option, qui s’appelle “cmds_allowed”, et qui permet de fixer les commandes autorisées par le serveur pour les utilisateurs.
Pour connaitre la liste des commandes que ton serveur accepte, tu te connectes desus en ftp ligne de commande, et tu fais un ‘quote HELP’, ca te donnera la liste.
sinon, puisque tu veux différentier les possibilités entre les diffèrents utilisateurs, il faut que tu utilise l’option “user_config_dir”, qui te permet de spécifier un fichier de config par user.

la, je ne peux pas t’aider, juste, j’ai lu dans la doc que la configuration par défaut de VSFTPD etait d’accepter les connections en mode passif.
Donc as tu testé pour voir s’il fonctionnait, avant d’aller modifier la config ?

quote="rjcb"Le testparm fonctionne avec vsftps afin de savoir si toutes les instructions sont valides.
Merci[/quote]
j’ai vérifié, et je suis FORMEL: testparm ne concerne que samba. Les seules réfèrences qui lie les deux mots clés sur google, ce sont tes posts :laughing: .


#7

Ok merci bcp .L’angalis j’ai bcp de mal et les traducteurs sont pas top.

j’ai regardé la liste des commandes que mon serveur accepte:

ABOR ACCT ALLO APPE CDUP CWD DELE EPRT EPSV FEAT HELP LIST MDTM MKD MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD XPWD XRMD.

Par contre je n’arrive pas a savoir a quoi elles correspondent (a part qq une mais bon) je pense qu’il doit y avoir un site web qui traite de cela.

Pour le FTP, la commande cmds_allowed va fixer les commandes autorisées pr les utilisateurs.

Et la commande user_config_dir va me permettre de définir les droits d’un utilisateur dans un fichier. Le pb c’est que je ne trouve pas d’ex d’un fichier ou sont indiqués les droits. (dans le vsftpd original il n’y a pas d’ex.)

Mais il y a qq chose qui me chagrine :cry: .
Si je défini les droits des utilisateurs avec cmds_allowed et d’autres pour un user dans le fichier (avec user_config_dir) il va pas y avoir de confusions? .
Imaginons que je définis lecture seule dans cmds_allowed et dans le fichier pr un user, je veux qu’il ai des accès totals, ou inversement.

Il va y avoir des pb ?

Merci
Mais


#8

en informatique, l’anglais est aussi utile que les doigts.

[quote=“rjcb”]j’ai regardé la liste des commandes que mon serveur accepte:

ABOR ACCT ALLO APPE CDUP CWD DELE EPRT EPSV FEAT HELP LIST MDTM MKD MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD XPWD XRMD.

Par contre je n’arrive pas a savoir a quoi elles correspondent (a part qq une mais bon) je pense qu’il doit y avoir un site web qui traite de cela.[/quote]
cr.yp.to/ftp.html

[quote=“rjcb”]Pour le FTP, la commande cmds_allowed va fixer les commandes autorisées pr les utilisateurs.
Et la commande user_config_dir va me permettre de définir les droits d’un utilisateur dans un fichier. Le pb c’est que je ne trouve pas d’ex d’un fichier ou sont indiqués les droits. (dans le vsftpd original il n’y a pas d’ex.)
Mais il y a qq chose qui me chagrine :cry: .
Si je défini les droits des utilisateurs avec cmds_allowed et d’autres pour un user dans le fichier (avec user_config_dir) il va pas y avoir de confusions? .
Imaginons que je définis lecture seule dans cmds_allowed et dans le fichier pr un user, je veux qu’il ai des accès totals, ou inversement.
Il va y avoir des pb ?
Merci
Mais[/quote]
Bon, en fait, user_config_dir précise l’endroit ou il peut complèter sa config avec un fichier spécifique à chaque user.
pour savoir comment ca se passe regarde comment il réagit si tu mets deux fois la même directive, une fois dans le principal, et une fois dans le spécifique: tu met dans le fichier d’un user quelquechose comme ‘xferlog_file=/var/log/vsftpd.log.’ et tu regarde dans quoi il écrit ses logs, par exemple.
A mon avis, pour une variable, il prend en compte sa derniere declaration, c’est ce qu’il y a de plus simple à mettre en oeuvre programmatiquement.
Dans cette optique, tu n’as qu’a faire

  • un fichier “master” avec les parties commune à tous les users et des droits d’execution de commande ftp trés limité,
  • un fichier “profil” de définition qui “overrident” les définition du master, pour chaque classe d’utilisateur, typiquement rangeable dans un sous répertoire de la ou tu range le master,
  • un lien symbolique du nom de chaque user, dans user_config_dir , vers le fichier profil qui correspond à sa classe.

#9

Salut!

J’ai commencé par un truk tout simple:

J’ai ajouté la ligne:

user_config_dir=/etc/vsftpd.

Puis j’ai créer dans ce rep le fichier ftpaur.

ftpaur:

dirlist_enable=yes
download_enable=yes
write_enable=yes
local_root=/ftp/ftpaur

Puis j’essaie de me connecter avec le user ftpaur mais impossible de me conneter, le login ou mdp est pas bon.

Lorsque je met user_config_dir=/etc/vsftpd cela marche bien.

Merci :wink:


#10

Salut!

Bon j’ai pas trop compris ce que tu m’as dit.
Voila ce que j’ai fais:

Dans mon vsftpd.conf, j’ai autorisé les commandes min.
Puis j’ai ajouté la ligne:

user_config_dir=/etc/vsftpd/ftprjc

Puis le fichier ftprjc possède des droits plus important (j’ai mis l’option cmds_allowed avec tt les commandes possibles)

Qd je me connect ss le login ftprjc, j’ai les meme droit que les autres users cad pas bcp.

:cry:

Merci


#11

non, tu n’as effectivement rien compris: user_config_dir est le dir(ectory) ou tu dois mettre tes config par utilisateur.
soit tu mets 'user_config_dir=/etc/vsftpd’
soit tu mets ‘user_config_dir=/etc/vsftpd/users’ et tu ranges ftprjc dans ton répertoire users.


#12

Oui en effet j’ai fait une modif :laughing: .
Parce que user_config_dir=/etc/vsftpd ne marche pas.
Dans /etc/vsftpd il y a un fichier nommé ftprjc avec des commandes autorisés.
Puis j’essaie de me connecté avec ftprjc mais impossible.
:cry:

Merki


#13

tu mets ‘user_config_dir=/etc/vsftpd/users’ et tu ranges ftprjc dans ton répertoire users,
tu l’as essayé, ca ?


#14

Oui j’ai créer un rep users dans /etc/vsftpd.

Puis ds users j’ai mis le fichier ftprjc.
Mais impossible de se connecter. :cry:


#15

[quote=“rjcb”]Oui j’ai créer un rep users dans /etc/vsftpd.

Puis ds users j’ai mis le fichier ftprjc.
Mais impossible de se connecter. :cry:[/quote]
bon, mais quand tu es en fichier unique (sans user_config_dir), est ce que ftprjc peut deja se connecter ?
sinon, qu’as tu voulu dire avec ‘userlist_file=/etc/vsftpd/vsftpd_user.deny’ ?


#16

Salut!

Sans user_config_dir ftprjc peut se connecter.
userlist_file=/etc/vsftpd/vsftpd_user.deny correspond a la liste des users qui n’ont pas accès au FTp comme root par ex.

:wink:


#17

bon, l’usage de userlist_file est correct, mais l’usage en deny par defaut m’avait juste choqué, mais d’aprés la doc, ca colle.
par précaution, je mettrais tt de même un ‘userlist_deny=YES’ ds la conf
( linuxquestions.org/questions … 10/1/65393 )

sinon, essayes de donner des droits de lecture à tous, ou fais un truc du genre ‘chown rjcftp.vsftpd’ sur le fichier /etc/vsftpd/users/rjcftp (pour l’instant bien sur). Il est possible qu’aprés l’identification, quand il va lire le fichier de conf particulier, le processus soit sous une identité qui n’a pas d’accés (vsftpd ? rjcftp ?).

sinon, tu connais ca ?
vsftpdrocks.org/


#18

TRES interressant (toujours en anglais par contre) et qui confirme sur ce que je dis sur les droits:
ftp://vsftpd.beasts.org/users/cevans/un … S_2/README


#19

sinon, une remarque judicieuse de sécurité que j’avais oubliée. L’autentification ftp se faisant en clair, il faut idéalement déconnecter la liste des users ftp de la liste des users réels, pour que les deux listes de mot de passe ne soient pas cassables en même temps avec un simple sniffage réseau.
Rien n’empeche apres de faire correspondre tes users virtuels avec tes users réel quand ils sont identifiés sous ftp…


#20

Merci je regarde ca ce soir :stuck_out_tongue: