Tutoriel d'installation d'un serveur ftp : vsftpd (1re partie)

Sylvain Luce (Katyucha)

Ce tutoriel vous accompagnera tout au long de l'installation de ce serveur ftp simple et efficace. Il sera en deux parties.
La première vous permettra de configurer simplement votre serveur. Dans une seconde, nous verrons la configuration avancée du serveur.

- Titre : Tutoriel d'installation d'un serveur ftp : vsftpd (1re partie)

- Auteur : Sylvain Luce (Katyucha)

- Parution : 21 décembre 2005

- Mise à jour : 5 avril 2020

- Licence : Copyright ® 2006 Sylvain Luce. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Avant-propos sur le FTP

- II. Le vif du sujet : vsftpd

- II-A. Installation sous Linux du serveur ftp

- II-B. Configuration minimale via le fichier : vsftpd.conf

- II-C. Quelques cas concrets

- III. Conclusion

- IV. Remerciements

I - Avant-propos sur le FTP

De nombreux transferts de fichiers ont lieu à chaque instant sur Internet. Le vieux protocole ftp (File Transfert Protocol) est toujours aussi utilisé parce qu'il est simple et rapide à mettre en place. Pour les utilisateurs, un transfert FTP est aujourd'hui facilité grâce à divers clients FTP totalement graphique.
J'ai choisi de vous montrer le serveur ftp : vsftpd. Parce qu'il est, je pense, suffisamment simple et robuste pour être apprécié par tous.

II - Le vif du sujet : vsftpd

II-A - Installation sous Linux du serveur ftp

Je vous propose d'utiliser le système de package implémenté sur votre distribution.

Debian-like

apt-get install vsftpd

rpm-like

urpmi vsftpd

Le fichier de configuration se trouve régulièrement dans /etc avec le doux nom de vsftpd. Si jamais votre distribution a eu la bonne idée de changer sa place, faites un petit :

find /etc -name "vsftpd.conf"

pour trouver son emplacement dans /etc.

II-B - Configuration minimale via le fichier : vsftpd.conf

Le fichier vsftpd.conf vous propose un grand nombre d'options. Nous allons examiner celles qui sont les plus simples et les plus intéressantes dans une configuration minimale, mais déjà puissante.
Les valeurs données aux options sont surtout dépendantes de l'utilisation prévue pour ce serveur ftp. « Pourquoi l'avez-vous fait ? Dans quel but ? Pour qui ? Dans quel environnement ? » sont des questions essentielles à se poser avant de vous lancer dans la configuration.

Options

Description

Commentaire

listen

Permet de définir si le démon est en standalone (YES) ou dirigé par (x)inetd (NO)

Partisan du (x)inetd, Partisan du standalone, chacun son choix. Personnellement, je préfère le standalone…

anonymous_enable

Permet d'accepter les connexions anonymes

Tout dépend du but de votre serveur. Par défaut, je conseillerai de rejeter les connexions anonymes. Mais si votre serveur est au sein d'un réseau et que tout le monde doit y accéder, alors mettez YES, sinon NO.

local_enable

Oblige les personnes à s'identifier avec un compte utilisateur

Dans tous les cas, je dis YES. Si une personne a un compte, le serveur ftp est présent pour elle. Sauf si vous ne voulez pas les laisser exporter ou importer des fichiers

write_enable

Permission d'écriture

Comme les deux précédents, tout dépend de vos besoins et de la fonction de votre service ftp.

xferlog_file

Écriture d'un log des fichiers

Obligatoire selon moi pour tout administrateur digne de ce nom. Il faut savoir ce qu'il se passe surtout sur ces protocoles qui permettent les entrées/sorties de données.

ftpd_banner

Bannière d'affichage à la connexion FTP

Étrangement, je trouve très importante cette bannière qui peut sembler superflue. Pourquoi ? Parce que vous pouvez l'utiliser pour communiquer : dire sur quel serveur l'utilisateur se connecte (pratique quand on doit se connecter à divers serveurs), donner des informations sur les mises à jour, les maintenances, etc. Indispensable si vous voulez envoyer des informations.

chroot_local_user

Permet de chrooter la connexion de l'utilisateur

Quand l'utilisateur se connecte en ftp, il arrive dans son répertoire home(défini dans /etc/passwd). Cette option active vous permet de l'obliger à rester dans ce répertoire (ou tout du moins de ne pas redescendre dans l'arborescence). Il reste compartimenté dans son répertoire home. Très intéressant, si vous ne voulez pas qu'il se balade partout et télécharge des fichiers système.

II-C - Quelques cas concrets

Si vous désirez faire un serveur pour que quelques amis viennent télécharger les vidéos de vacances, avec ces règles :

- utilisateurs déclarés ;

- rien à protéger ;

- écriture interdite.

Je conseillerais :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
xferlog_file=YES
ftpd_banner=/etc/ma_banniere
chroot_local_user=NO

Par contre, vous êtes en entreprise :

- chaque utilisateur doit se déclarer ;

- compartimenter les utilisateurs pour éviter les allers-retours dans le système.

Il faut mieux renforcer les règles de sécurité avec le chroot_local_user :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
xferlog_file=YES
ftpd_banner=/etc/ma_banniere
chroot_local_user=YES

Un autre cas pour terminer avec l'anonymous.
Les règles sont les suivantes :

- pas besoin de s'identifier ;

- compartimenter les anonymes ;

- pas de compartiment pour les utilisateurs identifiés.

Je proposerais :

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=NO
xferlog_file=YES
ftpd_banner=/etc/ma_banniere
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Dans le fichier vsftpd.chroot_list, vous devez mettre : « anonymous » afin de spécifier que les personnes connectées en anonyme seront chrootées.

Si vous mettez chroot_local_user à YES, le fichier vsftpd.chroot_list contiendra la liste des personnes NON compartimentées !

III - Conclusion

C'est fini ! Votre serveur ftp est installé. Les options vues sont simples et efficaces. Nous verrons dans un second temps l'ensemble des fonctions disponibles pour des cas bien précis.
Nous verrons bientôt l'ensemble des fonctions de ce serveur FTP en gardant toujours un œil sur la pratique !

IV - Remerciements

à Pedro204 et gege2061 pour la relecture !