[ ProFTPD ] - Configuration avec MySQL
Ohm-WorK
Messages postés
1468
Statut
Contributeur
-
necros -
necros -
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 !
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:
- [ ProFTPD ] - Configuration avec MySQL
- Ethernet n'a pas de configuration ip valide - Guide
- Panneau de configuration - Guide
- Retablir configuration usine chromecast - Guide
- Mysql community download - Télécharger - Bases de données
- Connaitre configuration pc - Guide
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
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