8.4. Sécuriser le service FTP
Vous pouvez utiliser le protocole de transfert de fichiers (FTP) pour transférer des fichiers sur un réseau. Étant donné que toutes les transactions FTP avec le serveur, y compris l'authentification de l'utilisateur, ne sont pas cryptées, vous devez vous assurer que la configuration est sécurisée.
RHEL 9 fournit deux serveurs FTP :
- Red Hat Content Accelerator (tux) - un serveur web en espace noyau avec des capacités FTP.
- Very Secure FTP Daemon (vsftpd) - une implémentation autonome du service FTP, axée sur la sécurité.
Les consignes de sécurité suivantes concernent la mise en place du service FTP vsftpd
.
8.4.1. Sécurisation de la bannière d'accueil FTP
Lorsqu'un utilisateur se connecte au service FTP, ce dernier affiche une bannière d'accueil qui, par défaut, contient des informations sur la version qui pourraient être utiles aux pirates pour identifier les faiblesses d'un système. Vous pouvez empêcher les pirates d'accéder à ces informations en modifiant la bannière par défaut.
Vous pouvez définir une bannière personnalisée en modifiant le fichier /etc/banners/ftp.msg
pour inclure directement un message d'une seule ligne ou pour faire référence à un fichier séparé, qui peut contenir un message de plusieurs lignes.
Procédure
Pour définir un message d'une seule ligne, ajoutez l'option suivante au fichier
/etc/vsftpd/vsftpd.conf
:ftpd_banner=Hello, all activity on ftp.example.com is logged.
Pour définir un message dans un fichier séparé :
Créez un fichier
.msg
qui contient le message de la bannière, par exemple/etc/banners/ftp.msg
:######### Hello, all activity on ftp.example.com is logged. #########
Pour simplifier la gestion de plusieurs bannières, placez toutes les bannières dans le répertoire
/etc/banners/
.Ajoutez le chemin d'accès au fichier de la bannière à l'option
banner_file
du fichier/etc/vsftpd/vsftpd.conf
:banner_file=/etc/banners/ftp.msg
Vérification
Afficher la bannière modifiée :
$ ftp localhost Trying ::1… Connected to localhost (::1). Hello, all activity on ftp.example.com is logged.
8.4.2. Empêcher les accès et les téléchargements anonymes dans FTP
Par défaut, l'installation du paquet vsftpd
crée le répertoire /var/ftp/
et une arborescence de répertoires pour les utilisateurs anonymes avec des autorisations de lecture seule sur les répertoires. Comme les utilisateurs anonymes peuvent accéder aux données, ne stockez pas de données sensibles dans ces répertoires.
Pour renforcer la sécurité du système, vous pouvez configurer le serveur FTP de manière à permettre aux utilisateurs anonymes de télécharger des fichiers dans un répertoire spécifique et à empêcher les utilisateurs anonymes de lire les données. Dans la procédure suivante, l'utilisateur anonyme doit pouvoir télécharger des fichiers dans le répertoire appartenant à l'utilisateur root
, mais ne doit pas pouvoir le modifier.
Procédure
Créez un répertoire en écriture seule dans le répertoire
/var/ftp/pub/
:# mkdir /var/ftp/pub/upload # chmod 730 /var/ftp/pub/upload # ls -ld /var/ftp/pub/upload drwx-wx---. 2 root ftp 4096 Nov 14 22:57 /var/ftp/pub/upload
Ajoutez les lignes suivantes au fichier
/etc/vsftpd/vsftpd.conf
:anon_upload_enable=YES anonymous_enable=YES
-
Facultatif : si SELinux est activé et appliqué sur votre système, activez les attributs booléens SELinux
allow_ftpd_anon_write
etallow_ftpd_full_access
.
En permettant à des utilisateurs anonymes de lire et d'écrire dans des répertoires, le serveur peut devenir un dépôt de logiciels volés.
8.4.3. Sécurisation des comptes d'utilisateurs pour FTP
Le protocole FTP transmet les noms d'utilisateur et les mots de passe en clair sur des réseaux non sécurisés à des fins d'authentification. Vous pouvez améliorer la sécurité du protocole FTP en refusant aux utilisateurs du système l'accès au serveur à partir de leurs comptes d'utilisateur.
Effectuez autant d'étapes que nécessaire en fonction de votre configuration.
Procédure
Désactivez tous les comptes d'utilisateurs du serveur
vsftpd
en ajoutant la ligne suivante au fichier/etc/vsftpd/vsftpd.conf
:local_enable=NO
-
Désactivez l'accès FTP pour des comptes ou des groupes de comptes spécifiques, tels que l'utilisateur
root
et les utilisateurs disposant de privilègessudo
, en ajoutant les noms d'utilisateur au fichier de configuration PAM/etc/pam.d/vsftpd
. -
Désactiver les comptes d'utilisateurs en ajoutant les noms d'utilisateurs au fichier
/etc/vsftpd/ftpusers
.
8.4.4. Ressources supplémentaires
-
ftpd_selinux(8)
page de manuel