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.
apt-get install vsftpd
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 !