Installer un serveur FTP (ProFTPd) sécurisé sur Debian 9

Lorsqu’on gère un site internet hébergé sur un serveur distant, nous communiquons souvent avec celui-ci en ftp. Mais trop souvent, cette connection n’est pas sécurisé. Voyons comment remédier à cela.

Prérequis

Nous allons installer un serveur ftp sur une distribution Debian Stretch. Pour cela, il va nous falloir les accès root.

Installation de ProFTPd

ProFTPd se trouve directement dans les dépôts de debian. Pour l’installer, vous n’avez qu’à lancer la commande :

$ apt-get install proftpd

Configuration de base de ProFTPd

La configuration de ProFTPd se passe dans /etc/proftpd/proftpd.conf . Ouvrons-le pour l’éditer.

$ nano /etc/proftpd/proftpd.conf

De base, chaque utilisateur sera connecté à son espace Home. Si vous souhaitez utiliser votre serveur ftp pour gérer vos sites web, il peut être interessant de rediriger la connexion vers l’espace de stockage des sites.

Default Root /var/www/html

Voilà, votre serveur est installé et prêt à être utilisé. ProFTPd est très complet, vous pouvez le paramétrer de façon beaucoup plus fine et vous pouvez également regarder du côté des nombreux plugins.

Sécuriser votre serveur FTP

Toujours dans le fichier de configuration /etc/proftpd/proftpd.conf, changer le port standard.

 # Port 21 is the standard ftp port.
Port 21

Décommenter la ligne suivante afin de charger le fichier de configuration de tls.

# # This is used for FTPS connections 
# Include /etc/proftpd/tls.conf

Vous pouvez enregistrer puis fermer ce fichier de configuration.

Nous allons maintenant ouvrir le fichier /etc/proftpd/tls.conf précedemment chargé.

$ nano /etc/proftpd/tls.conf

Décommentez les lignes suivantes :

TLSEngine on 
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSVerifyClient off
#TLS obligatoire (off si possibilité de se connecter sans tls)
TLSRequired on

Nous allons ajouter la ligne suivante avant

Include /etc/proftpd/tls.conf

Nous allons aussi décommenter les deux lignes suivantes permettant de charger les certificats puis nous les créérons dans les répertoires définis.

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt 
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key

On enregistre puis on ferme le fichier. On va maintenant créer les certificats.

Création de la clé

$ openssl genrsa -out /etc/ssl/private/proftpd.key 2048

Création du certificat

$ openssl req -new -x509 -days 3650 -key /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt

Il ne nous reste plus qu’à relancer le serveur ftp pour prendre en compte la nouvelle configuration :

$ service proftpd restart

Pour un usage ullterieur non obligation pur l’utilisateur d’avoir acces au shell

Changement des droit
sudo chown -R martin /chemin/vers/dossier

sudo echo "/bin/false" >> /etc/shells