Installer et configurer un service FTP sur son serveur LAMP

Installer et configurer un service FTP sur son serveur LAMP

OS, Serveur, Mobile Tutoriels

Le transfert de fichiers par FTP est un service indispensable sur un serveur Web. La mise en place d’un tel service n’est pas toujours très clair surtout lorsqu’on désire l’utiliser pour manipuler les fichiers de ses sites Web. En effet, on rencontre souvant des problèmes de droit car l’utilisateur FTP rentre souvant en conflit avec l’utilisateur du service http.

A travers ce tutoriel, nous allons installer un service FTP et le configurer pour utiliser des utilisateurs virtuels qui se feront passer pour l’utilisateur de votre service http (ex: www-data).

Installation du service

Il existe de nombreux services FTP. Mon choix s’est tourné vers Proftpd que j’utilise depuis des années et que je trouve stable et performant.
Avant d’installer quoi que ce soit, n’oublions pas de mettre à jour la liste de nos dépôts :

sudo apt-get update

Installons maintenant le service Proftpd :

sudo apt-get install proftpd

A partir de là, nous avons déjà un service FTP installé et operationnel sur notre serveur. Nous allons le paramétrer de façon à ce qu’ils convienne parfaitement à un usage Web.

Création et paramétrage des utilisateurs virtuels

Par défaut, Proftpd est configuré pour utiliser les utilisateurs Linux. Il n’est pas recommandé d’utiliser cette méthode pour des raisons de sécurité. De plus, cela rend laborieux la gestion des utilisateurs lorsque ces derniers sont nombreux. Nous allons donc utiliser des faux utilisateurs ou « utilisateurs virtuels » qui seront associés et « chrooter » (enfermés) dans des répertoires bien précis de notre serveur.

J’ai longtemps utilisé MySQL pour gérer mes utilisateurs FTP mais je me suis rendu compte que ce n’était pas très performant surtout lors de la connexion. Nous allons donc utiliser le système des fichiers « passwd » pour les stocker.

Commençons par récuperer l’identifiant de l’utilisateur www-data ainsi que celui de son groupe :

id www-data

Remplacez www-data par l’utilisateur associé à votre serveur http et notez quelque part son identifiant utilisateur (uid) et celui de son groupe (gid).

Modifions maintenant le fichier de configuration de Proftpd /etc/proftpd/proftpd.conf de façon à avoir les valeurs suivantes :

DefaultRoot   ~
AuthOrder   mod_auth_file.c
AuthUserFile   /etc/proftpd/ftpd.passwd

Le paramètre DefaultRoot indique au serveur qu’il faut restreindre les utilisateurs à leur répertoire récine (home). Le paramètre AuthOrder défini la méthode d’authentification (ici par fichier texte). Quant au paramètre AuthUserFile, il indique à notre serveur FTP où chercher le fichier des utilisateurs.

Enfin, il ne nous reste plus qu’à créer notre utilisateur virtuel. Attention, la commande est à lancer dans le repertoire /etc/proftpd/ !

sudo ftpasswd --passwd --name=ftpuser --uid=33 --gid=33 --home=/var/www --shell=/bin/sh

Remplacez les paramètres uid et gid par l’idendifiant utilisateur et groupe de votre utilisateur http récupéré plus haut.
Ici, l’utilisateur créé se nomme ftpuser. Vous pouvez biensûr mettre celui de votre choix.
Le paramètre --home est très important car il indique dans quel répertoire l’utilisateur sera enfermé. Remplacez la valeur par le chemin de votre vhost ou bien la racine de votre répertoire Web. Exemple : /var/www/monsite.fr.

Notre utilisateur est maintenant créé ! Relançons maintenant notre service FTP afin qu’il prenne en compte nos modifications :

sudo service proftpd restart

Et c’est tout !

A propos de l'auteur

Commentaires

  • Patrice ROMEVO le 23/03/2014 à 11:55

    Merci !
    Je viens de suivre à la lettre ta procédure. Ca marche nickel.
    Sur un xubuntu 12.04, sur laquelle j'avais au préalable mon Lamp de paramétré.

  • Muad le 23/04/2014 à 13:20

    Merci.
    Procédure nickel

* KeywordLuv ! Entrez VotreNom@VosMotsClés dans le champ "Nom" pour bénéficier d'un mot-clef ciblé.