Sécuriser un accès FTP
Sommaire
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:
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.
Faites ensuite « Connecter » :
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 !
Je voudrais vous dire félicitations pour la qualité des cours. Succincts mais concis
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
bonjour , moi aussi j’ai eu la même erreur qu toi
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é)
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