Installation de ProFTPd
La première étape consiste à installer ProFTPd depuis les sources de Debian . Voici les dépôts que j’ai utilisés dans mon fichier « sources.list » :
deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://deb.debian.org/debian-security/ buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free
On met à jour notre système :
apt update apt upgrade
On installe ProFTPd :
apt -y install proftpd
Commençons par configurer notre serveur FTP en modifiant le fichier de configuration ProFTPd :
nano /etc/proftpd/proftpd.conf
Voici ce que j’ai configuré dans mon fichier, il faudra l’adapter à votre serveur :
# Inclure les modules
Include /etc/proftpd/modules.conf
# On désactive l'IPv6
UseIPv6 off
# On désactive l'identification RFC1413 (consommation élevée ressource PC)
IdentLookups off
# On donne le nom de domaine de notre serveur
ServerName "ftp.mondomaine.com"
# Configuration à laisser par défaut
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# On bloque les utilisateurs dans leur dossier
DefaultRoot ~
# Je modifie le port par défaut pour plus de sécurité
Port 21021
# A laissé activé si vous êtes derrière un firewall
PassivePorts 10000 10500
# Si NAT mettre votre IP publique
MasqueradeAddress X.X.X.X
# Pour éviter le DDOS on met un nombre de connexions maximum
MaxInstances 2
# On configure l'utilisateur exécutant le processus ProFTPd
User proftpd
Group nogroup
# Paramètre de sécurité
Umask 022 022
# On active la réécriture
AllowOverwrite on
# Localisation des log
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Quelques modules activés dans la configuration par défaut de ProFTPd
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
# On active le SSL sur notre FTP
Include /etc/proftpd/tls.conf
# Résout un problème à la connexion au FTP
TLSOptions NoSessionReuseRequired
# On ne permet pas à l'utilisateur root de se connecter (sécurité)
RootLogin Off
# On autorise que les utilisateurs du groupe "userftp" à se connecter
<Limit LOGIN>
DenyGroup !userftp
</Limit>
On configure notre fichier pour le SSL et pour ajouter nos certificats :
nano /etc/proftpd/tls.conf
Le fichier n’est vraiment pas compliqué, il faut simplement le remplir comme ceci :
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1 TLSv1.1 TLSv1.2
# Lien vers votre certificat
TLSRSACertificateFile /etc/letsencrypt/live/ftp.mondomaine.com/fullchain.pem
# Lien vers clé privée
TLSRSACertificateKeyFile /etc/letsencrypt/live/ftp.mondomaine.com/privkey.pem
</IfModule>
On créer le groupe qui aura le droit de se connecter en FTP :
su -
addgroup userftp
On ajoute l’utilisateur ou les utilisateurs de notre choix dans le groupe pour leur permettre de se connecter en FTP en modifiant « NomUser » par le nom de votre utilisateur :
usermod -a -G userftp NomUser
Pour finir, on redémarre ProFTPd :
/etc/init.d/proftpd restart
Bravo, vous avez configuré votre serveur FTP avec ProFTPd en mettant en place le TLS pour la sécurité.