Installer Vsftpd avec SSL/TLS sur Ubuntu 20.04

Vsftpd (c’est-à-dire un démon FTP très sécurisé) est un logiciel de serveur FTP pour Linux et d’autres systèmes de type Unix. Un logiciel de serveur FTP facilite le transfert de fichiers d’un ordinateur client vers le serveur et vice versa.

Dans ce tutoriel, vous apprendrez à installer Vsftpd au Ubuntu 20.04 et activez le transfert de fichiers sécurisé (FTPS) via SSL/TLS.

Conditions préalables

  • Un système Linux Ubuntu 20.04
  • Un utilisateur avec sudo aptitude
  • Un client FTP compatible SSL tel que FileZilla

Installer Vsftpd sur Ubuntu

Vsftpd est disponible dans le référentiel de packages Ubuntu par défaut. Vous pouvez commencer par mettre à jour les packages disponibles avec la commande ci-dessous.

$ sudo mise à jour appropriée

Ensuite, exécutez la commande suivante pour installer Vsftpd.

$ sudo apt installer vsftpd

Enter Oui si vous êtes invité à poursuivre l’installation.

Une fois Vsftpd installé avec succès, vous pouvez vérifier la version avec la commande ci-dessous.

$ vsftpd -v

Vérifiez également l’état du serveur Vsftpd comme suit.

$ sudo état systemctl vsftpd

Vérifier l’état du serveur Vsftpd

le vsftpd le service doit déjà être actif. presse q pour revenir à l’invite de commande.

Si le service vsftpd n’est pas déjà actif, vous pouvez le démarrer avec la commande suivante.

$ sudo systemctl démarrer vsftpd

Configurer Vsftpd

Il existe de nombreuses options que vous pouvez configurer pour vsftpd, mais nous n’examinerons que les bases dans ce didacticiel. Ouvrez le fichier de configuration vsftpd avec la commande suivante.

$ sudo nano /etc/vsftpd.conf

Vous verrez que les différentes options de vsftpd sont bien expliquées dans le fichier de configuration. Il vous suffit de lire les instructions pour comprendre ce que vous souhaitez activer ou désactiver. Vous trouverez ci-dessous quelques exemples.

Configurer l’accès FTP anonyme

Par défaut, le FTP anonyme est désactivé. Nous vous recommandons de laisser ce paramètre par défaut tel quel. Cependant, si pour une raison quelconque vous souhaitez activer l’accès FTP anonyme à des fins de test, modifiez la valeur de anonyme_activer option de NON à OUI.

Pour l’instant, laissez-le tel quel.

Configurer l'accès FTP anonyme pour vsftpdConfigurer l’accès FTP anonyme pour vsftpd

Autoriser les utilisateurs locaux à se connecter

Les utilisateurs locaux sont autorisés à se connecter par défaut. Si vous souhaitez empêcher les utilisateurs locaux de se connecter au serveur Vsftpd, modifiez la valeur de local_enable de OUI à NON.

Autoriser les utilisateurs locaux à se connecter au serveur VsftpdAutoriser les utilisateurs locaux à se connecter au serveur Vsftpd

Vous pouvez également autoriser uniquement des utilisateurs locaux spécifiques à se connecter au serveur Vsftpd. Pour ce faire, assurez-vous que local_enable est réglé sur OUI.

Après cela, ajoutez les lignes suivantes en dessous.

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Save et close le fichier vsftpd.conf.

Ensuite, créez le fichier userlist avec la commande suivante et entrez les utilisateurs autorisés un par ligne.

$ sudo nano /etc/vsftpd.userlist

Save et close le fichier de liste d’utilisateurs.

Redémarrez vsftpd avec :

$ sudo systemctl redémarrer vsftpd

Activer la commande d’écriture FTP

Pour permettre aux utilisateurs FTP de créer, supprimer, renommer et enregistrer des fichiers, décommentez le write_enable option et assurez-vous qu’elle est définie sur OUI.

