Mise en place d’un Web FTP ouvert

Publié le 30 décembre 2010 par Romainbochet

Comme de nombreuses personnes, j'ai déjà eu un besoin urgent d'un client FTP pour mettre en ligne (ou récupérer) un fichier sur un serveur. Et comme des dizaine de milliers de personnes, il m'arrive quotidiennement de me connecter dans un réseau où l'utilisation d'un client FTP est tout simplement interdite à cause de restrictions diverses (probablement pour préserver la bande passante), souvent déguisées en restriction de sécurité. Mais en quoi laisser quelqu'un de se connecter à un serveur peut-il compromettre le réseau ?

Exit donc la possibilité d'utiliser le si pratique Filezilla... Heureusement, d'autres solutions existent. Quand je parle d'autres solutions, je parle de ce qui est habituellement appelé les WebFTP (abbréviation de web based FTP client). Le concept de ces Web FTP est fort simple : au lieu de passer par un logiciel installé sur sa propre machine, on passe par une interface web, et les connexions au serveur distant se font avec des sockets en PHP.

En prévision des jours sombres où je serais dans une situation inextricable, j'ai décidé de monter mon propre Web FTP à l'adresse http://netftp.stackr.fr. C'est un logiciel multiserveur ; aussi vous pouvez l'utiliser pour faire vos propre transferts vers des serveurs FPT.

Choix du client et mise en place

Après avoir établi un bref cahier des charges, j'ai testés quelques un des logiciels (Open Source) les plus connus. J'ai notamment pu tester :

  • Net2FTP, le logiciel derrière http://www.net2ftp.com/ (Téléchargement)
  • phpWebFtp, disponible ici : http://www.phpwebftp.com
  • WebShare, disponible ici : http://www.webshare.fr/ (et présenté sur Framasoft)

Les trois étaient assez intéressants, mais c'est phpWebFtp qui a retenu mon attention, car il était à la fois simple à utiliser, présentait un look XP retro, et n'était pas lié qu'à un seul domaine.

L'installation est on ne peut plus simple ; il suffit de mettre en ligne un dossier, et de régler quelques petits détails bien décrits dans la documentation du projet.

À titre d'exemple, voici les valeurs que j'ai mises :

  • Taille maximale de fichier transférable : 750 Mo ;
  • Reprise sur téléchargement (Resume Download) : oui (cette fonctionnalité permet de faire une pause/reprise d'un téléchargement ou d'un envoi, mais nécessite PHP 4.3.1 au minimum) ;
  • J'ai accessoirement mis la langue en français (j'avais pas mal de problème avec le néerlandais) ;
  • Attention : la documentation de phpwebftp contient une petite erreur ; le dossier temporaire de stockage ne devrait pas être chmod 777 (tous les droits pour tout le monde), mais chmod 707 (vous et nobody, qui est l'utilisateur d'Apache).

    Sur ce screenshot de http://netftp.stackr.fr, le fameux look vanté précédemment.

Utilisation

Je pense que vous l'aviez compris au dessus, vous pouvez utiliser ce client web en cas de besoin. Il suffit de rentrer les informations habituelles. Si vous êtes surpris par la case "Passive", laissez la décochée ; elle ne sert que dans de très rares cas, et si vous ne l'avez jamais fait, ce ne sera probablement pas nécéssaire.

J'ai passé la taille par dessein de 50 Mo à 750 Mo, ce qui devrait permettre de passer la plupart des images ISO (de toute façon, je suis encore large sur mon hébergement, et OVH n'impose plus de limite de débit).

Petite précision utile : je ne garde aucun log, je ne garde aucun des fichiers mis en ligne, et les couples login-mot de passe ne sont pas enregistrés.

Idée intéressante : avoir sa propre installation

Un tel système, qui revient à confier des mots de passe à un serveur inconnu, devrait vous hérisser le poil. En effet, je pourrais très bien les stocker (malgré mon avertissement), en modifiant de manière sommaire le client en PHP. Mais bon, l'urgence fait parfois faire des choses que l'on aurait préféré ne pas avoir à faire, et il reste toujours possible de changer son mot de passe dès que possible.

L'idée intéressante est donc d'installer ce client sur son propre serveur. L'installation est facile, et il est même possible de fixer un serveur cible (de sorte qu'il soit impossible d'accéder à d'autres serveurs, et donc totalement inutile pour d'autres gens). L'avantage est que vos données restent chez vous, ce qui est un sentiment très agréable. D'autre part, on se libère de la disponibilité aléatoire de services tels que net2ftp.

Si vous souhaitez répliquer ce que j'ai mis en place, voici mon fichier de configuration. Il vous suffira de le renommer de .txt et en .php.

J'espère que ce service pourra vous enlever une épine du pied le jour où vous en aurez besoin. Un lien sera toujours disponible dans la barre de droite.