19
0
Fork 0

relecture

This commit is contained in:
gcolpart 2017-04-21 16:03:52 +02:00
parent 7eadbaac38
commit c22ff6cc12
1 changed files with 106 additions and 32 deletions

View File

@ -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 : <http://www.proftpd.org/docs/>
[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).
<http://www.proftpd.org/docs/>
## 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
</Limit>
~~~
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) :
~~~
<Directory /path/to/dir>
@ -81,6 +95,7 @@ MaxStoreFileSize 50 Mb
</Directory>
~~~
## 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
<IfModule 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
<IfUser ecorner>
TLSVerifyClient on
</IfUser>
TLSRequired off
TLSRenegotiate required off
TLSOptions NoSessionReuseRequired
</IfModule>
~~~
### SFTP
On peut configurer FTP over SSH ainsi :
~~~
LoadModule mod_tls.c
<IfModule mod_sftp.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
</IfModule>
~~~