Héberger un serveur FTP

Prérequis :

Avoir une machine virtuelle de disponible.
Je vais utiliser une installation de Ubuntu server 12.04 LTS (voir article précédent).

Rediriger une adresse web vers l’IP dynamique du routeur

Création d’un compte sur un site de DNS dynamique.

Si comme beaucoup de monde, vous avez un routeur qui dispose d’une adresse ip dynamique, il va vous falloir utiliser un DNS dynamique :

Allez sur www.noip.com pour vous créer un profil.

Ajouter un hôte (host).

Choisissez un nom d’hôte (hostname) et le domaine. Dans les exemples suivant, j’utiliserais monserveur.no-ip.biz

Les autres paramètres par défaut devraient vous convenir.

Configurer le client local

Il peut être dans votre routeur (moi, je l’ai configuré dans ma livebox) ou ce peut être une application installée sur une machine locale.

Ce client va régulièrement vérifier l’adresse IP du routeur et l’envoyer au service de DNS dynamique.

Cette partie me semble trivial. Je ne rentre pas plus dans les détails.

Installer proftpd

sudo apt-get install proftpd

« Lancer ProFTPd à partir d’inetd ou indépendamment ? »

Choisissez la réponse par défaut (indépendamment).

Et c’est tous … enfin presque. 😉

Modifier le fichier de configuration

sudo nano  /etc/proftpd/proftpd.conf

Les lignes à modifier et/ou enlever le ‘#’ :

ServerName                      « Aurora »

DefaultRoot                     /srv/ftp

PassivePorts                  49152 65534

MasqueradeAddress               monserveur.no-ip.biz

DynMasqRefresh             28800

Quelques remarques :

Le répertoire désigné par DefaultRoot doit être accessible en lecture ( et si nécessaire en écriture) à l’utilisateur du serveur FTP.

Le serveur FTP a besoin de connaître son adresse IP externe pour proposer le mode passif au client FTP :

J’utilise le hostname configuré chez le DNS dynamique pour le champ MasqueradeAddress.

Le module DynMasqRefresh devrait mettre à jour l’IP externe de mon serveur quand elle change … à voir.

Vous pouvez réduire la plage d’adresse IP pour le mode passif, mais n’utilisez pas les ports dans la plage basse ( < 1024).

Pour autoriser l’accès anonyme au serveur ftp :

# A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>

#   # Uncomment this if you’re brave.

#   # <Directory incoming>

#   # </Directory>

</Anonymous>

 

Redémarrez le serveur FTP :

sudo service proftpd restart

Créer des utilisateurs du serveur FTP

Pour créer des utilisateur du serveur FTP, il suffit de créer des utilisateurs sur le serveur :

addusers monUtilisateur

Vous aurez peut-être besoin de définir les droits d’utilisation du répertoire défini par DefaultRoot.

Rappel pour gérer les attributs des fichiers :

chmod pour gérer les droits sur les fichiers

chown pour gérer les propriétaires des fichiers

usermod pour ajouter un utilisateur à un groupe

Configurer la translation d’adresse sur le routeur (NAT)

Il faut rediriger les ports suivants vers le serveur FTP:

21, 20 et la plage d’adresse IP passive configuré sur le serveur FTP.

Seul le protocole TCP est nécessaire.

 

Tester le serveur FTP

Avec un client ftp local

Vous pouvez maintenant utiliser le célèbre Filezilla pour tester votre serveur.
Utilisez l’adresse IP locale de votre serveur.
Testez plusieurs login ( anonyme, votre utilisateur, …)

Avec un client ftp lointain.

Dans certains cas, le routeur réagira mal si vous tenter d’utiliser l’adresse dyndns de votre serveur.
Si vous n’avez pas accès à une autre machine, en dehors de votre réseau local, vous pouvez utiliser une application web telle que : www.net2ftp.com.

Cela permet d’accéder à un serveur FTP à partir de leur serveur. Les requêtes FTP viennent donc de l’extérieur.
Attention ,toutefois, il n’est pas très sûr de confier ses mots de passes à des serveur web, même si ceux-ci semblent d’honnêtes entités numériques.

Sur le serveur

Utilisez les commandes ci-dessous pour voir le trafic sur votre serveur Web :

ftpwho

ftpstats

 

 

Utiliser un espace de stockage externe au serveur FTP

Installation du paquet Autofs :

sudo aptitude install autofs

Pour la configuration, modifiez le fichier « /etc/auto.master ».

sudo vi /etc/auto.master

Voici le fichier exemple donné par Ubuntu :

#
#…

#
+auto.master

La dernière ligne ne doit pas être commentée.

Chaque point de montage est associé à un fichier de configuration.

Nous allons créer un nouveau fichier pour notre partage NFS

Ajoutez la ligne suivante au fichier « /etc/auto.master » :

/srv /etc/auto.ftp –ghost, –timeout=60

Ceci va créer un point de montage dans /srv/ftp (à ajuster en fonction de votre defaultroot) et le configurer en fonction des paramètres du fichier  « /etc/auto.ftp » que nous allons créer.

sudo vi /etc/auto.ftp

Ce fichier doit contenir une ligne par partage NFS en suivant le format :  {mount point} [{mount options}] {location}.

ftp -fstype=nfs,rw,intr     adresseIpOuNomDeMonServeur:/ftp

Il ne reste plus qu’à démarrer le service autofs :

sudo service autofs restart

et voilà, l’espace de stockage du serveur FTP est délocalisé sur une autre machine.

 

Webographie

http://www.proftpd.org/docs/howto

http://doc.ubuntu-fr.org/proftpd

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.