Impossssible de lister les fichiers avec proftpd

bonjour

sur mon serveur j’ai installé proftpd et proftpd-mod-mysql

et créé un utilisateur avec phpmyadmin

j’ai mis enable pour proftpd dans /etc/fail2ban/jail.conf

et voila où j’en suis je me déconnecte tout de suite apres la connexion

et voila ce que je trouve dans /var/log/proftpd :

FTP session opened.
Preparing to chroot to directory '/home/ftp/…'
FTP session closed.

C’est quoi c’est un problème de droit ? c’est normal cette histoire de chroot ?

Si vous avez une idée ça m’aiderait

merci++

un peu de lecture peut être?

http://www.trustonme.net/didactels/58.html

oui j’ai lu cette page ainsi qu’environ 2253 autres du même genre

et puis la configuration de cette page (trustonme.net/didactels/58.html) ne correspond pas exactement à la mienne
il y a des variables que je n’ai pas, … (par exemple : DefaultChdir, etc …)

par contre si j’essaie de tester ma page comme proposé, j’obtiens :

Name (localhost:root): monusr 331 Mot de passe requis pour monusr Password: 230 Utilisateur monusr authentifi 421 Service not available, remote server has closed connection

voila, je ne sais plus trop quoi essayer

++

montre ton proftpd.conf.

Voila c’est gentil de bien vouloir lire ça

++

[code]#

/etc/proftpd/proftpd.conf – This is a basic ProFTPD configuration file.

To really apply changes reload proftpd after modifications.

Includes DSO modules

Include /etc/proftpd/modules.conf

Set off to disable IPv6 support which is annoying on IPv4 only boxes.

UseIPv6 on

If set on you can experience a longer connection delay in many cases.

IdentLookups off

ServerName "Le ftp"
ServerType standalone
ServerIdent on "Bienvenue"
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks off

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions “-l”

DenyFilter *.*/

Use this to jail all users in their homes

DefaultRoot ~

Users require a valid shell listed in /etc/shells to login.

Use this directive to release that constrain.

RequireValidShell off

Port 21 is the standard FTP port.

Port 21

In some cases you have to specify passive ports range to by-pass

firewall limitations. Ephemeral ports can be used for that, but

feel free to use a more narrow range.

PassivePorts 49152 65534

If your host was NATted, this option is useful in order to

allow passive tranfers to work. You have to use your public

address and opening the passive ports used on your firewall as well.

MasqueradeAddress 1.2.3.4

This is useful for masquerading address with dynamic IPs:

refresh any configured MasqueradeAddress directives every 8 hours

# DynMasqRefresh 28800

To prevent DoS attacks, set the maximum number of child processes

to 30. If you need to allow more than 30 concurrent connections

at once, simply increase this value. Note that this ONLY works

in standalone mode, in inetd mode you should use an inetd server

that allows you to limit maximum number of processes per service

(such as xinetd)

MaxInstances 30

Set the user and group that the server normally runs at.

User proftpd
Group nogroup

Umask 022 is a good standard umask to prevent new files and dirs

(second parm) from being group and world writable.

Umask 022 022

Normally, we want files to be overwriteable.

AllowOverwrite on

Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:

PersistentPasswd off

This is required to use both PAM-based authentication and local passwords

AuthOrder mod_auth_pam.c* mod_auth_unix.c

Be warned: use of this directive impacts CPU average load!

Uncomment this if you like to see progress and transfer rate with ftpwho

in downloads. That is not needed for uploads rates.

UseSendFile off

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

QuotaEngine on Ratios off

Delay engine reduces impact of the so-called Timing Attack described in

http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02

It is on by default.

DelayEngine on ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock AdminControlsEngine off

Alternative authentication frameworks

#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf

This is used for FTPS connections

#Include /etc/proftpd/tls.conf

Useful to keep VirtualHost/VirtualRoot directives separated

#Include /etc/proftpd/virtuals.con

A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>

User ftp

Group nogroup

# We want clients to be able to login with “anonymous” as well as “ftp”

UserAlias anonymous ftp

# Cosmetic changes, all files belongs to ftp user

DirFakeUser on ftp

DirFakeGroup on ftp

RequireValidShell off

# Limit the maximum number of anonymous logins

MaxClients 10

# We want ‘welcome.msg’ displayed at login, and ‘.message’ displayed

# in each newly chdired directory.

DisplayLogin welcome.msg

DisplayChdir .message

# Limit WRITE everywhere in the anonymous chroot

<Directory *>

DenyAll

