.
- 1 1. Introduction
- 2 2. Installation de vsftpd
- 3 3. Configuration de base
- 3.1 Emplacement du fichier de configuration
- 3.2 Autoriser les opérations d’écriture (téléversements, suppressions, modifications)
- 3.3 Activer la connexion des utilisateurs locaux
- 3.4 Activer l’affichage du listing des répertoires
- 3.5 Définir une bannière de connexion (optionnel)
- 3.6 Activer les transferts en mode ASCII (si nécessaire)
- 4 4. Renforcer la sécurité
- 5 5. Prise en charge des noms de fichiers japonais
- 6 6. Mode passif et configuration du pare-feu
- 7 7. Configuration par utilisateur
- 8 8. Vérification du fonctionnement
- 9 9. Dépannage
- 10 10. Conclusion
- 11 FAQ
1. Introduction
Construire un serveur FTP sur Ubuntu est une solution très pratique pour les développeurs et les administrateurs qui souhaitent transférer des fichiers de manière efficace. En particulier lorsqu’on met en place un serveur domestique ou un environnement simple de partage de fichiers interne, le FTP (File Transfer Protocol) reste une option facile à déployer et directe.
Qu’est‑ce qu’un serveur FTP ?
Un serveur FTP est un logiciel serveur dédié utilisé pour transférer des fichiers sur Internet ou sur un réseau local. Les utilisateurs se connectent au serveur à l’aide d’une application cliente FTP pour envoyer ou télécharger des fichiers.
Bien que des alternatives sécurisées comme SFTP et SCP soient de plus en plus courantes, le FTP reste largement utilisé grâce à sa simplicité et à sa légèreté. Dans des réseaux restreints ou pour des cas d’usage basiques, le FTP continue d’être un protocole pratique et efficace.
Le rôle d’un serveur FTP sur Ubuntu
Ubuntu est l’une des distributions Linux les plus populaires et est largement employée dans les environnements serveur. En installant un serveur FTP sur Ubuntu, le partage de fichiers entre plusieurs appareils et utilisateurs devient beaucoup plus simple.
Cas d’utilisation typiques :
- Transfert de fichiers vers un serveur web
- Intégration avec des appareils IoT tels que le Raspberry Pi
- Partage de documents internes à l’entreprise
L’association d’Ubuntu et d’un serveur FTP permet une gestion de fichiers flexible et efficace.
Objectif de cet article et public cible
Cet article explique comment créer un serveur FTP sur Ubuntu de façon pas à pas, compréhensible même pour les débutants. Il s’adresse aux lecteurs qui :
- Connaissent les opérations de base d’Ubuntu mais sont novices en FTP
- Souhaitent mettre en place un serveur FTP pour un usage local ou une petite entreprise
- Veulent comprendre les considérations de sécurité et les problèmes tels que l’encodage des noms de fichiers
En suivant les étapes de ce guide, vous serez capable de mettre en place un environnement serveur FTP sécurisé et fonctionnel. Dans la section suivante, nous commencerons par installer l’un des serveurs FTP les plus populaires : vsftpd.
2. Installation de vsftpd
Lors de la création d’un serveur FTP sur Ubuntu, le logiciel le plus couramment utilisé est vsftpd (Very Secure FTP Daemon). Comme son nom l’indique, il a été conçu avec la sécurité à l’esprit, est léger et stable, ce qui le rend très répandu dans les milieux d’entreprise et d’enseignement.
Cette section explique comment installer vsftpd sur Ubuntu et configurer le service pour qu’il démarre automatiquement.
Installation de vsftpd
Tout d’abord, installez vsftpd à l’aide du gestionnaire de paquets d’Ubuntu (APT). Exécutez les commandes suivantes dans l’ordre :
sudo apt update
sudo apt install vsftpd
sudo apt update: Met à jour la liste des paquetssudo apt install vsftpd: Installe le paquet vsftpd
Une fois l’installation terminée, le service vsftpd démarre automatiquement.
Vérification de l’état du service
Pour vérifier que vsftpd est installé et fonctionne correctement, utilisez la commande suivante :
sudo systemctl status vsftpd
Si vous voyez active (running), le serveur FTP fonctionne normalement.
Activation du démarrage automatique
vsftpd est généralement configuré pour démarrer automatiquement par défaut, mais il est bon de le confirmer :
sudo systemctl enable vsftpd
Cela garantit que vsftpd démarre automatiquement après les redémarrages du système.
N’oubliez pas la configuration du pare‑feu (UFW)
Si UFW (Uncomplicated Firewall) est activé sur Ubuntu, vous devez autoriser les ports FTP :
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Cela ouvre les ports standards du FTP : 20 (données) et 21 (commandes).
Après avoir modifié les règles du pare‑feu, rechargez UFW :
sudo ufw reload
3. Configuration de base
Après l’installation de vsftpd, l’étape suivante consiste à personnaliser son comportement en éditant le fichier de configuration. Bien que vsftpd offre un contrôle très fin, de nombreuses fonctionnalités sont désactivées par défaut, il faut donc activer explicitement celles dont vous avez besoin.
Cette section explique les options de configuration les plus courantes et essentielles.
Emplacement du fichier de configuration
Le fichier de configuration principal de vsftpd se trouve à :
/etc/vsftpd.conf
Modifiez le fichier en utilisant la commande suivante :
sudo nano /etc/vsftpd.conf
Après avoir effectué les modifications, redémarrez vsftpd pour les appliquer :
sudo systemctl restart vsftpd
Autoriser les opérations d’écriture (téléversements, suppressions, modifications)
Par défaut, vsftpd n’autorise pas les téléversements ou les modifications de fichiers. Pour activer l’accès en écriture, décommentez ou ajoutez la ligne suivante :
write_enable=YES
Cela permet aux utilisateurs de téléverser, supprimer et modifier des fichiers dans leurs répertoires personnels.
Activer la connexion des utilisateurs locaux
Pour permettre aux utilisateurs du système Ubuntu de se connecter via FTP, activez l’option suivante :
local_enable=YES
Cela permet aux utilisateurs répertoriés dans /etc/passwd de se connecter via FTP.
Activer l’affichage du listing des répertoires
Si l’affichage du listing des répertoires échoue dans les clients FTP, vérifiez les paramètres suivants :
listen=YES
listen_ipv6=NO
Si IPv6 est désactivé sur votre système mais que listen_ipv6=YES reste activé, des problèmes de connexion peuvent survenir.
Définir une bannière de connexion (optionnel)
Vous pouvez afficher un message personnalisé lorsque les utilisateurs se connectent au serveur FTP :
ftpd_banner=Welcome to your custom Ubuntu FTP server!
Ceci est utile pour afficher des avis opérationnels ou des informations de contact.
Activer les transferts en mode ASCII (si nécessaire)
Si vous devez transférer correctement des fichiers texte avec différents formats de fin de ligne, activez le mode ASCII :
ascii_upload_enable=YES
ascii_download_enable=YES
Le mode binaire suffit dans la plupart des cas, mais le mode ASCII peut être utile dans des environnements spécifiques.
vsftpd nécessite une permission explicite pour chaque fonctionnalité, rendant la configuration transparente et sécurisée. Redémarrez toujours le service après avoir modifié le fichier de configuration.
4. Renforcer la sécurité
Bien que le FTP soit pratique, il ne chiffre pas le trafic par défaut, ce qui soulève des problèmes de sécurité—surtout lorsqu’il est utilisé sur Internet. Une configuration de sécurité appropriée est essentielle.
Cette section présente les principales mesures de sécurité disponibles dans vsftpd.
Restreindre l’accès des utilisateurs avec chroot
Permettre aux utilisateurs FTP d’accéder à des répertoires en dehors de leur répertoire personnel est dangereux. Utilisez chroot pour confiner les utilisateurs à leurs répertoires personnels.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YESempêche les utilisateurs d’accéder aux répertoires au-dessus de leur répertoire personnel.allow_writeable_chroot=YESest requis lorsque le répertoire personnel possède des permissions d’écriture.
Sans ce paramètre, l’erreur suivante se produit :
500 OOPS: vsftpd: refusing to run with writable root inside chrootRestreindre les utilisateurs de connexion (liste blanche)
Autoriser tous les utilisateurs du système à se connecter via FTP augmente le risque de sécurité. À la place, restreignez l’accès à l’aide d’une liste blanche.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Ajoutez les utilisateurs autorisés à la liste :
sudo nano /etc/vsftpd.userlist
ftpuser1
ftpuser2
Seuls les utilisateurs explicitement listés peuvent se connecter.
Activer la communication chiffrée avec FTPS (SSL/TLS)
Le FTP standard transmet les identifiants et les données en texte clair. Pour éviter l’interception, activez FTPS (FTP sur SSL/TLS).
Créez un certificat SSL :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Ajoutez ce qui suit à vsftpd.conf :
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Les clients peuvent désormais se connecter en utilisant le FTPS explicite.
Désactiver les fonctionnalités inutiles
Désactivez les fonctionnalités inutilisées pour réduire la surface d’attaque :
anonymous_enable=NO
Cela désactive explicitement la connexion anonyme.
5. Prise en charge des noms de fichiers japonais
Lors du transfert de fichiers via FTP, les noms de fichiers japonais peuvent devenir illisibles en raison de problèmes d’encodage—surtout entre Windows et Ubuntu.
.### Causes courantes des problèmes d’encodage de noms de fichiers
- La locale Ubuntu n’est pas définie sur UTF-8
- L’encodage du client FTP ne correspond pas
- vsftpd n’opère pas en mode UTF-8
Vérifier et configurer la locale Ubuntu
locale
LANG=ja_JP.UTF-8
Si UTF-8 n’est pas activé :
sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
sudo locale-gen ja_JP.UTF-8
Vérifier la prise en charge de l’UTF-8 par vsftpd
utf8_filesystem=YES
Cette option peut ne pas exister dans toutes les versions, mais les locales système UTF-8 suffisent généralement.
Paramètres du client FTP (exemple FileZilla)
- Ouvrir le gestionnaire de sites
- Sélectionner le serveur
- Ouvrir l’onglet Jeu de caractères
- Activer le jeu de caractères personnalisé et le définir sur
UTF-8
6. Mode passif et configuration du pare-feu
Les problèmes FTP tels que les listes de répertoires échouées ou les transferts bloqués sont souvent causés par un mode passif incorrect ou des paramètres de pare-feu.
Qu’est-ce que le mode passif ?
- Mode actif : Le serveur initie la connexion de données
- Mode passif : Le client initie toutes les connexions
Le mode passif est fortement recommandé pour les réseaux modernes.
Activer le mode passif dans vsftpd
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Spécifier l’adresse IP externe (environnements NAT)
pasv_address=203.0.113.45
Ouvrir les ports requis dans UFW
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
7. Configuration par utilisateur
Dans les environnements de production, il est courant d’attribuer des permissions et des répertoires différents à chaque utilisateur.
Créer des utilisateurs FTP dédiés
sudo adduser ftpuser1
sudo useradd -m -s /usr/sbin/nologin ftpuser2
Structure de répertoires recommandée
/home/ftpuser1/
└── files/
sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1
Fichiers de configuration spécifiques à l’utilisateur
user_config_dir=/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1
local_root=/home/ftpuser1/files
write_enable=YES
8. Vérification du fonctionnement
Après avoir terminé toutes les étapes de configuration, vérifiez que le serveur FTP fonctionne correctement.
Test en ligne de commande
ftp localhost
ls
cd files
put test.txt
get test.txt
Test du client GUI (FileZilla)
Vérifiez la connexion, la liste des répertoires, les téléchargements et les envois.
9. Dépannage
Les problèmes FTP courants et leurs solutions incluent les échecs de connexion, les erreurs de permission, la mauvaise configuration du mode passif et les problèmes d’encodage.
10. Conclusion
Cet article explique comment créer un serveur FTP sécurisé et pratique sur Ubuntu en utilisant vsftpd, couvrant l’installation, la configuration, la sécurité, l’encodage, le mode passif, la gestion des utilisateurs, la vérification et le dépannage.
FAQ
Questions fréquemment posées sur la configuration et le fonctionnement d’un serveur FTP sur Ubuntu.


