[ ProFTPD ] - Configuration avec MySQL

Fermé
Ohm-WorK Messages postés 1464 Date d'inscription mardi 25 octobre 2005 Statut Contributeur Dernière intervention 29 octobre 2019 - 3 mars 2007 à 15:16
 necros - 25 avril 2007 à 09:25
Bonjour la communauté !

J'ai un petit souci de configuration sous Proftpd. J'ai installé ce dernier via apt :

# apt-get install proftpd-mysql

L'installation se passe sans erreur, et je démarre le serveur en mode standalone.

Pour info, mon serveur MySQL est installé & fonctionnel. Par ailleur, la base de données ainsi que les tables correspondant à la configuration voulu pour proftpd sont bien enregistrées.

Voici mon fichier proftpd.conf :

# Configuration de base
# =====================
ServerName "Mon serveur FTP"
ServerType standalone
ServerIdent on "Bienvenue sur mon ftp. Veuillez-vous identifiez"
DeferWelcome on
ServerAdmin "ftp_admin@mydomain.com"

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
AllowOverwrite on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

ListOptions "-l"
Defaultroot ~

DenyFilter \*.*/

Port 21

# A configurer selon sa connection
# ================================
MaxInstances 6
MaxLoginAttempts 3
MaxClientsPerUser 10
MaxClientsPerHost 2
MaxHostsPerUser 4
MaxClients 6 "Limite a 6 utilisateurs"

# ProFTPD est excecuté avec des droits réduits
# ============================================
User nobody
Group nogroup

Umask 022
AllowStoreRestart on
AllowRetrieveRestart on

# Mod MySQL
# =========
# Les mots de passe sont crypté ds la base avec la fct ENCRYPT (MySQL)
SQLAuthTypes Crypt
SQLAuthenticate users* groups*

# Modifiez cette ligne selon l'utilisateur et le mot de passe définit plutôt
SQLConnectInfo proftpd@localhost proftpd password

# On donne à ProFTPD le nom des colonnes de la table usertable
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause "LoginAllowed = 'true'"

# On donne à ProFTPD le nom des colonnes de la table "grouptable"
SQLGroupInfo ftpgroup groupname gid members

# Créer le repertoire home de l'utilisateur si il n'existe pas
SQLHomedirOnDemand on

# Met à jour les compteurs à chaque connection d'un utilisateur
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

#Met à jour les compteurs à chaque upload ou download d'un utilisateur
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# Mod quota
# =========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

# Définit les requêtes 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

RootLogin off
RequireValidShell off

# Gestion des logs
# ================
# Enregistre les requêtes 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 accès aux fichiers
LogFormat write "%h %l %u %t \"%r\" %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write

# Recupère le nom à partir de l'ip de la machine de l'utilisateur ( resolution DNS )
IdentLookups on

Jusque la, tout va bien. Le problème intervient juste après, au moment ou je recharge le serveur

# /etc/init.d/proftdp restart

La commande me ressort une erreur à chaque ligne concernant les commandes SQL, comme si il ne prenait pas du tout en compte le modules Mysql. Effectivement, si je tape la commande :

# proftpd -vv
je n'es aucun modules concernant sql ou mysql...

Pourtant, dans mon dossier /etc/proftpd j'ai un fichier modules.conf, qui comporte les lignes de chargement des modules concernés... et les modules sont bien présent dans /usr/lib/proftpd...

Je ne vois donc pas pourquoi il ne me les charge pas. Si quelqu'un à une idée, ou un bon tuto pour refaire l'installation complète je suis preneur !!!

Merci d'avance pour vos réponses !
A voir également:

1 réponse

salut

ca fait 1 mois seulement que je me mets à linux... j'apprends :)

un petit truc que tu devrais vérifier, c'est si ton proftpd supporte les librairies .so

proftpd -l

tu devrais avoir une liste des modules liés de façon statique dans ton serveur. Vérifie la présence de mod_dso.c

Si ce n'est pas le cas, peut êtr eque tu devrais utiliser les sources de proftpd et les recompiler
0