Gavrinis Open your mind | Voici le mien, j'ai mis en place la même chose que toi et ça fonctionne.
Code :
- ##
- # CWD Pour changer de répertoire courant
- # CDUP Pour remonter d'un niveau de répertoire
- # RETR Permet de demander l'envoie d'une copie du fichier passé en argument.
- # STOR Permet d'envoyer un fichier à stocker sur le serveur FTP distant.
- # RNFR Spécifie l'ancien nom du fichier à renommer. Doit être immédiatement suivit par la commande RNTO.
- # RNTO Spécifie le nouveau nom du fichier. Ces deux commandes permettent de renommer un fichier.
- # DELE Permet d'effacer un fichier.
- # DELE Permet d'effacer un fichier.
- # RMD Permet d'effacer un répertoire.
- # MKD Permet de créer un répertoire.
- # PWD Permet d'obtenir le nom du répertoire courant.
- # LIST Permet d'obtenir la liste des fichiers du répertoire en paramètre, ou des détails sur le fichier dont le nom a été passé en paramètre.
- # NLST Idem LIST, mais ne retourne pas d'informations sur les fichiers, seulement leur nom.
- #
- ### 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
- #
- # Désactive l'IPv6.
- #
- UseIPv6 off
- #
- # 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
- #
- # 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"
- UseFtpUsers on
- #
- # Masque info du serveur.
- #
- ServerIdent Off
- # Umask 022 is a good standard umask to prevent new dirs and files from being group and world writable.
- Umask 022
- #
- # On reprend où le transfert a été interrompu aprés une déconnexion.
- #
- AllowStoreRestart on
- AllowRetrieveRestart on
- #
- # Permet de déconnecter un client au bout de X secondes
- # s'il n'y a pas d'activité de son côté.
- #
- TimeoutIdle 600
- #
- # Secondes en la saisie du login et du mot de passe.
- #
- TimeoutLogin 30
- #
- # Déconnexion après X secondes si aucun transfert.
- #
- TimeoutNoTransfer 300
- #
- # Déconnexion après X secondes si il a stoppé le transfert.
- #
- TimeoutStalled 3600
- </Global>
- #
- # Mode de transfert par defaut.
- #
- DefaultTransferMode binary
- #
- # Port par défaut.
- #
- Port 2121
- #
- # Nombre maximum de connexions simultanées.
- #
- MaxInstances 10
- #
- # 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
- #
- # 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
- PathDenyFilter "\\.ftp)|\\.ht)[a-z]+$"
- #
- # Empèche de remonter (../../) hors du chroot.
- #
- DenyFilter \*.*/
- #
- # 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
- #
- # On n'affiche pas les permissions des fichiers.
- #
- DirFakeUser on nobody
- DirFakeGroup on nobody
- ### 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 : SSL
- #
- # Active le SSL.
- #
- TLSEngine off
- #
- # Force l'utilisation du SSL.
- #
- TLSRequired on
- #
- # Log du SSL ProFTPd.
- #
- TLSLog /var/log/proftpd/proftpd.tls_log
- #
- # Protocole.
- #
- TLSProtocol SSLv23
- #
- #
- #
- TLSOptions NoCertRequest
- #
- # Certificats et clefs.
- #
- TLSRSACertificateFile /etc/apache-ssl/certs/apache.pem
- #TLSRSACertificateKeyFile /etc/apache-ssl/certs/proftpd.key.pem
- #
- # Vérifie le certificat SSL proposé par le client.
- #
- TLSVerifyClient off
- ### Section 4 : Virtual Host
- #
- <VirtualHost 10.1.1.100>
- ServerName "toto.domaine.tld"
- Port 21
- PassivePorts 5000 5100
- MasqueradeAddress toto.domaine.tld
- MaxClients 10
- #
- # Limite le nombre de tentatives de login.
- #
- MaxLoginAttempts 1
- #
- # Permet de chrooter les autres personnes que Seb.
- #
- DefaultRoot ~ !seb
- <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>
- <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>
- <Anonymous /home/ftp/seb/public>
- User anonymous_ftp
- Group nogroup
- UserAlias anonymous anonymous_ftp
- RequireValidShell off
- TLSRequired off
- <Limit LOGIN>
- AllowAll
- </Limit>
- <Directory /home/ftp/seb/public>
- #
- # Cache les fichiers de Root.
- #
- HideUser root
- HideGroup root
- <Limit CWD LIST MDTM READ RETR PWD>
- AllowAll
- </Limit>
- <Limit ALL>
- Order Allow,Deny
- AllowUser seb
- Deny from all
- </Limit>
- </Directory>
- </Anonymous>
- </VirtualHost>
|
|