RESEAU : Problème de configuration avec ProFtpd

Bonjour à tous,
Je suis en train de monter un serveur ProFtpd.
J’ai suivi plusieurs tutoriels mais ça ne fonctionne pas.

[quote]http://www.trustonme.net/didactels/58.html
http://documentation.online.net/fr/serveur-dedie/tutoriel/installation-proftpd
http://www.xenetis.org/a_27_serveur_ftp_proftpd_avec_utilisateurs_virtuels_sous_linux_debian_ubuntu.html[/quote]
J’ai plusieurs sites internet et le but c’est d’avoir des utilisateurs virtuels et accéder à leur répertoire de leur site /var/www/nomdusite par exemple.

J’ai essayé un utilisateur test avec la commande :
ftpasswd --passwd --name=test2 --uid=2002 --gid=2002 --home=/var/www/nomdusite --shell=/bin/false

Quand je me connecte avec Filezila client j’ai ce message :

[quote]Commande : PASS *******
Réponse : 530 !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS Y ÊTRE AUTORISÉS !!
Erreur : Erreur critique : Impossible d’établir une connexion au serveur[/quote]
Je ne sais pas si c’est bon ?

Voici le fichier proftpd.conf :

[code]#

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

To really apply changes, reload proftpd after modifications, if

it runs in daemon mode. It is not required in inetd/xinetd mode.

Includes DSO modules

#la possibilité d’inclure des modules supplémentaires
Include /etc/proftpd/modules.conf

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

#un adressage IP version 6
UseIPv6 on

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

#Augmente les performances
IdentLookups off
UseReverseDNS off

#Donne un nom à votre serveur
#la possibilité de redéfinir le nom de votre serveur
ServerName “cla”

#de pouvoir modifier le mode de démarrage du serveur
#ServerType standalone (démarrage en même temps que la machine)
#ou inetd (par le démon xinet, à la demande)
ServerType standalone

#de ne donner aucune information relative au serveur utilisé
DeferWelcome off

#enlevez le # devant la ligne pour la décommentez si vous voulez utiliser les quotas
#Quotas on

#Permet la reprise des download et upload
#de permettre la reprise, après interruption, du transfert de fichiers vers le serveur
AllowStoreRestart on
AllowRetrieveRestart on

#d’étendre le canal de contrôle pour pouvoir recevoir certaines réponses sur plusieurs lignes
MultilineRFC2228 on
DefaultServer on

#de voir les liens symboliques
ShowSymlinks off

#de définir un temps maxi d’inactivité avant de déconnecter = 10 mn
TimeoutNoTransfer 600
#de définir un temps maxi sans recevoir de données en data = 10 mn
TimeoutStalled 600
#de définir un temps maxi sans recevoir de données ni en data, ni en control = 20 mn
TimeoutIdle 1200

#d’afficher un message lorsqu’un client se connecte
DisplayLogin welcome.msg

#d’afficher un message lorsqu’un client change de répertoire
DisplayChdir .message true

#d’afficher un fichier par ligne, pour le contenu des répertoires
ListOptions “-l”

DenyFilter *.*/

Use this to jail all users in their homes

#de permettre de cantonner les utilisateurs dans leur répertoire, en modifiant la ligne
#DefaultRoot ~
DefaultRoot /var/www/

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

Use this directive to release that constrain.

#Permet de pouvoir creer des utilisateurs ftp sans qu’ils aient forcement accés au shell

RequireValidShell off

RequireValidShell off

Port 21 is the standard FTP port.

Port 210

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.

#permettre de spécifier la plage de ports passifs que ProFTPd utilisera
#pour répondre aux clients, en modifiant la ligne

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)

#de limiter le nombre d’instances, pour éviter les attaques dos
MaxInstances 2

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

#de définir sous quelle identité est lancé le serveur
User proftpd
Group www-data

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

(second parm) from being group and world writable.

#d’éviter que les fichiers ou répertoires créés puissent être modifiés par le monde entier
Umask 022 022

Normally, we want files to be overwriteable.

#d’autoriser le remplacement des anciens fichiers par des nouveaux
AllowOverwrite on

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

#de permettre de maintenir le mot de passe durant toute une session cantonnée

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.

#de permettre de désactiver une fonction qui optimise l’envoi de fichiers au client

UseSendFile off

#de permettre de gérer la journalisation
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

Logging onto /var/log/lastlog is enabled but set to off by default

#UseLastlog on

In order to keep log file dates consistent after chroot, use timezone info

from /etc/localtime. If this is not set, and proftpd is configured to

