J’ai souscrit il n’y a pas très longtemps aux AWS (Amazon Web Service). L’offre de bienvenue permet de bénéficier pendant 1 an du service EC2 (serveur dédié dans le cloud, à la demande) gratuitement, du moins dans la version la plus légère, c’est à dire Micro. J’ai donc voulu installer un serveur FTP sur mon instance Amazon EC2 Micro pour mes besoins de développement. J’ai jeté mon dévolu sur pure-ftpd-mysql. C’est un serveur FTP qui permet de gérer l’administration par MySQL (et phpMyAdmin).
Pour l’installation, j’ai suivi les instructions de HowToForge. C’est un excellent site de ressources pour trouver des tutoriels linux (en anglais). Mais après l’installation, je n’ai pas réussi à faire fonctionner mon accès FTP: je me connectais mais avais aussi un message d’erreur, et la liste des dossiers ne s’affichait pas.
Avec un peu de recherche, j’ai fini par comprendre d’où venait le problème. L’architecture spéciale du service EC2 d’Amazon fait que, en gros, les requêtes n’arrivent pas directement sur votre serveur, il y a un reroutage et donc différentes IP en jeu, ce qui fait que votre client FTP ne parviendra pas à se connecter directement.
Voici les étapes à suivre pour résoudre ce problème.
Premièrement, vous devez bien penser à modifier les règles de sécurité de votre serveur dans votre console AWS. Vous devez créer des règles pour autoriser le port 21 et l’étendue de port 50000-51000 en TCP.

Puis vous devez configurer pure-ftpd-mysql en conséquence. Pour cela vous devez exécuter ces deux commandes:
[cc lang= »bash »]
$ echo « 50000 50100″ > /etc/pure-ftpd/conf/PassivePortRange
$ echo « 127.0.0.1″ > /etc/pure-ftpd/conf/ForcePassiveIP
Redémarrez pure-ftpd ($ sudo service pure-ftpd-mysql restart) et c’est bon !