PROFTPD, configurer un serveur FTP orienté web sur son dédié, VPS

Par Antoine Pitula

L’installation d’un serveur dédié ou VPS pour la gestion d’un ou plusieurs site web passe forcément par la gestion d’un serveur FTP. Cet outil indispensable permet une meilleur gestion des transferts de fichiers, son encadrement et sa sécurisation. Dans ce tuto nous allons mettre en place l’installation proftpd, mais il en existe d’autres comme vsftpd.

Prérequis à l’installation de proftpd

L’installation d’un serveur FTP comme ProFTPD constitue une étape essentielle dans la mise en place d’un environnement de gestion de fichiers à distance sur un serveur Linux. ProFTPD (Pro FTP Daemon) est l’un des serveurs FTP les plus robustes et flexibles, apprécié notamment pour sa configuration proche de celle d’Apache. Né en 1997, il a rapidement trouvé sa place face à d’autres solutions comme vsftpd ou Pure-FTPd grâce à sa documentation riche et son système de permissions avancées.

Avant toute chose, assurez-vous que votre serveur (dédié ou VPS) est prêt à accueillir ce type de service :

  • Vous devez disposer d’un accès SSH fonctionnel au serveur
  • Vous devez avoir un utilisateur ayant les droits d’administration (généralement via sudo)
  • Votre distribution doit être à jour afin d’éviter tout conflit de dépendances lors de l’installation

Commencez donc par une mise à jour complète de votre système avec les commandes suivantes :

sudo apt-get update
sudo apt-get upgrade

Une fois les mises à jour terminées, installez ProFTPD via la commande :

sudo apt-get install proftpd

Durant l’installation, une fenêtre de configuration s’affiche pour vous demander si vous souhaitez exécuter le serveur FTP en mode standalone ou via inetd. Voici un comparatif simple pour faire le bon choix :

Mode Caractéristiques
Inetd Le serveur FTP est lancé uniquement lorsqu’une connexion est demandée. Moins gourmand en ressources mais peu adapté à de nombreux utilisateurs simultanés.
Standalone Le serveur reste actif en permanence. Il offre de meilleures performances pour les connexions multiples, idéal pour des environnements de développement ou production.

Notre conseil : privilégiez le mode standalone si vous êtes sur un serveur VPS ou dédié avec un trafic FTP modéré à important. Cela vous assurera un service plus fluide, notamment si vous hébergez des fichiers médias ou des sauvegardes automatisées.

Une fois l’installation terminée, le fichier principal de configuration se trouve dans :

/etc/proftpd/proftpd.conf

Il est fortement recommandé de sauvegarder ce fichier immédiatement avant toute modification :

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bak

En résumé, même si l’installation de ProFTPD ne requiert pas de prérequis techniques complexes, elle demande rigueur, bon sens et un minimum de connaissance de votre environnement serveur. Une base solide est indispensable pour ensuite aborder les notions avancées comme la création d’utilisateurs virtuels, le chrooting ou encore le chiffrement TLS/SSL que nous aborderons dans la suite de ce guide.

Méthodes de configuration des utilisateurs FTP

ProFTPD permet une gestion souple et adaptée des utilisateurs selon la nature de votre projet, qu’il s’agisse d’un environnement personnel, d’un serveur multi-utilisateurs ou d’un hébergement professionnel. On distingue principalement deux approches :

  • La gestion via utilisateurs système (UNIX), simple et directe
  • La gestion via utilisateurs virtuels, plus flexible et indépendante du système

1. Création d’un utilisateur FTP système

Cette méthode consiste à créer un utilisateur Linux classique, qui sera reconnu automatiquement par ProFTPD. Cela permet un contrôle natif via les permissions UNIX et une intégration immédiate.

Créons un utilisateur nommé antoine :

sudo adduser antoine

Il vous sera alors demandé de définir un mot de passe, puis de remplir des champs facultatifs (nom complet, etc.). Un dossier personnel sera automatiquement créé dans :

/home/antoine/

Une fois créé, ce compte peut être utilisé pour se connecter via un client FTP comme FileZilla. Cependant, sans configuration spécifique, l’utilisateur peut naviguer librement sur le serveur, même s’il n’a les droits en écriture que dans son répertoire personnel.

