Installation d’un serveur FTP sur Debian 12

Le FTP (File Transfer Protocol) est un outil incontournable pour transférer des fichiers entre des machines dans une infrastructure réseau TCP/IP. Bien qu’il existe d’autres protocoles modernes comme SFTP ou FTPS, FTP reste largement utilisé pour des environnements locaux ou éducatifs. Dans cet article, nous vous guiderons étape par étape pour configurer un serveur FTP basé sur vsftpd (Very Secure FTP Daemon) sur Debian 12. Vous apprendrez à gérer des utilisateurs, configurer leurs répertoires, tester votre configuration avec FileZilla et le terminal.
Pour simplifier la démonstration, nous ne configurerons pas SSL/TLS, mais une section en fin d’article expliquera pourquoi il est crucial de sécuriser votre serveur FTP en production.

Étape 1 : Mise à jour du système

Assurez-vous que votre système est à jour :


sudo apt update && sudo apt upgrade -y

Étape 2 : Installation de vsftpd

Installez le serveur FTP vsftpd :


sudo apt install vsftpd -y

Vérifiez l’état du service :

sudo systemctl status vsftpd

 

Si le service n’est pas actif, démarrez-le :

sudo systemctl start vsftpd

Activez son démarrage automatique au boot :

sudo systemctl enable vsftpd

 

Étape 3 : Configuration de vsftpd

Sauvegardez le fichier de configuration d’origine pour pouvoir y revenir en cas de problème :

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Modifiez le fichier de configuration :

sudo nano /etc/vsftpd.conf

Ajoutez activez ou modifiez les lignes suivantes :

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
allow_writeable_chroot=YES

 

Explication:
anonymous_enable=NO – Désactive l’accès anonyme au serveur FTP, permettant uniquement aux utilisateurs authentifiés de se connecter.
local_enable=YES – Autorise les utilisateurs locaux définis sur le serveur à se connecter via FTP.
write_enable=YES – Permet aux utilisateurs de téléverser, renommer ou supprimer des fichiers sur le serveur.
chroot_local_user=YES – Restreint chaque utilisateur à son propre répertoire personnel, empêchant l’accès aux autres parties du système.
pasv_enable=YES – Active le mode passif FTP, nécessaire pour les connexions derrière des pare-feu ou NAT.
pasv_min_port=30000 – Définit le port minimum pour les connexions en mode passif.
pasv_max_port=31000 – Définit le port maximum pour les connexions en mode passif, facilitant la configuration des pare-feu.
allow_writeable_chroot=YES – Autorise l’accès en mode chroot même si le répertoire est inscriptible, évitant des erreurs dans certaines configurations.

 

Redémarrez le service pour appliquer les modifications :

sudo systemctl restart vsftpd

 

Étape 4 : Création d’utilisateurs FTP

Pour démonstration je vais créer deux utilisateurs : ftpuser1 et ftp_oleks.

Créer les utilisateurs :

sudo adduser ftpuser1
sudo adduser ftp_oleks

Suivez les instructions pour définir leurs mots de passe.

Configurer leurs répertoires personnels :

Pour ftpuser1 :

sudo mkdir -p /home/ftpuser1/ftp/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp/files
sudo chmod -R 755 /home/ftpuser1/ftp

 

Pour ftp_oleks :

sudo mkdir -p /home/ftp_oleks/ftp/files
sudo chown ftp_oleks:ftp_oleks /home/ftp_oleks/ftp/files
sudo chmod -R 755 /home/ftp_oleks/ftp

 

Étape 5 : Tester la connexion FTP

Test avec FileZilla
FileZilla est un client FTP populaire et facile à utiliser. Voici comment tester votre configuration :

Téléchargez et installez FileZilla :
Pour Windows ou macOS, téléchargez le client depuis filezilla-project.org et procédez à l’installation.
Pour Linux (Debian/Ubuntu), utilisez la commande suivante:

sudo apt install filezilla -y

Configurer la connexion dans FileZilla :

Ouvrez FileZilla et allez dans Fichier > Gestionnaire de sites.

Cliquez sur Nouveau site et configurez les paramètres (je choisi celon mon configuration precedante) :

  • Host : Entrez l’adresse IP de votre serveur FTP.
  • Encryption: Use explicit over TLS if available.
  • Protocole : FTP – File Transfer Protocol.
  • Type d’authentification : Normal.
  • Utilisateur : ftp_oleks.
  • Mot de passe : Le mot de passe que vous avez configuré.

Cliquez sur Connexion.

Dans la fenêtre popup, confirmez que votre connexion n’est pas sécurisée (ceci est normal, car SSL/TLS n’est pas configuré dans cette démonstration).

Tester l’envoi et la réception de fichiers :

Naviguez dans le répertoire distant /ftp/files.
Transférez des fichiers en les glissant depuis votre système local vers le serveur, ou vice versa ou créer nouveau fichier pour vérifier les droits d’écriture.

Voilà, vous avez connecté à votre serveur FTP à partir de FileZilla !

Tester le serveur FTP depuis Ubuntu (CLI)

Installer le client FTP (si ce n’est pas déjà fait) :

sudo apt update
sudo apt install ftp -y

Se connecter au serveur FTP : Remplacez IP_SERVEUR par l’adresse IP de votre serveur et exécutez :

ftp IP_SERVEUR

Dans mon cas:

ftp 192.168.0.254

Si votre serveur utilise un port différent de 21 (par défaut pour FTP), spécifiez-le :

ftp -p IP_SERVEUR PORT

Saisir les identifiants :

Entrez le nom d’utilisateur (par exemple, ftpuser1) lorsqu’il est demandé.
Entrez le mot de passe associé.

 

Tester les commandes FTP

Une fois connecté, utilisez les commandes suivantes pour tester le serveur :
Lister les fichiers sur le serveur :

ls

 

Les autres commandes utiles :

Télécharger un fichier spécifique :

get file.txt

Télécharger plusieurs fichiers :

mget *.txt

Envoyer un fichier au serveur :

put file.txt

Envoyer plusieurs fichiers :

mput *.sh

 

Quitter la session FTP 

Une fois terminé, déconnectez-vous en utilisant l’une des commandes suivantes :

bye
quit
exit

Gestion des fichiers de configuration

Fichier des utilisateurs interdits : /etc/vsftpd/ftpusers Liste des utilisateurs qui ne peuvent pas accéder au FTP.
Liste des utilisateurs : /etc/vsftpd/user_list Configurez les utilisateurs autorisés ou interdits en fonction de userlist_deny.
Configuration principale : /etc/vsftpd/vsftpd.conf Paramètres principaux pour personnaliser le serveur FTP.

Votre serveur FTP est maintenant configuré et opérationnel avec des utilisateurs (ftpuser1 et ftp_oleks). Vous pouvez utiliser FileZilla ou le terminal pour gérer facilement vos fichiers.

Conseils pour améliorer la sécurité :

  • Activez SSL/TLS pour chiffrer les connexions et protéger vos identifiants.
  • Limitez les ports passifs ouverts pour réduire les risques d’attaques.
  • Utilisez un pare-feu comme ufw pour restreindre l’accès au serveur.
  • Désactivez les utilisateurs inutilisés ou anonymes pour réduire les surfaces d’attaque.
  • Utilisez Fail2ban pour bloquer les tentatives de connexion non autorisées.

Avec ces ajustements, vous renforcez la sécurité de votre serveur FTP tout en assurant sa performance.

Bonne chance !