Citation :
 
 ServerName "127.0.0.1"
 ServerType standalone
 ServerIdent on "Bienvenue. Veuillez-vous identifiez"
 DeferWelcome on
 ServerAdmin "adresse@adresse.com"
 TimesGMT on
   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és 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 root mot_de_pass
   # 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
   |