Activer la commande d'écriture FTPActiver la commande d’écriture FTP

Avant d’aller plus loin, connectons-nous au serveur Vsftpd pour confirmer qu’il fonctionne. Pour l’instant, enregistrez les modifications et close le fichier de configuration vsftpd.

Connectez-vous au serveur Vsftpd

Pour cela, créons un utilisateur test et attribuons un mot de passe comme suit.

$ sudo useradd -m myftpuser $ sudo mot de passe myftpuser

Noter: Si vous avez activé le vsftpd liste d’utilisateur plus tôt, n’oubliez pas d’ajouter l’utilisateur ftp à /etc/vsftpd.userlist en conséquence. Par défaut, les utilisateurs ont un accès ssh, il est recommandé de désactiver l’accès shell pour les utilisateurs FTP.

Maintenant, lancez un client FTP compatible SSL tel que FileZilla, puis connectez-vous à l’aide de l’utilisateur de test nouvellement créé.

Dans mon cas, FileZilla m’a informé que le serveur n’est pas sécurisé car il ne prend pas en charge FTP sur TLS.

Notification de serveur FTP non sécuriséNotification de serveur FTP non sécurisé

Annulez la connexion. Corrigons cela dans la section suivante.

Activer SSL/TLS pour un transfert de fichiers sécurisé

Pour activer le transfert de fichiers sécurisé via TLS, procédez comme suit.

Tout d’abord, ouvrez le fichier de configuration vsftpd avec la commande ci-dessous.

$ sudo nano /etc/vsftpd.conf

Ensuite, recherchez le rsa_cert_file et rsa_private_key_file options et mettez à jour les valeurs comme indiqué ci-dessous.

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

Aussi, cherchez ssl_enable et remplacez la valeur par OUI.

ssl_enable=YES

Activer TLS/SSL pour VsftpdActiver TLS/SSL pour Vsftpd

Save et close le fichier de configuration vsftpd.

Générer une clé privée et un certificat

Maintenant, vous devez créer une clé privée et générer un certificat TLS/SSL avec openssl. Vous pouvez utiliser le certificat SSL gratuit de Let’s Encrypt si vous avez un domaine pointant vers le serveur FTP.

Pour générer une clé privée, exécutez :

$ sudo openssl genrsa -out /etc/ssl/private/vsftpd.key

Ensuite, générez une demande de signature de certificat avec la commande ci-dessous. Vous serez invité à fournir des informations telles que votre pays, votre ville, votre adresse e-mail, etc. Veuillez lire attentivement les instructions.

$ sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

Maintenant, générez et signez le certificat qui sera valable 365 jours comme suit.

$ sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

Redémarrez vsftpd avec :

$ sudo systemctl redémarrer vsftpd

Essayez à nouveau de vous connecter au serveur Vsftpd.

Connexion FTP sécurisée via TLSConnexion FTP sécurisée via TLS

FileZilla a sûrement pu se connecter en toute sécurité via TLS cette fois-ci. Vous pouvez choisir en toute sécurité l’option de toujours faire confiance à ce certificat dans les sessions futures. Puis clique d’accord pour procéder à la connexion.

Certificat auto-signé de confianceCertificat auto-signé de confiance

Si vous essayez de vous connecter au serveur FTP via la ligne de commande qui ne prend pas en charge FTP sur TLS, vous obtiendrez une erreur. Pour example:

$ ftp 192.168.100.168

Erreur FTP sans TLSErreur FTP sans TLS

C’est une autre preuve que votre serveur Vsftpd est bien activé pour le transfert de fichiers sécurisé via TLS.

Conclusion

Dans ce tutoriel, nous vous avons montré comment installer un serveur Vsftpd sur Ubuntu 20.04. Nous avons également décrit comment activer le transfert de fichiers sécurisé via le protocole TLS. Nous n’avons couvert que les options de base de Vsftpd dans cet article, mais vous pouvez explorer plus d’options sur le options de configuration vsftpd page de manuel.