Pour sécuriser cette utilisation, on restreint l’utilisateur à son propre répertoire grâce à la directive suivante dans le fichier /etc/proftpd/proftpd.conf :

DefaultRoot ~

Cela « chroote » l’utilisateur, c’est-à-dire qu’il ne pourra plus remonter dans l’arborescence système au-delà de son propre dossier.

2. Comptes virtuels : une gestion indépendante du système

Pour des usages plus évolués (serveurs mutualisés, gestion multi-utilisateurs), il est recommandé d’opter pour les utilisateurs virtuels. Ceux-ci ne sont pas créés au niveau du système d’exploitation, mais sont déclarés via un fichier ou une base de données.

Voici un exemple avec un fichier texte contenant les identifiants virtuels :

# /etc/proftpd/ftpd.passwd
antoine:$1$hashpass$abc...:1001:1001::/home/ftp-users/antoine:/bin/false

On complète ensuite la configuration dans proftpd.conf avec :

AuthUserFile /etc/proftpd/ftpd.passwd
AuthOrder mod_auth_file.c
RequireValidShell off

Avantages :

  • Pas de création d’utilisateurs Linux,
  • Meilleur cloisonnement des accès,
  • Gestion simplifiée des droits FTP.

Il est aussi possible d’utiliser une base SQL (MySQL, MariaDB, PostgreSQL) pour centraliser les accès via mod_sql. Cette solution est idéale pour les infrastructures à grande échelle, avec des interfaces de gestion personnalisées.

Comparatif des méthodes

Méthode Avantages / Inconvénients
Utilisateurs système Simple à configurer, intégré au système. Moins adapté aux environnements multi-utilisateurs. Nécessite des précautions pour la sécurité.
Utilisateurs virtuels (fichier) Pas de dépendance au système, gestion isolée. Idéal pour hébergement FTP isolé. Configuration légèrement plus technique.
Utilisateurs SQL Scalable, centralisé, puissant. Demande plus de configuration, mais indispensable pour les plateformes complexes ou les portails FTP à grande échelle.

Chaque méthode a ses usages spécifiques, mais toutes permettent une gestion sécurisée et stable des connexions FTP sur votre serveur ProFTPD. À vous de choisir la solution la plus adaptée à votre projet et au niveau de contrôle que vous souhaitez conserver.

Bloquer les utilisateurs FTP en SSH

Lorsqu’on crée un utilisateur FTP sur un serveur utilisant ProFTPD en mode standard (utilisateurs système), celui-ci bénéficie par défaut des droits d’un utilisateur UNIX. Cela signifie qu’il peut également tenter de se connecter au serveur via SSH. C’est une faille potentielle importante en matière de sécurité si vous n’avez pas prévu cette ouverture.

Dans un contexte de serveur multi-utilisateurs ou de mise à disposition de comptes FTP à des tiers (collaborateurs, clients, prestataires…), il est indispensable de restreindre les accès SSH uniquement aux comptes de confiance.

1. Constater le problème

Voici un exemple classique : vous créez un utilisateur FTP nommé antoine. Si vous ne prenez pas de mesures, ce dernier peut se connecter via SSH avec les identifiants que vous lui avez fournis :

connexion ssh par défaut

Ce comportement est normal sur un système UNIX, mais dangereux. Vous devez donc explicitement limiter les accès SSH à quelques comptes bien définis.

2. Modifier le fichier de configuration SSH

Pour restreindre les connexions SSH à certains utilisateurs, commencez par ouvrir le fichier de configuration du serveur SSH :

sudo nano /etc/ssh/sshd_config

Ajoutez ou modifiez la directive suivante à la fin du fichier :

AllowUsers root facemadmin

Ce paramètre indique que seuls les utilisateurs root et facemadmin sont autorisés à se connecter en SSH. Tous les autres seront automatiquement bloqués, y compris les utilisateurs FTP comme antoine.

exemple d'utilisation de AllowUsers

⚠ Attention : Assurez-vous de ne pas vous exclure vous-même. Vérifiez que votre propre utilisateur (celui utilisé pour administrer le serveur) figure bien dans la directive AllowUsers avant de redémarrer le service, au risque de vous verrouiller l’accès SSH.

