From c22ff6cc12ea15f3f790ca627fd36880ad530f55 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Fri, 21 Apr 2017 16:03:52 +0200 Subject: [PATCH] relecture --- HowtoProFTPD.md | 138 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 106 insertions(+), 32 deletions(-) diff --git a/HowtoProFTPD.md b/HowtoProFTPD.md index b53644c9..85e837c1 100644 --- a/HowtoProFTPD.md +++ b/HowtoProFTPD.md @@ -1,35 +1,37 @@ -**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** +--- +categories: web +title: Howto ProFTPD +... -# Howto ProFTPD +* Documentation : + +[ProFTPD](http://www.proftpd.org/) est un serveur [FTP](https://fr.wikipedia.org/wiki/File_Transfer_Protocol) libre. Il est particulièrement configurable grâce à des modules. Il permet notamment de facilement restreinte un compte dans un répertoire donné (_chroot_) ou d'utiliser les protocoles FTPS (FTP over SSL/TLS) et SFTP/SCP (issus de SSH). - ## Installation ~~~ -# aptitude install proftpd +# apt install proftpd ~~~ ## Configuration -Le fichier de configuration principal est _/etc/proftpd/proftpd.conf_. -Voici les directives à changer : +Le fichier de configuration principal est `/etc/proftpd/proftpd.conf`, voici les directives que nous conseillons de changer en général : ~~~ -UseIPv6 off -ServerName "XXX FTP Server" -PassivePorts 60000 61000 -MaxInstances 50 -MaxClients 40 -MaxClientsPerHost 20 -Umask 137 027 +ServerName "Foo FTP Server" +PassivePorts 60000 61000 +MaxInstances 50 +MaxClients 40 +MaxClientsPerHost 20 +Umask 137 027 UseReverseDNS off -IdentLookups off -DefaultRoot ~ -RequireValidShell off -UseFtpUsers off -ServerIdent on "FTP Server Ready" -AccessGrantMsg "Hey, bienvenue %u sur le serveur FTP XXX.evolix.net !" +IdentLookups off +DefaultRoot ~ +RequireValidShell off +UseFtpUsers off +ServerIdent on "FTP Server Ready" +AccessGrantMsg "Hey, bienvenue %u sur le serveur FTP example.com !" # Allow RESUME (REST command) AllowStoreRestart on @@ -40,24 +42,35 @@ AllowStoreRestart on ~~~ -Les utilisateurs pouvant utilisant le FTP doivent être dans le groupe _ftpusers_ (à créer !). +Avec cette configuration proposée, un utilisateur doit être dans le groupe `ftpusers` (à créer) pour pouvoir utiliser le FTP. -## Création de comptes virtuels - -À ajouter dans _/etc/proftpd/proftpd.conf_ : +Si l'IPv6 n'est pas fonctionnel sur votre serveur : ~~~ -AuthOrder mod_auth_file.c -AuthUserFile /etc/proftpd/vpasswd +UseIPv6 off ~~~ -La commande complète : + +## Comptes virtuels + +ProFTPD peut utiliser des comptes Unix ou des comptes virtuels définis dans SQL/LDAP ou simplement un fichier. + +On détaille ici l'utilisation de comptes avec un simple fichier `/etc/proftpd/vpasswd`. + +Il faut ajouter dans _/etc/proftpd/proftpd.conf_ : ~~~ -# ftpasswd --file=/etc/proftpd/vpasswd --name=FTP_user --home=/home/example/FTP_user --shell=/bin/false --uid=1664 --gid=1664 --passwd +AuthOrder mod_auth_file.c +AuthUserFile /etc/proftpd/vpasswd ~~~ -Préciser les UID et GID du compte UNIX propriétaire du répertoire dans lequel est le $HOME du compte virtuel créé. +On peut alors ajouter un compte FTP avec la commande suivante : + +~~~ +# ftpasswd --file=/etc/proftpd/vpasswd --name=foo --home=/home/example/foo --shell=/bin/false --uid=1664 --gid=1664 --passwd +~~~ + +Si l'on veut que le compte FTP soit une sorte de sous-compte d'un compte existant restreint dans un répertoire, il faut préciser les UID et GID du compte UNIX propriétaire du répertoire dans lequel est le $HOME du compte virtuel créé. Pour modifier le mot de passe d'un compte existant : @@ -65,7 +78,8 @@ Pour modifier le mot de passe d'un compte existant : # ftpasswd --file /etc/proftpd/vpasswd --name=FTP_user --change-password --passwd ~~~ -### Divers + +## Divers Pour limiter les uploads de fichiers de taille supérieure à 50 Mo : @@ -73,7 +87,7 @@ Pour limiter les uploads de fichiers de taille supérieure à 50 Mo : MaxStoreFileSize 50 Mb ~~~ -### Changer droits defaut (umask) +Pour changer les droits par défaut (umask) : ~~~ @@ -81,6 +95,7 @@ MaxStoreFileSize 50 Mb ~~~ + ## Quota Pour activer les quotas spécifiquement à ProFTPD avec gestion via fichiers : @@ -113,7 +128,7 @@ Imaginons que vous positionnez le quota alors que l'utilisateur a déjà 170 Go, # ftpquota --update-record --type=tally --bytes-upload=170 --units=Gb --name=foo --quota-type=user ~~~ -Vous pouvez lister les données de quota sur le serveur ainsi : +On peut lister les données de quota sur le serveur ainsi : ~~~ # ftpquota --show-records --type=tally @@ -159,7 +174,7 @@ ftp> quote SITE QUOTA 200 Veuillez contacter ftpmaster@example.com si ces données sont inexactes ~~~ -Enfin, vous pouvez réinitialiser un compteur (tous les jours par exemple) : +Enfin, on peut réinitialiser un compteur (tous les jours par exemple) : ~~~ # ftpquota --update-record --type=tally --name=foo --quota-type=user @@ -171,3 +186,62 @@ Ou même effacer toutes les données de quota d'un utilisateur : # ftpquota --delete-record --type=limit --name=foo --quota-type=user # ftpquota --delete-record --type=tally --name=foo --quota-type=user ~~~ + + +## FTPS + +On peut configurer FTP over SSL/TLS ainsi : + +~~~ +LoadModule mod_tls.c + + +TLSEngine on +TLSLog /var/log/proftpd/tls.log +TLSProtocol TLSv1 + +TLSRSACertificateFile /etc/ssl/certs/ftp.example.com.crt +TLSRSACertificateKeyFile /etc/ssl/private/ftp.example.com.key +TLSCACertificateFile /etc/ssl/certs/ftp.example.com_ca.pem + +#TLSOptions AllowClientRenegotiations + +TLSOptions AllowPerUser +TLSVerifyClient off + +TLSVerifyClient on + + +TLSRequired off + +TLSRenegotiate required off +TLSOptions NoSessionReuseRequired + +~~~ + + +### SFTP + +On peut configurer FTP over SSH ainsi : + +~~~ +LoadModule mod_tls.c + + +SFTPEngine on +Port 222 +DefaultRoot ~ + +SFTPLog /var/log/proftpd/sftp.log + +SFTPAuthMethods password publickey +SFTPHostKey /etc/ssh/ssh_host_dsa_key +SFTPHostKey /etc/ssh/ssh_host_ecdsa_key +SFTPHostKey /etc/ssh/ssh_host_rsa_key + +SFTPAuthorizedUserKeys file:/etc/sftp/authorized_keys/%u + +SFTPCompression delayed + +~~~ +