Gavrinis Open your mind | le voici complet : Code :
- ### Section 1: Global Environment
- #
- # Nom du serveur FTP.
- #
- ServerName "FTP Server"
- #
- # Exécution avec des droits restreinds.
- #
- User nobody
- Group nogroup
- #
- # On inclut les modules.
- #
- Include /etc/proftpd/modules.conf
- #
- # Type du serveur Daemond ou indépendant.
- #
- ServerType standalone
- #
- # Utile si vous faites des virtualhost, si vous n'utilisez qu'un "server config" sans virtualhost alors ce n'est pas utile de l'indiquer.
- # En fait cette directive vérifie qu'elle configuration du serveur sera prise en compte (soit server config ou un des virtual hosts, ou anonyme....)
- # Si il n'y aucune configuration de prévue, "l'inconnu" aura le message suivant : "no server available to service your request" et déconnecté.
- #
- DefaultServer on
- <Global>
- #
- # Limite le user à son home directory, si son home directory est par exemple /home/user, il pourra se ballader dedans,
- # mais ne pourra remonter plus haut, il ne pourra pas aller dans /home par exemple et quand il se connecte,
- # le user voit comme path dans son client FTP le chemin /
- #
- DefaultRoot ~
- #
- # Permet de remplacer d'anciens fichiers par les nouveaux (option inutile si vous interdisez l'écriture).
- #
- AllowOverwrite on
- </Global>
- #
- # Mode de transfert par defaut.
- #
- DefaultTransferMode binary
- UseFtpUsers on
- #
- # Port par défaut.
- #
- Port 21
- # Umask 022 is a good standard umask to prevent new dirs and files
- # from being group and world writable.
- Umask 022
- #
- # Nombre maximum de connexions simultanées.
- #
- MaxInstances 3
- #
- # Include directive should point to place where FTP Virtual Hosts configurations preserved
- #
- ScoreboardFile /var/log/scoreboard
- #
- # Limite en download (du serveur vers le client), après avoir downloader 3 Mo (3145728 Octets),
- # on limite la bande passante à 20 Ko/s.
- #
- TransferRate RETR 20:3145728
- #
- # Limite en upload (du client vers le serveur), après avoir uploader 10 Mo (10485760 Octets),
- # on limite la bande passante a 512 Ko/s.
- #
- TransferRate APPE,STOR 512:10485760
- #
- # Time-out.
- #
- TimeoutNoTransfer 600
- TimeoutStalled 600
- TimeoutIdle 1200
- #
- # Active l'authentification PAM.
- #
- AuthPAM on
- AuthPAMConfig proftpd
- #
- # Connaitre quel client se connecte.
- #
- IdentLookups off
- UseReverseDNS off
- #
- # Messages.
- #
- AccessDenyMsg "Connection échouée - Connection refused"
- AccessGrantMsg "Connection OK bienvenue - Connection OK welcome"
- #
- # On autorise à réécrire les fichiers déjà présent.
- #
- AllowOverwrite on
- #
- # On nettoie ce qui a pas été fini.
- #
- DeleteAbortedStores on
- #
- # Afficher les fichiers cachés.
- #
- HiddenStor on
- #
- # Empeche Root de se connecter.
- #
- RootLogin off
- #
- # Après trois tentatives de connexions si pas loggé on ban.
- #
- MaxLoginAttempts 3
- #
- # Pas de Shell.
- #
- RequireValidShell off
- #
- # Ne pas donner d'info sur le serveur.
- #
- DeferWelcome on
- #
- # On reprend où le transfert a été interrompu aprés une déconnexion.
- #
- AllowStoreRestart on
- AllowRetrieveRestart on
- PathDenyFilter "\\.ftp)|\\.ht)[a-z]+$"
- #
- # Message de connexion pour les utilisateurs.
- #
- DisplayLogin welcome.msg
- #
- # Affiche un petit monitoring lors de la saisie de "ftpstats" dans une shell.
- #
- TransferLog /var/log/proftpd.xferlog
- #
- # Nombre de connections.
- # Nombre de transferts par utilisateur.
- #
- MaxClients 10 "Trop de connections veuillez réessayer plus tard merci"
- MaxClientsPerHost 10 "Une IP par connection SVP - One IP per connect please"
- #
- # On n'affiche pas les permissions des fichiers.
- #
- DirFakeUser on nobody
- DirFakeGroup on nobody
- #
- # Les comptes anonymes ne peuvent que se connecter.
- #
- <Anonymous ~ftp>
- User ftp
- Group ftp
- UserAlias anonymous ftp
- MaxClients 10
- RequireValidShell off
- AnonRequirePassword off
- <Limit WRITE>
- DenyAll
- </Limit>
- </Anonymous>
- <Directory /ftp/>
- AllowOverwrite off
- HideNoAccess off
- <Limit READ>
- AllowAll
- </Limit>
- <Limit WRITE>
- DenyGroup !admins
- </Limit>
- </Directory>
- <Directory /ftp/incoming/>
- AllowOverwrite on
- HideNoAccess on
- <Limit READ>
- DenyGroup !admins
- </Limit>
- <Limit STOR MKD>
- AllowAll
- </Limit>
- </Directory>
- ### Section 2 : MySQL
- #
- # Les mots de passes dans la base sont chiffrés.
- #
- AuthOrder mod_sql.c
- SQLAuthTypes Backend
- SQLAuthenticate users* groups
- SQLConnectInfo proftpd_admin@localhost login mdp
- #
- # On donne à ProFTPD le nom des colonnes de la table usertable.
- #
- SQLUserInfo usertable userid passwd uid gid homedir shell
- SQLUserWhereClause "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"
- #
- # On donne à ProFTPD le nom des colonnes de la table "grouptable".
- #
- SQLGroupInfo grouptable groupname gid members
- #
- # Met à jour les compteurs à chaque connection d'un utilisateur.
- #
- SQLLog PASS counter
- SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable
- #
- # Log de déconnexion.
- #
- SQLLog EXIT time_logout
- SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='%u'" usertable
- #
- # Affiche le temps du dernier login quand PASS est tapé.
- #
- SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'"
- SQLShowInfo PASS "230" "Last login was: %{login_time}"
- #
- # Log de transfert.
- #
- SQLLog RETR,STOR transfer1
- SQLNamedQuery transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat
- SQLLOG ERR_RETR,ERR_STOR transfer2
- SQLNamedQuery transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat
- QuotaLimitTable sql:/get-quota-limit
- QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
- #
- # Enregistre les requêtes SQL dans /var/log/proftpd/mysql.log
- #
- SQLLogFile /var/log/proftpd.mysql
- #
- # 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
- ### Section 3 : Virtual Host
- #
- <VirtualHost seb.XXX.net>
- ServerName "Seb FTP Server"
- MaxClients 10
- #
- # Limite le nombre de tentatives de login.
- #
- MaxLoginAttempts 1
- #
- # Permet de chrooter les autres personnes que Seb.
- #
- DefaultRoot ~ !seb
- #
- # Racine.
- #
- <Directory />
- #
- # Accepte uniquement le login de Seb et lui donne tout les droits.
- #
- <Limit LOGIN ALL>
- Order Allow,Deny
- AllowUser seb
- Deny from all
- </Limit>
- <Limit ALL>
- DenyAll
- </Limit>
- </Directory>
- #
- # Répertoire privé.
- #
- <Directory /home/ftp/seb/private>
- #
- # Accepte uniquement le login de Seb et lui donne tout les droits.
- #
- <Limit LOGIN ALL>
- Order Allow,Deny
- AllowUser seb
- Deny from all
- </Limit>
- </Directory>
- #
- # Partie anonyme.
- #
- <Anonymous /home/ftp/seb/public>
- User ftp
- Group ftp
- UserAlias anonymous ftp
- <Limit LOGIN>
- AllowAll
- </Limit>
- #
- # Cache les fichiers de Root.
- #
- HideUser root
- HideGroup root
- #
- # Répertoire publique.
- #
- <Directory /home/ftp/seb/public>
- <Limit LIST READ RETR>
- AllowAll
- </Limit>
- <Limit ALL>
- Order Allow,Deny
- AllowUser seb
- Deny from all
- </Limit>
- </Directory>
- </Anonymous>
- </VirtualHost>
|
|