3. Redémarrer le service SSH

Pour appliquer les nouvelles règles, redémarrez le service SSH avec la commande suivante :

sudo /etc/init.d/ssh restart

Une fois redémarré, toute tentative de connexion SSH par un utilisateur non listé renverra une erreur d’accès interdit. Les utilisateurs FTP peuvent continuer d’utiliser leur client FTP, sans possibilité de compromettre votre système par une session shell.

Résumé technique

Étape Description
Ouvrir le fichier sshd_config Contient toutes les règles liées au comportement du service SSH
Ajouter AllowUsers Spécifie les utilisateurs autorisés à ouvrir une session SSH
Redémarrer le service SSH Rend les changements actifs immédiatement

En sécurisant ainsi l’accès SSH de votre serveur, vous vous assurez que seuls les administrateurs légitimes peuvent interagir avec le cœur du système, tout en conservant un FTP pleinement fonctionnel pour les utilisateurs ordinaires.

Bloquer les utilisateurs de ProFTPD dans leur répertoire

Lorsque vous utilisez ProFTPD avec des comptes utilisateurs UNIX, chaque utilisateur peut, par défaut, naviguer librement dans l’arborescence du serveur, dans la limite de ses permissions. Cela peut représenter un risque de sécurité et de confidentialité des données, notamment si plusieurs utilisateurs se partagent un même serveur.

Pour éviter cela, vous pouvez restreindre chaque utilisateur à son propre répertoire personnel (home directory). Cette pratique est courante sur les hébergements mutualisés ou les environnements collaboratifs. Cela se fait très simplement via le fichier de configuration principal de ProFTPD.

1. Ouvrir le fichier de configuration

Lancez l’édition du fichier proftpd.conf (selon votre distribution, il peut aussi se trouver dans /etc/proftpd/proftpd.conf) :

sudo nano /etc/proftpd/proftpd.conf

2. Rechercher la directive DefaultRoot

