Le protocole FTP
5.6. Sécurisation de FTP
FTP (File Transport Protocol) est un protocole TCP relativement ancien conçu pour
transférer des fichiers sur un réseau. Parce que toutes les transactions avec le
serveur, y compris l'authentification des utilisateurs, sont effectuées de manière non-
cryptée, il est considéré comme un protocole vulnérable au niveau de la sécurité et
devrait donc être utilisé avec beaucoup de précautions.
Red Hat Enterprise Linux fournit trois serveurs FTP.
gssftpd —Un démon FTP « kerberisé » basé sur xinetd qui ne transmet pas
d'informations d'authentification sur le réseau.
Red Hat Content Accelerator (tux) — Un serveur Web basé sur le noyau et
doté de fonctionnalités FTP.
vsftpd — Une implémentation totale du service FTP, centrée sur la sécurité.
Les instructions de sécurité suivantes sont relatives à la configuration du service
FTP vsftpd.
5.6.1. Bannière de bienvenue FTP
Avant de soumettre un nom d'utilisateur et mot de passe, tout utilisateur est accueilli
par une bannière de bienvenue. Par défaut, cette dernière inclut des informations sur
la version utilisée qui peuvent être utiles à des craqueurs essayant d'identifier les
faiblesses d'un système.
Pour changer la bannière de bienvenue pour vsftpd, ajoutez la directive suivante au
fichier /etc/vsftpd/vsftpd.conf :
ftpd_banner=<insert_greeting_here>
Dans la directive ci-dessus, remplacez <insert_greeting_here> par le texte de votre
message de bienvenue.
Dans le cas de bannières composées de plusieurs lignes, il est préférable d'utiliser
un fichier bannière. Afin de simplifier la gestion de bannières multiples, placez toutes
les bannières dans un nouveau répertoire nommé /etc/banners/. Dans notre
exemple, le fichier bannière pour les connexions FTP sera /etc/banners/ftp.msg.
Ci-après figure un exemple de ce à quoi un tel fichier pourrait ressembler :
####################################################
# Hello, all activity on ftp.example.com is logged.#
####################################################
Note
Il n'est pas nécessaire de commencer chaque ligne du fichier
par 220 comme l'explique la Section 5.1.1.1.
Pour appeler ce fichier bannière de bienvenue pour vsftpd, ajoutez la directive
suivante au fichier /etc/vsftpd/vsftpd.conf :
banner_file=/etc/banners/ftp.msg
Il est également possible d'envoyer des bannières supplémentaires aux connexions
entrantes en utilisant des enveloppeurs TCP, comme l'explique la Section 5.1.1.1.
5.6.2. Accès anonyme
La présence du répertoire /var/ftp/ entraîne l'activation du compte anonyme.
La manière la plus simple de créer ce répertoire consiste à installer le
paquetage vsftpd. Ce dernier met en place une arborescence de répertoires pour
des utilisateurs anonymes et configure les permissions de répertoires en lecture-
seule pour les utilisateurs anonymes.
Par défaut, l'utilisateur anonyme n'est pas en mesure d'écrire dans quelque
répertoire que ce soit.
Attention
Si vous décidez d'activer l'accès anonyme pour un serveur FTP, soyez
particulièrement prudent quant à l'emplacement où vous stockez vos
données confidentielles.
5.6.2.1. Téléchargement anonyme
Si vous souhaitez autoriser le téléchargement par des utilisateurs anonymes, il est
recommandé de créer un répertoire en écriture-seule au sein de /var/ftp/pub/.
Pour ce faire, saisissez :
mkdir /var/ftp/pub/upload
Changez ensuite les permissions afin d'empêcher les utilisateurs anonymes de voir
le contenu du répertoire en saisissant :
chmod 730 /var/ftp/pub/upload
Un listage détaillé (ou long) du répertoire devrait ressembler à l'exemple suivant :
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload
Avertissement
Les administrateurs permettant aux utilisateurs anonymes de lire et écrire
dans des répertoires se rendent souvent compte que leur serveur devient
un dépôt de logiciels volés.
De plus, sous vsftpd, ajoutez la ligne suivante au fichier /etc/vsftpd/vsftpd.conf :
anon_upload_enable=YES
5.6.3. Comptes utilisateurs
Parce que FTP, lors de l'authentification, transmet les noms d'utilisateur et mots de
passe sur des réseaux non-sécurisés, il est conseillé de refuser l'accès des
utilisateurs du système au serveur à partir de leurs comptes.
Afin de désactiver les comptes utilisateurs dans vsftpd, ajoutez la directive suivante
dans /etc/vsftpd/vsftpd.conf :
local_enable=NO
5.6.3.1. Restriction des comptes utilisateurs
La manière la plus simple de désactiver un groupe spécifique de comptes, tels que le
super-utilisateur et ceux disposant des privilèges sudo, afin qu'ils n'aient pas accès au
serveur FTP, consiste à utiliser un fichier contenant une liste à l'intention de PAM
comme l'explique la Section 4.4.2.4. Le fichier de configuration PAM
de vsftpd est /etc/pam.d/vsftpd.
Il est également possible de désactiver des comptes utilisateurs directement dans
chaque service.
Afin de désactiver des comptes utilisateurs spécifiques dans vsftpd, ajoutez le nom
d'utilisateur au fichier /etc/vsftpd.ftpusers.
5.6.4. Utilisation des enveloppeurs TCP pour contrôler l'accès
Utilisez les enveloppeurs TCP afin de contrôler l'accès à l'un ou l'autre des démons
FTP, comme le souligne la Section 5.1.1.