Page suivante Page précédente Table des matières

12. Hack 11 : Une home page dynamique via ftp

par Michael Driscoll fenris@lightspeed.net

Voici un hack très simple qui permet de mettre sa nouvelle IP sur une page sur le serveur http de votre FAI. Il nécessite :

Vous pouvez voir ce hack en marche à frob.base.org/.

(J'ai aussi reçu des scripts de shadow@indirect.com pour un autre hack qui fait pratiquement la même chose, bien qu'il utilise le ftp normal et sont plus complexes. Vous pouvez les trouver à l'adresse frob.base.org/contrib.tar.gz).

Note : une alternative à ce hack (utilisant les CGI) est présente dans le hack 14. C'est pratique pour ceux qui n'ont pas d'accès ftp à leur FAI.

12.1 Pourquoi j'utiliserais ça ?

  1. Parce que c'est un hack qui est simple et propre.
  2. Comme ça, vos amis et votre famille pourront facilement trouver votre IP (Ok, ce n'est peut être pas une bonne idée :-)
  3. Comme ça vous pouvez lancer votre propre httpd, avec vos propres CGI (mettre un pointeur http:// sur votre nouvelle IP pour accéder à votre propre httpd
  4. Depuis quand on a besoin d'avoir une raison pour faire quelque chose ?

12.2 Mise en place de la page

Tout d'abord, vous allez devoir écrire un peu de HTML pour aller sur la page du pointeur. Ce n'est pas trop l'objectif de ce HowTo de vous apprendre le HTML, alors, vous allez devoir l'apprendre par vous même. Allez jeter un oeil sur w3.org et hoohoo.ncsa.uiuc.edu, ils ont de bons manuels de base en ligne. Bon, quand vous écrirez la page, à la place de l'adresse de votre machine, mettez une ancre reconnaissable (je vais utiliser le mot "--IP--" dans cet exemple) comme ça, on va pouvoir utiliser un script qui remplacera l'ancre par l'adresse IP. Par exemple, une page pas mal serait :


<HTML>
<HEAD>
<TITLE>Ceci est la page de l'IP dynamique de Mike Driscoll</TITLE>
</HEAD>

<BODY>
<P>La derni&egrave;re adresse IP connue de ulfheim.lightspeed.net est :
<P><a href="telnet://--IP--">--IP--</a>
</BODY>
</HTML>

Remarquez que le href et le nom du lien utilisé "--IP--", que le script va remplacer par votre IP avant l'envoi des pages sur le serveur.

Pour cet exemple, je supposerais que vous avez nommé ce fichier /etc/ppp/index.html.

Une note sur les redirections

par Artur Skawina skawina@usa.net

Au lieu de juste uploader la page avec votre IP courante, il est possible d'envoyer une page qui redirigera tout le monde sur votre machine, par exemple, un tag comme ça dans la section HEAD d'une de vos pages :
<META HTTP-EQUIV="refresh" CONTENT="3; URL=http://--IP--/page">

12.3 Utilisation de ncftp pour la mise à jour automatique des pages.

Avant de faire cette partie, on va d'abord regarder quelle version de ncftp vous avez. Pour le savoir, exécutez ncftp

Voici deux exemples :

fenris@ulfheim:~$ ncftp
1.9.5 (October 29, 1995)
ncftp>_

mdriscol@ultrix6:/usr/stu/mdriscol$ ncftp
NcFTP 2.0.5 (May 1, 1995), by Mike Gleason, NCEMRSoft.
NcFTP> _

Suivant la version de ncftp, on va faire tout d'une façon différente. Si la version est 1.x.x (la mienne est 1.9.5), utilisez la première méthode, si la version est 2.x.x (celle de mon compte à l'école est 2.0.5) alors, utilisez la seconde méthode.

ncftp 1.x.x

Maintenant, on va ajouter quelques trucs au .ncftprc de root. Dans le mien, j'ai ce qu'il suit :


#set auto-binary on
#set recent-list off

machine Le.serveur.de.votre.FAI
        user Votre_nom_d'utilisateur
        password Votre_mot_de_passe
        macdef init
                cd /vers/votre/repertoire
                put /tmp/index.html index.html
                quit

Le auto-binary s'assure qu'on sera en mode binaire, le recent-list empêche le fichier .ncrecent d'être crée (je ne l'aime pas, c'est tout, vous pouvez en avoir un si vous voulez), et la rubrique machine définit le nom d'utilisateur, le mot de passe, et les actions à faire (vous n'aurez peut être pas besoin du cd, moi, je n'en ai pas besoin, puisque le serveur de mon FAI me met automatiquement dans le bon répertoire).

ncftp 2.x.x

par Tomas Jamate tvj@miser.umass.edu

[Note : J'ai modifié le script de Tomas un peu avant de l'inclure dans le HowTo, si je l'ai cassé, dites-le-moi ! -- MCD]

Voici les fichiers dont je me suis servi pour faire marcher ncftp v2.x.x avec le hack 8. Notez que ncftp v2.x.x met tous ses fichiers de configuration dans ~/.ncftp. Je ne garantis pas que cela marchera pour vous, mais ça marche pour moi. Lisez les pages de man si vous voulez connaître les autres options de ncftp.

Premièrement, connectez-vous manuellement à votre FAI avec ncftp.

$ ncftp -u service.provider.com

Le -u oblige à demander le nom d'utilisateur et le mot de passe. Une fois connecte, faites un cd dans le répertoire ou sont vos pages. Cela va créer une entrée pour service.provider.com dans le bookmark de ncftp. (Je n'aime pas trop les bookmarks, mais hé, ça marche). Quittez ncftp.

Editez ~/.ncftp/bookmarks. Vous allez voir une entrée avec votre nom d'utilisateur, vous devrez ajouter le mot de passe juste après le nom d'utilisateur. ça devrait ressembler à :

NcFTP bookmark-file version: 6
Number of entries: 1
service,service.provider.com,Utilisateur,Motdepasse,,/repertoire/de/votre/page,[etc]

Maintenant créez et éditer ~/.ncftp/macros, il devra ressembler à ça :


macro .open.example
put /tmp/index.html index.html
exit
end

Maintenant, vous pouvez envoyer automatiquement votre page avec :

"ncftp -L example", le -L force le programme en mode ligne de commande
ou
"ncftp -Lf example", le -f force à recouvrir le fichier existant, pour le paranoïaque ;-)

12.4 Une routine de recherche/remplace simple avec sed

Maintenant, on va écrire la routine sed. Mettez les lignes qui suivent dans /etc/ppp/ip-up :


# On commence le code de l'IP dynamique
if [ -e /tmp/index.html ]; then
        mv /tmp/index.html /tmp/index.html-`date +%s`
fi
cat /etc/ppp/index.html | sed -e s/--IP--/$4/g > /tmp/index.html
ncftp le.serveur.de.votre.fai > /dev/null 2>&1

D'abord, on vérifie la préexistence de /tmp/index.html. Un cracker pourrait essayer d'exploiter notre utilisation de ça pour sortir n'importe quel fichier du disque en le liant à /tmp/index.html et en attendant que le script soit lancé. Donc, si le fichier existe déjà, on le sauvegarde gentiment pour que vous puissiez y jeter un coup d'oeil plus tard, empêchant toutes manipulations frauduleuses...

Puis, on lance le script sed. Il substitue toutes les occurrences de notre ancre "--IP--" avec notre nouvelle adresse IP et envoie le tout dans le nouveau index.html dans /tmp. ncftp est alors lance pour envoyer notre nouveau /tmp/index.html qui à l'IP actuelle en lui.

Félicitations, vous l'avez fait, vous avez maintenant une home page dynamique que vous pouvez utiliser pour pointer sur votre machine ! Amusez vous bien en le personnalisant ! Éditez juste /etc/ppp/index.html, et il sera mis à jour la prochaine fois que vous vous connectez à votre FAI.


Page suivante Page précédente Table des matières