Dans ce fichier, recherchez la directive DefaultRoot. Elle est généralement présente mais commentée (précédée d’un #). Cette directive est utilisée pour définir la racine visible par les utilisateurs FTP.

Voici la ligne typique à activer :

DefaultRoot ~

Le caractère ~ est une référence UNIX qui désigne le répertoire personnel de l’utilisateur. Cette directive signifie donc : “restreindre chaque utilisateur à son home directory”.

configuration DefaultRoot ProFTPD

3. Variantes avancées (optionnel)

Vous pouvez affiner ce comportement en ajoutant des exceptions. Voici quelques exemples :

Directive Effet
DefaultRoot ~ Restreint tous les utilisateurs à leur dossier personnel
DefaultRoot ~ !admin Restreint tous les utilisateurs sauf admin
<Directory /home/*>
DefaultRoot ~
</Directory>
Applique la restriction uniquement aux utilisateurs présents dans /home

4. Redémarrer le service ProFTPD

Pour appliquer les changements, vous devez redémarrer le service :

sudo /etc/init.d/proftpd restart

Ou selon votre version d’Ubuntu/Debian avec systemd :

sudo systemctl restart proftpd

5. Vérification de la restriction

Connectez-vous via un client FTP (par exemple FileZilla) avec un utilisateur restreint. Il doit maintenant être “chrooté”, c’est-à-dire confiné à son répertoire personnel sans pouvoir accéder aux répertoires parent.

Cette technique est une mesure essentielle pour toute configuration FTP sérieuse, qu’il s’agisse de production ou de test, et vous évitera des erreurs de manipulation ou des accès non autorisés.

Création d’utilisateurs virtuels, gérer vos accès FTP comme bon vous semble

Après avoir vu comment créer des comptes FTP à partir d’utilisateurs système classiques, il est temps d’aller plus loin avec une méthode plus propre, plus souple, et plus sécurisée : les utilisateurs virtuels dans ProFTPD.

Contrairement aux comptes UNIX, ces comptes virtuels :

  • ne peuvent pas se connecter en SSH (par design),
  • ne sont pas enregistrés dans /etc/passwd,
  • et peuvent être confinés dans n’importe quel répertoire, même en dehors de /home/.

C’est la méthode recommandée si vous gérez une agence web, un hébergement mutualisé ou plusieurs clients accédant au FTP en parallèle.

1. Préparer les fichiers de base

Nous allons commencer par créer les fichiers qui contiendront nos comptes virtuels :

sudo touch /etc/proftpd/ftpd.passwd
sudo touch /etc/proftpd/ftpd.group

Ces fichiers joueront le rôle de bases de données locales pour les utilisateurs et les groupes respectifs.

2. Créer un utilisateur virtuel

Utilisez la commande ftpasswd pour générer un nouvel utilisateur :

sudo ftpasswd --passwd --name=virtual_ftp1 --uid=1002 \
--file=/etc/proftpd/ftpd.passwd --home=/home/virtual_ftp1 --shell=/bin/false

Cette commande :

  • crée l’utilisateur virtual_ftp1,
  • lui donne l’UID 1002 (à adapter selon votre système),
  • lui attribue le répertoire /home/virtual_ftp1,
  • et l’empêche de se connecter avec un shell système (grâce à /bin/false).

Créez le dossier qui lui servira de racine :

sudo mkdir /home/virtual_ftp1

3. Créer un groupe et y ajouter l’utilisateur

Les groupes permettent de gérer collectivement les permissions :

sudo ftpasswd --group --name=groupe_ftp --gid=1100 \
--file=/etc/proftpd/ftpd.group --member=virtual_ftp1

Vérifiez ensuite le contenu des fichiers générés :

cat /etc/proftpd/ftpd.passwd
cat /etc/proftpd/ftpd.group

Vous devriez y voir les entrées correspondantes. Si vous souhaitez ajouter un autre utilisateur à ce groupe plus tard, éditez directement ftpd.group :

sudo nano /etc/proftpd/ftpd.group

Ajoutez simplement le nom de l’utilisateur à la suite, séparé par une virgule.

4. Configuration de ProFTPD pour activer les utilisateurs virtuels

Maintenant que les comptes sont prêts, il faut indiquer à ProFTPD de les reconnaître.

a. Déclarer le shell dans /etc/shells

Ajoutez /bin/false dans /etc/shells s’il n’y figure pas déjà :

sudo nano /etc/shells

Ajoutez cette ligne en bas :

/bin/false

b. Modifier le fichier proftpd.conf

Éditez la configuration principale de ProFTPD :

sudo nano /etc/proftpd/proftpd.conf

Ajoutez les lignes suivantes pour charger vos bases d’utilisateurs :

# Fichier des utilisateurs virtuels
AuthUserFile /etc/proftpd/ftpd.passwd

# Fichier des groupes virtuels
AuthGroupFile /etc/proftpd/ftpd.group

c. Restreindre les utilisateurs à leur répertoire de travail

Ajoutez ou modifiez la directive suivante pour enfermer les membres du groupe groupe_ftp dans un dossier :

DefaultRoot /var/www groupe_ftp

Vous pouvez remplacer /var/www par n’importe quel répertoire selon vos besoins (projets web, staging, etc).

d. Gérer les permissions de fichiers uploadés

Enfin, configurez les permissions par défaut des fichiers envoyés via FTP :

Umask 000 000

Cette configuration permet aux autres utilisateurs du groupe d’éditer ou supprimer les fichiers uploadés, ce qui est utile en cas de collaboration.

5. Redémarrer ProFTPD

Une fois toutes les modifications effectuées, appliquez-les en redémarrant le service :

sudo systemctl restart proftpd

6. Résultat final

Vous disposez désormais d’un ou plusieurs utilisateurs virtuels, isolés dans leur répertoire de travail, incapables d’accéder au système, mais parfaitement opérationnels pour l’édition de fichiers à distance.

Cette méthode permet une gestion professionnelle et modulaire des accès FTP, tout en gardant votre serveur sécurisé et sous contrôle.

Antoine Pitula

Antoine Pitula

Développeur, création et refonte de sites optimisés, référencement naturel

0 commentaires

Besoin de visibilité ?

☑️ Experts du référencement

☑️ + de 12 ans d’éxpérience

☑️ + 500 clients satisfaits

☑️ Création de sites

☑️ Audit SEO

☑️ Conseil SEO

☑️ Référencement de sites

☑️ Devis gratuit