installer vsftpd VPS··7 min de lecture·Par l'équipe OmegaCloud

Installer un serveur FTP sur VPS avec vsftpd

Illustration immersive du sujet : installer vsftpd VPS

Vous cherchez à installer vsftpd VPS pour disposer d'un serveur FTP fiable, léger et sécurisé sur votre machine Linux ? vsftpd (Very Secure FTP Daemon) reste une référence pour le transfert de fichiers en environnement de production. Ce tutoriel 2026 couvre l'installation, la configuration TLS, le durcissement sécurité et la gestion des utilisateurs, avec des commandes réelles prêtes à l'emploi.



Pourquoi installer vsftpd sur un VPS en 2026

vsftpd est un démon FTP réputé pour sa légèreté et sa robustesse. Écrit en C, il consomme très peu de ressources, ce qui le rend idéal sur un VPS Linux OmegaCloud même avec une configuration modeste. Il supporte le chiffrement TLS explicite (FTPS), le chrooting des utilisateurs et une isolation fine des accès. Pour du partage de fichiers avec interface web, synchronisation et droits par utilisateur, un VPS Nextcloud répond mieux au besoin que FTP.

Cas d'usage typiques

  • Dépôt de fichiers pour une équipe ou des prestataires externes.
  • Transfert automatisé de sauvegardes vers un serveur distant.
  • Livraison de builds ou d'assets dans un pipeline manuel.
  • Accès contrôlé à des répertoires web avec chroot par utilisateur.

FTP, FTPS ou SFTP : clarifions

Attention à ne pas confondre les protocoles :

Protocole Chiffrement Port par défaut Serveur
FTP Aucun (clair) 21 vsftpd
FTPS (FTP over TLS) TLS explicite/implicite 21 + plage passive vsftpd
SFTP SSH 22 OpenSSH

vsftpd gère FTP et FTPS. Le SFTP, lui, transite par SSH et ne relève pas de vsftpd. Dans ce guide, nous configurons FTPS pour éviter tout transfert d'identifiants en clair.



Installer vsftpd VPS : préparation et installation

Cette section détaille comment installer vsftpd VPS étape par étape sur Debian/Ubuntu et sur les distributions RHEL-like (Rocky, Alma). Les exemples utilisent une base Debian/Ubuntu, largement répandue sur les VPS.

Prérequis

  • Un VPS avec accès root ou un utilisateur sudo.
  • Un système à jour.
  • Un nom de domaine ou une IP publique fixe.

Commencez par mettre le système à jour :

sudo apt update
sudo apt upgrade -y

Installation du paquet

Sur Debian ou Ubuntu :

sudo apt install vsftpd -y

Sur Rocky Linux ou AlmaLinux :

sudo dnf install vsftpd -y

Sauvegardez immédiatement la configuration d'origine avant toute modification :

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

Activez et démarrez le service :

sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo systemctl status vsftpd

Le statut doit indiquer active (running). Si ce n'est pas le cas, consultez les journaux :

sudo journalctl -u vsftpd -n 50 --no-pager


Configuration de vsftpd : durcissement et TLS

La configuration par défaut n'est pas adaptée à la production. Nous allons la restreindre et activer le chiffrement. Éditez le fichier :

sudo nano /etc/vsftpd.conf

Paramètres de base recommandés

Ajustez ou décommentez les directives suivantes :

# Désactiver l'accès anonyme
anonymous_enable=NO

# Autoriser les utilisateurs locaux
local_enable=YES

# Autoriser l'écriture
write_enable=YES

# Masque de permissions
local_umask=022

# Isoler chaque utilisateur dans son répertoire home
chroot_local_user=YES
allow_writeable_chroot=YES

# Messages de bienvenue
dirmessage_enable=YES

# Horodatage en heure locale
use_localtime=YES

# Journalisation des transferts
xferlog_enable=YES
xferlog_std_format=YES

Restreindre l'accès à une liste d'utilisateurs

Pour n'autoriser que des comptes explicitement listés, ajoutez :

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Puis créez le fichier avec les utilisateurs autorisés :

echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Configurer le mode passif

Le mode passif est indispensable derrière un pare-feu. Définissez une plage de ports dédiée :

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=VOTRE_IP_PUBLIQUE

Remplacez VOTRE_IP_PUBLIQUE par l'adresse IP visible depuis Internet, disponible dans le dashboard de votre panel OmegaCloud.

Activer TLS (FTPS)

