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.