Recherche de site Web

Configuration d'un serveur FTP sécurisé à l'aide de SSL/TLS sur Ubuntu


Dans ce didacticiel, nous décrirons comment sécuriser un serveur FTP (VSFTPD signifie « Very Secure FTP Daemon ») à l'aide de SSL. /TLS dans Ubuntu 16.04/16.10.

Si vous souhaitez configurer un serveur FTP sécurisé pour les distributions basées sur CentOS, vous pouvez lire – Sécuriser un serveur FTP à l'aide de SSL/TLS sur CentOS

Après avoir suivi les différentes étapes de ce guide, nous aurons appris les principes fondamentaux de l'activation des services de cryptage sur un serveur FTP pour des transferts de données sécurisés.

Exigences

  1. Vous devez installer et configurer un serveur FTP dans Ubuntu

Avant d'aller plus loin, assurez-vous que toutes les commandes de cet article seront exécutées en tant que compte privilégié root ou sudo.

Étape 1 : Génération d'un certificat SSL/TLS pour FTP sur Ubuntu

1. Nous allons commencer par créer un sous-répertoire sous : /etc/ssl/ pour stocker le certificat SSL/TLS et les fichiers de clés si ce n'est pas le cas. ça n'existe pas :

sudo mkdir /etc/ssl/private

2. Générons maintenant le certificat et la clé dans un seul fichier, en exécutant la commande ci-dessous.

sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

La commande ci-dessus vous invitera à répondre aux questions ci-dessous, n'oubliez pas de saisir les valeurs applicables à votre scénario.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Étape 2 : Configuration de VSFTPD pour utiliser SSL/TLS sur Ubuntu

3. Avant d'effectuer toute configuration VSFTPD, pour ceux qui ont activé le pare-feu UFW, vous devez ouvrir les ports 990 et 40000. -50000 pour permettre aux connexions TLS et à la plage de ports passifs de définir respectivement dans le fichier de configuration VSFTPD :

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. Maintenant, ouvrez le fichier de configuration VSFTPD et définissez-y les détails SSL :

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

Ensuite, ajoutez ou localisez l'option ssl_enable et définissez sa valeur sur OUI pour activer l'utilisation de SSL. Encore une fois, car TLS est plus sécurisé que SSL, nous limiterons VSFTPD à utilisez plutôt TLS, en activant l'option ssl_tlsv1 :

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Ensuite, commentez les lignes ci-dessous à l'aide du caractère # comme suit :

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Ensuite, ajoutez les lignes ci-dessous pour définir l'emplacement du certificat SSL et du fichier de clé :

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Désormais, nous devons également empêcher les utilisateurs anonymes d'utiliser SSL, puis forcer toutes les connexions non anonymes à utiliser une connexion SSL sécurisée pour le transfert de données et à envoyer le mot de passe lors de la connexion :

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. De plus, nous pouvons utiliser les options ci-dessous pour ajouter plus de fonctionnalités de sécurité dans le serveur FTP. Avec l'option require_ssl_reuse=YES, toutes les connexions de données SSL doivent présenter la réutilisation de session SSL ; prouvant qu'ils connaissent le même secret principal que le canal de contrôle. Nous devrions donc le désactiver.

require_ssl_reuse=NO

De plus, nous pouvons définir quels chiffrements SSL VSFTPD autoriseront pour les connexions SSL cryptées avec l'option ssl_ciphers. Cela contribuera à contrecarrer tous les efforts des attaquants qui tentent de forcer un chiffrement spécifique dans lequel ils ont peut-être découvert des vulnérabilités :

ssl_ciphers=HIGH

8. Ensuite, définissons la plage de ports (port min et max) des ports passifs.

pasv_min_port=40000
pasv_max_port=50000

9. Pour activer le débogage SSL, c'est-à-dire que les diagnostics de connexion openSSL sont enregistrés dans le fichier journal VSFTPD, nous pouvons utiliser l'option debug_ssl :

debug_ssl=YES

Enregistrez enfin le fichier et fermez-le. Redémarrez ensuite le service VSFTPD :

systemctl restart vsftpd

Étape 3 : Vérifiez FTP avec les connexions SSL/TLS sur Ubuntu

10. Après avoir effectué toutes les configurations ci-dessus, testez si VSFTPD utilise désormais les connexions SSL/TLS en essayant d'utiliser FTP à partir de la ligne de commande comme ci-dessous.

Dans le résultat ci-dessous, un message d'erreur nous indique que VSFTPD ne peut autoriser que les utilisateurs (non anonymes) à se connecter à partir de clients sécurisés prenant en charge les services de cryptage.

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

La ligne de commande ne prend pas en charge les services de cryptage, ce qui entraîne l'erreur ci-dessus. Par conséquent, pour nous connecter en toute sécurité à un serveur FTP avec les services de cryptage activés, nous avons besoin d'un client FTP qui prend en charge les connexions SSL/TLS par défaut, tel que FileZilla.

Étape 4 : Installez FileZilla sur les clients pour connecter FTP en toute sécurité

FileZilla est un client FTP multiplateforme puissant et largement utilisé qui prend en charge FTP sur SSL/TLS et plus encore. Pour installer FileZilla sur une machine client Linux, utilisez la commande suivante.

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. Une fois l'installation terminée, ouvrez-la et accédez à Fichier=>Gestionnaire de sites ou (appuyez sur Ctrl+S) pour obtenir le Interface du gestionnaire de site ci-dessous.

13. Maintenant, définissez le nom de l'hôte/du site, ajoutez l'adresse IP, définissez le protocole à utiliser, le cryptage et le type de connexion comme dans la capture d'écran ci-dessous (utilisez les valeurs qui s'appliquent à votre scénario) :

Cliquez sur le bouton Nouveau site pour configurer une nouvelle connexion site/hôte.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Cliquez ensuite sur Connecter depuis l'interface ci-dessus pour saisir le mot de passe, puis vérifiez le certificat utilisé pour la connexion SSL/TLS, et cliquez à nouveau sur OK pour vous connecter au serveur FTP :

15. Maintenant, vous devriez vous être connecté avec succès au serveur FTP via une connexion TLS, consultez la section d'état de la connexion pour plus d'informations à partir de l'interface ci-dessous.

16. Enfin, transférons les fichiers de la machine locale vers le serveur FTP dans le dossier des fichiers, jetez un œil à l'extrémité inférieure de l'interface FileZilla pour afficher les rapports concernant les transferts de fichiers.

C'est tout! N'oubliez jamais que l'installation d'un serveur FTP sans activer les services de cryptage a certaines implications en matière de sécurité. Comme nous l'avons expliqué dans ce didacticiel, vous pouvez configurer un serveur FTP pour utiliser les connexions SSL/TLS afin d'implémenter la sécurité dans Ubuntu 16.04/16.10.

Si vous rencontrez des problèmes lors de la configuration de SSL/TLS sur le serveur FTP, utilisez le formulaire de commentaires ci-dessous pour partager vos problèmes ou vos réflexions concernant ce didacticiel/sujet.