Recherche de site Web

Connexions ProFTPD sécurisées à l'aide du protocole TLS/SSL sur RHEL/CentOS 7


De par sa nature, le protocole FTP a été conçu comme un protocole non sécurisé et toutes les données et mots de passe sont transférés en texte brut, ce qui rend le travail d'un tiers très facile pour intercepter toutes les transactions client-serveur FTP, en particulier les noms d'utilisateur et mots de passe utilisés dans le processus d’authentification.

Exigences

  1. Installation du serveur ProFTPD sur RHEL/CentOS 7
  2. Activer le compte anonyme pour le serveur Proftpd dans RHEL/CentOS 7

Ce didacticiel vous expliquera comment sécuriser et chiffrer la communication FTP sur le serveur ProFTPd dans CentOS/RHEL 7. , en utilisant TLS (Transport Layer Security) avec l'extension FTPS explicite (pensez à FTPS comme à ce qu'est HTTPS pour le protocole HTTP).

Étape 1 : Créer un fichier de configuration du module Proftpd TLS

1. Comme indiqué dans le didacticiel Proftpd précédent concernant le compte anonyme, ce guide utilisera également la même approche pour gérer les futurs fichiers de configuration de Proftpd en tant que modules, à l'aide de enabled_mod et < Répertoires b>disabled_mod, qui hébergeront toutes les fonctionnalités étendues du serveur.

Alors, créez un nouveau fichier avec votre éditeur de texte préféré nommé tls.conf dans le chemin disabled_mod Proftpd et ajoutez les directives suivantes.

nano /etc/proftpd/disabled_mod/tls.conf

Ajoutez l’extrait de configuration du fichier TLS suivant.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. Si vous utilisez des navigateurs ou des clients FTP qui ne prennent pas en charge les connexions TLS, commentez la ligne TLSRequired on afin d'autoriser les connexions TLS et non-TLS en même temps et évitez le message d'erreur comme dans la capture d'écran ci-dessous.

Étape 2 : Créer des fichiers de certificat SSL pour TLS

3. Après avoir créé le fichier de configuration du module TLS. qui activera FTP sur TLS sur Proftpd, vous devez générer un certificat et une clé SSL afin d'utiliser une communication sécurisée sur le serveur ProFTPD à l'aide du package OpenSSL.

yum install openssl

Vous pouvez utiliser une seule commande longue pour générer un certificat SSL et des paires de clés, mais pour simplifier les choses, vous pouvez créer un simple script bash qui générera des paires SSL avec le nom souhaité et attribuera les autorisations correctes pour le fichier de clé.

Créez un fichier bash nommé proftpd_gen_ssl sur /usr/local/bin/ ou sur tout autre chemin système exécutable (défini par la variable ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Ajoutez-y le contenu suivant.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Après avoir créé le fichier ci-dessus, attribuez-lui des autorisations d'exécution, assurez-vous que le répertoire /etc/ssl/private existe et exécutez le script pour créer un certificat et une clé SSL. paires.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

Fournissez le certificat SSL avec les informations requises qui sont explicites, mais faites attention au Nom commun qui correspond à votre Nom de domaine entièrement qualifiéFQDN de votre hôte. b>.

Étape 3 : Activer TLS sur le serveur ProFTPD

5. Comme le fichier de configuration TLS créé précédemment pointe déjà vers le bon fichier de certificat SSL et de clé, il ne reste plus qu'à activer le module TLS en créant un lien symbolique de tls.conf dans le répertoire enabled-mod et redémarrez le démon ProFTPD pour appliquer les modifications.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. Pour désactiver le module TLS, supprimez simplement le lien symbolique tls.conf du répertoire enabled_mod et redémarrez le serveur ProFTPD pour appliquer les modifications.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

Étape 4 : Ouvrez le pare-feu pour autoriser la communication FTP sur TLS

7. Pour que les clients puissent accéder à ProFTPD et sécuriser les fichiers de transfert en Mode passif, vous devez ouvrir toute la plage de ports entre 1024 et 65534 sur le pare-feu RHEL/CentOS, à l'aide des commandes suivantes.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

C'est ça. Votre système est maintenant prêt à accepter la communication FTP via TLS du côté client.

Étape 5 : Accédez à ProFTPD via TLS à partir des clients

8. Les navigateurs Web n'ont généralement pas de prise en charge intégrée du protocole FTP sur TLS, de sorte que toutes les transactions sont transmises via FTP non crypté. L'un des meilleurs clients FTP est FileZilla, qui est entièrement Open Source et peut fonctionner sur presque tous les principaux systèmes d'exploitation.

Pour accéder à FTP via TLS depuis FileZilla, ouvrez le Site Manager, choisissez FTP sur Protocole et Exiger un FTP explicite sur TLS sur Dans le menu déroulant Cryptage, sélectionnez votre Type de connexion comme Normal, saisissez vos informations d'identification FTP et appuyez sur Connecter pour communiquer. avec le serveur.

9. Si c'est la première fois que vous vous connectez au serveur ProFTPD, une fenêtre contextuelle avec le nouveau certificat devrait apparaître, cochez la case qui dit Toujours faire confiance au certificat pour l'avenir sessions et appuyez sur OK pour accepter le certificat et vous authentifier sur le serveur ProFTPD.

Si vous envisagez d'utiliser d'autres clients que FileZilla pour accéder en toute sécurité aux ressources FTP, assurez-vous qu'ils prennent en charge le protocole FTP sur TLS. Quelques bons exemples de clients FTP pouvant parler FTPS sont WinSCP pour les plates-formes Windows et gFTP ou LFTP (ligne de commande) pour NIX.