###################################################################### # OPTION GLOBAL ###################################################################### ServerName "FTP Server" ServerIdent on "Welcome to my FTP Server" ServerAdmin yoann@queret.info ServerType standalone # Port du server (default 21). Port 21 DefaultServer on ###################################################################### # PERSONNALISATION DES OPTIONS GLOBAL ###################################################################### # Set the user and group that the server normally runs at. User nobody Group nogroup # On authorise le FXP AllowForeignAddress on # On active le resume AllowStoreRestart on AllowRetrieveRestart on # On ne gere pas les reverse DNS (on gagne ainsi du temps a la connexion) UseReverseDNS off # On ne demande pas a recuperer le nom du client FTP (ici aussi on gagne du temps a la connexion) IdentLookups off # On ne demande pas de shell valid (nos utilisateurs sont stocker en base de données) RequireValidShell off # Pour prevenir des attack DOS on defini le nombre de process MaxInstances 30 # On definie le timeout TimeoutNoTransfer 300 TimeoutStalled 600 TimeoutIdle 1200 # On defini le fichier charger au login, et celui au charger lors des acces au nouveau repertoire DisplayLogin welcome.msg DisplayFirstChdir .message # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 # On respecte la RFC2228 MultilineRFC2228 on # On desactive le suivi des liens symbolique afin d'éviter aux utilisateurs de créer des liens vers des repertoires auxquels on ne veux pas qu'il ai accès ShowSymlinks off # On spécifie un option permettant de lister les fichiers ListOptions "-l" # On empeche de remonter au dela tu repertoire de login DefaultRoot ~ ###################################################################### # LOG DANS FICHIERS ###################################################################### SyslogLevel emerg SystemLog /var/log/proftpd/proftpd.system.log LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" # Log file/dir access ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write # Record all logins ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth # Paranoia logging level.... ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default ###################################################################### # MYSQL ###################################################################### AllowAll SQLHomedirOnDemand on SQLAuthTypes Crypt SQLAuthenticate users* SQLConnectInfo ftp@localhost SQLUserInfo users login passwd uid gid homedir shell SQLUserWhereClause "disabled!=1 and (NOW()<=expire or never_expire=1)" ###################################################################### # Statistiques par Login ###################################################################### # Incremente le champ login_count de 1 a chaque nouvelle connexion SQLLog PASS logincount SQLNamedQuery logincount UPDATE "login_count=login_count+1 WHERE login='%u'" users # Mes à jours le champ last_login avec la derniere date de connexion SQLLog PASS lastlogin SQLNamedQuery lastlogin UPDATE "last_login=now() WHERE login='%u'" users # Incremente le champ dl_bytes de la quatité de données téléchargées SQLLog RETR dlbytescount SQLNamedQuery dlbytescount UPDATE "dl_bytes=dl_bytes+%b WHERE login='%u'" users # Incremente le champ dl_count de 1 a chaque nouveau téléchargement de fichiers SQLLog RETR dlcount SQLNamedQuery dlcount UPDATE "dl_count=dl_count+1 WHERE login='%u'" users # Incremente le champ ul_bytes de la quatité de données uploader SQLLog STOR ulbytescount SQLNamedQuery ulbytescount UPDATE "ul_bytes=ul_bytes+%b WHERE login='%u'" users # Incremente le champ ul_count de 1 a chaque nouveau upload de fichiers SQLLog STOR ulcount SQLNamedQuery ulcount UPDATE "ul_count=ul_count+1 WHERE login='%u'" users ###################################################################### # LOG DANS MYSQL ###################################################################### SQLLog RETR,STOR,DELE transfert SQLNamedQuery transfert INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T',now(), 'ok'" log_transfert SQLLOG ERR_RETR,ERR_STOR,ERR_DELE errortransfert SQLNamedQuery errortransfert INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T',now(), 'error'" log_transfert ###################################################################### # LIMITATION DE BANDE PASSANTE (Valeur en KiloOctets) ###################################################################### # Limite en download (du serveur vers le client) # Apres avoir downloader 3Mo (3145728 Octets), on limite la bande passante a 256 Kilo Octets TransferRate RETR 256:3145728 # Limite en upload (du client vers le serveur) # Apres avoir uploader 10Mo (10485760 Octets), on limite la bande passante a 512 Kilo Octets TransferRate APPE,STOR 512:10485760