Fiche FTP sous debian/ubuntu (VSFTPD)

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.

Retour en haut