chroot (e.g. DefaultRoot or ), it will use the non-daylight

savings timezone regardless of whether DST is in effect.

#SetEnv TZ :/etc/localtime

QuotaEngine off Ratios off

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

http://www.securityfocus.com/bid/11430/discuss

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.conf
#------------------------------------------------------------------
#DIRECTIVES ANONYMES =>FACULTATIVES
#------------------------------------------------------------------

A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>

<Anonymous /var/www/>
User ftp
Group www-data

# 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 2

# 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

#

#

Include other custom configuration files

Include /etc/proftpd/conf.d/

#Franciser les messages d’accueil
AccessGrantMsg " – Accès autorisé pour %u --“
AccessDenyMsg " !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS Y ÊTRE AUTORISÉS !!”

AuthUserFile /etc/proftpd/proftpd.passwd
AuthGroupFile /etc/proftpd/proftpd.group
[/code]

Je voudrai que les utilisateurs fassent parti du groupe wwww:data pour gérér leur site.
Je ne sais pas comment faire.
Pouvez-vous m’aider ?
Merci
Cordialement,

[quote=“rezolinux”]Bonjour à tous,
Je suis en train de monter un serveur ProFtpd.
J’ai suivi plusieurs tutoriels mais ça ne fonctionne pas.

[quote]http://www.trustonme.net/didactels/58.html
http://documentation.online.net/fr/serveur-dedie/tutoriel/installation-proftpd
http://www.xenetis.org/a_27_serveur_ftp_proftpd_avec_utilisateurs_virtuels_sous_linux_debian_ubuntu.html[/quote]
J’ai plusieurs sites internet et le but c’est d’avoir des utilisateurs virtuels et accéder à leur répertoire de leur site /var/www/nomdusite par exemple.

J’ai essayé un utilisateur test avec la commande :
ftpasswd --passwd --name=test2 --uid=2002 --gid=2002 --home=/var/www/nomdusite --shell=/bin/false

Quand je me connecte avec Filezila client j’ai ce message :

[quote]Commande : PASS *******
Réponse : 530 !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS Y ÊTRE AUTORISÉS !!
Erreur : Erreur critique : Impossible d’établir une connexion au serveur[/quote]
Je ne sais pas si c’est bon ?

Voici le fichier proftpd.conf :

[code]#

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

To really apply changes, reload proftpd after modifications, if

it runs in daemon mode. It is not required in inetd/xinetd mode.

Includes DSO modules

#la possibilité d’inclure des modules supplémentaires
Include /etc/proftpd/modules.conf

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

#un adressage IP version 6
UseIPv6 on

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

#Augmente les performances
IdentLookups off
UseReverseDNS off

#Donne un nom à votre serveur
#la possibilité de redéfinir le nom de votre serveur
ServerName “cla”

#de pouvoir modifier le mode de démarrage du serveur
#ServerType standalone (démarrage en même temps que la machine)
#ou inetd (par le démon xinet, à la demande)
ServerType standalone

#de ne donner aucune information relative au serveur utilisé
DeferWelcome off

#enlevez le # devant la ligne pour la décommentez si vous voulez utiliser les quotas
#Quotas on

#Permet la reprise des download et upload
#de permettre la reprise, après interruption, du transfert de fichiers vers le serveur
AllowStoreRestart on
AllowRetrieveRestart on

#d’étendre le canal de contrôle pour pouvoir recevoir certaines réponses sur plusieurs lignes
MultilineRFC2228 on
DefaultServer on

#de voir les liens symboliques
ShowSymlinks off

#de définir un temps maxi d’inactivité avant de déconnecter = 10 mn
TimeoutNoTransfer 600
#de définir un temps maxi sans recevoir de données en data = 10 mn
TimeoutStalled 600
#de définir un temps maxi sans recevoir de données ni en data, ni en control = 20 mn
TimeoutIdle 1200

#d’afficher un message lorsqu’un client se connecte
DisplayLogin welcome.msg

#d’afficher un message lorsqu’un client change de répertoire
DisplayChdir .message true

#d’afficher un fichier par ligne, pour le contenu des répertoires
ListOptions “-l”

DenyFilter *.*/

Use this to jail all users in their homes

#de permettre de cantonner les utilisateurs dans leur répertoire, en modifiant la ligne
#DefaultRoot ~
DefaultRoot /var/www/

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

Use this directive to release that constrain.

#Permet de pouvoir creer des utilisateurs ftp sans qu’ils aient forcement accés au shell

RequireValidShell off

RequireValidShell off

Port 21 is the standard FTP port.

Port 210

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.

