FTP est un protocole très peu sûr car tous les mots de passe et toutes les données sont transférés en texte clair. En utilisant TLS, toute la communication peut être cryptée, ce qui rend le FTP beaucoup plus sécurisé. Cet article explique comment configurer ProFTPd avec TLS sur un serveur Ubuntu 15.04, comment ajouter un utilisateur FTP et utiliser FileZilla pour se connecter en toute sécurité avec TLS.
1 Remarque préliminaire
Dans ce tutoriel, j'utiliserai le nom d'hôte server1.example.com avec l'adresse IP 192.168.1.100. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant.
Étant donné que nous devons exécuter toutes les étapes de ce didacticiel avec les privilèges root, nous pouvons soit ajouter la chaîne sudo à toutes les commandes de ce didacticiel, soit nous devenons root dès maintenant en tapant
sudo su
2 Installer ProFTPd et OpenSSL
OpenSSL est requis par TLS ; pour installer ProFTPd et OpenSSL, nous lançons simplement :
apt-get install proftpd openssl
Une question vous sera posée :
Exécutez proftpd :<-- autonome
Pour des raisons de sécurité, vous devez ajouter les lignes suivantes à /etc/proftpd/proftpd.conf :
nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
La première option permet le chrootage des utilisateurs FTP dans leur répertoire personnel et la deuxième option active un message ServerIdent qui ne contient aucune information sur le logiciel, la version ou le système d'exploitation du serveur FTP utilisé afin qu'un attaquant potentiel n'obtienne pas ces détails sur la plaque d'argent.
3 Créer le certificat SSL pour TLS
Pour utiliser TLS, nous devons créer un certificat SSL. Je le crée dans /etc/proftpd/ssl, donc je crée d'abord ce répertoire :
mkdir /etc/proftpd/ssl
Ensuite, nous pouvons générer le certificat SSL comme suit :
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Nom du pays (code à 2 lettres) [AU] :<-- Saisissez le nom de votre pays (par exemple, "DE").
Nom de l'État ou de la province (nom complet) [Some-State] :<-- Saisissez votre état ou Nom de la province.
Nom de la localité (par exemple, ville) [] :<-- Entrez votre ville.
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] :<-- Entrez le nom de votre organisation (par exemple, le nom de votre entreprise).
Nom de l'unité organisationnelle (par exemple, section) [] :<-- Saisissez le nom de votre unité organisationnelle (par exemple, "Service informatique").
Nom commun (par exemple, VOTRE nom) [] :<-- Saisissez le nom de domaine complet du système (par exemple, "serveur1.exemple.com").
Adresse e-mail [] :<-- Saisissez votre adresse e-mail.
et sécurisez les fichiers de certificat générés.
chmod 600 /etc/proftpd/ssl/proftpd.*
4 Activer TLS dans ProFTPd
Pour activer TLS dans ProFTPd, ouvrez /etc/proftpd/proftpd.conf...
nano /etc/proftpd/proftpd.conf
... et décommentez la ligne Include /etc/proftpd/tls.conf :
[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]
Ouvrez ensuite /etc/proftpd/tls.conf et faites-le ressembler à ceci :
nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
</IfModule>
Si vous utilisez TLSRequired on, seules les connexions TLS sont autorisées (cela verrouille tous les utilisateurs avec d'anciens clients FTP qui ne prennent pas en charge TLS); en commentant cette ligne ou en utilisant TLSRequired off, les connexions TLS et non-TLS sont autorisées, selon ce que le client FTP prend en charge.
Redémarrez ensuite ProFTPd :
systemctl restart proftpd.service
C'est ça. Vous pouvez maintenant essayer de vous connecter en utilisant votre client FTP; cependant, vous devez configurer votre client FTP pour utiliser TLS (ceci est indispensable si vous utilisez TLSRequired sur) - voir le chapitre suivant pour savoir comment faire cela avec FileZilla.
Si vous rencontrez des problèmes avec TLS, vous pouvez consulter le fichier journal TLS /var/log/proftpd/tls.log.
5 Ajouter un utilisateur FTP
La configuration ProFTPD utilisée dans ce didacticiel authentifie les utilisateurs par rapport à la base de données des utilisateurs du système Linux (/etc/passwd et /etc/shadow). Dans cette étape, je vais ajouter un utilisateur "tom" à utiliser uniquement pour la connexion FTP.
useradd --shell /bin/false tom
Cela ajoutera l'utilisateur "tom" avec le shell /bin/false. Ce shell assure qu'il peut se connecter par FTP mais pas par SSH. Le répertoire personnel d'un utilisateur est /home/[USERNAME] par défaut, dans notre cas /home/tom. ProFTPD est configuré pour emprisonner l'utilisateur dans son répertoire personnel, afin qu'il ne puisse pas accéder aux fichiers système en dehors de /home/tom. Si vous souhaitez définir un répertoire personnel différent, utilisez la commande ci-dessous :
useradd --home /srv/tomftp --create-home --shell /bin/false tom
Cette commande définit un répertoire personnel différent, dans le cas de cet exemple, le répertoire /srv/tomftp pour l'utilisateur.
L'étape suivante consiste à définir un mot de passe pour l'utilisateur tom, exécutez la commande passwd :
passwd tom
Et entrez le nouveau mot de passe deux fois, lorsque vous y êtes invité.
6 Configuration de FileZilla pour TLS
Pour utiliser FTP avec TLS, vous avez besoin d'un client FTP prenant en charge TLS, tel que FileZilla.
Dans FileZilla, ouvrez le gestionnaire de site :
Sélectionnez le serveur qui utilise ProFTPd avec TLS ; dans le menu déroulant Type de serveur, sélectionnez FTPES au lieu de FTP normal :
Vous pouvez maintenant vous connecter au serveur. Si vous le faites pour la première fois, vous devez accepter le nouveau certificat SSL du serveur :
Si tout se passe bien, vous devriez maintenant être connecté sur le serveur :
7 liens
- ProFTPd :http://www.proftpd.org/
- FileZilla :http://filezilla-project.org/
- Ubuntu :http://www.ubuntu.com/