# Uncomment this if you’re brave.

#

# # Umask 022 is a good standard umask to prevent new files and dirs

# # (second parm) from being group and world writable.

# Umask 022 022

#

# DenyAll

#

#

# AllowAll

#

#

On rajoute ces lignes à la fin du fichier tout en faisant attention de modifier le nom et le mot de passe de l’utilisateur MySQL dans la troisième ligne.

Mod MySQL

=========

Les mots de passe sont cryptes dans la base avec la fonction ENCRYPT (MySQL)

SQLAuthTypes Crypt
SQLAuthenticate users* groups*

Modifiez cette ligne selon l’utilisateur et le mot de passe definit plutot

SQLConnectInfo proftpd@localhost proftpd password <---- j’ai bien modifié cette ligne

On donne a ProFTPd le nom des colonnes de la table usertable

SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause “LoginAllowed = ‘true’”

On donne a ProFTPd le nom des colonnes de la table “grouptable”

SQLGroupInfo ftpgroup groupname gid members

Creer le repertoire home de l’utilisateur si il n’existe pas

CreateHome on

Met a jour les compteurs a chaque connection d’un utilisateur

SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() WHERE userid=’%u’” ftpuser

Met a jour les compteurs a chaque upload ou download d’un utilisateur

SQLLog STOR,RETR modified
SQLNamedQuery modified UPDATE “modified=now() WHERE userid=’%u’” ftpuser

Mod quota

=========

QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

Definit les requetes SQL pour que ProFTPd recupere les infos sur les quotas

SQLNamedQuery get-quota-limit SELECT "name, quota_type, par_session, limit_type, bytes_up_limit, bytes_down_limit, bytes_transfer_limit, files_up_limit, files_down_limit, files_transfer_limit FROM ftpquotalimits WHERE name = ‘%{0}’ AND quota_type = ‘%{1}’"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_up_total, bytes_down_total, bytes_transfer_total, files_up_total, files_down_total, files_transfer_total FROM ftpquotatotal WHERE name = ‘%{0}’ AND quota_type = ‘%{1}’"
SQLNamedQuery update-quota-tally UPDATE “bytes_up_total = bytes_up_total + %{0}, bytes_down_total = bytes_down_total + %{1}, bytes_transfer_total = bytes_transfer_total + %{2}, files_up_total = files_up_total + %{3}, files_down_total = files_down_total + %{4}, files_transfer_total = files_transfer_total + %{5} WHERE name = ‘%{6}’ AND quota_type = ‘%{7}’” ftpquotatotal
SQLNamedQuery insert-quota-tally INSERT “%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}” ftpquotatotal

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

Gestion des logs

================

Enregistre les requetes SQL dans /var/log/proftpd/mysql.log

SQLLogFile /var/log/proftpd/mysql.log

Enregistre les authentifications

LogFormat auth "%v [%P] %h %t “%r” %s"
ExtendedLog /var/log/proftpd/auth.log AUTH auth

Enregistre les acces aux fichiers

LogFormat write "%h %l %u %t “%r” %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write[/code]

je te conseille de bien relire le lien que je t’ai donné et en particulier l’utilisateur nobody et la config des utilisateurs immédiatement en dessous.Pour les configs mysql j’en sais rien,je ne m’en sers pas.

oui tu as raison ça doit être une histoire de nobody

sauf que dans le cas avec la conf mysql il crée un dossier /home/ftp/le_user_defini_dans_latable dont les utilsateur:groupe sont 5500:5500 (doc.ubuntu-fr.org/proftpd_et_mysql)

ce 5500 est l’équivalent de nobody

j’ai l’impression qu’il suffirait de preciser pas grand chose sur 5500 pour que ça marche ?

sinon tant pis je me passerais de mysql

mais j’aimais bien ajouter mes utilisateurs ftp avec phpmyadmin, c’était sympa

++

que veux tu exactement faire avec ton ftp? Sinon il y’a des configs plus simples que celle que tu envisages avec une base de données.Perso j’utilise proftpd avec deux utilisateurs(donc deux logins et deux passwds)l’un peut lister et télécharger les fichiers et l’autre utilisateur qui m’est réservé a le droit en écriture dans le répertoire ftp et a donc le droit d’uploader à distance,le tout se règle avec les bons droits sur le répertoire de ton ftp,que tu crées ou choisis à ta guise.

Bonjour

finalement j’ai suivi à la lettre le tuto en remplaçant complètement mon fichier proftpd.conf

et ça marche nickel !

je m’étais compliqué la vie

merci

++