Sécuriser un accès FTP

I. Présentation

L’installation d’un service FTP est relativement simple en soit. Le fait est qu’une fois opérationnel, un service FTP comprends quelques problèmes de sécurité. Notamment en ce qui concerne les mots de passe utilisateurs. Pour installer un service FTP opérationnel, je vous amène à ce tutoriel .

II. Le SSL, pour quoi faire ?

Lors d’une connexion client – serveur, le mot de passe de l’utilisateur voulant se connecter passe sur le réseau. Avec un sniff fait sur le réseau à l’aide de Wireshark, nous pouvons voir le résultat suivant:

FTPSSL1

Ici, l’utilisateur micka amorce une connexion avec le serveur (192.168.1.140) et déclare être l’utilisateur «micka» (seconde ligne). La troisième ligne est une demande de mot de passe du serveur pour l’utilisateur « micka ».

La réponse de l’utilisateur est donc son mot de passe et l’échange se termine avec un succès du log de l’utilisateur. Le problème est qu’avec un simple sniff réseau et en arrivant au bon moment, on voit très clairement l’échange et le mot de passe/Login utilisateur.

III. Sécurisation SSL/TLS pour crypter les échanges

Nous allons mettre en place un certificat SSL/TLS et un système de clé asymétrique qui aura pour but d’une part de certifier que nous nous adressons bien au bon serveur et d’autre part de chiffrer l’échange de données sur le réseau.

Il faut tout d’abord installer le service SSL :

apt-get install openssl
cd /etc/ssl
# creation de la clé privée qui sera chiffrée en des3 sur 2048 bits
openssl genrsa -des3 -out private.key 2048
# Création des infos relatives au certificat
openssl req -new -key private.key -out ftp.csr
#Création de la clé publique à partir de la clé privée
openssl rsa -in private.key -out public.key
# Création du certificat à l’aide des infos précédemment entrées et de la clé privée
openssl x509 -req -days 365 -in ftp.csr -signkey private.key -out certif.crt

Une fois les éléments nécessaire à la mise en place du chiffrement prêt, il nous faut adapter la configuration du serveur FTP pour y accéder en FTPS et protéger les mots de passe sur le réseau. Allez dans le fichier de configuration de votre FTP et dé-commentez la ligne « include tls.conf». Il faut préciser le chemin vers les certificats et la clé publique dans le fichier /etc/proftpd/tls.conf et dé-commenter les lignes suivantes.

TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
CertificateFile : /etc/ssl/certif.crt # Chemin vers le certificat
CertificateKeyFile : /etc/ssl/private.key # Chemin vers la clé privée
TLSOptions AllowClientRenegotations
TLSVerifyClient on
TLSRequired on
# N’oubliez pas de redémarrer votre service FTP
Service proftpd restart

IV. Connexion en FTPS avec FileZilla

Attention ! Avec Filezilla, il vous faut utiliser le menu de connexion avancé pour vous connecter en FTPS (File Transfert Protocol Secure). Faites alors « Créer un nouveau site », puis entrez les informations relatives à votre serveur FTP, utilisez le mode de connexion explicite par TLS et un type de Log normal.

FTPSSL3

Faites ensuite « Connecter » :

FTPSSL2

Nous voyons donc bien que l’authentification TLS est demandée et avec un nouveau sniff, vous verrez que les données sont totalement chiffrées, ce qui est une bonne nouvelle pour nos identifiants !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 525.Voir tous les posts

5 thoughts on “Sécuriser un accès FTP

  • Je voudrais vous dire félicitations pour la qualité des cours. Succincts mais concis

    Répondre
  • Bonjour, j’ai fait comme tu as fait, mais gros problème lors de la dernière étape : service proftpd restart

    Voici mes erreurs : ExecStart=/etc/init.d/proftpd start (code=exited, status=1/FAILURE)

    et : systemd[1]: Failed to start LSB: Starts ProFTPD daemon.

    Besoin d’aide stp

    Répondre
    • bonjour , moi aussi j’ai eu la même erreur qu toi

      Répondre
  • Bonjour,

    Tous tes tutos sont utiles et aident grandement.
    Cependant il faudrait penser à utiliser le bon vocabulaire, en français on dit :
    – chiffrer pour rendre illisible un message à l’aide d’une clé
    – déchiffrer pour lire une donnée dont on possède la clé
    – décrypter est l’action de casser un chiffrement (donc lire une donnée chiffrée sans la clé)
    – crypter n’a donc aucun sens (on ne peut pas chiffrer sans clé)

    Répondre
    • Bonsoir Florentin,
      Merci pour ton commentaire. J’ai mis à jour l’article pour corriger les termes incorrects. Il a été publié il y a presque 10 ans, et à l’époque, on était peut être pas autant au point sur ces termes. 😉 – Plus largement, il faudrait que je révise cet article.
      Bonne soirée
      Florian

      Répondre

Répondre à Yaël 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.