Recherche de site Web

Comment installer, configurer et sécuriser le serveur FTP dans RHEL 8


FTP (signifie « File Transfer Protocol ») est un protocole réseau standard et ancien utilisé pour le transfert de fichiers entre un client et un serveur sur un réseau informatique. Il est construit sur une architecture de modèle client-serveur, qui offre un accès aux fichiers et répertoires via un client FTP, pour télécharger des fichiers sur le serveur ainsi que pour télécharger des fichiers à partir de celui-ci.

Dans notre article précédent, nous avons expliqué comment installer, configurer et sécuriser le serveur FTP dans CentOS/RHEL 7 pour le transfert de fichiers informatiques entre un client et un serveur sur un réseau informatique.

Dans cet article, nous décrirons comment installer, configurer et sécuriser un serveur FTP sur RHEL 8 pour le partage de fichiers de base entre ordinateurs.

Installer le serveur FTP sur RHEL 8

1. Pour installer le package FTP sécurisé, utilisez la commande dnf suivante.

dnf install vsftpd

2. Une fois l'installation terminée, vous devez démarrer le service vsftpd entre-temps, lui permettre de démarrer automatiquement au démarrage du système, puis vérifier l'état à l'aide des commandes systemctl suivantes.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Ensuite, vous devez ouvrir le port FTP 21 sur le pare-feu du système pour autoriser l'accès aux services FTP à partir de systèmes externes.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

Configurer le serveur FTP sur RHEL 8

4. Pour configurer un serveur FTP, vous devez effectuer la sauvegarde du fichier de configuration FTP principal /etc/vsftpd/vsftpd.conf à l'aide de la commande de copie suivante.

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. Ouvrez ensuite le fichier de configuration à l'aide de votre éditeur de ligne de commande préféré.

vi /etc/vsftpd/vsftpd.conf

Définissez les paramètres suivants avec ces valeurs correspondantes (voir man vsftpd.conf pour la signification des paramètres de configuration) :

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        

6. Ensuite, vous devez configurer FTP pour autoriser/refuser l'accès des utilisateurs aux services FTP en fonction du fichier de liste d'utilisateurs /etc/vsftpd.userlist.

Par défaut, les utilisateurs répertoriés dans le fichier /etc/vsftpd.userlist se voient refuser l'accès avec l'option userlist_deny définie sur OUI, si userlist_enable =OUI, cela permet l'accès.

Mais la définition du paramètre userlist_deny=NO modifie le paramètre, ce qui signifie que seuls les utilisateurs explicitement répertoriés dans userlist_file=/etc/vsftpd.userlist seront autorisés à se connecter.

Par conséquent, ajoutez les lignes suivantes dans votre fichier de configuration vsftpd.conf (ou s'il en existe déjà, décommentez-les et définissez leurs valeurs comme indiqué) :

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. Ajoutez maintenant les lignes suivantes dans votre fichier de configuration vsftpd.conf pour restreindre les utilisateurs FTP à leurs répertoires personnels.

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

Enregistrez les modifications dans le fichier et fermez-le.

8. Définissez la règle booléenne SELinux suivante pour permettre à FTP de lire/écrire les fichiers du répertoire personnel de l'utilisateur.

semanage boolean -m ftpd_full_access --on

9. Enfin, redémarrez le service vsftpd pour appliquer toutes les modifications que nous avons apportées jusqu'à présent :

systemctl restart vsftpd

Test du serveur FTP sur RHEL 8

10. Pour tester si la configuration FTP ci-dessus fonctionne correctement, commencez par créer un utilisateur FTP avec la commande useradd et créez un mot de passe pour cet utilisateur.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Ajoutez ensuite l'utilisateur tecmint au fichier /etc/vsftpd.userlist à l'aide de la commande echo comme suit.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. Créez ensuite le répertoire racine local alternatif pour l'utilisateur (tecmint, le vôtre est probablement différent) et définissez les autorisations appropriées sur ce répertoire.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. Ensuite, créez un répertoire à l'emplacement racine local, où l'utilisateur conservera ses fichiers.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Connectez-vous maintenant au serveur FTP en utilisant n'importe quel client FTP comme suit.

ftp [email 
Exemple de sortie
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

C'est ça! Dans cet article, nous avons décrit comment installer, configurer et sécuriser un serveur FTP dans RHEL 8. Dans notre prochain article, nous montrerons comment sécuriser le serveur FTP à l'aide de connexions SSL/TLS. En attendant, restez avec nous.