proftpd_logo_mini2

Découvrons dans ce tutoriel comment installer et sécuriser son serveur FTP sous Debian 10. ProFTPd est un outil  présent depuis de nombreuses années sur les systèmes Linux. Il permet simplement et efficacement d’avoir un serveur FTP.

Installation de ProFTPd

La première étape consiste à installer ProFTPd depuis les sources de Debian 10. 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-get update
apt-get upgrade

On installe ProFTPd :

apt-get -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é. Si vous avez un firewall pensez à autoriser les connexions pour le port FTP que vous avez changé, ici « 21021 » et pour les ports passifs « 10000 » jusque « 10500 » 😉

Pour votre firewall avec une IP publique, vous pouvez mettre en place un NAT et si vous ne connaissez pas le NAT je vous invite à aller voir mon article ici !

Si l’article vous a servi n’hésitez pas à partager votre expérience dans les commentaires ou sur ma page Facebook et Twitter !

Ne manquez aucun article !

Nous ne spammons pas !

Un commentaire

  1. J’ai passé des heures et des heures à mettre en place ce FTP (proFTPd), accessible par FileZilla client,
    J’ai vu plusieurs procédures, toutes différentes à certaines étapes (bizarre).
    Ici je trouve : une utilisation de TLS conf avec :
    TLSRSACertificateFile /etc/letsencrypt/live/ftp.mondomaine.com/fullchain.pem

    Alors ça sort de ou cela ?
    Rien n’a été fait avec letsencrypt ???
    Vous, vous vous comprenez , moi je ne comprend pas.

    Merci, si vous pouvez m’aider.
    (C’est vraiment désolant de passer tant de temps pour une connexion FTP.)
    Cordialement, Pierre.

Répondre à larde Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.