#permettre de spécifier la plage de ports passifs que ProFTPd utilisera
#pour répondre aux clients, en modifiant la ligne

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)

#de limiter le nombre d’instances, pour éviter les attaques dos
MaxInstances 2

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

#de définir sous quelle identité est lancé le serveur
User proftpd
Group www-data

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

(second parm) from being group and world writable.

#d’éviter que les fichiers ou répertoires créés puissent être modifiés par le monde entier
Umask 022 022

Normally, we want files to be overwriteable.

#d’autoriser le remplacement des anciens fichiers par des nouveaux
AllowOverwrite on

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

#de permettre de maintenir le mot de passe durant toute une session cantonnée

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.

#de permettre de désactiver une fonction qui optimise l’envoi de fichiers au client

UseSendFile off

#de permettre de gérer la journalisation
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

Logging onto /var/log/lastlog is enabled but set to off by default

#UseLastlog on

In order to keep log file dates consistent after chroot, use timezone info

from /etc/localtime. If this is not set, and proftpd is configured to

chroot (e.g. DefaultRoot or ), it will use the non-daylight

savings timezone regardless of whether DST is in effect.

#SetEnv TZ :/etc/localtime

QuotaEngine off Ratios off

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

http://www.securityfocus.com/bid/11430/discuss

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.conf
#------------------------------------------------------------------
#DIRECTIVES ANONYMES =>FACULTATIVES
#------------------------------------------------------------------

A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>

<Anonymous /var/www/>
User ftp
Group www-data

# 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 2

# 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

#

#

Include other custom configuration files

Include /etc/proftpd/conf.d/

#Franciser les messages d’accueil
AccessGrantMsg " – Accès autorisé pour %u --“
AccessDenyMsg " !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS Y ÊTRE AUTORISÉS !!”

AuthUserFile /etc/proftpd/proftpd.passwd
AuthGroupFile /etc/proftpd/proftpd.group
[/code]

Je voudrai que les utilisateurs fassent parti du groupe wwww:data pour gérér leur site.
Je ne sais pas comment faire.
Pouvez-vous m’aider ?
Merci
Cordialement,[/quote]
Bonjour,

Je me réponds à moi même.
J’ai trouvé pour accéder au serveur.
Dans le fichier /etc/proftpd/proftps.conf à la fin du fichier il faut mettre :

AuthUserFile /etc/proftpd/ftpd.passwd AuthGroupFile /etc/proftpd/ftpd.group

et non :

AuthUserFile /etc/ftpd.passwd AuthGroupFile /etc/ftpd.group

C’est pour cela ça ne fonctionnait pas car le fichier était dans /etc/proftpd/ et non dans /etc/…
Au niveau de la création des utilisateurs virtuels, j’ai fait :

et ensuite pour le groupe j’ai fait :

ftpasswd --group --name=www:data --gid=33 --member=testftp
J’ai redémarré le serveur avec service proftpd restart
Je me suis mis sur le client ftp et miracle ça fonctionne pour la connection.
Par contre je ne peux pas ni créer un dossier ou fichiers.

Si vous avez des informations.
Merci
Cordialement,

Bonjour,

Pour résoudre le problème voici les solutions.
1ère solution :

Créer l’utilisateur : ftpasswd --passwd --name=testftp --uid=33 --gid=33 --home=/var/www/nomdusite --shell=/bin/false

Créer le groupe : ftpasswd --group --name=www:data --gid=33 --member=testftp.

Une fois que c’est fait, mettre les droits sur le dossier, prenons l’exemple ici pour /var/www/nomdusite.

J’ai laissé le propriétaire www-data en ecriture lecture execution donc 700, le groupe fait parti du répertoire www-data 770 et pour les autres aucuns accès.
Donc si je résume le dossier est en 770. Donc la permission octal est 6770.
Et là vous pouvez créer un dossier et fichier avec l’accès ftp.
Mais c’est solution est la moins sécurisé et en plus si nous avons plusieurs domaines c’est galère.

2ème solution :

En faite il faut ajouter un module à Apache2 c’est : apache-mpm-itk.
Pour l’installer : apt-get install apache-mpm-itk
Ensuite aller dans le vhost et mettre : <IfModule mpm_itk_module> AssignedUserId uid:gid </IfModule>
Et redémarré le serveur apache.
Aller voir la documentation qui est très bien expliqué http://www.it-connect.fr/serveur-web-mutualise-55-des-pistes-de-securisation/#III_Apache_ITK

Merci
Cordialement,

Merci, la documentation peut servir à d’autres personnes.

Cordialement,