GNU/Linux >> Tutoriels Linux >  >> Panels >> cPanel

Comment sécuriser vsFTPd avec SSL/TLS

Démon FTP très sécurisé, ou simplement vsFTPd est un logiciel léger avec une grande capacité de personnalisation. Dans ce tutoriel, nous allons sécuriser une installation déjà existante sur un système Debian en utilisant notre propre certificat SSL/TLS auto-signé. Bien qu'il soit écrit pour Debian, il devrait fonctionner sur la plupart des distributions Linux telles que Ubuntu et CentOS par exemple.

Installation de vsFTPd

Sur un nouveau VPS Linux, vous devez d'abord installer vsFTPd. Bien que vous trouverez les étapes de base pour installer vsFTPd dans ce tutoriel, je vous recommande de lire également ces deux tutoriels plus détaillés :Configurer vsFTPd sur Debian/Ubuntu et Installer vsFTPd sur CentOS. Toutes les étapes concernant l'installation y sont expliquées plus en détail.

Installation sur Debian/Ubuntu :

apt-get install vsftpd

Installation sur CentOS :

yum install epel-release
yum install vsftpd

Configuration Ouvrez le fichier de configuration :/etc/vsftpd.conf dans votre éditeur de texte préféré, dans ce tutoriel nous utilisons nano .

nano /etc/vsftpd.conf

Collez les lignes suivantes dans la configuration :

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

Terminez en redémarrant votre démon vsFTPd :

/etc/init.d/vsftpd restart

Vous devriez maintenant pouvoir vous connecter en tant qu'utilisateur local via FTP, passons maintenant à la sécurisation de ce logiciel.

Générer un certificat auto-signé

Un certificat auto-signé est généralement utilisé dans un protocole d'accord de clé publique, vous allez maintenant utiliser openssl pour générer une clé publique et une clé privée correspondante. Tout d'abord, nous devons créer un répertoire pour stocker ces deux fichiers clés, de préférence dans un endroit sûr auquel les utilisateurs normaux ne peuvent pas accéder.

mkdir -p /etc/vsftpd/ssl

Passons maintenant à la génération proprement dite du certificat, nous allons stocker les deux clés dans le même fichier (/etc/vsftpd/ssl/vsftpd.pem ):

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

Après avoir exécuté la commande, il vous sera posé quelques questions telles que le code du pays, l'état, la ville, le nom de l'organisation, etc. Utilisez vos propres informations ou celles de votre organisation. Maintenant, la ligne la plus importante est le nom commun qui doit correspondre à l'adresse IP de votre VPS, ou un nom de domaine pointant vers celui-ci.

Ce certificat sera valide pendant 365 jours (~ 1 an), il utilisera le protocole d'accord de clé RSA avec une longueur de clé de 4096 bits, et le fichier contenant les deux clés sera stocké dans le nouveau répertoire que nous venons de créer. Pour plus de détails sur la longueur de la clé et sa relation avec la sécurité, consultez ceci :Encryption II recommendations.

Installer le nouveau certificat dans vsFTPd

Pour commencer à utiliser notre nouveau certificat et ainsi fournir un chiffrement, nous devons ouvrir à nouveau le fichier de configuration :

nano /etc/vsftpd.conf

Nous devons ajouter les chemins d'accès à nos nouveaux fichiers de certificat et de clé. Puisqu'ils sont stockés dans le même fichier, il devrait en être de même dans la configuration.

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

Nous devons ajouter cette ligne pour nous assurer que SSL sera activé :

ssl_enable=YES

En option, nous pouvons empêcher les utilisateurs anonymes d'utiliser SSL, car le cryptage n'est pas nécessaire sur un serveur FTP public.

allow_anon_ssl=NO

Ensuite, nous devons spécifier quand utiliser SSL/TLS, cela permettra le cryptage à la fois pour le transfert de données et les identifiants de connexion

force_local_data_ssl=YES
force_local_logins_ssl=YES

Nous pouvons également spécifier les versions et les protocoles à utiliser. TLS est généralement plus sécurisé que SSL et nous pouvons donc autoriser TLS et en même temps bloquer les anciennes versions de SSL.

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Exiger la réutilisation de SSL et l'utilisation de chiffrements élevés contribuera également à améliorer la sécurité. À partir des pages de manuel de vsFTPd :

require_ssl_reuse Si défini sur oui, toutes les connexions de données SSL doivent présenter une réutilisation de session SSL (ce qui prouve qu'elles connaissent le même secret principal que le canal de contrôle). Bien qu'il s'agisse d'une valeur par défaut sécurisée, elle peut casser de nombreux clients FTP, vous pouvez donc la désactiver. Pour une discussion sur les conséquences, voir http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html (Ajouté dans v2.1.0).

ssl_ciphers Cette option peut être utilisée pour sélectionner les chiffrements SSL que vsftpd autorisera pour les connexions SSL chiffrées. Voir la page de manuel ciphers pour plus de détails. Notez que la restriction des chiffrements peut être une précaution de sécurité utile car elle empêche les parties distantes malveillantes de forcer un chiffrement avec lequel elles ont rencontré des problèmes.

require_ssl_reuse=YES
ssl_ciphers=HIGH

Terminez en redémarrant le vsftpd démon

/etc/init.d/vsftpd restart

Confirmer l'installation

Et voilà, vous devriez maintenant pouvoir vous connecter à votre serveur et confirmer que tout fonctionne. Si vous utilisez FileZilla, une boîte de dialogue contenant les informations de votre organisation (ou tout ce que vous avez entré lors de la génération du certificat plus tôt) devrait s'ouvrir lors de la connexion. La sortie devrait alors ressembler à ceci :

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.

Pour en savoir plus sur vsFTPd, consultez ses pages de manuel :

man vsftpd

cPanel
  1. Comment sécuriser un compte compatible cPanel avec un certificat SSL Lets Encrypt

  2. Comment sécuriser un compte compatible cPanel avec un certificat Sectigo SSL

  3. Installer Vsftpd avec SSL/TLS sur Ubuntu 20.04 - Meilleure Procédure ?

  4. Comment sécuriser le nom d'hôte Plesk sur le port 8443 avec un certificat SSL

  5. Comment sécuriser les connexions avec des certificats SSL/TLS

Comment installer le serveur FTP vsftpd avec TLS sur Debian 10

Comment sécuriser le socket TCP de Docker avec TLS

Comment sécuriser un nom d'hôte Plesk avec SSL

Comment surveiller les certificats SSL/TLS avec Checkmk

Comment sécuriser Nginx avec le certificat SSL Let's Encrypt

Comment configurer vsftpd pour utiliser SSL/TLS sur un Ubuntu 20.04