Dynamic IP Hacks Mini-HowTo
 Michael [email protected]
 V 2.1.3, 25 Mai 1997

 Comment s'en sortir avec une IP dynamique.
 ______________________________________________________________________

 Table des mati�res


























































 1. Copyright et D�finitions...

    1.1 Ou trouver la derni�re version de ce Mini-HowTo
    1.2 Commentaires
    1.3 Pourquoi ce Mini-HowTo ?
    1.4 Qu'est ce que l'adressage dynamique des IP, et pourquoi ais-je � m'en pr�occuper ?
    1.5 Pouvez-vous m'aider a configurer {pppd,telnetd,sendmail...} ?
    1.6 H�, et le SLIP ?
    1.7 Copyright
    1.8 Avertissement

 2. Introduction aux hacks 1 au 3

 3. Hack 1 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 1)

    3.1 Ce dont vous avez besoin
    3.2 (TT

 4. Hack 2 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 2)

    4.1 Ce dont vous avez besoin
    4.2 Mise en place du script
       4.2.1 En utilisant
       4.2.2 Utilisation

 5. Hack 3 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 2)

    5.1 Ce dont vous avez besoin
    5.2 Jouons avec les runlevels

 6. Hack 4 : Envoi de l'IP par e-mail

    6.1 Ce dont vous avez besoin
    6.2 Mise en place de vos
    6.3 Comment r�cup�rer votre nouvelle adresse IP depuis un autre ordinateur ?
       6.3.1 Faire un telnet sur un serveur POP3

 7. Hack 5 : Changement dynamique de votre

    7.1 Ce dont vous avez besoin.
    7.2 Cr�ation des patrons de hosts
    7.3 Et on retripote

 8. Hacks 6 � 8 : Divers hacks

    8.1 (TT
    8.2 (TT
    8.3 (TT

 9. Entr�es DNS dynamiques

 10. Hack 9 : Mettre � jour votre

 11. Hack 10 : Une recette simple avec

 12. Hack 11 : Une home page dynamique via ftp

    12.1 Pourquoi j'utiliserais �a ?
    12.2 Mise en place de la page
       12.2.1 Une note sur les redirections
    12.3 Utilisation de
       12.3.1 (TT
       12.3.2 (TT
    12.4 Une routine de recherche/remplace simple avec

 13. Hack 12 : Envoyez un message sur votre pager avec votre nouvelle adresse IP
    13.1 Le programme qui compose le num�ro
    13.2 Appel depuis

 14. Hack 13 : logins

 15. Hack 14 : Home page dynamique via un CGI

    15.1 Voil� ce que l'on va faire.
    15.2 Le script (

 16. Hack 15 : Suggestion pour les rc.*

 17. Hack 16 : Emp�cher les time-out impos�s par votre FAI avec un ping

 18. Hack 17 : Utilisation des SSI pour retrouver son IP

 19. On a besoin d'autre hacks !

 20. CR�DITS



 ______________________________________________________________________

 11..  CCooppyyrriigghhtt eett DD��ffiinniittiioonnss......

 par Michael Driscoll [email protected]


      [ 15 Janvier 1998 - Ce Mini-HowTo n'est plus maintenu par
      son auteur. Si vous �tes int�ress�s par la maintenance de ce
      Mini-HowTo, prenez contact avec moi � gregh@sun�
      site.unc.edu.]


 Avec les Hacks de :


 �  Michael Driscoll [email protected]

 �  Ryan R. Klems [email protected]

 �  Matthew Driver [email protected]

 �  Matthew Nuckolls [email protected]

 �  Justin Cragin [email protected]

 �  Brad Baker [email protected]

 �  Justin (Gus) Hurwitz [email protected]

 �  Jeremy D. Impson [email protected]

 �  Steve Przepiora [email protected]

 �  Artur Skawina [email protected]

 �  Dale Jolliff [email protected]


 11..11..  OOuu ttrroouuvveerr llaa ddeerrnnii��rree vveerrssiioonn ddee ccee MMiinnii--HHoowwTToo

 La toute derni�re version peut �tre trouv�e � frob.base.org/howto.txt.


 L'adresse ou vous pourrez toujours trouver ce document est
 sunsite.unc.edu/pub/Linux/docs/howto/mini/Dynamic-IP-Hacks, toutefois,
 vous devriez utiliser un site miroir du LDP si vous en connaissez un.


 11..22..  CCoommmmeennttaaiirreess

 Tous les commentaires � propos de ce document devraient �tre adress�s
 � Michael Driscoll [email protected].


 11..33..  PPoouurrqquuooii ccee MMiinnii--HHoowwTToo ??

 Le probl�me est que Linux ne s'accommode pas aussi bien qu'il le
 pourrait de l'adressage dynamique des IP. Cet adressage dynamique
 pourrait �tre l'�quivalent Unix au fait de se r�veiller tous les
 matins et constater que votre adresse postale a chang� et que toutes
 vos cartes de visites sont d�pass�es. Malheureusement, les FAI (NdT :
 Fournisseur d'Acc�s Internet)  tendent de plus en plus � utiliser ce
 type d'adressage de nos jours, et tous ceux qui ne peuvent pas se
 permettre de d�penser un peut plus d'argent pour obtenir une IP fixe
 sont coinc�es avec �a. Le but de ce document est donc de rendre votre
 Linux aussi � l'aise avec l'adressage dynamique d'IP que possible, il
 vous rendra plus heureux et sera plus pratique � utiliser.


 11..44..  QQuu''eesstt ccee qquuee ll''aaddrreessssaaggee ddyynnaammiiqquuee ddeess IIPP,, eett ppoouurrqquuooii aaiiss--jjee ��
 mm''eenn pprr��ooccccuuppeerr ??

 Une adresse IP est une suite de quatre chiffres, chacun ayant une
 valeur comprise entre 0 et 255, et ces 4 chiffres sont s�par�s par un
 point. Par exemple : 198.41.0.8. Chaque ordinateur sur Internet � une
 unique adresse IP. Les adresses que vous utilisez, telles
 sunsite.unc.edu et bac2.lightspeed.net, sont des alias qui sont
 traduits en adresses IP par un serveur de DNS chaque fois que vous y
 tentez d'y acc�der.

 L'adressage dynamique des IP est quelque-chose utilis� par les FAI
 pour r�duire le nombre d'adresses dont ils ont besoin de "poss�der".
 Chaque fois que vous vous connectez � votre FAI, ils vous donnent
 juste la derni�re adresse IP dans la queue des celles disponibles.
 Ainsi, ils n'ont pas besoin d'une adresse par client, mais seulement
 pour les clients qui sont connect�es � un instant donn�.
 Habituellement, les FAI poss�dent une adresse pour dix clients, bien
 que ce ratio varie.

 Pourquoi font-ils �a ? Et bien, la fa�on la plus simple de d'expliquer
 est de dire qu'il n'y a pas suffisamment d'adresses IP avec le
 protocole actuel. Une fa�on plus complexe est de dire que nous avons
 suffisamment d'adresses,  mais  qu'il y en a de plus en plus
 d'utilis�es, les tables de routage utilis�es par les routeurs des
 dorsales commencent � ressembler � des disque MS-DOS vieux de 10 ans
 et qui n'a jamais �t� d�fragment� :-) En utilisant tant d'adresses, il
 y a une perte d'efficacit� dans les recherches. Le syst�me actuel est
 cens� exploser entre 2000 et 2010. Heureusement, nous utiliserons tous
 le protocole IPv6 � ce moment l�, et nous aurons tous notre propre IP
 ce qui rendra ce Mini-HowTo inutile :-)


 11..55..  PPoouuvveezz--vvoouuss mm''aaiiddeerr aa ccoonnffiigguurreerr {{ppppppdd,,tteellnneettdd,,sseennddmmaaiill......}} ??

 Non, D�brouillez vous tout seul. �a forme le caract�re :-)

 En fait, il me serait plut�t inutile de r�inventer la roue en vous
 aidant � les configurer, puisque beaucoup de documents existent d�j�
 pour vous permettre de vous en sortir. Commencez par essayer les
 suivants :


 �  La page man de pppd

 �  La page man de chat

 �  La page man de in.telnetd

 �  La page man de inetd

 �  le PPP-HOWTO

 �  le NET-2-HOWTO
    (Disponibles sur des sites tels :
    sunsite.unc.edu/pub/Linux/docs/howto)

 �  le NAG
    (Network Administrator's Guide par Olaf Kirch, disponible sur les
    sites du LDP, comme : sunsite.unc.edu/pub/Linux/docs/LDP)


 11..66..  HH��,, eett llee SSLLIIPP ??

 Pour vous dire la v�rit�, je n'�cris rien � ce sujet, c'est parce que
 je ne sais rien � ce sujet.

 Heureusement, cela ne devrait pas �tre un trop gros probl�me, puisque
 PPP semble �tre le standard actuel, sp�cialement en ce qui concerne
 l'adressage IP.

 Je suis d�sol� pour vous si vous faites partie des 0.3% de ceux qui
 ont leur adressage IP avec SLIP, mais je pense que vous pourrez
 peut-�tre utiliser ce HowTo et d�brouillez-vous pour que �a marche (si
 vous le faites, lisez l'appendice A pour voir votre hack ajoute �a ce
 HowTo !)


 11..77..  CCooppyyrriigghhtt

 En absence de clause contraire, les documents HOWTOs ont un Copyright
 d�pos� par leurs auteurs respectifs. Ces documents peuvent �tre copi�s
 et distribu�s en partie ou en totalit� sur n'importe quel support
 m�dia � condition que le Copyright soit conserve sur chaque copie. La
 distribution commerciale est autoris�e et encourag�e tant que l'auteur
 est tenu informe de telles initiatives.

 Toute traduction ou travail annexe incluant un document Linux HOWTO
 doit �tre couvert sous les mentions du pr�sent Copyright. Cela
 signifie qu'il vous est impossible de prendre une partie d'un document
 et d'imposer des restrictions sur sa distribution. Certaines
 d�rogations peuvent �tre obtenues. Pour cela, contacter le
 coordinateur � l'adresse indiqu�e ci dessous.

 Nous d�sirons promouvoir la diffusion de ces informations le plus
 largement possible. Nous souhaitons cependant conserver notre
 Copyright sur les documents HOWTOs et �tre tenus inform�s des projets
 visant � distribuer ces informations. Si vous avez des questions,
 contactez Greg Hankins, coordinateur des Linux HOWTOs �
 [email protected] via e-mail, ou au +1 404 853 9989.


 11..88..  AAvveerrttiisssseemmeenntt

 Cela va sans dire, mais je le dis quand m�me au cas o�.

 Je ne suis pas sur que tout cela est fait de la meilleure fa�on, et si
 quelque chose que j'ai fait est trop bizarre, dites moi comment le
 rendre plus clair. Il se peut qu'il y ait des risques de s�curit� dans
 tout �a, mais je ne les connais pas. Tout ceci marche bien sur ma
 machine, et je ne pense pas que cela risque de trop casser la votre
 :-) Par cons�quent, vous devriez quand m�me faire attention et �tre
 sur de bien comprendre au moins un petit peu ce que vous faites,
 ainsi, vous pourrez le r�parer si �a ne marche plus.

 Comme son nom l'indique, ce document parle de hhaacckkss. Les hacks, par
 d�finitions sont des fa�ons plut�t bizarres de configurer un syst�me,
 bien que parfois, ils soient la seule fa�on. En plusieurs endroits,
 ces hacks pourraient �tre faits de fa�ons plus �l�gantes, mais au co�t
 de la simplicit�. Je ne l'ai pas fait car il faut que la personne qui
 met en place les hacks les comprenne, pour qu'elle puisse les refaire
 en fonction de ses besoins.

 De plus, en lisant ce HowTo, gardez � l'esprit cette phrase venant du
 DNS-HOWTO de Nicolai Langfeldt [email protected] :

 Dans ce document, j'�nonce deux ou trois choses qui ne sont pas tout �
 fait vraies (mais qui le sont toujours au moins � moiti�). Si je le
 fais, c'est toujours dans le but de rendre les choses plus simples.
 Tout marchera (probablement ;-) tr�s bien si vous croyez ce que je
 vous dis.


 22..  IInnttrroodduuccttiioonn aauuxx hhaacckkss 11 aauu 33

 par Michael Driscoll [email protected]

 Les trois premiers hacks de ce HowTo servent � maintenir une
 connection PPP constante en red�marrant pppd quand la liaison est
 perdue. J'ai pens� au deuxi�me de ces hacks quand j'ai d�marr� Linux,
 mais depuis, j'ai chang� pour le troisi�me qui est quand m�me plus
 efficace (et malheureusement plus difficile � mettre en place). Le
 premier hack n'a pas �t� fait par moi mais par Steve Przepiora
 [email protected], et qui est en fait meilleur et plus efficace
 que le second hack (celui que j'ai invent�), et est aussi facile �
 mettre en oeuvre...

 Ces trois hacks fonctionnent tr�s bien avec le hack 4, qui va mettre
 automatiquement votre IP dans un endroit accessible (votre compte e-
 mail sur le serveur POP3 de votre FAI) � chaque fois que votre
 connection est de nouveau �tablie. Avec ces deux hacks marchant
 ensemble (reconnection automatique + publication de l'IP par e-mail)
 vous pourrez facilement trouver l'IP dynamique de votre machine
 n'importe ou sur le r�seau et �tre capable de faire du telnet, ftp,
 etc. vers elle.

 Les m�thodes 1 et 2 sont celles qui sont faciles � impl�menter,
 puisqu'elles sont fournies avec une recette et tout ce que vous avez �
 faire c'est de suivre les instructions et remplir les blancs. La
 m�thode 3 n'est pas fournie avec une recette car elle utilise les
 runlevels et l'init choses qui varient beaucoup d'une distribution �
 l'autre, et peuvent laisser votre machine dans un �tat bizarre s'ils
 sont mal configur�s.

 Alors, quelle m�thode utiliser ? Je sugg�re la m�thode 1, elle est
 facile et plut�t efficace, ou si vous avez un peu plus de
 connaissances, jetez un coup d'oeil � la m�thode 3 pour voir si vous
 pouvez r�ussir � impl�menter cela, puisque c'est la plus efficace. La
 m�thode 2 est l� parce que c'est la premi�re que j'ai �crite, et parce
 que c'est la seule de ce howto que j'ai test� (les autres sont de
 r�centes additions et devraient rapidement remplacer la 2 de toute
 fa�on).
 Si aucune de ces m�thodes ne vous pla�t, �crivez la votre, et envoyez-
 la-moi, je l'inclurais probablement si c'est utilisable par d'autres.

 Bon, maintenant, on passe aux choses s�rieuses :


 33..  HHaacckk 11 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
 77jj//77 ((mm��tthhooddee 11))

 par Steve Przepiora [email protected]


 33..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

 Une configuration PPP qui marche.


 33..22..  iipp--uupp ,, iipp--ddoowwnn ,, eett dd''aauuttrreess ssccrriippttss aassssoorrttiiss

 Bon, alors voici comment je l'ai fait :


 1. Lancez vi (NdT : l'utilisation de vi me para�t inutile, un "touch
    /etc/ppp/ppp-check.dat"�tant suffisant)  et cr�ez un fichier appel�
    /etc/ppp/ppp-check.dat. N'y mettez rien, sauvez le juste.

 2. Mettez au d�but du fichier /usr/sbin/ppp-on :
    echo on > /etc/ppp/ppp-check.dat
    Ceci mettra le mot 'on' int /etc/ppp/ppp-check.dat

 3. Mettez ceci dans /usr/sbin/ppp-off :
    echo off > /etc/ppp/ppp-check.dat

 4. Changez le nom de votre /etc/ppp/ip-down en /etc/ppp/ppp-off-final

 5. Puis sauvez le script suivant dans /etc/ppp/ip-down :






























 ______________________________________________________________________
 #!/bin/sh

 export LOGGING="yes" ## Changez �a si vous ne voulez pas l'enregistrer.
 export LOG_STRING=""
 export PPP_CHECK=""

 ## Configuration de base
 PPP_CHECK=`cat /etc/ppp/ppp-check.dat`

 ## PPP a �t� d�connect� -> on l'enregistre
 if [ "$LOGGING" = "yes" ]
  then
    logger -i -p local0.notice -t ppp-check  PPP- Disconnected
 fi

 ## Maintenant, on regarde comment le script a �t� appel�
 if  [ "$PPP_CHECK" = "off" ]
   then
    if [ "$LOGGING" = "yes" ]
      then
      logger -i -p local0.notice -t ppp-check  PPP- Legal disconnect
      logger -i -p local0.notice -t ppp-check  PPP- Turning off NET \
 subsystem
      /etc/ppp/ppp-off-final
    fi
    exit
 fi

 ## Si on a �t� d�connect� -> on recompose le num�ro
 if [ "$LOGGING" = "yes" ]
   then
    logger -i -p local0.notice -t ppp-check  PPP- Illegal disconnect
    logger -i -p local0.notice -t ppp-check  PPP- Attempting to reconnect
 fi
 /etc/ppp/ppp-off-final
 while test -e /var/run/ppp0.pid && test -e /var/lock/LCK..ttyS3
  do
   sleep 1
 done
   /usr/sbin/ppp-on
 ______________________________________________________________________




 Les �tapes 2 et 3 permettent au script de savoir comment la connection
 a �t� rompue



 44..  HHaacckk 22 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
 77jj//77 ((mm��tthhooddee 22))

 par Michael Driscoll [email protected]

 Tout d'abord lisez les notes � propos de ce hack dans le chapitre 2.


 44..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

 Pas grand chose. Une configuration PPP qui marche. Un cron qui marche.




 44..22..  MMiissee eenn ppllaaccee dduu ssccrriipptt kkeeeeppaalliivvee..sshh

 44..22..11..  EEnn uuttiilliissaanntt ccrroonnttaabb

 (note : Cette section sera probablement mieux avec diald, voir la
 section suivante)

 cron est un daemon qui lance des programmes � intervalles r�guliers.
 Vous pouvez regarder votre crontab en ex�cutant "crontab -e". Nous
 utiliserons crontab pour lancer le programme shell qui gardera la
 connection PPP.

 Lancez "crontab -e" en tant que root et ajoutez la ligne suivante :



      #*/2 * * * * /etc/ppp/keepalive.sh




 Ce que cela fait est de lancer le script /etc/ppp/keepalive.sh toutes
 les deux minutes. (Le # met l'entr�e en commentaire pour qu'elle ne
 soit pas ex�cut�e tant que le script n'est pas pr�t).

 Puis mettez le script suivant appel� keepalive.sh dans le r�pertoire
 /etc/ppp :



      ______________________________________________________________________
      #!/bin/sh
      if [ -f /var/run/ppp0.pid ] ; then
       ping -c8 -l3 <your nameserver> 2>&1 | grep "0 packets" > /dev/null && \
       { /usr/sbin/ppp-off > /dev/null 2>&1 ; sleep 2 ; /usr/sbin/pppd }
      else
       /usr/sbin/pppd
      fi
      ______________________________________________________________________




 Maintenant tapez chmod 700 /etc/ppp/keepalive.sh en tant que root pour
 qu'il soit ex�cutable.


    CCoonnsseeiill 11 ::
       V�rifiez les chemins ! Pour pppd et ppp-off ins�rez ce que vous
       utilisez pour lancer et arr�ter les connections.

    CCoonnsseeiill 22 ::
       J'utilise le serveur de DNS de votre FAI car s'il est en panne,
       votre connection � Internet est hors service de toute fa�on :-)

    CCoonnsseeiill 33 ::
       Utilisez l'adresse IP num�rique de votre serveur de DNS, sinon,
       ping renvoie un message diff�rent et le grep ne marchera pas.

 Maintenant, quand vous voulez rester connect�, vous avez juste �
 lancer crontab -e et enlever le "#" pour d�commenter l'entr�e... et
 quand vous voulez rester d�connecter, relancez crontab -e et remettez
 le "#", puis arr�tez votre connection avec ppp-off ou ce que vous
 utilisez.


 44..22..22..  UUttiilliissaattiioonn ddiiaalldd  �� llaa ppllaaccee dduu ccrroonn

 par Divya Mahajan [email protected]

 L'entr�e crontab que nous venons de faire peut aussi �tre faite (et
 probablement plus �l�gamment) par d'autres programmes, tel diald.
 Cette section explique comment utiliser tt/diald/ pour cette
 utilisation, vous devriez peut �tre d�cider d'utiliser cette mani�re.
 J'ai laiss� la section avec le crontab pour r�f�rence et parce qu'il
 ne n�cessite aucun package, mais vous voudrez peut-�tre utiliser diald
 � la place.


 1. R�cup�rer la derni�re version de diald (cela ne devrais pas �tre
    loin de sunsite.unc.edu/pub/Linux/system/Network/serial/)

 2. Compilez le tout. (Vous trouverez peut �tre une version compil�e de
    diald sur un site de la Slackware)

 3. Apr�s avoir install� diald, vous aurez � modifier /etc/diald.conf,
    ajoutez les lignes suivantes � la fin du fichier :



      ______________________________________________________________________
      > restrict 06:00 19:00 * * *
      > up
         (Ceci forcera � rester connect� entre 6 heures et 19 heures tous les jours.
          Si vous voulez rester 24h/24 et 7j/7, supprimez le restrict.)
      > device /dev/modem
         (utilisez le bon p�riph�rique...)
      > dynamic
      > reroute
      > connect-timeout 120
         (Modifiez cela si votre composeur prends plus ou moins de temps pour se
          connecter � votre FAI.)
      > redial-timeout 10
         (Intervalle entre 2 recomposition du num�ro)
      > defaultroute
      > accounting-log /var/adm/diald.log
         (Garde une trace de la dur�e de vos connections)
      >connect /path_to_myscript
         (Quand vous utilisez un script pour vous connecter mettez le sur la ligne
          ci dessus. Quand diald appel�e ce script, les entr�es et sorties standard
          sont redirig�es vers le p�riph�rique (le modem) donc, v�rifiez que le
          script n'imprime pas de b�tises. J'utilise personnellement "/usr/sbin/dip
          mydipfile.dip >> /var/adm/dip.log 2> /var/adm/dip.err" qui enregistre les
          tentatives de connections. Au d�part, vous ex�cuterez peut-�tre dip avec
          l'option "-v" pour mettre au point le fichier dip, par exemple : #dip -v
          mydipfile.dip. N'oubliez pas de mettre la ligne "mode ppp" apr�s que vous
          soyez connect�s et que vous ayez lanc� les services PPP de votre FAI
          (utilisez dip-3.3.7n-uri). D'autre part, enregistrez tous les param�tres
          PPP dans /etc/ppp/options plut�t que de faire confiance � la ligne de
          commande. D�s que votre fichier dip est au point est pr�t, il est temps de
          l'utiliser. Lancez diald /usr/sbin/diald, si tout s'est bien pass�, il
          devrait commencer � se connecter � votre FAI. Quand la liaison PPP est
          close � cause d'un probl�me de modem, diald r�essayera automatiquement.
          D�s que vous pensez que c'est au point, ajoutez /usr/sbin/diald dans votre
          /etc/rc.d/rc.local)
      ______________________________________________________________________




 �a y est, vous avez une connection permanente.

 diald est aussi tr�s bon pour bien d'autres choses, allez jeter un
 coup d'oeil sur la page de diald www.dna.lth.se/~erics/diald.html pour
 quelques exemples.



 55..  HHaacckk 33 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
 77jj//77 ((mm��tthhooddee 22))

 par Michael Driscoll [email protected]

 Tout d'abord, allez voir les notes � propos de ce hack au chapitre 2.

 Voici la troisi�me m�thode pour rester connect�, c'est aussi celle que
 j'utilise. Je ne conseille � personne de l'utiliser � moins de bien en
 comprendre le fonctionnement. S'il y a des morceaux que vous ne
 comprenez pas, je vous sugg�re d'aller lire :


 �  man init

 �  man inittab

 �  Essential System Administration, par AEleen Frisch
    (Pas vraiment n�cessaire, mais �a aide � comprendre des trucs,
    comme les runlevels. Je pense que n'importe quel texte parlant des
    runlevels sera suffisant.)


 55..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

 Une configuration PPP qui marche. Un init qui marche (Je pense que
 vous l'avez puisque c'est le programme qui lance tous les process sous
 Unix).


 55..22..  JJoouuoonnss aavveecc lleess rruunnlleevveellss

 Voici comment j'ai mis �a en marche. Tout d'abord, j'ai change mon
 inittab et mes scripts rc, chose que je n'avais jamais fait depuis
 l'installation de ma Slackware 3.0, donc, ils ressemblaient � �a :




      0) Halt
      1) Un setup mono-utilisateur pas franchement op�rationnel
      2) Vide
      3) Vide
      4) xdm (X)
      5) Multi-utilisateur normal (le runlevel par d�faut)
      6) Reboot




 J'ai nettoy� �a et je les ai refait, et ils ressemblaient � �a apr�s :









 0) Halt
 1) Mode mono-utilisateur
 2) Multi-utilisateur normal  # Je vais expliquer ces deux la plus tard
 3) Multi-utilisateur normal  (le runlevel par d�faut)
 4) Vide
 5) Vide
 6) Reboot




 Puis, j'ai mis la ligne suivante dans /etc/inittab :



      pu:3:respawn:/usr/sbin/pppd -detach




 Ce que cela fait, c'est de garder pppd en ex�cution quand mon syst�me
 est dans le runlevel 3, et donc, me reconnecter � chaque d�connection,
 et tuer ma connection quand je passe au runlevel 2. Quand je veux ma
 connection, je repasse dans le runlevel 3, et c'est reparti.

 Le -detach sur la ligne respawn emp�che pppd de se mettre en tache de
 fond, et donc, faire croire � init qu'il est mort (sinon, init va
 red�marrer pppd une douzaine de fois etc...).

 Pour ceux qui sont int�ress�s par ma configuration exacte, j'ai fait
 un tar de mon /etc/inittab et de /etc/rc.d/* et je les ai mis sur mon
 site � frob.base.org/rc.tar.gz.



 66..  HHaacckk 44 :: EEnnvvooii ddee ll''IIPP ppaarr ee--mmaaiill

 par Michael Driscoll [email protected]

 Ce hack marche tr�s bien avec les scripts pr�c�dents, car il envoie
 automatiquement votre IP quand elle change, donc, vous pouvez
 facilement trouver la nouvelle adresse de votre machine depuis
 n'importe ou sur le r�seau apr�s une reconnection.

 Les autres qui font la m�me chose (envoi automatique de l'IP) en
 utilisant d'autres moyens sont les 6, 8, 9, 10, 11, 12, et 14 (presque
 la moiti�, si on y pense :-).


 66..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

 Juste une configuration PPP qui marche, juste �a. Ce hack marche tr�s
 bien avec les hacks pr�c�demment d�cris, car il vous permet de
 retrouver facilement votre machine apr�s qu'elle se soit reconnect� et
 que son adresse ai chang�.


 66..22..  MMiissee eenn ppllaaccee ddee vvooss iipp--uupp  aanndd iipp--ddoowwnn

 Ce hack rends votre nouvelle IP accessible depuis � peu pr�s n'importe
 quelle machine sur Internet. Pour r�ussir cet exploit :-) on va
 utiliser deux scripts /etc/ppp/ip-up et /etc/ppp/ip-down, qui sont
 automatiquement appel�s par pppd quand vous vous
 connectez/d�connectez.


 Cr�ez un fichier (s'il n'existe pas d�j�) en tant que root appel�
 /etc/ppp/ip-up avec dedans :



      ______________________________________________________________________
      #!/bin/sh
      # $4 Est notre nouvelle IP pass�e par pppd
      # /var/run/add gardera notre adresse
      echo $4 > /var/run/add
      # Envoie notre adresse au serveur mail de notre FAI. avec comme sujet :
      # "Nouvelle adresse  IP"
      mail -s "Nouvelle adresse  IP" votre_nom@votre_adresse < /var/run/add
      ______________________________________________________________________




 Puis cr�ez /etc/ppp/ip-down et mettez-y :



      ______________________________________________________________________
      #!/bin/sh
      rm /var/run/add
      ______________________________________________________________________




 Puis faites un "chmod 700 /etc/ppp/ip-up /etc/ppp/ip-down" pour les
 rendre ex�cutables.

 Voil� (En fran�ais dans le texte original :-))  ! Maintenant, � chaque
 fois que pppd d�marre, votre adresse sera envoy�e au serveur de mail
 de votre FAI. On le r�cup�rera dans la section suivante.


 66..33..  CCoommmmeenntt rr��ccuupp��rreerr vvoottrree nnoouuvveellllee aaddrreessssee IIPP ddeeppuuiiss uunn aauuttrree
 oorrddiinnaatteeuurr ??

 Et bien, cela va demander un peu de r�flexion de votre part. Je ne
 puis vraiment pas vous aider � vous en sortir, car cela d�pends depuis
 quel type de machine vous de la r�cup�rer. Depuis Windows, vous pouvez
 essayer de configurer un programme de mail pour r�cup�rer les mails
 depuis le serveur de votre FAI, et si vous �tes sous Unix, allez voir
 s'il n'y aurais pas un programme appel� "popclient", ou "fetchmail",
 ou quelque chose de ce style. Si tout cela ne marche pas, vous pouvez
 toujours essayer le telnet (allez jeter un coup d'oeil dans la section
 qui suit).


 66..33..11..  FFaaiirree uunn tteellnneett ssuurr uunn sseerrvveeuurr PPOOPP33

 Voil� comment je r�cup�re mon adresse IP, car je suis rarement chez
 moi quand je fais tout �a, et en plus, �a impressionne toujours les
 gens � qui je le montre :-) Heureusement, votre FAI utilise un serveur
 POP3 pour le mail (j'esp�re), sinon, vous allez devoir vous
 d�brouiller par vous m�me en parcourant les RFC pour le protocole dont
 vous avez besoin et en trouvant comment le faire par telnet.

 Bon, tout d'abord, vous devez faire un telnet sur le port 110 du
 serveur de mail de votre FAI. Sous Unix, on fait �a avec "telnet
 your.mail.server.net 110", sur un VAX/VMS vous devrez faire "telnet
 your.mail.server.net/port=110", et depuis un navigateur Web, vous
 devrez utiliser "telnet://your.mail.server.net:110". D�brouillez-vous
 :-)

 D�s que vous �tes connect�, vous devriez voir un truc ressemblant � :



      ______________________________________________________________________
      >Connected to new-ls.lightspeed.net.
      >Escape character is '^]'.

      >+OK QUALCOMM Pop server derived from UCB (version 2.1.4-R3) at
      >new-ls.lightspeed.net starting.

      Tapez "user votre_nom" pour vous loger.

      >+OK Password required for fenris.

      puis "pass votre_password"

      >+OK fenris has 2 message(s) (3030 octets).

      Tapez "list" pour regarder la liste des messages.

      >+OK 2 messages (3030 octets)
      >1 2400
      >2 630
      >.
      ______________________________________________________________________




 Vous voyez le message avec comme taille 630 ? C'est mon adresse IP !
 Comment le sais-je ? Parce que c'est toujours de cette taille :-)

 Tapez "retr num�ro_du_message" pour r�cup�rer le message que vous
 voulez.



      ______________________________________________________________________
      >+OK 630 octets
      >Received: from ulfheim.lightspeed.net ([email protected]
      >[204.216.66.74]) by new-ls.lightspeed.net (8.6.12/8.6.12) with ESMTP id
      >TAA12048 for <[email protected]>; Mon, 22 Apr 1996 19:15:37 -0700
      >Received: (from avatar@localhost) by ulfheim.lightspeed.net (8.7/8.6.9)
      >TAA00594 for [email protected]; Mon, 22 Apr 1996 19:15:29
      >Date: Mon, 22 Apr 1996 19:15:29 -0700
      >From: Deus In Machina <[email protected]>
      >Message-Id: <[email protected]>
      >To: [email protected]
      >Subject: Nouvelle adresse IP
      >
      >204.216.66.74
      >
      >.
      ______________________________________________________________________




 Et voil� ! Faites "dele num�ro_du_message" pour vous en d�barrasser ou
 juste un "quit" pour le laisser et quitter. Maintenant, faites juste
 un telnet sur votre machine � cette adresse et amusez-vous bien !


 Si tout �a ne marche pas, allez jeter un coup d'oeil dans la RFC 1225,
 qui d�cris le protocole POP3 en d�tail.

 Par la m�me occasion, si ce hack ne marche pas car vous avez cron qui
 r�cup�re votre mail automatiquement, alors, allez voir le hack 10 qui
 utilise procmail pour envoyer votre nouvelle IP � la demande.


 77..  HHaacckk 55 :: CChhaannggeemmeenntt ddyynnaammiiqquuee ddee vvoottrree //eettcc//hhoossttss

 par Michael Driscoll [email protected]

 Comme je l'ai dit plus t�t, Linux n'est pas vraiment � l'aise avec les
 changements d'IP. Par exemple, il arrive que votre talkd ne marche pas
 avec quand il y a des choses fantaisistes dans votre /etc/hosts.
 N�anmoins, le hack qui suit s'arrange pour changer votre /etc/hosts
 avec l'adresse IP qu'on re�oit � la connection.

 Pour moi, �a � r�gle les probl�mes avec "hostname" et "ntalk".


 77..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn..

 Juste une configuration PPP qui marche.

 Ce hack est vraiment facile, tout ce que vous avez � faire c'est de
 suivre ce qui est �crit et remplir les blancs.


 77..22..  CCrr��aattiioonn ddeess ppaattrroonnss ddee hhoossttss

 NNOOTTEE :: D'abord, faite une sauvegarde de votre /etc/hosts, juste au cas
 ou plus rien ne marcherais (on ne sait jamais :-). Faites juste "cp
 /etc/hosts /etc/hosts.backup"

 D'abord, nous allons faire nos patrons de fichiers hosts. Le premier
 va s'appeler /etc/hosts-down et va contenir les lignes suivantes :



      ______________________________________________________________________
      127.0.0.1 myhostname.mydomain.net localhost myhostname
      ______________________________________________________________________




 Substituer vvooss hostname et domain names dans ces valeurs. Ce fichier
 est celui qui sera utilis� quand vous serez d�connect�.

 Le second fichier appel� /etc/hosts-up contiendra au moins les lignes
 suivantes :



      ______________________________________________________________________
      127.0.0.1 localhost
      --IP-- myhostname.mydomain.net myhostname
      ______________________________________________________________________




 Comme pr�c�demment, faites les substitutions de vos hostnames et
 domain names, mais nnee ttoouucchheezz ppaass au "--IP--", car, il servira plus
 tard d'ancre pour faire un remplacement. Si vous ne comprenez pas, ce
 n'est pas grave, sachez simplement que vous ��tteess cens�s ne pas toucher
 au "--IP--" l� dedans.

 Vous pouvez faire un /etc/hosts-up plus gros si vous le voulez, il
 peut contenir des adresses de machines que vous visitez souvent ou des
 surnoms que vous voulez leur donner. par exemple, mon /etc/hosts-up
 ressemble � �a :



      ______________________________________________________________________
      127.0.0.1 localhost
      --IP-- ulfheim.lightspeed.net ulfheim
      136.168.201.9 ultrix6.cs.csubak.edu ultrix ultrix6
      128.214.48.39 linux.cs.helsinki.fi linux
      152.2.254.81 sunsite.unc.edu sunsite
      136.168.1.4 academic.csubak.edu academic
      128.214.248.6 nic.funet.fi ftp.funet.fi funet
      ______________________________________________________________________





 77..33..  EEtt oonn rreettrriippoottee iipp--uupp  eett iipp--ddoowwnn

 Ajoutez la ligne suivante � /etc/ppp/ip-up :



      ______________________________________________________________________
      cat /etc/hosts-up | sed -e s/--IP--/$4/g > /etc/hosts
      ______________________________________________________________________




 Ceci met en place le fichier hosts-up gr�ce � un script sed qui
 substitue le mot "--IP--" par $4, la variable qui contient notre
 nouvelle adresse.

 Puis ajoutez la ligne suivante � /etc/ppp/ip-down :



      ______________________________________________________________________
      cp /etc/hosts-down /etc/hosts
      ______________________________________________________________________




 Cela copie le patron hosts-down vers /etc/hosts.



 88..  HHaacckkss 66 �� 88 :: DDiivveerrss hhaacckkss

 Introduction par Michael Driscoll [email protected]

 Voici un peu de C envoy� par Ryan R. Klems [email protected]
 <mailto:[email protected]>.

 Il y a trois programmes, le premier mail.c, est un CGI qui scanne
 votre fichier de mail pour trouver votre nouvelle adresse IP donn�e
 par le hack 1. Ensuite, il utilise l'adresse IP pour mettre en place
 une page qui contient un lien vers cette adresse IP.

 Le second, pppdm.c, peut probablement prendre la place du hack 1, car
 il cherche une connection PPP, red�marre pppd s'il est mort, et envoie
 votre nouvelle adresse au serveur de mail de votre FAI.

 Le troisi�me, portmsg.c, attends une connection telnet sur un port
 pr�cis. D�s qu'une connection s'�tablis, il va r�cup�rer votre adresse
 dans votre fichier de mail, et enverra un message la contenant.

 Ces sources auront besoin d'un peu de personnalisation, alors, vous
 feriez mieux de ne pas y toucher si vous ne savez pas ce que vous
 faites :-)

 Oh, oui, et Ryan m'a �crit pour me dire que �a ne le d�rangerais pas
 de vous aider � mettre en place ce code chez vous si vous lui demandez
 gentiment :-)


 88..11..  mmaaiill..cc














































 ______________________________________________________________________
 /*
  * mail.c written by Ryan R. Klems ([email protected])
  * Copyright 1996, Author releases this source freely, allowing
  * copying and modification, so long as the original copyright notice
  * is maintained.
  *
  * I request that if you use this file you mail me... Thats all I ask =)
  *
  * A CGI for reading through your mailfile and finding an IP
  * address that you had your computer mail to you.
  *
  * Compiling:
  *    gcc mail.c -o mail.cgi
  *
  * Make sure to 'chmod +s mail.cgi' afterwards...must run with set uid
  * bit on to be able to open the mail file.
  */

 #include <stdio.h>
 #include <string.h>
 #define MAILFILE "/var/mail/rklems" /* your mailfile */

 main(void)
 {
   FILE *mail;   /* file pointer for mail file */
   char bob[80], location[80];

   printf("Content-type: text/html\n\n");
   printf("<HTML><HEAD><TITLE>IP Address</TITLE></HEAD>\n");
   printf("<BODY><BASEFONT SIZE=4>\n");
   printf("<H1>IP Address</H1>\n");
   strcpy(bob, "42.**");
   if((mail = fopen(MAILFILE, "r")) == NULL)
     printf("Mail file is empty or does not exist.\n");
   else
   {
     /*
      * loop continues till end of file because you want most recent IP
      * 198.68. is the domain of my ISP, change to yours...
      */
     while(!feof(mail)) /* until reaching EOF, do this */
     {
       fgets(location, 80, mail); /* Grab a line, from mail */
       sscanf(location, "198.68.%s", bob); /* look for domain */
     }
     strcpy(location, "198.68.");
     strcat(location, bob);
     printf("The IP Address of your computer is: %s\n", location);
   }
   printf("</BODY></HTML>\n");
 }
 ______________________________________________________________________





 88..22..  ppppppddmm..cc







 ______________________________________________________________________
 /*
  * pppdm.c created by Ryan R. Klems ([email protected])
  *   Released freely by the author to use/modify/copy/reditribute
  *   My only request is that if you use it...mail me and let me know =)
  *
  * This program keeps your link dialed up to an ISP and mails you
  * the newest IP address.  Useful for people with Dynamically allocated
  * IP addresses
  * uses the following files...
  * /root/ip        :   Outputs the IP to this file
  * /root/log       :   If logging is defined
  * /root/pppchat   :   The chat file set up for chat.
  *     My chat file looks like:
  *       ""  ATDT7917777 CONNECT "" "ogin:" "rklems" "assword:" "<password>"
  *  <password> is YOUR password of course (like I'm gonna give you mine ;)
  *  *NOTE* for silent dialing do ATMDT
  *
  *  Compiling...
  *    gcc pppdm.c -o pdm
  *  *NOTE* Don't call it anything like pppdm b/c it looks for pppd
  *  might accidentally kill itself off ;)
  */

 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <signal.h>
 #include <time.h>
 #define DOLOG

 void main(void)
 {
   FILE *fin,            /* multiuse file pointer */
        *popen();        /* proto of popen() */
 #ifdef DOLOG
   FILE *log;            /* log file pointer */
 #endif
   char line[80],        /* a line of a file */
        bah[80],         /* just stuff, also used for holding IP addr */
        crap[80],        /* just stuff */
        bob;             /* single char placeholder, not used for anything */
   int j,                /* flag for if a link was found */
       k,                /* flag for if this is a new link */
       pid;              /* pid of pppd process to kill off */
 #ifdef DOLOG
   time_t now;           /* thing for time logging */
 #endif

   for(;;) /* Loop forever... */
   {
     /* look at ifconfig for IP addr */
     if ((fin = popen("ifconfig", "r")) != NULL)
       while(fgets(line, 80, fin) != NULL)
         if(sscanf(line, "ppp0 %s", bah))
         {
           fgets(line, 80, fin);
           sscanf(line, "          inet addr:%15s", bah);
           j=1;
         }
     fclose(fin);
     if (!j) /* no link */
     {
       if((fin = popen("ps -a -x", "r")) == NULL)
       {
         fprintf(stderr, "PPPdm error: cannot open file.\n");
         exit(1);
       }
       /* scan through processes & kill off any zombie pppd processes */
       while(fgets(line, 80, fin) != NULL)
         if (sscanf(line, "%d  ?  %c     %4s pppd%s", &pid, &bob, crap, bah) == 4)
           kill(pid, SIGKILL);
       fclose(fin);
       k=0; /* new dial attempt */
       system("pppd connect 'chat -v -f /root/pppchat'"); /* try again */
 #ifdef DOLOG
       now = time(NULL);
       if ((log = fopen("/root/log", "a")) == NULL)
       {
         fprintf(stderr, "Error in opening log file.\n");
         exit(1);
       }
       fprintf(log, "Initiating ppp-link. %s\n", ctime(&now));
       fclose(log);
 #endif
       sleep(60); /* wait 1 min and check again */
     }
     if(j && !k) /* first time with new address */
     {
       if ((fin = fopen("/root/ip", "w")) == NULL)
       {
         fprintf(stderr, "Error in opening output file.\n");
         exit(1);
       }
       fprintf(fin, "%s\n", bah); /* write out addr */
       fclose(fin);
       /* mail it to yourself */
       system("mail -s IP [email protected] < /root/ip");
       k=1;
     }
     else /* take a nap and check again when we wake up */
     {
       j = 0;
       sleep(300); /* wait 5 minutes to check again */
     }
   }
 }
 ______________________________________________________________________





 88..33..  ppoorrttmmssgg..cc


















 ______________________________________________________________________
 /*
  * Portmsg.c written by Ryan R. Klems ([email protected])
  * Copyright 1996, Author releases this source freely, allowing
  * copying and modification, so long as the original copyright notice
  * is maintained.
  *
  * I request that if you use this program that you mail me.  Thats
  * all I ask.
  *
  * This program sets up a port on a server to accept telnets.  Upon
  * accepting a telnet, the program outputs a message, and then closes
  * the connection.
  *
  * address of message would be xxx.xxx.xxx.xxx yyyy where the x's
  * s the IP number or IP name, and yyyy is the port number set up
  * within this program.
  *
  * Compiling instructions:
  *      Linux : gcc portmsg_gen.c -o <your_file_name>
  *      SunOS : gcc portmsg_gen.c -lsocket -lnsl -o <your_file_name>
  * ***Note***
  *  I don't have access to any other operating systems, so if you
  *  compile this program on an OS I don't have listed, and use
  *  compiler options I didn't mention...please email me =)
  */

 #include <stdlib.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/uio.h>
 #include <errno.h>
 #include <netinet/in.h>
 #include <strings.h>
 #include <netdb.h>
 #include <unistd.h>
 #define HOSTNAME "ares" /* hostname of computer */
 #define PORT 3000       /* tcp port to bind to */
 /* #define GETHOSTNAME */ /* uncomment if your server has gethostname() */

 void get_location(void);        /* proto of my mail reading function */
 char location[80];              /* The IP address */

 void main(void)
 {
   struct in_addr host_ip_number;
   struct sockaddr_in host_ip_addr;
   struct sockaddr_in addr;
   char host_name[100];
   struct hostent *hp;
   int s, new_sock;
   int tmp, length;

   /*
    * The server I wrote this for doesn't have gethostname()
    * so, I put in a little fix...
    */
 #ifdef GETHOSTNAME
   gethostname(host_name, sizeof(host_name));
 #else
   strcpy(host_name, HOSTNAME);
 #endif
   hp = gethostbyname(host_name);
   bzero((char *)&host_ip_addr, sizeof(host_ip_addr));
   memcpy((char *)&host_ip_addr.sin_addr, hp->h_addr, hp->h_length);
   host_ip_addr.sin_family = hp->h_addrtype;
   host_ip_number = host_ip_addr.sin_addr;
   host_ip_addr.sin_port = htons(PORT);
   host_ip_addr.sin_addr.s_addr = INADDR_ANY;
   /* open a socket s */
   s = socket(host_ip_addr.sin_family, SOCK_STREAM, 0);
   if ((int)s==-1)
   {
     fprintf(stderr, "Error in opening socket.\n");
     exit(1);
   }
   tmp = 1;
   if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&tmp, sizeof(tmp))<0)
   {
     fprintf(stderr, "Error in setsockopt.\n");
     exit(1);
   }
   /* bind the socket to the server */
   if (bind(s, (struct sockaddr *)&host_ip_addr, sizeof(host_ip_addr))  == -1)
   {
     if(errno == EADDRINUSE)
     {
       fprintf(stderr, "Socket already bound!\n");
       exit(1);
     }
     else
     {
       fprintf(stderr, "Other error binding socket.\n");
       exit(1);
     }
   }
   /* tell the server to listen to the port */
   if (listen(s, 1) == -1)
 /* 1 is the maximum size of the connection queue */
   {
     fprintf(stderr, "Error in listen.\n");
     exit(1);
   }
  while(1) /* just keep looping */
  {
    length = sizeof(addr);
    /*
     * port has been opened with socket(), bound with bind(), and set
     * active with listen(), now accept() watches the port for
     * connections, it will wait here until it has one...
     * new_sock is the file descriptor for the new socket
     */
    new_sock = accept(s, (struct sockaddr *)&addr, &length);
 /*
  * The function get_location() and the send()'s are what I did to
  * suit my particular needs.  Put your own messages in here...
  */
    get_location();
    /* send just sends a string foo of length strlen(foo) with flags */
    send(new_sock, "Location:\n", 11, 0);
    send(new_sock, location, strlen(location), 0);
    close(new_sock); /* Close connection after message printed */
  }
 }

 void get_location(void)
 {
   FILE *mail;   /* file pointer for mail file */
   char a[80];   /* char array for holding ip addr */

 /*
  * FYI, this just opens my mail file, looks for a line with
  * 198.68.(the domain of my ISP), takes the last part, puts
  * the 198.68. in location, then cats the rest on the end
  */
   strcpy(a, "42.**");
   /* open /var/mail/ryan for read, and check to see there is a file */
   if((mail = fopen("/var/mail/ryan", "r")) == NULL)
   {
     strcpy(location, "Error in obtaining information.\n");
     return;
   }
   else
   {
     while(!feof(mail)) /* until reaching EOF, do this */
     {
       fgets(location, 80, mail); /* Grab a line, from mail */
       sscanf(location, "198.68.%s", a); /* look for domain */
     }
     strcpy(location, "198.68.");
     strcat(location, a);
     /* loops continues till end of file because I want most recent IP */
   }
 }
 ______________________________________________________________________





 99..  EEnnttrr��eess DDNNSS ddyynnaammiiqquueess

 Si �a vous int�resse de mettre en place un hack mettant en jeu des
 entr�es DNS dynamiques (Entr�es DNS qui changent pour pointer sur
 votre ordinateur quand votre IP change) alors, vous aimerez ces URLs :


 1. www.cfmeu.asn.au/matthew/virtualip.html
    Allez y faire un tour, Matthew a r�ussi � le faire marcher et
    demande � de g�n�reux volontaires de le tester, pour le
    perfectionner. Ce hack demande d'avoir d�j� les connaissances d'un
    DNS sur une IP fixe.

 2. ietf.org/internet-drafts/draft-ietf-dnsind-dynDNS-11.txt
    A cette adresse, l'IETF (Internet Engineering Task Force, des gens
    qui mettent en place les futurs protocoles qui seront utilis�s sur
    Internet)  donne le papier sur les DNS dynamiques sur lesquels ils
    travaillent et devrais �tre lu par tous ceux qui veulent faire un
    pas dans cette direction.

 Pour ceux qui ne {veulent, peuvent} pas s'embarrasser avec des
 d�tails, mais qui veulent juste une adresse dynamique mise en place
 sans probl�mes, allez voir chez DynDNS.com. J'ai entendu dire pas mal
 de bien � propos de ce service, alors, il se pourrait qu'il vous
 int�resse. Leur site est � www.dyndns.com, et vous pouvez joindre Gus
 Hurwitz [email protected] pour plus de d�tails. Un autre service viens
 d'appara�tre, il s'agit de dynip.com, que vous pouvez aller visiter �
 www.dynip.com.


 [De Artur Skawina [email protected]] :
 Un autre projet de DNS dynamique existe � www.ml.org.  Il est
 op�rationnel depuis janvier 1997 et marche tr�s bien.
 Il est tr�s facile � utiliser : vous avez juste � enregistrer votre
 hostname une fois, ensuite, vous n'avez qu'� lancer un "client" �
 chaque fois que vous changez d'IP (Il existe d�j� plusieurs client
 pour Linux, par exemple : skawina.home.ml.org/mlddc.html). Pour plus
 de d�tails sur ce service, allez visiter www.ml.org/dyndns/.



      [Note de l'�diteur : Si vous utilisez les services de
      ml.org, Pensez � leur faire une donation pour les remercier
      d'avoir travaille sans rel�che sur ce projet. Apres tout,
      ils ne sont encore qu'un groupe de copains qui n'ont pas
      beaucoup de moyens et qui font des trucs que l'InterNIC vous
      ferais payer 100 $ pi�ce -- MCD]



 1100..  HHaacckk 99 :: MMeettttrree �� jjoouurr vvoottrree ..ppllaann

 par Matthew Nuckolls [email protected]

 Ces deux scripts vous permettent de mettre votre IP dans votre .plan
 sur un serveur distant. Je l'utilise, comme �a, mes amis et ma famille
 peuvent voir quand je suis connect�, et ou envoyer les ytalk.

 Mettez quelque chose ressemblant �



      ______________________________________________________________________
      /etc/ppp/putip "Y'en a pas, la connection est morte "
      ______________________________________________________________________




 Sur la premi�re ligne de votre script ppp-off.

 Vous aurez besoin d'un $HOME/.netrc en �tat de marche pour que putip
 marche. Le mien ressemble � �a :




      ______________________________________________________________________
      machine rocket
      login mnuck
      password <mypassword>
      ______________________________________________________________________




 et est chmod 600

 ip-up:














 ______________________________________________________________________
 #!/bin/sh
 #
 # Assurez-vous que ce fichier est chmod 711
 # puisque le password apparais en clair dedans

 PLANLOC = /home/mnuck/.plan
 REMOTE_USER_NAME = mnuck
 REMOTE_PASSWORD =
 REMOTE_PLANLOC = /afs/umr.edu/users/mnuck/pub/.plan
 REMOTE_SERVER = rocket

 echo "Mon IP dynamique est : " $4 > /tmp/ip.myip

 cat $PLANLOC /tmp/ip.myip > /tmp/plan

 echo $REMOTE_USER_NAME > /tmp/ip.script
 echo $REMOTE_PASSWORD >> /tmp/ip.script
 echo "put /tmp/plan" $REMOTE_PLANLOC >> /tmp/ip.script
 echo "quit" >> /tmp/ip.script

 ftp $REMOTE_SERVER < /tmp/ip.script &> /dev/null

 rm -f /tmp/ip.myip
 rm -f /tmp/ip.script
 rm -f /tmp/plan
 ______________________________________________________________________




 putip:


      ______________________________________________________________________
      #!/bin/sh
      #
      # This script relies on a vaild .netrc file
      #  -see ftp man page for details

      PLANLOC = /home/mnuck/.plan
      REMOTE_PLANLOC = /afs/umr.edu/users/mnuck/pub/.plan
      REMOTE_SERVER = rocket

      echo "Mon IP dynamique est : " $1 > /tmp/ip.myip

      cat $PLANLOC /tmp/ip.myip > /tmp/plan

      echo "put /tmp/plan" $REMOTE_PLANLOC > /tmp/ip.script
      echo "quit" >> /tmp/ip.script

      ftp $REMOTE_SERVER < /tmp/ip.script &> /dev/null

      rm -f /tmp/ip.myip
      rm -f /tmp/ip.script
      rm -f /tmp/plan
      ______________________________________________________________________





 1111..  HHaacckk 1100 :: UUnnee rreecceettttee ssiimmppllee aavveecc pprrooccmmaaiill  ppoouurr rreettrroouuvveerr vvoottrree
 nnoouuvveellllee IIPP


 Par Justin Cragin [email protected]
 Ecrit par Michael Driscoll [email protected]

 En voil� un facile, en supposant que vous avez d�j� le procmail de
 configur�. Ce hack a besoin que vous ayez une adresse e-mail d�di�e �
 �a sur internet, au cas ou vous auriez un job cron qui rapatrierais
 votre mail automatiquement.

 host.bogus.net sera le nom de la machine ou vous avez le compte mail
 ou votre IP sera envoy�e.

 Dans votre .procmailrc, ajoutez la recette suivante :



      ______________________________________________________________________
      :0:
      * ^Subject:.*envoiemonip
      |mail -s "Your new IP" [email protected] < /var/run/add
      ______________________________________________________________________




 Cette adresse e-mail ne doit pas �tre r�cup�r�e automatiquement par un
 job cron sur votre machine.

 /var/run/add est bien sur le fichier qui contient votre adresse IP,
 souvenez vous du hack 1, si vous n'avez pas utilis� ce hack, mettez
 cette ligne dans votre /etc/ppp/ip-up:



      ______________________________________________________________________
      echo $4 > /var/run/add
      ______________________________________________________________________




 Pour utiliser �a, envoyer vous un mail depuis n'importe ou sur
 Internet avec comme sujet : "envoiemonip", puis r�cup�rez le mail sur
 le compte ou sera envoy� le mail, et attendez que le job cron chez
 vous r�cup�re le mail et que le procmail y r�ponde.

 C'�tait trop dur ? Dites-le-moi, j'essayerais d'�claircir tout �a un
 peu.


 1122..  HHaacckk 1111 :: UUnnee hhoommee ppaaggee ddyynnaammiiqquuee vviiaa ffttpp

 par Michael Driscoll [email protected]

 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 :


 �  ncftp (A moins que vous r�ussissiez � �crire un script qui utilise
    le ftp normal)

 �  Un acc�s ftp � votre FAI.

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

 (J'ai aussi re�u des scripts de [email protected] 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).


      NNoottee : 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.



 1122..11..  PPoouurrqquuooii jj''uuttiilliisseerraaiiss ��aa ??


 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 ?


 1122..22..  MMiissee eenn ppllaaccee ddee llaa ppaaggee

 Tout d'abord, vous allez avoir � �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 �crivez les pages, � la
 place de l'adresse de votre machine, on va mettre 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 serais :



      ______________________________________________________________________
      <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.




 1122..22..11..  UUnnee nnoottee ssuurr lleess rreeddiirreeccttiioonnss

 par Artur Skawina [email protected]

 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 :


 1122..33..  UUttiilliissaattiioonn ddee nnccffttpp  ppoouurr llaa mmiissee �� jjoouurr aauuttoommaattiiqquuee ddeess
 ppaaggeess..

 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.


 1122..33..11..  nnccffttpp  11..xx..xx

 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 l'entr�e 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).


 1122..33..22..  nnccffttpp  22..xx..xx

 par Tomas Jamate [email protected]


      [NNoottee : 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
 oouu
 "ncftp -Lf example", le -f force � recouvrir le fichier existant, pour
 le parano�aque ;-)


 1122..44..  UUnnee rroouuttiinnee ddee rreecchheerrcchhee//rreemmppllaaccee ssiimmppllee aavveecc sseedd

 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.



 1133..  HHaacckk 1122 :: EEnnvvooyyeezz uunn mmeessssaaggee ssuurr vvoottrree ppaaggeerr aavveecc vvoottrree nnoouuvveellllee
 aaddrreessssee IIPP

 par Michael Driscoll [email protected]

 Voici un joli hack qui ne sera probablement utilis� par personne. Il
 requiert d'utiliser un programme pour faire composer � votre modem le
 num�ro de votre pager et lui envoie votre nouvelle IP. Il requiert :


 �  un modem (La vitesse n'est pas importante puisqu'on ne va faire que
    composer un num�ro [Vous n'�tes pas super content d'avoir garde
    votre modem � 300bps ? :-) ])

 �  Une ligne t�l�phonique suppl�mentaire (elle n'a pas besoin d'�tre
    d�di�e, et heureusement, vous avez un modem qui abandonnera s'il y
    a d�j� une conversation sur la ligne (Je pense que c'est quelque
    chose qu'il faudra que vous v�rifiiez, quelques modems sont un peu
    brutaux avec �a (NdT : Je confirme, mon modem Olitec si il ne
    trouve pas la tonalit� raccroche la ligne, red�croche, et ce tant
    qu'il n'a pas la tonalit� :-() .

 �  Un pager ordinaire

 �  Un programme pour composer le num�ro


 1133..11..  LLee pprrooggrraammmmee qquuii ccoommppoossee llee nnuumm��rroo

 Pour ce hack, vous allez avoir besoin d'un programme qui sait composer
 depuis la ligne de commande. Pour l'exemple suivant, j'utilise 'modem-
 stats' par Kenneth J. Hendrickson [email protected], qui peut �tre trouv� �
 sunsite.unc.edu/pub/Linux/apps/comm/modem-stats.tar.gz ou pas loin.

 J'imagine que d'autres programmes seraient tout � fait capables de
 faire la m�me chose.


 1133..22..  AAppppeell ddeeppuuiiss iipp--uupp

 On va mettre les lignes suivantes dans /etc/ppp/ip-up :



      ______________________________________________________________________
      #On s�pare $4 (l'adresse IP) en quatre morceaux
      part1=`echo $4 | cut -f1 -d.`
      part2=`echo $4 | cut -f2 -d.`
      part3=`echo $4 | cut -f3 -d.`
      part4=`echo $4 | cut -f4 -d.`
      #On lance le programme
      /usr/sbin/modem-stats -c 'atz' /dev/cua2
      /usr/sbin/modem-stats -c 'ats7=15' /dev/cua2
      /usr/sbin/modem-stats \
       -c 'atdt6384658,,,'${part1}'*'${part2}'*'${part3}'*'${part4} /dev/cua2
      ______________________________________________________________________




 Explications :

 Le atz initialise le modem, le ats7=15 r�gle le temps d'attente pour
 la porteuse, les ','s sont des pauses, les '*'s sont utilis�es pour
 remplacer les - (c'est ce que �a fait sur mon pager en tout cas,
 esp�rons qu'il en sera de m�me pour le votre).

 Oh, oui, vous aurez s�rement de meilleurs r�sultats si vous mettez
 vvoottrree num�ro de pager � la place de 638-4658, car, c'est mmoonn num�ro de
 pager :-), de plus, remplacez /dev/cua2 par le nom de votre modem.

 F�licitations, vous avez r�ussi !



 1144..  HHaacckk 1133 :: llooggiinnss xxtteerrmm  �� ttrraavveerrss uunn ffiirreewwaallll

 par Brad Baker [email protected]


      [Note de l'�diteur : Comme l'auteur de ce hack le dit judi�
      cieusement, ce hack peut avoir des probl�mes de s�curit�,
      comme la possibilit� d'un vol de mot de passe ou d'ouvrir
      une br�che dans la s�curit� du firewall � cause d'un login �
      l'ext�rieur de votre r�seau local. Ce hack est inclus plus
      pour sa valeur que pour son utilit�. Je ne vous conseille
 pas de l'utiliser � moins que vous soyez l'administrateur
 syst�me de ce r�seau ou que vous soyez en tr�s bons termes
 avec lui ou elle :-) -- MCD]


 Voici un autre hack que vous pouvez essayer. Il marche, et je ne suis
 pas s�r des risques de s�curit�, mais il est tr�s amusant.

 Cela serait sympa de pouvoir acc�der � ma machine de travail (une
 station Sun) depuis chez moi, et r�ciproquement, le probl�me est que
 le telnet est bloqu� par le firewall au bureau. Voici une fa�on de le
 contourner.

 Pour cet exemple, je vais donner la fa�on d'acc�der � ma station Sun
 (au travail) depuis chez moi avec Linux, avec une connection PPP � mon
 FAI et une IP dynamique.



 >Chez moi, quand je veux acc�der � ma machine de travail, je me
 connecte et je lance X, je tape "xhost +", je trouve mon IP dynamique
 et je l'envoie � mon travail dans un e-mail avec un format
 particulier. Sur ma machine de travail, j'ai un script procmail qui
 lis les mails dont le sujet est sp�cial, disons "X-W". Si le texte du
 message � un format d�fini, alors, l'IP est extraite du message, et il
 lance un xterm qui s'affiche directement chez moi comme �a :



           xterm -display l.ip.que.j.ai.envoye:0.0 -e login




 Voila ! En � peu pr�s 30 secondes � une minute, j'ai un �cran de login
 qui appara�t chez moi ! Je n'ai pas essay� d'aller dans l'autre
 direction car l'ordinateur de la maison n'est pas tout le temps
 connect�, mais il devrait �tre possible de faire la m�me chose.

 Je suis assez pr�occup� par les probl�mes de s�curit�, et je l'ai mis
 hors service pour l'instant jusqu'� ce que j'en apprenne plus. Quand
 le xterm appara�t, il donne un prompt de login, et je ne sais pas
 comment le Secure Keyboard (Clavier s�curis�, il permet d'emp�cher la
 r�cup�ration de ce qui est tap�)  marche dans un xterm. De plus, je ne
 suis pas sur des s�curit�s fournies par X. Je suis plus pr�occup� par
 le xterm apparaissant � une mauvaise IP ou sur une IP que je viens de
 quitter d� � une d�connection, mais bon, la majorit� des utilisateurs
 utilisent Windows, et l'acc�s X sera simplement ignor�.

 D'autres s�curit�s pourraient �tre ajout�es en encryptant l'IP dans le
 mail avec PGP ou une encryption classique et de restreindre l'IP � un
 certain nombre, mais mon FAI refuse de me donner ce nombre.

 Voici le script .procmailrc, le script et un exemple de message mail
 que j'ai utilis� pour tester (disons que 111.222.333.444 est l'IP
 dynamique).

 Le morceau de ~/.procmailrc








 ______________________________________________________________________
 :
 ^Subject: X-W
 | cat | $HOME/scripts/send_xterm
 ______________________________________________________________________




 ~/scripts/send_xterm



      ______________________________________________________________________
      #!/bin/sh
      XX=`cat $1 | grep "^IP: .*" | sed "s/IP: \(.*\)/\1/"`
      XX=`echo $XX | perl -e '$_ = <>; s/[^0123456789.]//g; print'`
      xterm -display $XX -e login &
      ______________________________________________________________________




 Exemple de message



      ______________________________________________________________________
      To: [email protected]
      Subject: X-W

      IP: 111.222.333.444:0.0
      ______________________________________________________________________




 Vous pouvez essayer sur votre propre machine en vous envoyant un mail
 � vous-m�me (apr�s avoir installe send_xterm et la r�gle .procmailrc
 en interne bien sur).


 1155..  HHaacckk 1144 :: HHoommee ppaaggee ddyynnaammiiqquuee vviiaa uunn CCGGII

 par Michael Driscoll [email protected]

 Ce hack est similaire au hack 11, mais il diff�re en la m�thode
 employ�e. Alors que le hack 11 implique l'utilisation d'un acc�s ftp
 vers le serveur http de votre FAI pour mettre � jour la page, celui ci
 acc�de � un CGI sur le serveur pour mettre en place la page elle-m�me.

 Pour utiliser ce script, vous allez devoir convaincre votre
 l'administrateur de votre FAI de mettre ce CGI sur le serveur. Il est
 tout � fait possible qu'ils vous demandent de l'argent pour v�rifier
 la s�curit� de ce script, puisque cela va leur demander du temps, et
 c'est pour eux l'assurance que le script ne pr�sentera pas de risques
 une fois mis en place (je vais faire de mon mieux pour qu'il soit le
 plus 's�r' possible). Par exemple, mon FAI (lightspeed.net) me demande
 $50 par script pour le v�rifier.

 AAtttteennttiioonn : Non seulement ce script est totalement nouveau et
 (largement) non test�, mais en plus, je l'�cris � 3 heures du matin
 car je n'ai pas envie de faire ma philosophie. Si vous ne connaissez
 rien aux CGI ni comment les rendre s�r, alors, je vous sugg�re
 d'attendre que les quelques bugs soient retir�s avant de l'envoyer �
 votre pauvre administrateur syst�me.
 NNoottee : Bon, cela fait maintenant deux mois que j'ai �crit ce message,
 et je n'ai rien entendu � propos de la s�curit� de ce CGI, ni pour, ni
 contre. Alors, soit-il eesstt sur et personne ne me l'a fait savoir, soit
 personne ne l'utilise :-) Par cons�quent, je vous conseille de faire
 attention.


 1155..11..  VVooiill�� ccee qquuee ll''oonn vvaa ffaaiirree..

 A la base, tout ce que vous avez � faire, c'est de prendre le script
 et de remplir quelques endroits.

 Dans le script, on va essayer de :


 �  R�cup�rer un param�tre appel� newip=, en s'assurant que c'est une
    IP qui convient.

 �  R�cup�rer un param�tre appel� password= ce qui est une ttrr��ss
    mauvaise s�curit� pour s'assurer que personne ne pourra utiliser le
    script pour mettre sa propre IP (Note : je sais que ce n'est pas
    100% efficace, mais bon, �a ne devrais pas �tre ttrroopp grave, et cela
    ne pourra rien d�truire, et puis il y aura les logs du serveur pour
    savoir qui a acc�d� � la page...)

 �  Confronter les $REMOTE_HOST et $REMOTE_ADDR du CGI avec votre nom
    de domaine pour �tre sur que c'est une requ�te locale.

 �  Et enfin, si tout marche, mettre en place la page...


 1155..22..  LLee ssccrriipptt (( ddyynniipp..ppll ))


































 ______________________________________________________________________
 #!/usr/bin/perl
 # Ecrit par Michael Driscoll <[email protected]>
 # Les suggestions sont les bienvenues

 require 5; # Requiert perl5
 use CGI; # Ceci est le module CGI.pm, disponible sur tous les sites CPAN tels
          # ftp://ftp.cdrom.com/pub/perl/CPAN/modules/by-module/CGI

 # Remplir les trucs qui suivent
 $givendomain = "domain.net";               # Mettez le domaine de votre FAI
                                            # (Pour l'instant, ce sont les deux
                                            # premi�res parties, mais cela peut
                                            # �tre change en dessous avec le
                                            # split())
 $givenpassword = "potrzebie";              # Mettez le mot de passe � utiliser
 $filename = "/some/path/to/my/index.html"; # Demandez � votre admin de mettre
                                            # ici la page � mettre � jour
                                            # Note � l'administrateur :
                                            # le fichier devra avoir les
                                            # droits en �criture pour l'uid
                                            # de httpd, � moins que vous
                                            # utilisiez la m�thode suid
                                            # d'Apache ou un autre truc
                                            # (mais c'est pas recommand�)

 # Ce qui suit joue avec les IP en utilisant la forme aaa.bbb.ccc.ddd
 $higha = "255"; # Mettez ici le plus grand num�ro de la partie aaa
                 # de votre FAI.
 $lowa = "0";    # De m�me pour le plus petit num�ro de la partie aaa.
                 # probablement la m�me que $higha vu que la majorit� des
                 # FAI ne prennent pas plus qu'un domaine de classe A :-)
 $highb = "255"; # Mettez la borne sup�rieure pour bbb.
 $lowb = "0";    # La borne inf�rieure de bbb.
 $highc = "255"; # Vous avez compris.
 $lowc = "0";    #
 $highd = "255"; #
 $lowd = "0";    #

 # on fait un lien entre $query et le module cgi.pm
 $query = new CGI;

 # $newip est la nouvelle IP du param�tre newip
 $newip = $query->param("newip");

 # $trypassword est la tentative de mot de passe � confronter avec $givenpassword
 $trypassword = $query->param("password");

 # $hostname est le nom d'hote � confronter avec $givendomain
 $hostname = $query->remote_host;

 # Verifier le mot de passe avant tout
 unless ("$trypassword" eq "$givenpassword") {
         print "Content-type: text/plain\n\n";
         print "Sorry, wrong password\n";
         exit;
 }

 # On d�coupe l'IP dans @IP
 # On vire d'abord les caract�res non num�riques sauf le '.'
 # on le splice() pour supprimer les trucs apr�s les quatre premier points
 # (Comment c'est arriv� l� ??  De toute fa�on, j'essaye de le rendre aussi
 # peu craquable que possible).
 $newip =~ s/[^\d\.]//g;
 @IP = split /\./, $newip;
 splice(@IP, 4);
 # On v�rifie que l'IP est dans les bornes
 unless (($lowa <= $IP[0]) &&
         ($lowb <= $IP[1]) &&
         ($lowc <= $IP[2]) &&
         ($lowd <= $IP[3]) &&
         ($higha >= $IP[0]) &&
         ($highb >= $IP[1]) &&
         ($highc >= $IP[2]) &&
         ($highd >= $IP[3])) {
         print "Content-type: text/plain\n\n";
         print "Sorry, that IP address doesn't seem to be within bounds\n";
         exit;
 }

 # Maintenant, on v�rifie le nom de l'h�te
 # On le d�coupe dans @hostnamearray
 @hostnamearray = split /\./, $hostname;
 $dompart2 = pop @hostnamearray;
 $dompart1 = pop @hostnamearray;

 # On le v�rifie
 unless (("$dompart1"."\.$dompart2" eq "$givendomain") ||
         ("$hostname" eq "localhost")) {
 # On affiche une erreur
         print "Content-type: text/plain\n\n";
         print "Sorry, you don't seem to have the right domain\n";
         exit;
 }

 # Tout � l'air d'�tre OK, on va donc mettre en place la page
 # Prenez garde aux trucs dans le style de #, \, $, @, %, et '

 open(FILE, ">$filename") ||
         die "dynip.pl cannot open $filename to write: $!";
 flock(FILE, 2);

 # Ici commence le HTML. $newip est notre nouvelle adresse IP.
 print FILE "<html><head><title>Title etc.</title></head>\n\n";

 print FILE "<body><h1>body here</h1><hr>\n";
 print FILE "<p>blah blah blah\n";

 print FILE "<p>And <a href=telnet://$newip>here</a> is a link to my ";
 print FILE "current IP address.\n";

 print FILE "</body></html>\n";
 flock(FILE, 8);
 close(FILE);

 # On dit que tout s'est bien pass�
 print "Content-type: text/plain\n\n";

 print "Setup was successful\n";

 # Fin
 ______________________________________________________________________




 Acc�der au CGI quand la connection s'�tablis

 Maintenant, tout ce que nous avons � faire est y acc�der avec lynx
 dans notre /etc/ppp/ip-up. La ligne suivante devrait le faire,
 utilisant le $4 de /etc/ppp/ip-up comme nouvelle IP :

      ______________________________________________________________________
      lynx -dump \
      >> /etc/ppp/lynxlog
      ______________________________________________________________________




 Mettez le mot de passe que vous avez choisis � la place de
 'potrzebie', bien sur. Et assurez-vous de bien faire chmod 700
 /etc/ppp/ip-up quand c'est Ok, car il y a des informations sensibles
 dedans.

 (Au fait, les \ sont juste utilis�s pour que la commande tienne en 80
 colonnes. Ils ne font qu'escaper les retours � la ligne pour que ce
 soit consid�r� comme une seule commande)

 De plus, videz p�riodiquement le /etc/ppp/lynxlog sinon, il va �tre
 tr�s gros apr�s quelque temps :-)

 Voil�... C'est fait !


 1166..  HHaacckk 1155 :: SSuuggggeessttiioonn ppoouurr lleess rrcc..**

 par Jeremy D. Impson [email protected]
 �cris par Michael Driscoll [email protected]

 Jusqu'ici, ce HowTo avais pleins de morceaux d'instructions dispers�es
 dans plein de fichiers avec des morceaux dans les /etc/ppp/ip-down ou
 les rc.*, qui devaient �tre ex�cut�s quand le syst�me plantait et que
 la connection PPP �tais toujours l�. Jeremy m'a sugg�r� de lancer
 /etc/ppp/ip-down au d�marrage plut�t que de le recopier petit � petit
 dans les rc.*. Bien sur, il faut s'assurer que les commandes dans
 /etc/ppp/ip-down ont un sens au d�marrage, et ne s'appuient pas sur
 des param�tres pass�s par pppd (si c'est le cas, vous pouvez toujours
 �crire une fausse ligne de commande), il n'y a qu'� ajouter la ligne
 suivante dans le rc de votre choix :



      ______________________________________________________________________
      # Ex�cute /etc/ppp/ip-down si pppd n'a pas �t� arr�te proprement
      if [ -f /var/run/ppp?.pid ]; then
              /etc/ppp/ip-down
      fi
      ______________________________________________________________________




 Un mot de Jeremy : Ce petit truc ne sera pas utile dans chaque
 situation, mais il l'est pour moi, et il le sera peut �tre pour vous

 Merci Jeremy !


 1177..  HHaacckk 1166 :: EEmmpp��cchheerr lleess ttiimmee--oouutt iimmppooss��ss ppaarr vvoottrree FFAAII aavveecc uunn
 ppiinngg

 par Artur Skawina [email protected]


      [Note de l'�diteur : Comme Arthur le dit, celui ci peut
      aller trop loin, et peut r�ellement avoir un impact sur
      votre FAI s'ils sont un peu justes dans le nombre de leurs
 lignes. Si vous faites ceci et que votre FAI vous demande de
 l'enlever, vous devriez s�rieusement penser � d�penser un
 peu plus d'argent pour acheter un modem � votre FAI, ce qui
 vous fournira certainement une IP fixe, rendant ce HowTo
 inutile :-) -- MCD]


 Pour garder une connection rtc, il est parfois n�cessaire de s'assurer
 que la connection n'est pas inactive pendant de longues p�riodes.
 Certains FAI vous d�connectent automatiquement s'il n'y a pas de
 trafic, et certains modems ont aussi la possibilit� de mettre fin �
 une connection inactive. Alors qu'il est simple de reconfigurer votre
 modem, cela risque d'�tre dur, voir impossible de convaincre votre FAI
 de faire la m�me chose (Ils n'aiment pas les gens utilisent leurs
 ressources 24h par jours).

 La solution ? Ajoutez la ligne suivante � votre script ip-up :



      ______________________________________________________________________
      ping <une_machine> -i 180 &
      ______________________________________________________________________




 Ou <une_machine> peut �tre le serveur DNS principal de votre FAI ou
 autre chose...

 Pour changer la d�connection automatique des modems, il va falloir
 regarder dans la documentation du modem. Par exemple, sur les modems �
 base de CirrusLogic, c'est ATS90=0



 1188..  HHaacckk 1177 :: UUttiilliissaattiioonn ddeess SSSSII ppoouurr rreettrroouuvveerr ssoonn IIPP

 par Dale Jolliff [email protected]

 Ceci n'est pas sp�cialement pour Linux, mais pour n'importe quoi, et
 vous n'avez pas � faire des modifications. Il requiert n�anmoins que
 votre FAI autorise les SSI (Server Side Includes : directives que le
 serveur http remplace par leur r�sultat)  dans vos pages.

 Il y a un exemple � www.e-tex.com/personal/taftbbs/onlinecheck.shtml.
 Allez y jeter un coup d'oeil... ;>

 Vous allez avoir � conna�tre certaines choses � propos de votre FAI :


 �  Le nom (ou l'IP) du routeur sur lequel vous vous loggez

 �  La "gateway" et votre propre nom d'utilisateur, vous pouvez les
    r�cup�rer avec la commande "ifconfig", c'est l'IP qui n'est pas
    votre machine... pour les utilisateurs de Windows, Trumpet Winsock
    a un "default gateway",  et pour les utilisateurs de Win95, c'est
    dans le coin de la configuration TCP/IP.

 La partie la plus compliqu�e est que votre FAI vous laisse avoir votre
 "home page" -- C'est ce que font tous les FAI de nos jours. S'ils ne
 sont pas assez pointus pour limiter l'ex�cution des CGI et des SSI, et
 y'a m�me mieux... Mon FAI autorise les SSI, mais pas l'ex�cution des
 CGI (bien sur, si vous pouvez faire des SSI, vous pouvez faire des
 CGI... il faut juste les appeler autrement).

 J'ai enlev� tous les trucs inutiles, laissant juste la partie critique
 pour que �a marche...

 Ajoutez ces lignes sur une page SSI (d'habitude, l'extension est
 ".shtml" pour la majorit� des serveurs) :

 david5.e-tex.com est le routeur sur lequel je me logge quand je me
 connecte � mon FAI...
 taftbbs est mon nom d'utilisateur sur leur syst�me
 Voici donc une ligne � mettre dans une page...



      ______________________________________________________________________
      <pre><!--#exec cmd="finger @david5.e-tex.com | grep taftbbs"--></pre>
      ______________________________________________________________________






      ______________________________________________________________________
      <a href="http://<!--#exec cmd="finger @david5.e-tex.com | grep taftbbs |
      cut -c '66-'"-->">Click here to see if you can see anything!</a>
      ______________________________________________________________________




 La ligne ci dessus va faire un lien qui s'affichera sur la page.
 Faites un finger sur votre routeur, et regardez la sortie, le "cut -c
 '66-'" sera diff�rent suivant le routeur. Si vous avez des comptes sur
 plusieurs FAI, et comme il semble que tous aient des routeurs
 diff�rents, et chacun aura un format diff�rent quand vous aller faire
 un finger dessus.

 Une petite explication de ce qui se passe :

 <a href="http://   <--Une ancre HTML standard

 <!--#exec cmd=" <-- Voici la commande  SSI. Cela signifie que ce sera
 lu et ex�cut� par le serveur avant de vous �tre envoy�. Donc, m�me si
 vous regardez la source de la page depuis votre navigateur, vous ne
 verrez pas �a, mais juste le r�sultat de la commande.



      finger @david5.e-tex.com | grep taftbbs | cut -c '66-'




 Voil� ce qui est ex�cut�. On fait un finger sur le routeur, on ne
 garde que le bon utilisateur, et on coupe tout sauf l'IP, ce qui sur
 le routeur que j'utilise commence � la colonne 66, jusqu'� la fin de
 la ligne... Cela peut �tre totalement diff�rent pour les autres.



      "-->





 Et puis on ferme la commande SSI proprement, sinon, �a ne marchera
 pas... Faites attention � la fa�on d'utiliser les apostrophes et les
 guillemets, il est tr�s facile de faire une erreur, jouez un peu avec,
 vous verrez.



      ">Click here to see if you can see anything!</a>




 Et bien sur, on ferme le lien HTML, et on met un texte cliquable.


 SS..  OOnn aa bbeessooiinn dd''aauuttrree hhaacckkss !!

 Si vous avez un hack concernant les IP dynamiques et que vous voudriez
 contribuer � ce HowTo, contactez moi. Attention, si vous faites �a, il
 aura � �tre couvert par le copyright de la section 1.7, pour des
 raisons de publications...

 Si vous {avez aim� ce HowTo, d�test� ce HowTo, pens� que ce HowTo
 �tais trop confus, trouv� quelque chose ici qui ne marche pas ou qui
 est totalement faux, voulez m'envoyer un mail, ne voulez pas m'envoyer
 un mail, trouv� un probl�me de s�curit�, etc} alors, s'il vous pla�t,
 envoyez un moi un e-mail � [email protected]. Je le pense,
 j'aimerais avoir nn''iimmppoorrttee qquueell retour sur ce HowTo, m�me pour me dire
 que vous l'avez juste lu !

 Vraiment ! Envoyez-moi un e-mail pour n'importe quoi ! J'adore
 rr��eelllleemmeenntt recevoir des e-mails !

 Les remarques n�gatives nn''iirroonntt ppaass vers /dev/null. Car je pense que
 si vous en �tes � ce point, je ferais mieux de vous �couter.

 Si vous �crivez un chapitre pour ce HowTo, non seulement vous aiderez
 la communaut� Linux, mais vous recevrez tous les honneurs � la fin de
 ce HowTo, vous serez remerci� comme contributeur au d�but de ce HowTo,
 vos id�es seront archiv�es sur presque toutes les distributions de
 Linux � travers le monde, vous serez envi�s de vos pairs, etc.


 TT..  CCRR��DDIITTSS

 _(_P_a_r _o_r_d_r_e _d_'_a_p_p_a_r_e_n_c_e_)

 MMiicchhaaeell DDrriissccoollll ffeennrriiss@@lliigghhttssppeeeedd..nneett

 CChhrriissttiiaann GG.. WWaarrddeenn ccwwaarrddeenn@@lloooopp..ccoomm

 JJuussttiinn CCrraaggiinn bbeeyyoonndd@@lliigghhttssppeeeedd..nneett

 sshhaaddooww@@iinnddiirreecctt..ccoomm

 AAjjiitt DDeesshhppaannddee aaddeesshhppaann@@ddddtt..eenngg..uucc..eedduu

 DDiivvyyaa MMaahhaajjaann vvmmaahhaajjaann@@ggiiaassddll0011..vvssnnll..nneett..iinn

 RRyyaann KKlleemmss rrkklleemmss@@pprriimmeenneett..ccoomm

 MMaatttthheeww DDrriivveerr mmddrriivveerr@@ccffmmeeuu..aassnn..aauu

 MMaatttthheeww NNuucckkoollllss mmnnuucckk@@uummrr..eedduu


 SSccootttt JJoohhnnssttoonn ssjj@@ooddiinn..iiaacc..nneett

 BBrraadd BBaakkeerr bbppbb@@mmllbb..ccccaa..rroocckkwweellll..ccoomm

 CChhrriissttiiaann HHaarrddmmeeiieerr 110011550022..11552211@@ccoommppuusseerrvvee..ccoomm

 JJuussttiinn ((GGuuss)) HHuurrwwiittzz hhuurrwwiittzz@@ddyynnddnnss..ccoomm

 TToommaass JJaammaattee ttvvjj@@mmiisseerr..uummaassss..eedduu

 JJeerreemmyy DD.. IImmppssoonn jjddiimmppssoonn@@ccaammeelloott..ssyyrr..eedduu

 SStteevvee PPrrzzeeppiioorraa ggeeaarrhheeaadd@@ddrreeaammssccaappee..ccoomm

 WWhhiitt BBllaauuvveelltt wwhhiitt@@ttrraannssppeecctt..ccoomm

 PPaauull CC.. RRiicchhaarrdd ppccrriicchhaa@@ccss..ccoonnccoorrddiiaa..ccaa

 PPeerr SSjjoohhoollmm SSooiillee..KKaaaassiillaa@@sstthh..ffrroonntteecc..ssee

 BBiillll DDuunnccaann bbdduunnccaann@@bbeeaacchhnneett..oorrgg

 AArrttuurr SSkkaawwiinnaa sskkaawwiinnaa@@uussaa..nneett

 SSccootttt DDiieerr -- DDiiEEMMaaNN ssddiieerr@@iissdd..nneett

 DDaallee JJoolllliiffff ttaaffttbbbbss@@ee--tteexx..ccoomm

 BBrryyaann RRiittttmmeeyyeerr bbrryyaannrr@@ffllaasshh..nneett

 MMaarreekk KKuubbiittaa kkuubbiittoovvii@@mmbbooxx..llaannttaanneett..cczz