Le FTP en clair expose les identifiants. Générez un certificat auto-signé (ou utilisez un certificat Let's Encrypt existant) :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ssl/private/vsftpd.pem \
  -out /etc/ssl/private/vsftpd.pem

Ajoutez ensuite le bloc TLS dans vsftpd.conf :

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Redémarrez le service pour appliquer :

sudo systemctl restart vsftpd


Créer un utilisateur FTP et ouvrir le pare-feu

Il est déconseillé d'utiliser un compte système existant. Créez un utilisateur dédié au FTP.

Création d'un utilisateur dédié

sudo adduser ftpuser
sudo mkdir -p /home/ftpuser/files
sudo chown ftpuser:ftpuser /home/ftpuser/files

Si vous utilisez le chroot strict, le répertoire home ne doit pas être inscriptible par l'utilisateur. Créez un sous-dossier dédié aux fichiers comme ci-dessus, ou utilisez allow_writeable_chroot=YES pour plus de souplesse.

Ajoutez l'utilisateur à la liste autorisée :

echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Configurer le pare-feu UFW

Ouvrez le port de commande FTP et la plage passive :

sudo ufw allow 21/tcp
sudo ufw allow 40000:40100/tcp
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Alternative avec nftables

Si vous préférez nftables, un exemple minimal :

sudo nft add rule inet filter input tcp dport 21 accept
sudo nft add rule inet filter input tcp dport 40000-40100 accept

Anti-DDoS et couche réseau

La protection contre les attaques volumétriques n'est pas du ressort de vsftpd. Sur l'infrastructure OmegaCloud, la mitigation anti-DDoS kernel-level est incluse par défaut et transparente : elle filtre les floods réseau avant qu'ils n'atteignent votre démon FTP. Vous restez responsable du durcissement applicatif (limitation des tentatives, chiffrement, comptes dédiés).



Sécurisation avancée et tests

Une fois vsftpd fonctionnel, quelques mesures complémentaires renforcent la surface d'attaque.

Protéger contre le brute-force avec fail2ban

Installez fail2ban et activez la protection vsftpd :

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

Créez un fichier /etc/fail2ban/jail.d/vsftpd.local :

[vsftpd]
enabled = true
port = ftp,ftp-data,40000:40100
logpath = /var/log/vsftpd.log
maxretry = 4
bantime = 3600

Rechargez fail2ban :

sudo systemctl restart fail2ban
sudo fail2ban-client status vsftpd

Bonnes pratiques complémentaires

  • Privilégiez toujours FTPS ou SFTP plutôt que le FTP en clair.
  • Activez l'authentification 2FA sur votre panel de gestion.
  • Utilisez des clés SSH uniquement pour l'accès administrateur, jamais de mot de passe SSH.
  • Limitez la plage passive au strict nécessaire.
  • Surveillez régulièrement /var/log/vsftpd.log.
  • Désactivez l'accès anonyme (déjà fait via anonymous_enable=NO).

Consultez la documentation officielle de la commande et des services pour approfondir : Source.

Tester la connexion

Depuis un poste client, testez la connexion FTPS avec un client compatible (en ligne de commande avec lftp) :

lftp -u ftpuser -e "set ftp:ssl-force true; set ssl:verify-certificate no; ls; quit" VOTRE_IP_PUBLIQUE

Si vous obtenez un listing du répertoire, la configuration est opérationnelle. En cas d'erreur de connexion passive, vérifiez que la plage 40000-40100 est bien ouverte et que pasv_address pointe vers l'IP publique correcte.

Diagnostic rapide

Symptôme Cause probable Action
Connexion refusée port 21 Service arrêté ou pare-feu Vérifier systemctl status et UFW
Login OK, listing bloqué Mode passif mal configuré Ouvrir la plage passive et pasv_address
500 OOPS chroot Home inscriptible Ajouter allow_writeable_chroot=YES
Refus TLS Certificat introuvable Vérifier les chemins rsa_cert_file

Pour aller plus loin sur l'automatisation du provisioning et l'intégration à vos pipelines, explorez les Integrations & API OmegaCloud.

vsftpd reste une solution éprouvée pour exposer un service de transfert de fichiers sécurisé sur un serveur Linux. En combinant chroot, TLS, fail2ban et un pare-feu strict, vous obtenez un FTPS robuste. Pensez toujours à privilégier le chiffrement et à surveiller les journaux pour garder la maîtrise de vos accès.



FAQ

Faut-il préférer vsftpd ou SFTP pour transférer des fichiers ?

SFTP (via OpenSSH) est souvent plus simple à sécuriser car il réutilise le port SSH et le chiffrement existant. vsftpd en mode FTPS reste pertinent si vous avez besoin de comptes FTP dédiés, d'un chroot fin par utilisateur ou d'une compatibilité avec des clients FTP historiques. Évitez toujours le FTP en clair.

Pourquoi le listing des fichiers échoue-t-il en mode passif ?

C'est généralement dû à la plage de ports passifs non ouverte dans le pare-feu ou à une valeur pasv_address incorrecte. Vérifiez que la plage définie dans vsftpd.conf (ex. 40000-40100) est autorisée dans UFW ou nftables, et que l'IP publique renseignée correspond bien à celle vue depuis Internet.

Comment protéger vsftpd contre les attaques par force brute ?

Installez fail2ban et activez une jail vsftpd surveillant /var/log/vsftpd.log, avec un bannissement après quelques tentatives échouées. Ajoutez le chiffrement TLS obligatoire, désactivez l'accès anonyme et limitez les comptes autorisés via userlist_file. Les attaques volumétriques réseau sont, elles, filtrées par l'anti-DDoS de l'infrastructure.

Prêt à mettre en pratique ce que vous venez de lire ?

Découvrir nos offres

Articles liés

Prêt à vous lancer ?

à partir de 6,99 € HT/mois

Découvrir nos offres

Hébergements

Navigation