Cette fiche présente la mise en place d’un serveur FTP avec vsftpd sous Debian/Ubuntu, la création d’utilisateurs et la gestion des droits d’accès.
Objectifs :
- installer un serveur FTP
- créer des comptes utilisateurs
- restreindre l’accès aux répertoires
- gérer les droits fichiers
- tester la connexion FTP

Installation du serveur FTP
apt update
apt install vsftpd -y
Vérifier le service :
systemctl status vsftpd
Activer au démarrage :
systemctl enable vsftpd
Fichier de configuration
Fichier principal :
/etc/vsftpd.conf
Sauvegarde :
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Configuration de base
Éditer :
nano /etc/vsftpd.conf
Paramètres essentiels :
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_umask=022
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100
Redémarrer le service :
systemctl restart vsftpd
Création d’un utilisateur FTP
Créer un utilisateur :
adduser ftpuser
Définir son mot de passe :
passwd ftpuser
Organisation des répertoires
Par défaut :
/home/ftpuser
Créer un dossier de travail :
mkdir /home/ftpuser/files
Sécurisation du chroot
Pour éviter les erreurs vsftpd :
chmod 755 /home/ftpuser
Donner les droits d’écriture dans un sous-dossier :
chown ftpuser:ftpuser /home/ftpuser/files
Gestion des droits
Permissions Linux
ls -l
Exemple :
-rw-r--r-- 1 ftpuser ftpuser fichier.txt
Modifier les droits :
chmod 644 fichier.txt
chmod 755 dossier
Changer le propriétaire :
chown ftpuser:ftpuser fichier.txt
Restreindre les utilisateurs
Créer un fichier :
nano /etc/vsftpd.userlist
Ajouter les utilisateurs autorisés :
ftpuser
Modifier la config :
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Accès au serveur FTP
Depuis un client Linux
ftp 192.168.1.10
Ou avec curl :
curl ftp://192.168.1.10
Depuis Windows
Dans l’explorateur :
ftp://192.168.1.10
Avec un client graphique
Exemples :
- FileZilla
- WinSCP
Paramètres :
Hôte : 192.168.1.10
Port : 21
Utilisateur : ftpuser
Mot de passe : défini précédemment
Mode passif (important)
Ouvrir les ports dans le firewall :
ufw allow 21/tcp
ufw allow 30000:30100/tcp
Logs FTP
Fichier de logs :
/var/log/vsftpd.log
Activer si nécessaire :
xferlog_enable=YES
log_ftp_protocol=YES
Test de fonctionnement
- connexion avec un utilisateur
- upload d’un fichier
- téléchargement d’un fichier
- vérification des droits
Sécurisation
- désactiver l’accès anonyme
- utiliser des utilisateurs dédiés
- limiter les répertoires (chroot)
- utiliser FTPS si possible (chiffrement)
Exemple de configuration complète
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100
Fichiers de configuration importants
/etc/vsftpd.conf
/etc/vsftpd.userlist
/home/ftpuser/
/var/log/vsftpd.log
À retenir
Le serveur FTP permet de partager des fichiers simplement, mais doit être sécurisé.
Points essentiels :
- gérer les utilisateurs
- contrôler les droits
- limiter les accès
- surveiller les logs
Pour un usage en production, privilégier FTPS ou SFTP pour sécuriser les échanges.
