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é.