Ce didacticiel fournit aux lecteurs des instructions sur l'installation et la configuration d'un serveur ftp VSFTPD sur un serveur RHEL 8 / CentOS 8. Ce guide commencera d'abord par une configuration par défaut de base à laquelle nous ajouterons une configuration TLS sécurisée, un accès anonyme et une configuration en mode passif.
Dans ce didacticiel, vous apprendrez :
- Comment installer le serveur ftp VSFTPD.
- Comment ouvrir le pare-feu pour les connexions FTP entrantes.
- Comment sécuriser la connexion FTP avec TLS.
- Comment autoriser les connexions anonymes.

Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | vsftpd :version 3.0.3 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Instructions de configuration de base de VSFTPD étape par étape
Dans cette section, nous allons simplement installer le serveur ftp VSFTPD, ouvrir les ports du pare-feu et tester les connexions.
- Installez le package VSFTPD.
vsftpd
le package peut être installé à l'aide du gestionnaire de packages dnf :# dnf install vsftpd
- Faites une copie et examinez le fichier de configuration VSFTPD par défaut. Faites d'abord une copie du fichier de configuration d'origine :
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
Commençons avec un fichier de configuration propre :
# grep -v ^# /etc/vsftpd/vsftpd.conf_orig > /etc/vsftpd/vsftpd.conf
Votre nouveau
/etc/vsftpd/vsftpd.conf
la configuration doit ressembler à celle ci-dessous :anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES
- Démarrez le démon VSFTPD et configurez-le pour qu'il démarre après le redémarrage :
# systemctl start vsftpd # systemctl enable vsftpd
- Ouvrir les connexions entrantes du port FTP 21 du pare-feu :
# firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
- Tester la connexion FTP depuis l'hôte distant à l'aide de
ftp
commande. Utilisez vos informations d'identification d'utilisateur habituelles pour vous connecter. Par exemple, créez une connexion FTP pour hébergerrhel8-ftp.linuxconfig.org
:# ftp rhel8-ftp.linuxconfig.org Connected to rhel8-ftp.linuxconfig.org. 220 (vsFTPd 3.0.3) Name (rhel8-ftp.linuxconfig.org:lubos): linuxconfig 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Ceci conclut la configuration et les tests de base de VSFTPD. Dans la section suivante, nous ajouterons une couche de sécurité en configurant notre serveur ftp VSFTPD à l'aide de TLS.
Sécuriser VSFTPD avec des instructions étape par étape de connexion TLS
Dans cette section, nous allons simplement installer le serveur ftp VSFTPD, ouvrir les ports du pare-feu et tester les connexions.
- Installez OpenSSL. Ce package est peut-être déjà disponible sur votre système RHEL8. Pour installer OpenSSL, exécutez :
# dnf install openssl
- Générez un certificat auto-signé ou utilisez votre certificat existant. Dans cet exemple, nous allons générer la clé privée
vsftpd.key
et le certificat signévsftpd.crt
. Vous serez invité à répondre à quelques questions. N'hésitez pas à laisser la plupart d'entre eux par défaut saufCommon Name
:# openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/vsftpd.key -x509 -days 365 -out /etc/pki/tls/certs/vsftpd.crt Generating a RSA private key ..................+++++ ....+++++ writing new private key to '/etc/pki/tls/private/vsftpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:rhel8-ftp.linuxconfig.org Email Address []: #
- Configurez VSFTPD pour la connexion chiffrée TLS. Ouvrez votre VSFTPD existant
/etc/vsftpd/vsftpd.conf
configuration et ajoutez la configuration suivante en plus des lignes existantes :rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt rsa_private_key_file=/etc/pki/tls/private/vsftpd.key ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
- Redémarrer VSFTPD :
# systemctl restart vsftpd
- Testez la connexion ftp TLS VSFTPD.
REMARQUE
Veuillez noter qu'à moins que vous n'ayez ouvert les ports appropriés sur le pare-feu de votre serveur RHEL 8, vous ne pourrez pas établir de connexion FTP passive à partir d'un hôte distant à ce stade.Utilisez un client FTP qui supporte les connexions TLS comme par exemple FileZilla :
Établissement de la connexion TLS au serveur VSFTPD ftp RHEL 8.
Connecté au serveur VSFTPS RHEL 8 avec une connexion TLS sécurisée.
Tout semble être en ordre. Dans la section suivante, nous ajouterons une fonctionnalité de connexion passive à notre serveur ftp VSFTPD.
Ajouter le mode passif aux instructions étape par étape de VSFTPD
- Ouvrez votre VSFTPD existant
/etc/vsftpd/vsftpd.conf
configuration et ajoutez la configuration suivante en plus des lignes existantes :pasv_enable=YES pasv_min_port=10000 pasv_max_port=10100
- Redémarrer VSFTPD :
# systemctl restart vsftpd
- Ouvrir la plage de ports du pare-feu pour accueillir les ports passifs :
# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp # firewall-cmd --reload
Autoriser l'accès anonyme VSFTPD instructions étape par étape
- Ouvrez votre VSFTPD existant
/etc/vsftpd/vsftpd.conf
configuration et modifiez leanonymous_enable
etallow_anon_ssl
lignes àYES
:anonymous_enable=YES allow_anon_ssl=YES
- Redémarrer VSFTPD :
# systemctl restart vsftpd
Annexe
Pour votre commodité, le dernier /etc/vsftpd/vsftpd.conf
fichier de configuration est illustré ci-dessous :
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100