Dans cet article, nous allons procéder à l’installation d’un serveur FTP sous GNU/Linux Debian puis à sa configuration initiale. Nous verrons dans une seconde partie une configuration plus complexe et sécurisée de ce serveur.

FTP (File Transfert Protocol) est un protocole de communication de la couche n°7, la couche Application du modèle OSI utilisant le protocole de transport TCP. FTP est destiné à faire du partage de fichiers dans un réseau local ou étendue en mode Client-Serveur. Il permet l’accès, la modification, la copie, le déplacement et la suppression de fichiers à un client pour des fichiers ou dossiers qui sont stockés sur le serveur FTP.

Plusieurs programmes, libres ou propriétaires permettent la mise en place d’un serveur FTP (FileZilla Server, Vsftpd, Titan FTP Server …). Ici, nous utiliserons Vsftp sous GNU/Linux Debian.

Installation du paquet vsftp
sudo apt install vsftp

Une fois le paquet installé, nous allons éditer le fichier de configuration /etc/vsftp.conf pour procéder à la configuration du serveur :

On commence par appliquer un MOTD (Message Of The Day) qui permet d’afficher une bannière à chaque connexion d’un nouvel utilisateur

On active l’accès en anonyme au serveur FTP

Ensuite, nous autorisons uniquement l’accès en lecture seule aux ressources du serveur FTP aux utilisateurs anonymes et nous indiquons le dossier à partager aux utilisateurs anonymes avec les directives suivantes :

anon_world_readable_only=YES
anon_root= <dossier_a_partager>

Ici, le dossier qui va contenir les ressources partagées et accessibles aux utilisateurs anonymes est /mnt/Partage

On se rend ensuite dans le dossier partagé /mnt/Partage et on y crée un fichier qui va nous permettre de tester le bon fonctionnement du serveur et des droits qui ont été appliqués aux contenus partagés

Une fois le serveur configuré et le fichier crée, nous allons redémarrer le service vsftpd.service

sudo systemctl restart vsftpd.service

Pour tester le bon fonctionnement de notre serveur ftp nous pouvons installer un client FTP

Installation du client ftp
sudo apt install ftp

Pour se connecter localement à notre serveur ftp avec l’utilisateur anonymous et sans mot de passe, nous pouvons exécuter la commande suivante :

ftp localhost

Nous remarquons que le client FTP s’est bien connecté au serveur et que la bannière qui a été définie pendant la configuration du serveur s’affiche bien

Une fois connecté, la commande dir nous permet de lister les différents fichiers présents dans le dossier partagé et on retrouve bien notre fichier text qui a été crée auparavant dans le dossier partagé

En essayant de supprimer le fichier text ou de créer un dossier dans le répertoire partagé, nous rencontrons une erreur 550 Permission denied car ces droits n’ont pas été attribués à l’utilisateur anonymous

On peut tout de même télécharger le fichier sur notre machine locale comme suit :

Le protocole FTP est un protocole qui par défaut transmet tout en clair à travers le réseau, et ayant configuré ce serveur pour le rendre accessible aux utilisateurs anonymes, n’importe qui pourrait s’y connecter et avoir accès aux ressources partagés ou exploiter une vulnérabilité impactant le serveur FTP.

Dans une seconde partie, nous allons sécuriser ce serveur en mettant en place un contrôle d’accès basé sur une authentification par nom d’utilisateur et mot de passe puis en mettant en place un chiffrement des informations transmises entre le serveur et le client.