  Dynamic IP Hacks Mini-HowTo
  Michael Driscollfenris@lightspeed.net
  V 2.1.3, 25 Mai 1997

  Comment s'en sortir avec une IP dynamique.
  ______________________________________________________________________

  Table des matires


























































  1. Copyright et Dfinitions...

     1.1 Ou trouver la dernire 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 proccuper ?
     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 systme connect et accessible 24h/24 et 7j/7 (mthode 1)

     3.1 Ce dont vous avez besoin
     3.2 (TT

  4. Hack 2 : Garder votre systme connect et accessible 24h/24 et 7j/7 (mthode 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 systme connect et accessible 24h/24 et 7j/7 (mthode 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 rcuprer 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 Cration 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. Entres 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 numro
     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 : Empcher les time-out imposs par votre FAI avec un ping

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

  19. On a besoin d'autre hacks !

  20. CRDITS



  ______________________________________________________________________

  11..  CCooppyyrriigghhtt eett DDffiinniittiioonnss......

  par Michael Driscoll fenris@lightspeed.net


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


  Avec les Hacks de :


    Michael Driscoll fenris@lightspeed.net

    Ryan R. Klems rklems@primenet.com

    Matthew Driver mdriver@cfmeu.asn.au

    Matthew Nuckolls mnuck@umr.edu

    Justin Cragin beyond@lightspeed.net

    Brad Baker bpb@mlb.cca.rockwell.com

    Justin (Gus) Hurwitz ghurwitz@dyndns.com

    Jeremy D. Impson jdimpson@camelot.syr.edu

    Steve Przepiora gearhead@dreamscape.com

    Artur Skawina skawina@usa.net

    Dale Jolliff taftbbs@e-tex.com


  11..11..  OOuu ttrroouuvveerr llaa ddeerrnniirree vveerrssiioonn ddee ccee MMiinnii--HHoowwTToo

  La toute dernire version peut tre trouve  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.


  11..22..  CCoommmmeennttaaiirreess

  Tous les commentaires  propos de ce document devraient tre adresss
   Michael Driscoll fenris@lightspeed.net.


  11..33..  PPoouurrqquuooii ccee MMiinnii--HHoowwTToo ??

  Le problme 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 rveiller tous les
  matins et constater que votre adresse postale a chang et que toutes
  vos cartes de visites sont dpasses. Malheureusement, les FAI (NdT :
  Fournisseur d'Accs Internet)  tendent de plus en plus  utiliser ce
  type d'adressage de nos jours, et tous ceux qui ne peuvent pas se
  permettre de dpenser un peut plus d'argent pour obtenir une IP fixe
  sont coinces 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.


  11..44..  QQuu''eesstt ccee qquuee ll''aaddrreessssaaggee ddyynnaammiiqquuee ddeess IIPP,, eett ppoouurrqquuooii aaiiss--jjee 
  mm''eenn pprrooccccuuppeerr ??

  Une adresse IP est une suite de quatre chiffres, chacun ayant une
  valeur comprise entre 0 et 255, et ces 4 chiffres sont spars 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 accder.

  L'adressage dynamique des IP est quelque-chose utilis par les FAI
  pour rduire le nombre d'adresses dont ils ont besoin de "possder".
  Chaque fois que vous vous connectez  votre FAI, ils vous donnent
  juste la dernire 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 connectes  un instant donn.
  Habituellement, les FAI possdent une adresse pour dix clients, bien
  que ce ratio varie.

  Pourquoi font-ils a ? Et bien, la faon la plus simple de d'expliquer
  est de dire qu'il n'y a pas suffisamment d'adresses IP avec le
  protocole actuel. Une faon plus complexe est de dire que nous avons
  suffisamment d'adresses,  mais  qu'il y en a de plus en plus
  d'utilises, les tables de routage utilises par les routeurs des
  dorsales commencent  ressembler  des disque MS-DOS vieux de 10 ans
  et qui n'a jamais t dfragment :-) En utilisant tant d'adresses, il
  y a une perte d'efficacit dans les recherches. Le systme 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 :-)


  11..55..  PPoouuvveezz--vvoouuss mm''aaiiddeerr aa ccoonnffiigguurreerr {{ppppppdd,,tteellnneettdd,,sseennddmmaaiill......}} ??

  Non, Dbrouillez vous tout seul. a forme le caractre :-)

  En fait, il me serait plutt inutile de rinventer la roue en vous
  aidant  les configurer, puisque beaucoup de documents existent dj
  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)


  11..66..  HH,, eett llee SSLLIIPP ??

  Pour vous dire la vrit, 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 problme, puisque
  PPP semble tre le standard actuel, spcialement en ce qui concerne
  l'adressage IP.

  Je suis dsol 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 dbrouillez-vous pour que a marche (si
  vous le faites, lisez l'appendice A pour voir votre hack ajoute a ce
  HowTo !)


  11..77..  CCooppyyrriigghhtt

  En absence de clause contraire, les documents HOWTOs ont un Copyright
  dpos par leurs auteurs respectifs. Ces documents peuvent tre copis
  et distribus en partie ou en totalit sur n'importe quel support
  mdia  condition que le Copyright soit conserve sur chaque copie. La
  distribution commerciale est autorise et encourage 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 prsent Copyright. Cela
  signifie qu'il vous est impossible de prendre une partie d'un document
  et d'imposer des restrictions sur sa distribution. Certaines
  drogations peuvent tre obtenues. Pour cela, contacter le
  coordinateur  l'adresse indique ci dessous.

  Nous dsirons promouvoir la diffusion de ces informations le plus
  largement possible. Nous souhaitons cependant conserver notre
  Copyright sur les documents HOWTOs et tre tenus informs des projets
  visant  distribuer ces informations. Si vous avez des questions,
  contactez Greg Hankins, coordinateur des Linux HOWTOs 
  gregh@sunsite.unc.edu via e-mail, ou au +1 404 853 9989.


  11..88..  AAvveerrttiisssseemmeenntt

  Cela va sans dire, mais je le dis quand mme au cas o.

  Je ne suis pas sur que tout cela est fait de la meilleure faon, 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 scurit 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 consquent, vous devriez quand mme faire attention et tre
  sur de bien comprendre au moins un petit peu ce que vous faites,
  ainsi, vous pourrez le rparer si a ne marche plus.

  Comme son nom l'indique, ce document parle de hhaacckkss. Les hacks, par
  dfinitions sont des faons plutt bizarres de configurer un systme,
  bien que parfois, ils soient la seule faon. En plusieurs endroits,
  ces hacks pourraient tre faits de faons plus lgantes, mais au cot
  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 janl@math.uio.nl :

  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 ;-) trs bien si vous croyez ce que je
  vous dis.


  22..  IInnttrroodduuccttiioonn aauuxx hhaacckkss 11 aauu 33

  par Michael Driscoll fenris@lightspeed.net

  Les trois premiers hacks de ce HowTo servent  maintenir une
  connection PPP constante en redmarrant pppd quand la liaison est
  perdue. J'ai pens au deuxime de ces hacks quand j'ai dmarr Linux,
  mais depuis, j'ai chang pour le troisime qui est quand mme plus
  efficace (et malheureusement plus difficile  mettre en place). Le
  premier hack n'a pas t fait par moi mais par Steve Przepiora
  gearhead@dreamscape.com, 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 trs 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 rseau et tre capable de faire du telnet, ftp,
  etc. vers elle.

  Les mthodes 1 et 2 sont celles qui sont faciles  implmenter,
  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
  mthode 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 configurs.

  Alors, quelle mthode utiliser ? Je suggre la mthode 1, elle est
  facile et plutt efficace, ou si vous avez un peu plus de
  connaissances, jetez un coup d'oeil  la mthode 3 pour voir si vous
  pouvez russir  implmenter cela, puisque c'est la plus efficace. La
  mthode 2 est l parce que c'est la premire que j'ai crite, et parce
  que c'est la seule de ce howto que j'ai test (les autres sont de
  rcentes additions et devraient rapidement remplacer la 2 de toute
  faon).
  Si aucune de ces mthodes ne vous plat, crivez la votre, et envoyez-
  la-moi, je l'inclurais probablement si c'est utilisable par d'autres.

  Bon, maintenant, on passe aux choses srieuses :


  33..  HHaacckk 11 :: GGaarrddeerr vvoottrree ssyyssttmmee ccoonnnneecctt eett aacccceessssiibbllee 2244hh//2244 eett
  77jj//77 ((mmtthhooddee 11))

  par Steve Przepiora gearhead@dreamscape.com


  33..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

  Une configuration PPP qui marche.


  33..22..  iipp--uupp ,, iipp--ddoowwnn ,, eett dd''aauuttrreess ssccrriippttss aassssoorrttiiss

  Bon, alors voici comment je l'ai fait :


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

  2. Mettez au dbut 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 dconnect -> 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 dconnect -> on recompose le numro
  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



  44..  HHaacckk 22 :: GGaarrddeerr vvoottrree ssyyssttmmee ccoonnnneecctt eett aacccceessssiibbllee 2244hh//2244 eett
  77jj//77 ((mmtthhooddee 22))

  par Michael Driscoll fenris@lightspeed.net

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


  44..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

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




  44..22..  MMiissee eenn ppllaaccee dduu ssccrriipptt kkeeeeppaalliivvee..sshh

  44..22..11..  EEnn uuttiilliissaanntt ccrroonnttaabb

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

  cron est un daemon qui lance des programmes  intervalles rguliers.
  Vous pouvez regarder votre crontab en excutant "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'entre en commentaire pour qu'elle ne
  soit pas excute tant que le script n'est pas prt).

  Puis mettez le script suivant appel keepalive.sh dans le rpertoire
  /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 excutable.


     CCoonnsseeiill 11 ::
        Vrifiez les chemins ! Pour pppd et ppp-off insrez ce que vous
        utilisez pour lancer et arrter les connections.

     CCoonnsseeiill 22 ::
        J'utilise le serveur de DNS de votre FAI car s'il est en panne,
        votre connection  Internet est hors service de toute faon :-)

     CCoonnsseeiill 33 ::
        Utilisez l'adresse IP numrique de votre serveur de DNS, sinon,
        ping renvoie un message diffrent et le grep ne marchera pas.

  Maintenant, quand vous voulez rester connect, vous avez juste 
  lancer crontab -e et enlever le "#" pour dcommenter l'entre... et
  quand vous voulez rester dconnecter, relancez crontab -e et remettez
  le "#", puis arrtez votre connection avec ppp-off ou ce que vous
  utilisez.


  44..22..22..  UUttiilliissaattiioonn ddiiaalldd   llaa ppllaaccee dduu ccrroonn

  par Divya Mahajan vmahajan@giasdl01.vsnl.net.in

  L'entre crontab que nous venons de faire peut aussi tre faite (et
  probablement plus lgamment) par d'autres programmes, tel diald.
  Cette section explique comment utiliser tt/diald/ pour cette
  utilisation, vous devriez peut tre dcider d'utiliser cette manire.
  J'ai laiss la section avec le crontab pour rfrence et parce qu'il
  ne ncessite aucun package, mais vous voudrez peut-tre utiliser diald
   la place.


  1. Rcuprer la dernire 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 compile de
     diald sur un site de la Slackware)

  3. Aprs 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 priphrique...)
       > 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 numro)
       > defaultroute
       > accounting-log /var/adm/diald.log
          (Garde une trace de la dure de vos connections)
       >connect /path_to_myscript
          (Quand vous utilisez un script pour vous connecter mettez le sur la ligne
           ci dessus. Quand diald appele ce script, les entres et sorties standard
           sont rediriges vers le priphrique (le modem) donc, vrifiez que le
           script n'imprime pas de btises. J'utilise personnellement "/usr/sbin/dip
           mydipfile.dip >> /var/adm/dip.log 2> /var/adm/dip.err" qui enregistre les
           tentatives de connections. Au dpart, vous excuterez 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" aprs que vous
           soyez connects et que vous ayez lanc les services PPP de votre FAI
           (utilisez dip-3.3.7n-uri). D'autre part, enregistrez tous les paramtres
           PPP dans /etc/ppp/options plutt que de faire confiance  la ligne de
           commande. Ds que votre fichier dip est au point est prt, 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 problme de modem, diald ressayera automatiquement.
           Ds 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 trs 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.



  55..  HHaacckk 33 :: GGaarrddeerr vvoottrree ssyyssttmmee ccoonnnneecctt eett aacccceessssiibbllee 2244hh//2244 eett
  77jj//77 ((mmtthhooddee 22))

  par Michael Driscoll fenris@lightspeed.net

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

  Voici la troisime mthode 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 suggre d'aller lire :


    man init

    man inittab

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


  55..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

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


  55..22..  JJoouuoonnss aavveecc lleess rruunnlleevveellss

  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 oprationnel
       2) Vide
       3) Vide
       4) xdm (X)
       5) Multi-utilisateur normal (le runlevel par dfaut)
       6) Reboot




  J'ai nettoy a et je les ai refait, et ils ressemblaient  a aprs :









  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 dfaut)
  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 excution quand mon systme
  est dans le runlevel 3, et donc, me reconnecter  chaque dconnection,
  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 empche pppd de se mettre en tache de
  fond, et donc, faire croire  init qu'il est mort (sinon, init va
  redmarrer pppd une douzaine de fois etc...).

  Pour ceux qui sont intresss 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.



  66..  HHaacckk 44 :: EEnnvvooii ddee ll''IIPP ppaarr ee--mmaaiill

  par Michael Driscoll fenris@lightspeed.net

  Ce hack marche trs bien avec les scripts prcdents, 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 rseau aprs une reconnection.

  Les autres qui font la mme 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 :-).


  66..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn

  Juste une configuration PPP qui marche, juste a. Ce hack marche trs
  bien avec les hacks prcdemment dcris, car il vous permet de
  retrouver facilement votre machine aprs qu'elle se soit reconnect et
  que son adresse ai chang.


  66..22..  MMiissee eenn ppllaaccee ddee vvooss iipp--uupp  aanndd iipp--ddoowwnn

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


  Crez un fichier (s'il n'existe pas dj) en tant que root appel
  /etc/ppp/ip-up avec dedans :



       ______________________________________________________________________
       #!/bin/sh
       # $4 Est notre nouvelle IP passe 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 crez /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 excutables.

  Voil (En franais dans le texte original :-))  ! Maintenant,  chaque
  fois que pppd dmarre, votre adresse sera envoye au serveur de mail
  de votre FAI. On le rcuprera dans la section suivante.


  66..33..  CCoommmmeenntt rrccuupprreerr vvoottrree nnoouuvveellllee aaddrreessssee IIPP ddeeppuuiiss uunn aauuttrree
  oorrddiinnaatteeuurr ??

  Et bien, cela va demander un peu de rflexion de votre part. Je ne
  puis vraiment pas vous aider  vous en sortir, car cela dpends depuis
  quel type de machine vous de la rcuprer. Depuis Windows, vous pouvez
  essayer de configurer un programme de mail pour rcuprer 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).


  66..33..11..  FFaaiirree uunn tteellnneett ssuurr uunn sseerrvveeuurr PPOOPP33

  Voil comment je rcupre 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'espre), sinon, vous allez devoir vous
  dbrouiller par vous mme 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". Dbrouillez-vous
  :-)

  Ds 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 numro_du_message" pour rcuprer le message que vous
  voulez.



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




  Et voil ! Faites "dele numro_du_message" pour vous en dbarrasser 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 dcris le protocole POP3 en dtail.

  Par la mme occasion, si ce hack ne marche pas car vous avez cron qui
  rcupre votre mail automatiquement, alors, allez voir le hack 10 qui
  utilise procmail pour envoyer votre nouvelle IP  la demande.


  77..  HHaacckk 55 :: CChhaannggeemmeenntt ddyynnaammiiqquuee ddee vvoottrree //eettcc//hhoossttss

  par Michael Driscoll fenris@lightspeed.net

  Comme je l'ai dit plus tt, 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.
  Nanmoins, le hack qui suit s'arrange pour changer votre /etc/hosts
  avec l'adresse IP qu'on reoit  la connection.

  Pour moi, a  rgle les problmes avec "hostname" et "ntalk".


  77..11..  CCee ddoonntt vvoouuss aavveezz bbeessooiinn..

  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.


  77..22..  CCrraattiioonn ddeess ppaattrroonnss ddee hhoossttss

  NNOOTTEE :: 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 vvooss hostname et domain names dans ces valeurs. Ce fichier
  est celui qui sera utilis quand vous serez dconnect.

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



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




  Comme prcdemment, faites les substitutions de vos hostnames et
  domain names, mais nnee ttoouucchheezz ppaass 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 tteess censs 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
       ______________________________________________________________________





  77..33..  EEtt oonn rreettrriippoottee iipp--uupp  eett iipp--ddoowwnn

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



  88..  HHaacckkss 66  88 :: DDiivveerrss hhaacckkss

  Introduction par Michael Driscoll fenris@lightspeed.net

  Voici un peu de C envoy par Ryan R. Klems rklems@primenet.com
  <mailto:rklems@primenet.com>.

  Il y a trois programmes, le premier mail.c, est un CGI qui scanne
  votre fichier de mail pour trouver votre nouvelle adresse IP donne
  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, redmarre pppd s'il est mort, et envoie
  votre nouvelle adresse au serveur de mail de votre FAI.

  Le troisime, portmsg.c, attends une connection telnet sur un port
  prcis. Ds qu'une connection s'tablis, il va rcuprer 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 drangerais pas
  de vous aider  mettre en place ce code chez vous si vous lui demandez
  gentiment :-)


  88..11..  mmaaiill..cc














































  ______________________________________________________________________
  /*
   * mail.c written by Ryan R. Klems (rklems@primenet.com)
   * 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");
  }
  ______________________________________________________________________





  88..22..  ppppppddmm..cc







  ______________________________________________________________________
  /*
   * pppdm.c created by Ryan R. Klems (rklems@primenet.com)
   *   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 joker@your.moma.com < /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 */
      }
    }
  }
  ______________________________________________________________________





  88..33..  ppoorrttmmssgg..cc


















  ______________________________________________________________________
  /*
   * Portmsg.c written by Ryan R. Klems (rklems@primenet.com)
   * 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 */
    }
  }
  ______________________________________________________________________





  99..  EEnnttrreess DDNNSS ddyynnaammiiqquueess

  Si a vous intresse de mettre en place un hack mettant en jeu des
  entres DNS dynamiques (Entres 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 russi  le faire marcher et
     demande  de gnreux volontaires de le tester, pour le
     perfectionner. Ce hack demande d'avoir dj 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 utiliss 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
  dtails, mais qui veulent juste une adresse dynamique mise en place
  sans problmes, allez voir chez DynDNS.com. J'ai entendu dire pas mal
  de bien  propos de ce service, alors, il se pourrait qu'il vous
  intresse. Leur site est  www.dyndns.com, et vous pouvez joindre Gus
  Hurwitz info@dyndns.com pour plus de dtails. Un autre service viens
  d'apparatre, il s'agit de dynip.com, que vous pouvez aller visiter 
  www.dynip.com.


  [De Artur Skawina skawina@usa.net] :
  Un autre projet de DNS dynamique existe  www.ml.org.  Il est
  oprationnel depuis janvier 1997 et marche trs bien.
  Il est trs 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 dj plusieurs client
  pour Linux, par exemple : skawina.home.ml.org/mlddc.html). Pour plus
  de dtails 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 relche 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 $ pice -- MCD]



  1100..  HHaacckk 99 :: MMeettttrree  jjoouurr vvoottrree ..ppllaann

  par Matthew Nuckolls skawina@usa.net

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





  1111..  HHaacckk 1100 :: UUnnee rreecceettttee ssiimmppllee aavveecc pprrooccmmaaiill  ppoouurr rreettrroouuvveerr vvoottrree
  nnoouuvveellllee IIPP


  Par Justin Cragin beyond@lightspeed.net
  Ecrit par Michael Driscoll fenris@lightspeed.net

  En voil un facile, en supposant que vous avez dj le procmail de
  configur. Ce hack a besoin que vous ayez une adresse e-mail ddie 
  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 envoye.

  Dans votre .procmailrc, ajoutez la recette suivante :



       ______________________________________________________________________
       :0:
       * ^Subject:.*envoiemonip
       |mail -s "Your new IP" other.mail.address@host.bogus.net < /var/run/add
       ______________________________________________________________________




  Cette adresse e-mail ne doit pas tre rcupre 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 rcuprez le mail sur
  le compte ou sera envoy le mail, et attendez que le job cron chez
  vous rcupre le mail et que le procmail y rponde.

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


  1122..  HHaacckk 1111 :: UUnnee hhoommee ppaaggee ddyynnaammiiqquuee vviiaa ffttpp

  par Michael Driscoll fenris@lightspeed.net

  Voici un hack trs simple qui permet de mettre sa nouvelle IP sur une
  page sur le serveur http de votre FAI. Il ncessite :


    ncftp (A moins que vous russissiez  crire un script qui utilise
     le ftp normal)

    Un accs ftp  votre FAI.

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

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


       NNoottee : une alternative  ce hack (utilisant les CGI) est
       prsente dans le hack 14. C'est pratique pour ceux qui n'ont
       pas d'accs ftp  leur FAI.



  1122..11..  PPoouurrqquuooii jj''uuttiilliisseerraaiiss a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 ide :-)

  3. Comme a vous pouvez lancer votre propre httpd, avec vos propres
     CGI (mettre un pointeur http:// sur votre nouvelle IP pour accder
      votre propre httpd

  4. Depuis quand on a besoin d'avoir une raison pour faire quelque
     chose ?


  1122..22..  MMiissee eenn ppllaaccee ddee llaa ppaaggee

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




  1122..22..11..  UUnnee nnoottee ssuurr lleess rreeddiirreeccttiioonnss

  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 :


  1122..33..  UUttiilliissaattiioonn ddee nnccffttpp  ppoouurr llaa mmiissee  jjoouurr aauuttoommaattiiqquuee ddeess
  ppaaggeess..

  Avant de faire cette partie, on va d'abord regarder quelle version de
  ncftp vous avez. Pour le savoir, excutez 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 faon diffrente.
  Si la version est 1.x.x (la mienne est 1.9.5), utilisez la premire
  mthode, si la version est 2.x.x (celle de mon compte  l'cole est
  2.0.5) alors, utilisez la seconde mthode.


  1122..33..11..  nnccffttpp  11..xx..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
  empche le fichier .ncrecent d'tre cre (je ne l'aime pas, c'est
  tout, vous pouvez en avoir un si vous voulez), et la l'entre machine
  dfinit 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
  rpertoire).


  1122..33..22..  nnccffttpp  22..xx..xx

  par Tomas Jamate tvj@miser.umass.edu


       [NNoottee : 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
  connatre les autres options de ncftp.

  Premirement, 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 rpertoire ou sont vos pages. Cela
  va crer une entre 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 entre avec votre nom
  d'utilisateur, vous devrez ajouter le mot de passe juste aprs 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 crez 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
  oouu
  "ncftp -Lf example", le -f force  recouvrir le fichier existant, pour
  le paranoaque ;-)


  1122..44..  UUnnee rroouuttiinnee ddee rreecchheerrcchhee//rreemmppllaaccee ssiimmppllee aavveecc sseedd

  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 vrifie la prexistence 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 dj,
  on le sauvegarde gentiment pour que vous puissiez y jeter un coup
  d'oeil plus tard, empchant 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.

  Flicitations, 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.



  1133..  HHaacckk 1122 :: EEnnvvooyyeezz uunn mmeessssaaggee ssuurr vvoottrree ppaaggeerr aavveecc vvoottrree nnoouuvveellllee
  aaddrreessssee IIPP

  par Michael Driscoll fenris@lightspeed.net

  Voici un joli hack qui ne sera probablement utilis par personne. Il
  requiert d'utiliser un programme pour faire composer  votre modem le
  numro 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 numro [Vous n'tes pas super content d'avoir garde
     votre modem  300bps ? :-) ])

    Une ligne tlphonique supplmentaire (elle n'a pas besoin d'tre
     ddie, et heureusement, vous avez un modem qui abandonnera s'il y
     a dj une conversation sur la ligne (Je pense que c'est quelque
     chose qu'il faudra que vous vrifiiez, quelques modems sont un peu
     brutaux avec a (NdT : Je confirme, mon modem Olitec si il ne
     trouve pas la tonalit raccroche la ligne, redcroche, et ce tant
     qu'il n'a pas la tonalit :-() .

    Un pager ordinaire

    Un programme pour composer le numro


  1133..11..  LLee pprrooggrraammmmee qquuii ccoommppoossee llee nnuummrroo

  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 kjh@usc.edu, 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 mme chose.


  1133..22..  AAppppeell ddeeppuuiiss iipp--uupp

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



       ______________________________________________________________________
       #On spare $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 rgle le temps d'attente pour
  la porteuse, les ','s sont des pauses, les '*'s sont utilises pour
  remplacer les - (c'est ce que a fait sur mon pager en tout cas,
  esprons qu'il en sera de mme pour le votre).

  Oh, oui, vous aurez srement de meilleurs rsultats si vous mettez
  vvoottrree numro de pager  la place de 638-4658, car, c'est mmoonn numro de
  pager :-), de plus, remplacez /dev/cua2 par le nom de votre modem.

  Flicitations, vous avez russi !



  1144..  HHaacckk 1133 :: llooggiinnss xxtteerrmm   ttrraavveerrss uunn ffiirreewwaallll

  par Brad Baker bpb@mlb.cca.rockwell.com


       [Note de l'diteur : Comme l'auteur de ce hack le dit judi
       cieusement, ce hack peut avoir des problmes de scurit,
       comme la possibilit d'un vol de mot de passe ou d'ouvrir
       une brche dans la scurit du firewall  cause d'un login 
       l'extrieur de votre rseau 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
  systme de ce rseau ou que vous soyez en trs bons termes
  avec lui ou elle :-) -- MCD]


  Voici un autre hack que vous pouvez essayer. Il marche, et je ne suis
  pas sr des risques de scurit, mais il est trs amusant.

  Cela serait sympa de pouvoir accder  ma machine de travail (une
  station Sun) depuis chez moi, et rciproquement, le problme est que
  le telnet est bloqu par le firewall au bureau. Voici une faon de le
  contourner.

  Pour cet exemple, je vais donner la faon d'accder  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 accder  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 spcial, disons "X-W". Si le texte du
  message  un format dfini, 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 prs 30 secondes  une minute, j'ai un cran de login
  qui apparat 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 mme chose.

  Je suis assez proccup par les problmes de scurit, et je l'ai mis
  hors service pour l'instant jusqu' ce que j'en apprenne plus. Quand
  le xterm apparat, il donne un prompt de login, et je ne sais pas
  comment le Secure Keyboard (Clavier scuris, il permet d'empcher la
  rcupration de ce qui est tap)  marche dans un xterm. De plus, je ne
  suis pas sur des scurits fournies par X. Je suis plus proccup par
  le xterm apparaissant  une mauvaise IP ou sur une IP que je viens de
  quitter d  une dconnection, mais bon, la majorit des utilisateurs
  utilisent Windows, et l'accs X sera simplement ignor.

  D'autres scurits pourraient tre ajoutes 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: bpb@my.machine.com
       Subject: X-W

       IP: 111.222.333.444:0.0
       ______________________________________________________________________




  Vous pouvez essayer sur votre propre machine en vous envoyant un mail
   vous-mme (aprs avoir installe send_xterm et la rgle .procmailrc
  en interne bien sur).


  1155..  HHaacckk 1144 :: HHoommee ppaaggee ddyynnaammiiqquuee vviiaa uunn CCGGII

  par Michael Driscoll fenris@lightspeed.net

  Ce hack est similaire au hack 11, mais il diffre en la mthode
  employe. Alors que le hack 11 implique l'utilisation d'un accs ftp
  vers le serveur http de votre FAI pour mettre  jour la page, celui ci
  accde  un CGI sur le serveur pour mettre en place la page elle-mme.

  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 vrifier
  la scurit de ce script, puisque cela va leur demander du temps, et
  c'est pour eux l'assurance que le script ne prsentera pas de risques
  une fois mis en place (je vais faire de mon mieux pour qu'il soit le
  plus 'sr' possible). Par exemple, mon FAI (lightspeed.net) me demande
  $50 par script pour le vrifier.

  AAtttteennttiioonn : 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 sr, alors, je vous suggre
  d'attendre que les quelques bugs soient retirs avant de l'envoyer 
  votre pauvre administrateur systme.
  NNoottee : Bon, cela fait maintenant deux mois que j'ai crit ce message,
  et je n'ai rien entendu  propos de la scurit de ce CGI, ni pour, ni
  contre. Alors, soit-il eesstt sur et personne ne me l'a fait savoir, soit
  personne ne l'utilise :-) Par consquent, je vous conseille de faire
  attention.


  1155..11..  VVooiill ccee qquuee ll''oonn vvaa ffaaiirree..

  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 :


    Rcuprer un paramtre appel newip=, en s'assurant que c'est une
     IP qui convient.

    Rcuprer un paramtre appel password= ce qui est une ttrrss
     mauvaise scurit 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 ttrroopp grave, et cela
     ne pourra rien dtruire, et puis il y aura les logs du serveur pour
     savoir qui a accd  la page...)

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

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


  1155..22..  LLee ssccrriipptt (( ddyynniipp..ppll ))


































  ______________________________________________________________________
  #!/usr/bin/perl
  # Ecrit par Michael Driscoll <fenris@lightspeed.net>
  # 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
                                             # premires 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 mthode 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 numro de la partie aaa
                  # de votre FAI.
  $lowa = "0";    # De mme pour le plus petit numro de la partie aaa.
                  # probablement la mme que $higha vu que la majorit des
                  # FAI ne prennent pas plus qu'un domaine de classe A :-)
  $highb = "255"; # Mettez la borne suprieure pour bbb.
  $lowb = "0";    # La borne infrieure 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 paramtre 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 dcoupe l'IP dans @IP
  # On vire d'abord les caractres non numriques sauf le '.'
  # on le splice() pour supprimer les trucs aprs les quatre premier points
  # (Comment c'est arriv l ??  De toute faon, j'essaye de le rendre aussi
  # peu craquable que possible).
  $newip =~ s/[^\d\.]//g;
  @IP = split /\./, $newip;
  splice(@IP, 4);
  # On vrifie 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 vrifie le nom de l'hte
  # On le dcoupe dans @hostnamearray
  @hostnamearray = split /\./, $hostname;
  $dompart2 = pop @hostnamearray;
  $dompart1 = pop @hostnamearray;

  # On le vrifie
  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
  ______________________________________________________________________




  Accder au CGI quand la connection s'tablis

  Maintenant, tout ce que nous avons  faire est y accder 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 utiliss pour que la commande tienne en 80
  colonnes. Ils ne font qu'escaper les retours  la ligne pour que ce
  soit considr comme une seule commande)

  De plus, videz priodiquement le /etc/ppp/lynxlog sinon, il va tre
  trs gros aprs quelque temps :-)

  Voil... C'est fait !


  1166..  HHaacckk 1155 :: SSuuggggeessttiioonn ppoouurr lleess rrcc..**

  par Jeremy D. Impson jdimpson@camelot.syr.edu
  cris par Michael Driscoll fenris@lightspeed.net

  Jusqu'ici, ce HowTo avais pleins de morceaux d'instructions disperses
  dans plein de fichiers avec des morceaux dans les /etc/ppp/ip-down ou
  les rc.*, qui devaient tre excuts quand le systme plantait et que
  la connection PPP tais toujours l. Jeremy m'a suggr de lancer
  /etc/ppp/ip-down au dmarrage plutt 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 dmarrage, et ne s'appuient pas sur
  des paramtres passs 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 :



       ______________________________________________________________________
       # Excute /etc/ppp/ip-down si pppd n'a pas t arrte 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 !


  1177..  HHaacckk 1166 :: EEmmppcchheerr lleess ttiimmee--oouutt iimmppoossss ppaarr vvoottrree FFAAII aavveecc uunn
  ppiinngg

  par Artur Skawina skawina@usa.net


       [Note de l'diteur : Comme Arthur le dit, celui ci peut
       aller trop loin, et peut rellement 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 srieusement penser  dpenser 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 ncessaire de s'assurer
  que la connection n'est pas inactive pendant de longues priodes.
  Certains FAI vous dconnectent 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 mme 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 dconnection automatique des modems, il va falloir
  regarder dans la documentation du modem. Par exemple, sur les modems 
  base de CirrusLogic, c'est ATS90=0



  1188..  HHaacckk 1177 :: UUttiilliissaattiioonn ddeess SSSSII ppoouurr rreettrroouuvveerr ssoonn IIPP

  par Dale Jolliff taftbbs@e-tex.com

  Ceci n'est pas spcialement pour Linux, mais pour n'importe quoi, et
  vous n'avez pas  faire des modifications. Il requiert nanmoins que
  votre FAI autorise les SSI (Server Side Includes : directives que le
  serveur http remplace par leur rsultat)  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  connatre 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
     rcuprer 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 complique 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'excution des CGI et des SSI, et
  y'a mme mieux... Mon FAI autorise les SSI, mais pas l'excution 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 systme
  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 diffrent suivant le routeur. Si vous avez des comptes sur
  plusieurs FAI, et comme il semble que tous aient des routeurs
  diffrents, et chacun aura un format diffrent 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 excut par le serveur avant de vous tre envoy. Donc, mme si
  vous regardez la source de la page depuis votre navigateur, vous ne
  verrez pas a, mais juste le rsultat de la commande.



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




  Voil ce qui est excut. 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 diffrent pour les autres.



       "-->





  Et puis on ferme la commande SSI proprement, sinon, a ne marchera
  pas... Faites attention  la faon d'utiliser les apostrophes et les
  guillemets, il est trs 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.


  SS..  OOnn aa bbeessooiinn dd''aauuttrree hhaacckkss !!

  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, dtest 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 problme de scurit, etc} alors, s'il vous plat,
  envoyez un moi un e-mail  fenris@lightspeed.net. Je le pense,
  j'aimerais avoir nn''iimmppoorrttee qquueell retour sur ce HowTo, mme pour me dire
  que vous l'avez juste lu !

  Vraiment ! Envoyez-moi un e-mail pour n'importe quoi ! J'adore
  rreelllleemmeenntt recevoir des e-mails !

  Les remarques ngatives nn''iirroonntt ppaass 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 dbut de ce HowTo,
  vos ides seront archives sur presque toutes les distributions de
  Linux  travers le monde, vous serez envis de vos pairs, etc.


  TT..  CCRRDDIITTSS

  _(_P_a_r _o_r_d_r_e _d_'_a_p_p_a_r_e_n_c_e_)

  MMiicchhaaeell DDrriissccoollll ffeennrriiss@@lliigghhttssppeeeedd..nneett

  CChhrriissttiiaann GG.. WWaarrddeenn ccwwaarrddeenn@@lloooopp..ccoomm

  JJuussttiinn CCrraaggiinn bbeeyyoonndd@@lliigghhttssppeeeedd..nneett

  sshhaaddooww@@iinnddiirreecctt..ccoomm

  AAjjiitt DDeesshhppaannddee aaddeesshhppaann@@ddddtt..eenngg..uucc..eedduu

  DDiivvyyaa MMaahhaajjaann vvmmaahhaajjaann@@ggiiaassddll0011..vvssnnll..nneett..iinn

  RRyyaann KKlleemmss rrkklleemmss@@pprriimmeenneett..ccoomm

  MMaatttthheeww DDrriivveerr mmddrriivveerr@@ccffmmeeuu..aassnn..aauu

  MMaatttthheeww NNuucckkoollllss mmnnuucckk@@uummrr..eedduu


  SSccootttt JJoohhnnssttoonn ssjj@@ooddiinn..iiaacc..nneett

  BBrraadd BBaakkeerr bbppbb@@mmllbb..ccccaa..rroocckkwweellll..ccoomm

  CChhrriissttiiaann HHaarrddmmeeiieerr 110011550022..11552211@@ccoommppuusseerrvvee..ccoomm

  JJuussttiinn ((GGuuss)) HHuurrwwiittzz hhuurrwwiittzz@@ddyynnddnnss..ccoomm

  TToommaass JJaammaattee ttvvjj@@mmiisseerr..uummaassss..eedduu

  JJeerreemmyy DD.. IImmppssoonn jjddiimmppssoonn@@ccaammeelloott..ssyyrr..eedduu

  SStteevvee PPrrzzeeppiioorraa ggeeaarrhheeaadd@@ddrreeaammssccaappee..ccoomm

  WWhhiitt BBllaauuvveelltt wwhhiitt@@ttrraannssppeecctt..ccoomm

  PPaauull CC.. RRiicchhaarrdd ppccrriicchhaa@@ccss..ccoonnccoorrddiiaa..ccaa

  PPeerr SSjjoohhoollmm SSooiillee..KKaaaassiillaa@@sstthh..ffrroonntteecc..ssee

  BBiillll DDuunnccaann bbdduunnccaann@@bbeeaacchhnneett..oorrgg

  AArrttuurr SSkkaawwiinnaa sskkaawwiinnaa@@uussaa..nneett

  SSccootttt DDiieerr -- DDiiEEMMaaNN ssddiieerr@@iissdd..nneett

  DDaallee JJoolllliiffff ttaaffttbbbbss@@ee--tteexx..ccoomm

  BBrryyaann RRiittttmmeeyyeerr bbrryyaannrr@@ffllaasshh..nneett

  MMaarreekk KKuubbiittaa kkuubbiittoovvii@@mmbbooxx..llaannttaanneett..cczz



































