Linux PPP Howto
 par Robert Hart, [email protected]
 Version 3.0, 31 mars 1997

 (Adaptation francaise par Antoine Levavasseur [email protected], le 22
 octobre 1997).  Ce document montre comment connecter votre PC Linux  a
 un  serveur  PPP, comment utiliser PPP pour relier deux reseaux locaux
 ensemble, et fournit une methode pour configurer votre  machine  Linux
 comme  serveur  PPP.  Ce  document  fournit  egalement  une  aide pour
 deboguer les connections PPP qui ne fonctionnent pas.

 CCooppyyrriigghhtt

 Ce document est distribue sous les contraintes de la GPL  (GNU  Public
 Licence).

 DDiissttrriibbuuttiioonn

 Le  document original sera poste dans comp.os.linux.answers lorsque de
 nouvelles versions du document arriveront. Il est egalement disponible
 en HTML a :

 +o  Linux Howto Index <http://sunsite.unc.edu/mdw/linux.html#howto>

 +o  PPP-HOWTO         <http://www.interweft.com.au/other/ppp-howto/ppp-
    howto.html>

 Les autres formats (SGML, ASCII, PostScript, DVI) sont  disponibles  a
 Howtos                 -                 other                 formats
 <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats>.

 Comme sunsite.unc.edu est tres charge, vous etes encourages a utiliser
 un  miroir  plus  proche  de  chez  vous.  En  particulier  la version
 francaise   de    ce    HOWTO    est    poste    regulierement    dans
 fr.comp.os.linux.annonce,   et   est  disponible  sur  ftp.lip6.fr  et
 http://www.freenix.fr/.

 RReemmeerrcciieemmeennttss

 Un nombre important et croissant de personnes m'ont aide a preparer ce
 document.  Remerciements  speciaux  a  Al Longyear pour l'aide sur PPP
 lui-meme (si il y a des erreurs ici, ce sont les miennes  et  pas  les
 siennes), Greg Hankins (qui maintient les Howto Linux) et Debi Tackett
 (de Maximum Access.com) pour ses nombreuses suggestions sur le  style,
 l'organisation du contenu, la logique et la clarte des explications.

 Pour  finir,  je  remercie  les  nombreuses personnes qui m'ont envoye
 leurs commentaires par courrier electronique. Comme tous  les  auteurs
 de  HOWTO,  la  satisfaction  d'aider  est  le  seul  salaire que nous
 recevons, et cela nous suffit. En  ecrivant  ce  HOWTO,  je  rembourse
 d'une certaine facon la dette que je - et tous les autres utilisateurs
 Linux - dois aux personnes qui ecrivent  et  maintiennent  le  systeme
 d'exploitation que nous avons choisi.

 TTrraadduuccttiioonn FFrraannccaaiissee ddee ccee ddooccuummeenntt

 La  traduction du present document PPP-Howto (et precedemment PPP-FAQ)
 etait assuree par Rene Cougnenc. C'etait  l'un  des  premiers  (si  ce
 n'est  le premier) utilisateur de Linux en France alors que ce n'etait
 qu'un petit projet un peu fou lance par Linus Torvalds. Rene  Cougnenc
 a  participe  au  developpement  de Linux et a assure la traduction de
 nombreux HOWTO et ouvrages sur Linux qui  font  encore  reference.  Si
 vous utilisez Linux aujourd'hui c'est sans doute un peu grace a lui...
 Prendre ses pas dans la traduction de ce HOWTO etait  un  peu  delicat
 car  la  barre  etait placee haut, et j'espere que le lecteur que vous
 etes ne sera pas decu par mon travail.
 Et si Rene nous entends la-haut, je suis sur qu'il  levera  avec  nous
 son verre a la sante de notre systeme d'exploitation favori ! :-)

 Enfin merci a Thomas Parmelan pour la relecture et les conseils sur la
 forme de la version francaise de ce document.

 11..  IInnttrroodduuccttiioonn

 PPP (Point to Point Protocol) est un mecanisme  qui  permet  de  faire
 fonctionner  IP  (Internet  Procotol)  et  tous  les autres protocoles
 reseaux a travers une liaison serie -  qui  peut  etre  une  connexion
 serie directe (avec un cable null-modem), a travers une liaison par un
 telnet, ou encore une liaison  utilisant  les  modems  et  les  lignes
 telephoniques  (et  bien  sur  utilisant  les  lignes numeriques comme
 RNIS).

 Avec PPP, vous pouvez connecter votre PC sous Linux a un  serveur  PPP
 et  acceder  aux ressources reseau aux quelles le serveur est connecte
 (presque) comme si vous etiez directement connecte a ce reseau.

 Vous pouvez egalement configurer votre PC Linux comme un serveur  PPP,
 de  cette facon, d'autres ordinateurs peuvent appeler votre ordinateur
 et acceder aux ressources de votre PC et/ou reseau local.

 Comme PPP est un systeme qui marche dans les deux  sens,  vous  pouvez
 egalement  utiliser  PPP  sur  deux PC Linux pour relier ensemble deux
 reseaux (ou un reseau local a Internet),  creant  ainsi  un  reseau  a
 large domaine (WAN : Wide Area Network).

 Une  difference  majeure  entre PPP et une connexion Ethernet est bien
 entendu la vitesse - une connexion Ethernet standard offre a un  debit
 maximal  theorique  de  10  Mbs (Mega - millions de bits par seconde),
 alors qu'une liaison analogique par modem offre un maximum de  56  Kbs
 (kilo - millier de bits par seconde).

 Par  consequent,  selon  le type de votre connexion PPP, il y aura des
 limitations sur l'utilisation des applications et des services.

 11..11..  CClliieennttss eett SSeerrvveeuurrss

 PPP est un protocole strictement symetrique; il n'y a  (techniquement)
 aucune  difference  entre la machine qui appelle et la machine qui est
 appelee.  Cependant, pour des raisons de clarte, il est interessant de
 penser en terme de sseerrvveeuurr et cclliieenntt.

 Quand  vous  appelez un site pour etablir une connexion PPP, vous etes
 un cclliieenntt. La machine sur laquelle vous-vous connectez est le sseerrvveeuurr.

 Quand  vous configurez une machine Linux pour repondre aux appels pour
 les connexion PPP, vous configurez un sseerrvveeuurr PPP.

 Tous les PC Linux peuvent etre a la fois serveur et client PPP -  meme
 en  meme  temps  si  vous  avez plus d'un port serie (et d'un modem si
 necessaire).   Comme  decrit  plus  haut,  il  n'y  a  pas  de  reelle
 difference entre les clients et les serveurs tant que l'on utilise PPP
 et que la connexion est etablie.

 Ce document reference la machine qui initie l'appel (qui  le  compose)
 comme le CCLLIIEENNTT, alors que la machine qui repond au telephone, verifie
 l'authentification de l'appel (en utilisant les noms utilisateurs, les
 mots  de  passe  et eventuellement d'autres mecanismes) est referencee
 comme le SSEERRVVEEUURR.

 L'utilisation de  PPP  comme  client  pour  relier  une  ou  plusieurs
 machines  a Internet est probablement celle qui interesse une majorite
 de gens.  Ils utiliseront alors leur PC Linux comme client.

 La procedure exposee dans ce document va vous permettre  d'etablir  et
 d'automatiser votre connexion a Internet.

 Ce  document  va  egalement  vous  offrir  un  guide pour permettre de
 configurer un sseerrvveeuurr PPPPPP sur votre PC Linux et relier  ensemble  deux
 reseaux  (avec  le  routage  complet) en utilisant PPP (cela est aussi
 appele une liaison WAN - wide area network).

 11..22..  DDiiffffeerreenncceess eennttrree lleess ddiissttrriibbuuttiioonnss LLiinnuuxx

 Il y a de nombreuses distributions  Linux  differentes  qui  on  leurs
 propres idiosyncrasies et facons de faire les choses.

 En particulier, il y a deux manieres differentes sur une machine Linux
 (ou Unix) de demarrer, configurer ses interfaces et ainsi de suite.

 Il y ll''iinniittiiaalliissaattiioonn BBSSDD  et ll''iinniittiiaalliissaattiioonn SSyyssVV  ssyysstteemm.  Si  vous
 consultez  certains forums de discussion Unix, vous trouverez de temps
 en temps des guerres de religion entre les  partisans  de  chacun  des
 deux  systemes.  Si  ce  genre  de  chose  vous  plait, allez donc les
 rejoindre pour gacher de la bande passante avec eux !

 Les distributions les plus utilisees sont sans doute :

 +o  Slackware
    qui utilise une initialisation systeme BSD

 +o  Red Hat (et son precedent associe Caldera)
    qui  utilise  une  initialisation  SysV  system  (bien  qu'un   peu
    modifiee)

 +o  Debian
    qui utilise une initialisation SysV system

 Les  initialisations  de  type BSD conservent typiquement ces fichiers
 dans /etc/ et ces fichiers sont :

 ______________________________________________________________________
         /etc/rc
         /etc/rc.local
         /etc/rc.serial
                 (et parfois d'autres fichiers)
 ______________________________________________________________________

 Recemment,  certaines  initialisation  systemes  BSD  se  mettaient  a
 utiliser  un repertoire /etc/rc.d/ contenant les fichiers de demarrage
 plutot que de tout mettre dans /etc.

 L'initialisation System V conserve ses fichiers d'initialisation  dans
 les  repertoires  /etc/  ou  /etc/rc.d  et  un certain nombre de sous-
 repertoires de ces derniers.

 ______________________________________________________________________
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 init.d
 -rwxr-xr-x   1 root     root         1776 Feb  9 05:01 rc
 -rwxr-xr-x   1 root     root          820 Jan  2  1996 rc.local
 -rwxr-xr-x   1 root     root         2567 Jul  5 20:30 rc.sysinit
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc0.d
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc1.d
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc2.d
 drwxr-xr-x   2 root     root         1024 Jul 18 18:07 rc3.d
 drwxr-xr-x   2 root     root         1024 May 27  1995 rc4.d
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc5.d
 drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc6.d
 ______________________________________________________________________

 Si vous essayez de chercher ou votre interface et  les  routes  reseau
 associees  sont  configurees,  vous  devez parcourir tous les fichiers
 pour parvenir a trouver ou sont les commandes correspondantes.

 11..33..  OOuuttiillss ddee ccoonnffiigguurraattiioonn ssppeecciiffiiqquueess aauuxx ddiissttrriibbuuttiioonnss

 Dans certaines installations (par exemple Red Hat et Caldera), il y  a
 un  systeme de configuration des PPP sous X Window. Ce HOWTO ne traite
 pas de ces outils specifiques aux  distributions.  Si  vous  avez  des
 problemes avec ceux-ci, contactez directement les distributeurs !

 Pour  les  utilisateurs  de  Red Hat 4.x, il y a maintenant un Red Hat
 PPP-TIP <http://www.interweft.com.au/> dans la partie Linux ressources
 et  egalement  chez  Red Hat Software <http://www.redhat.com/> dans la
 partie support.

 22..  AAddrreessssee IIPP

 Tout materiel connecte a Internet doit  avoir  sa  propre,  et  unique
 adresse IP.  Elle sont distribuees de facon centralisee par l'autorite
 designee pour chaque pays.
 Si vous etes connectes par un reseau  local  (LAN)  a  Internet,  VVOOUUSS
 DDEEVVEEZZ  utiliser  une adresse IP de votre propre domaine d'adresses qui
 vous a ete assigne pour les ordinateurs et materiels de  votre  reseau
 local.  Vous  NNEE  DDEEVVEEZZ  PPAASS  prendre  n'importe  quelle adresse IP et
 l'utiliser lorsque vous vous connectez avec un autre reseau local  (et
 a  plus  forte raison Internet). Au pire ca ne marchera pas du tout et
 cela peut causer des ravages  puisque  votre  adresse  IP  'volee'  va
 interferer  avec  les communications d'un autre ordinateur qui utilise
 deja l'adresse IP que vous avez prise au hasard.

 Remarquez que les adresses IP de ce  document  appartiennent  (a  part
 quelques  exceptions)  aux  adresses de reseaux non connectes qui sont
 reservees aux reseaux qui ne sont pas (encore) connectes  a  Internet.
 (RFC1918)

 Il  y  a des adresses IP qui sont specifiquement destinees aux reseaux
 locaux qui ne sont pas connectes a Internet. Ces adresses IP sont :

 +o  Une Adresse Reseau de Classe A
    10.0.0.0 (netmask 255.0.0.0)

 +o  16 Adresses Reseau de Classe B
    172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0)

 +o  256 Adresses Reseau de Classe C
    192.168.0.0 - 192.168.255.0 (netmask 255.255.255.0)

 Si vous avez un reseau pour lequel vous nn''aavveezz ppaass alloue d'adresse IP
 aupres  de  l'autorite  responsable de votre pays, vous devez utiliser
 une des adresses reseau de la sequence precedente pour vos machines.

 Ces adresses ne doivent jjaammaaiiss etre utilisees sur Internet.

 Cependant, elles  peuvent  etre  utilisees  pour  les  reseaux  locaux
 Ethernet  sur la machine qui est connectee a Internet. C'est parce que
 les adresses IP sont en fait allouees aux interfaces reseau et  non  a
 l'ordinateur.   Ainsi, votre interface Ethernet peut utiliser 10.0.0.1
 (par exemple), et quand vous vous connecterez a Internet en  utilisant
 PPP,  votre  interface PPP recuperera une autre adresse IP (valide) du
 serveur. Votre PC sera connecte a Internet alors que les autres ne  le
 seront pas.

 Cependant, en utilisant Linux, les capacites de IP Masquerading (aussi
 appele NAT - Network Adress Translation)  de  Linux  et  du  programme
 iippffwwaaddmm,  vous  pouvez  connecter  votre reseau local a Internet (avec
 quelques restrictions sur les  services),  meme  si  vous  n'avez  pas
 d'adresse IP valide pour vos machines en Ethernet.

 Pour  plus  d'informations  sur  le  sujet, consulter le mini-HOWTO IP
 Masquerade     a     Linux     IP      Masquerade      mini      HOWTO
 <http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade>

 Pour  la  plupart  des utilisateurs, qui sont connectes avec une seule
 machine a leur fournisseur d'acces Internet (FAI) par PPP, obtenir une
 adresse   IP   (ou  plus  largement  une  adresse  reseau)  n'est  pas
 necessaire.
 Si vous souhaitez connecter un  petit  reseau  local  a  Internet,  de
 nombreux  FAI  peuvent vous fournir un sous-reseau dedie (une sequence
 specifique d'adresses IP) sur  leur  espace  d'adresses  IP  existant.
 Alternativement, utilise IP masquerading.

 Pour les utilisateurs qui connectent un seul PC a Internet, la plupart
 des FAI utilise l'allocation ddyynnaammiiqquuee des adresses IP.  C'est pendant
 le  processus  de  connexion  que le service PPP que vous contactez va
 indiquer a votre machine quelle adresse IP utiliser  pour  l'interface
 PPP  pendant  la session en cours. Cette adresse ne sera pas forcement
 la meme a chaque fois que vous vous connecterez a votre FAI.

 Avec les adresses IP dynamiques, vous nn''aavveezz ppaass la meme adresse IP  a
 chaque  fois que vous vous connectez. Cela a des repercussions sur les
 applications de  type  serveur  de  votre  machine  Linux  telles  que
 Sendmail,   ftpd,  httpd  et  d'autres.  Ces  services  supposent  que
 l'ordinateur offrant le service soit accessible tout  le  temps  a  la
 meme  adresse  IP (ou au moins au meme nom de domaine qualifie, et que
 la  resolution  des  noms  par  DNS  du  nom  vers  l'adresse  IP  est
 disponible).

 Les  limitations de service dues aux allocations dynamiques d'adresses
 IP (et les facons d'eviter cela, quand c'est possible)  sont  decrites
 plus loin.

 33..  BBuuttss ddee ccee ddooccuummeenntt

 33..11..  MMeettttrree eenn ppllaaccee uunn cclliieenntt PPPPPP

 Ce  document  fournit  un  guide aux personnes qui souhaitent utiliser
 Linux et PPP pour appeler un Serveur PPP et configurer  une  connexion
 IP  avec  PPP.  Cela  suppose  que PPP ait ete compile et installe sur
 votre   machine   Linux   (mais   une   breve   description   de    la
 reconfiguration/recompilation  de  votre noyau avec le support PPP est
 fournie).

 Bien que dip (la maniere standard de creer des connexions SLIP) puisse
 etre  utilise  pour  mettre en place un connexion PPP, les scripts dip
 sont generalement un peu complexes. Pour cette raison, ce document  ne
 traite pas l'utilisation de dip pour lancer une connexion PPP.

 A  la  place,  ce  document  decrit  les programmes standard Linux/PPP
 (chat/pppd).

 33..22..  RReelliieerr ddeeuuxx RReesseeaauuxx llooccaauuxx oouu uunn rreesseeaauu llooccaall aa IInntteerrnneett ggrraaccee aa
 PPPPPP

 Ce document donne des informations (de base) pour relier deux  reseaux
 locaux entre eux ou un reseau local a Internet grace a PPP.

 33..33..  CCoonnffiigguurreerr uunn sseerrvveeuurr PPPPPP

 Ce  document  fournit  un  guide  pour configurer votre PC Linux comme
 serveur PPP (autorisant d'autres personnes a appeler votre PC Linux et
 etablir une connexion PPP).

 Notez  qu'il  y  a un grand nombre de facons de configurer Linux comme
 serveur PPP. Ce document donne une methode  -  qui  est  utilisee  par
 l'auteur  pour configurer quelques petits serveurs PPP (chacun avec 16
 modems).

 Cette methode est connue pour fonctionner correctement. Cependant,  ce
 n'est pas forcement la meilleure methode.

 33..44..  UUttiilliisseerr PPPPPP aavveecc uunnee ccoonnnneexxiioonn NNuullll--MMooddeemm ddiirreeccttee

 Ce document offre un bref apercu d'utilisation de PPP pour relier deux
 PC Linux avec un cable null modem. Il est possible de relier  d'autres
 Systemes  d'exploitation  a  Linux  de  cette facon egalement. Pour ce
 faire, utiliser la documentation du systeme d'exploitation pour lequel
 vous etes interesse.

 33..55..  PPoouurr llee mmoommeenntt ccee ddooccuummeenntt nnee ccoouuvvrree ppaass......

 +o  La compilation du daemon PPP
    Regarder  la documentation fournie avec la version de pppd que vous
    utilisez.

 +o  Connecter et configurer un modem sous Linux (en detail)
    Regarder le Serial-HOWTO et pour les initialisations specifiques au
    modem,         voir         Modem         Setup         Information
    <http://www.in.net/info/modems/index.html>  des  informations   qui
    pourraient vous aider a configurer votre modem.

 +o  Utiliser dip pour faire des connexion PPP
    utiliser chat a la place

 +o  Utiliser socks ou IP Masquerading
    Il y a d'excellents documents qui couvrent deja ces paquetages.

 +o  Utiliser  EQL  pour  regrouper deux modems pour une seule connexion
    PPP.

 +o  Les methodes de connexion PPP specifiques aux distributions  (comme
    l'outil  de  configuration  reseau  de la Red Hat 4.x).  Voir votre
    distribution pour la documentation sur les methodes utilisees.

 +o  Le nombre  croissant  d'outils  disponibles  pour  automatiser  les
    connexions PPP
    Voir la documentation appropriee.

 44..  VVeerrssiioonnss ddeess llooggiicciieellss ttrraaiitteess

 Ce  HOWTO  suppose  que  vous  utilisez  un  noyau Linux 1.2.X avec le
 programme PPP 2.1.2 ou Linux 1.3.X/2.0.x et PPP 2.2.

 Au moment de la redaction,  la  derniere  version  officielle  de  PPP
 disponible est ppp-2.2.0f. La nouvelle version (ppp-2.3) est encore en
 beta.

 Il est possible d'utiliser  PPP  2.2.0  avec  le  noyau  1.2.13.  Cela
 necessite des patchs pour le noyau. Il est recommande aux utilisateurs
 du  noyau  1.2.13  de  passer  a  ppp-2.2  puisqu'il  inclut  quelques
 extensions et corrections de bogues.

 VVoouuss ddeevveezz eeggaalleemmeenntt eettrree ppaarrttiiccuulliieerreemmeenntt vviiggiillaanntt eett nnee ppaass uuttiilliisseerr
 llee pprrooggrraammmmee PPPPPP 22..11..22 aavveecc uunn nnooyyaauu LLiinnuuxx 22..00..XX..

 Veuillez remarquer que ce document nnee ttrraaiittee ppaass des problemes  venant
 de  l'utilisation de modules chargeables pour votre noyau Linux 2.0.x.
 Consulter le mini-HOWTO kerneld  et  la  documentation  kerneld/module
 2.0.x      (dans      les     sources     de     Linux     2.0.x     a
 /usr/src/linux/Documentation/..).

 PPuuiissqquuee ccee ddooccuummeenntt eesstt ddeessttiinnee aa aaiiddeerr lleess nnoouuvveeaauuxx uuttiilliissaatteeuurrss,,  iill
 eesstt  ffoorrtteemmeenntt  rreeccoommmmaannddee  dd''uuttiilliisseerr  uunnee  nnoouuvveellllee vveerrssiioonn dduu nnooyyaauu
 LLiinnuuxx eett llaa vveerrssiioonn aapppprroopprriieeee ddee PPPPPP qquuii ssoonntt ccoonnnnuuss ppoouurr ffoonnccttiioonnnneerr
 eennsseemmbbllee..

 55..  DD''aauuttrreess ddooccuummeennttss uuttiilleess//iimmppoorrttaannttss

 Je conseille aux utilisateurs de lire :

 +o  la documentation accompagnant le paquetage PPP;

 +o  les pages de manuel de pppd et chat;
    (utiliser man chat et man pppd pour les lire)

 +o  La page de configuration des modems - voir  Modem Setup Information
    <http://www.in.net/info/modems/index.html>

 +o  Les  excellents  livres  Unix/Linux  publies   par   O'Reilly   and
    Associates.    (O'Reilly   and   Associates   On-Line  Catalogue  <
    http://www.ora.com/>). Si vous etes nouveau  a  Unix/Linux,  ccoouurreezz
    (ne marchez pas) au plus proche marchand de livres informatiques et
    investissez dans un certain nombre d'entre eux immediatement !

 +o  La PPP-FAQ maintenue par Al Longyear, disponible sur  Linux PPP-FAQ
    <ftp://sunsite.unc.edu/pub/Linux/docs/faqs>.
    Elle  contient  un grand nombre d'informations utiles sous forme de
    questions/reponses indispensable lorsque l'on cherche pourquoi  PPP
    ne fonctionne pas (correctement).

 +o  Le  nombre  croissant de livre Linux venant des differents editeurs
    et auteurs;
    Vous etes encourages a verifier la date de parution de ces  livres.
    Le  developpement et la distribution de Linux tendent a etre plutot
    rapides, alors que la mise a jour  des  livres  est  (generalement)
    bien  plus  lente  !  Acheter un excellent livre (et il y en a) qui
    est  deja  depasse  entraine  une  confusion  et  une   frustration
    considerable pour les nouveaux utilisateurs.

 Le meilleur point de depart pour la documentation Linux est  The Linux
 Documentation Project  Home  Page  <http://sunsite.unc.edu/mdw/>.  Les
 HOWTO sont mis a jour raisonnablement regulierement.

 Bien  que  vous puissiez utiliser ce document pour creer votre liaison
 PPP sans lire aucun de ces documents,  vous  devriez  avoir  une  bien
 meilleure  comprehension de ce qu'il se passe si vous le faites ! Vous
 pouvez egalement exposer vous-meme vos problemes (ou  du  moins  poser
 les  questions  les  plus  intelligentes sur les groupes de discussion
 comp.os.linux...  ou  fr.comp.os.linux/unix...  ou  les  mailing  list
 Linux).

 Ces   documents   (ainsi   que   quelques   autres,   comme  les  RFCs
 correspondants) fournissent des explications complementaires  et  plus
 detaillees que ce qui est possible dans les HOWTO.

 Si  vous  connectez  un  reseau  local  a Internet avec PPP, vous avez
 besoin de connaitre un  certain  nombre  de  choses  sur  les  reseaux
 TCP/IP.  En  complement  des documents precedents, vous trouverez dans
 les livres  O'Reilly  "TCP/IP  Network  Administration"  et  "Building
 Internet Firewalls" un benefice considerable !

 55..11..  LLeess MMaaiilliinngg LLiisstteess uuttiilleess

 Il  y  a  de nombreuses mailing listes (listes de diffusion) Linux qui
 servent de moyen de  communication  entre  les  utilisateurs  dans  de
 nombreux   domaines.    Souscrivez   absolument   a  celles  qui  vous
 interessent pour donner votre point de vue.

 RReemmaarrqquueess ddee bboonn sseennss: certaines listes sont  specifiquement  destines
 au utilisateurs "experts" et/ou a certains sujets specifiques. Meme si
 personne ne se plaindra que vous soyez voyeur (souscrire  sans  poster
 de  messages),  vous  recevrez  certainement  des  commentaires chauds
 (voire des flammes) si vous postez des questions de debutant dans  les
 listes innappropriees.

 Ce  n'est pas parce que les utilisateurs gourous detestent les nouveau
 utilisateurs, mais parce que ces listes  sont  la  pour  contenir  des
 remarques specifiques a un certain niveau de difficulte.

 Vous  etes  largement  encourages  a souscrire librement a differentes
 listes mais faites absolument des commentaires  qui  cadrent  avec  le
 sujet (et le niveau) de la liste !

 Un  bon  point de depart pour les mailing-list Linux est Linux Mailing
 List      Directory       <http://summer.snu.ac.kr/~djshin/linux/mail-
 list/index.shtml>

 66..   PPrreesseennttaattiioonn  ddee ccee qquuii ddooiitt eettrree ffaaiitt ppoouurr ffaaiirree ffoonnccttiioonnnneerr PPPPPP
 ccoommmmee cclliieenntt

 Ce  document  contient un grand nombre d'informations - qui augmente a
 chaque version !

 Par consequent, cette section a pour but de fournir  une  presentation
 concise  des actions pour connecter votre systeme Linux comme client a
 un serveur PPP.

 66..11..  OObbtteenniirr//iinnssttaalllleerr lleess pprrooggrraammmmeess

 Si votre distribution Linux ne contient pas les programmes  PPP,  vous
 devez     les     obtenir     sur      the     Linux     PPP    daemon
 <ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz>

 C'est la derniere version officielle lors de la redaction du document.
 Cependant, prenez la derniere version disponible sur ce site  (ppp-2.3
 etait  en  beta  lors de la redaction de ce document et devrait sortir
 bientot).

 Le paquetage PPP contient les instructions sur la facon de compiler et
 d'installer le logiciel ddoonncc ccee HHOOWWTTOO nn''eenn ppaarrlleerraa ppaass. !

 66..22..  CCoommppiilleerr llee ssuuppppoorrtt PPPPPP ddaannss llee nnooyyaauu

 L'installation de PPP Linux se divise en deux parties

 +o  le daemon PPP mentionne ci-dessus

 +o  le support PPP dans le noyau

 De  nombreuses  distributions semblent fournir un support PPP dans les
 noyaux installes par defaut, mais certaines ne le font pas.

 Si lors du boot, le noyau donne un message ressemblant a :

 ______________________________________________________________________
 PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
 PPP line discipline registered.
 ______________________________________________________________________

 Votre noyau a le support PPP compile.

 Toutefois, vous devez recompiler votre propre noyau quelque soit votre
 distribution  pour fournir l'utilisation la plus efficace possible des
 ressources  disponibles   et   de   votre   configuration   materielle
 personnelle.  Il  est  bon  de savoir que le noyau ne peut etre swappe
 hors de la memoire. Avoir un noyau le plus  petit  possible  est  donc
 interessant surtout pour une machine limitee en memoire.

 Ce  document fournit les instructions minimales pour la re-compilation
 du noyau a la section ``Configurer votre noyau Linux''.

 Pour plus de details, voir le Kernel-HOWTO a The  Linux  Kernel  HOWTO
 <http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html>

 66..33..  OObbtteenniirr lleess iinnffoorrmmaattiioonnss ppoouurr vvoottrree ffoouurrnniisssseeuurr dd''aacccceess aa IInntteerr--
 nneett

 Il  y a presque une infinite de manieres de configurer un serveur PPP.
 Pour se connecter chez votre fournisseur d'acces (ou  un  serveur  PPP
 pour  acceder  a  votre intranet), vous devez obtenir des informations
 sur la facon dont le serveur fonctionne.

 Puisque vous utilisez Linux, vous pourriez avoir quelques  difficultes
 avec   le   support   de   certains  FAI  (et  les  serveurs  Intranet
 d'entreprise) qui ne connaissent que les clients MS-Windows.

 Toutefois, un nombre croissant de FAI utilisent Linux pour offrir leur
 service  - et Linux penetre egalement l'environnement industriel, vous
 devriez reduire ainsi les chances de rencontrer des problemes.

 La section ``Fournir les informations dont vous avez besoin pour votre
 serveur  PPP''  vous explique ce dont vous devez savoir sur le serveur
 PPP sur lequel vous vous connectez et comment obtenir les informations
 dont vous avez besoin.

 66..44..  CCoonnffiigguurreerr vvoottrree mmooddeemm eett vvoottrree ppoorrtt sseerriiee

 Pour  se  connecter  a  un  serveur PPP et obtenir le meilleur taux de
 transfert possible, votre modem doit etre configure correctement.

 De la meme facon, les ports serie  de  votre  modem  ainsi  que  votre
 ordinateur doivent etre configures correctement.

 La  section ``Configurer votre modem et votre port serie'' fournit des
 informations a ce sujet.

 66..55..  MMeettttrree eenn ppllaaccee llaa rreessoolluuttiioonn ddee nnoommss ((DDNNSS))

 En plus des fichiers qui lancent PPP et automatisent la connexion  sur
 le  serveur  PPP,  il y a un grand nombre de fichiers de configuration
 qui sont mis en place pour que votre ordinateur  puisse  resoudre  les
 noms  comme  www.interweft.com.au vers l'adresse IP qui est reellement
 utilisee pour contacter cet ordinateur. Ces fichiers sont :

 +o  /etc/resolv.conf

 +o  /etc/host.conf

 Voir la section ``Configurer la resolution  de  nom  vers  l'adresse''
 pour une configuration detaillee de cela.

 En particulier, vous nn''aavveezz ppaass bbeessooiinn de lancer un serveur de nom sur
 votre PC  Linux  pour  le  connecter  a  Internet  (sauf  si  vous  le
 souhaitez).   Tout ce dont vous avez besoin est de connaitre l'adresse
 IP d'au moins l'un des serveurs  de  noms  que  vous  pouvez  utiliser
 (plutot celui de votre fournisseur d'acces).

 66..66..  PPPPPP eett lleess pprriivviilleeggeess rroooott

 Puisqu'etablir  une  liaison  PPP  entre  votre ordinateur Linux et un
 autre serveur PPP necessite la manipulation des  peripheriques  reseau
 (l'interface  PPP  est une interface reseau) et des tables de routages
 du noyau, pppd necessite les privileges rroooott.

 Pour des details la-dessus, voir la  section  ``Utiliser  PPP  et  les
 privileges root''.

 66..77..   VVeerriiffiieerr  lleess  ffiicchhiieerrss ddee vvoottrree ddiissttrriibbuuttiioonn PPPPPP eett ccoonnffiigguurreerr
 lleess ooppttiioonnss ddee PPPPPP

 Il  y  a un certain nombre de fichiers de configuration et d'appel qui
 doivent etre configures pour rendre  PPP  operationnel.  Des  exemples
 sont fournis avec la distribution de PPP et cette section montre quels
 fichiers il doit y avoir :

 ______________________________________________________________________
 /etc/ppp/options
 /etc/ppp/scripts/ppp-on
 /etc/ppp/scripts/ppp-on-dialer
 /etc/ppp/options.tpl
 ______________________________________________________________________

 Vous devrez creer des fichiers supplementaires en fonction de  ce  que
 vous souhaitez exactement utiliser avec PPP :

 ______________________________________________________________________
 /etc/ppp/options.ttyXX
 /etc/ppp/ip-up
 /etc/ppp/pap-secrets
 /etc/ppp/chap-secrets
 ______________________________________________________________________

 En plus, le daemon PPP peut traiter un grand nombre d'options en ligne
 de commande et il est important d'utiliser  les  bonnes;  ainsi  cette
 section  montre les options standard de PPP et vous aide a choisir les
 options que vous utiliserez.

 Pour les details a ce sujet, voir en section ``Configurer les fichiers
 de connexion de PPP''.

 66..88..  SSii vvoottrree sseerrvveeuurr PPPPPP uuttiilliissee PPAAPP ((PPaasssswwoorrdd AAuutthheennttiiccaattiioonn PPrroottoo--
 ccooll))

 De  nombreux  fournisseurs  d'acces  et serveurs PPP utilisent PAP. Si
 votre serveur nn''aa ppaass besoin  d'utiliser  PAP  (si  vous  pouvez  vous
 connecter   a   la  main  et  recevoir  les  messages  textes  de  nom
 utilisateur/mot  de  passe  il  n'utilise  pas   PAP),   vous   pouvez
 tranquillement ignorer cette section.

 Plutot  que  se  connecter  dans  de tels serveurs en utilisant le nom
 utilisateur et le mot de passe  quand  vous  etes  interroges  par  le
 serveur  pour  les entrer, un serveur PPP utilisant PAP n'a pas besoin
 de login base sur du texte.

 Les informations d'authentification de l'utilisateur sont echangees  a
 la  place  comme partie prenante du protocole de controle de connexion
 qui est la premiere partie de l'etablissement d'une liaison PPP.

 La  section   ``Si   votre   serveur   PPP   utilise   PAP   (Password
 Authentification Protocol)'' fournit des informations sur les fichiers
 dont vous avez besoin pour etablir une connexion PPP en utilisant PAP.

 66..99..  SSee ccoonnnneecctteerr aauu sseerrvveeuurr PPPPPP aa llaa mmaaiinn

 Une  fois  les  fichiers  de base configures, c'est une bonne idee que
 d'essayer ceux-ci en se connectant  (avec  minicom  ou  seyon)  et  de
 lancer pppd sur votre PC Linux a la main.

 Voir  la  section  ``Configurer une connexion PPP a la main'' pour des
 details complets.

 66..1100..  AAuuttoommaattiisseerr vvoottrree ccoonnnneexxiioonn PPPPPP

 Une fois que  vous  pouvez  vous  connecter  a  la  main,  vous  allez
 maintenant  commencer a configurer les scripts qui vont automatiser la
 mise en place de la connexion.

 La section ``Automatiser votre  connexion  -  Creer   les  scripts  de
 connexion''  couvre  la  configuration des fichiers necessaires, et la
 mise en place des scripts et du processus de  login  avec  le  serveur
 PPP, ainsi que des details complets sur chat.

 Cette   section   traite   des   scripts   d'authentification  du  nom
 utilisateur/mot de passe ainsi que des scripts d'authentification pour
 les serveurs PAP/CHAP.

 66..1111..  TTeerrmmiinneerr llaa ccoonnnneexxiioonn

 Une  fois  que  votre  connexion est activee et fonctionne, vous devez
 pouvoir desactiver la liaison.

 Consultez la section ``Terminer une connexion PPP''.

 66..1122..  SSii vvoouuss aavveezz ddeess pprroobblleemmeess

 De nombreuses personnes ont des problemes pour faire  fonctionner  PPP
 directement.  Les  differences entre les serveurs PPP et la facon dont
 il faut configurer la connexion  sont  enormes.  De  plus,  PPP  a  de
 nombreuses  options  -  et  certaines  combinaisons  d'entre  elles ne
 fonctionnent absolument pas ensemble.

 En plus des problemes de journalisation et  de  demarrage  du  service
 PPP,  il y a des problemes lies aux modems et aux lignes de telephones
 qui s'ajoutent !

 La section ``Resoudre les problemes'' fournit des informations de base
 au  sujet  des erreurs classiques, et la facon de les isoler et de les
 corriger.

 Elle nn''eesstt ttoouutteeffooiiss ppaass destinee a offrir plus que  les  informations
 de  base.  Al  Longyear  maintient  la  PPP-FAQ qui contient bien plus
 d'informations a ce sujet !

 66..1133..  UUnnee ffooiiss qquuee llaa ccoonnnneexxiioonn eesstt llaanncceeee

 Une fois que la liaison PPP est  operationnelle  (specifiquement,  une
 fois que les trames IP fonctionnent), pppd peut lancer automatiquement
 (comme utilisateur root) un script  pour  accomplir  n'importe  quelle
 fonction qu'un script peut accomplir.

 La  section  ``Une  fois  que  la  connexion  est lancee'' fournit des
 informations sur le script /etc/ppp/ip-up, les parametres que PPP  lui
 envoie   et   comment   l'utiliser   pour   recuperer  votre  courrier
 electronique de votre compte de votre fournisseur d'acces, ou  envoyer
 les messages en attente de transmission sur votre machine.

 66..1144..   PPrroobblleemmeess  aavveecc  lleess  sseerrvviicceess  IIPP  ssttaannddaarrddss  eett ll''aaddrreessssee IIPP
 ddyynnaammiiqquuee ddee llaa lliiaaiissoonn PPPPPP..

 Comme   cela  est  mentionne  dans  l'introduction,  les  adresses  IP
 dynamiques affectent la capacite de votre PC Linux  a  agir  comme  un
 serveur sur Internet.

 La  section ``Problemes avec les services IP  standard et l'adresse IP
 dynamique de  la  liaison  PPP''  fournit  des  informations  sur  les
 (principaux)  services  affectes et ce que vous pouvez faire (si c'est
 possible) pour contourner cela.

 77..  CCoonnffiigguurreerr vvoottrree nnooyyaauu LLiinnuuxx

 Pour utiliser PPP, votre noyau Linux doit etre compile avec le support
 PPP.   Recuperez le code source de votre noyau Linux si vous ne l'avez
 pas encore - il se  situe  dans  /usr/src/linux  dans  un  systeme  de
 fichiers Linux standard.

 Verifiez  ce  repertoire  - de nombreuses distributions installent les
 sources   (fichiers   et   repertoires)   pendant    leur    processus
 d'installation.

 Au  demarrage,  votre noyau ecrit une grande quantitee d'informations.
 Parmi elles, est indique si le noyau contient le  support  PPP.   Pour
 afficher  ces informations, regardez votre fichier syslog, ou utilisez
 dmesg | less pour afficher ces informations a l'ecran. Si votre  noyau
 contient le support PPP, vous verrez quelques lignes du genre

 ______________________________________________________________________
 PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
 PPP line discipline registered.
 ______________________________________________________________________

 (pour les noyau Linux version 2.0.x)

 Les  sources du noyau Linux sont disponibles par ftp a sunsite.unc.edu
 ou ses nombreux miroirs, en particulier ftp.lip6.fr.

 77..11..  IInnssttaalllleerr lleess ssoouurrcceess dduu nnooyyaauu

 La suite regroupe de breves instructions pour obtenir et installer les
 sources  du noyau Linux. Des informations completes sont disponibles a
 The  Linux  Kernel   HOWTO   <http://sunsite.unc.edu/mdw/HOWTO/Kernel-
 HOWTO.html>.
 Pour installer et compiler le noyau Linux vous devez etre root.

 1. Changer de repertoire vers /usr/src/
    cd /usr/src/

 2. Verifier  dans  /usr/src/linux  pour  voir si les sources sont deja
    installees.

 3. Si vous n'avez pas les sources, recuperez les a Linux kernel source
    directory  <ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0>  ou sur un
    miroir plus proche comme ftp.lip6.fr.
    Si vous cherchez une version  plus  ancienne  du  noyau  (comme  la
    1.2.X),   elles  sont  conservees  dans  Old  Linux  kernel  source
    directory <ftp://sunsite.unc.edu/pub/Linux/kernel/old>.

 4. Choisissez  le  noyau  approprie  -  generalement  le  plus  recent
    disponible  est  le meilleur. Le recuperer et mettre le fichier tar
    dans /usr/src.
    RReemmaarrqquuee: un fichier 'tar' est une  archive  -  parfois  compressee
    (comme  le  sont  les  fichiers  tar des sources du noyau Linux) il
    contient de nombreux fichiers repartis dans plusieurs  repertoires.
    C'est  l'equivalent  Linux  des fichiers multi-repertoires sous MS-
    DOS.

 5. Si vous avez deja les sources de Linux installees,  mais  que  vous
    voulez  les  mettre  a  jour, il faut effacer les anciens fichiers.
    Utiliser la commande
    rm -rf /usr/src/linux

 6. Maintenant decompresser et extraire les sources avec la commande
    tar xzf linux-2.0.XX.tar.gz

 7. Maintenant,  cd  /usr/usr/linux  et  lire  le  fichier  README.  Il
    contient  une  excellente  explication  de  la  facon de faire pour
    configurer et compiler un nouveau noyau. Lisez  ce  fichier  (c'est
    une  bonne idee de l'imprimer pour en garder une copie sous la main
    quand vous compilerez votre noyau jusqu'a ce que vous  l'ayez  fait
    suffisamment pour vous debrouiller tout seul).

 77..22..  CCoonnnnaaiittrree vvoottrree mmaatteerriieell

 Vous DDEEVVEEZZ savoir quelles cartes/peripheriques vous avez dans votre PC
 si  vous  commencer  a  recompiler  votre  noyau  !!!  Pour   certains
 peripheriques  (comme  les cartes sons) vous devez egalement connaitre
 quelques parametres (comme les IRQ et les adresse I/O et des choses du
 genre).

 77..33..  CCoommppiillaattiioonn dduu nnooyyaauu -- llee nnooyyaauu LLiinnuuxx 11..22..1133

 Pour  commencer le processus de configuration, suivre les instructions
 du fichier README pour installer les sources correctement. Vous lancez
 le processus de configuration du noyau avec

      make config

 Pour  utiliser  PPP,  vous  devez  configurer le noyau pour inclure le
 support PPP (PPP a besoin DE pppd ET DU support de PPP dans le noyau).
 ______________________________________________________________________
   PPP (point-to-point) support (CONFIG_PPP) [n] y
 ______________________________________________________________________

 Repondre  aux  autres  questions  du  make  config  en  accord avec le
 materiel de votre PC et les caracteristiques que vous  souhaitez  pour
 votre  systeme  d'exploitation  Linux.  Continuer ensuite a suivre les
 instructions de compilation et d'installation  du  README  pour  votre
 nouveau noyau.

 Le  noyau 1.2.13 creait seulement 4 peripheriques PPP. Pour les cartes
 series multiports, vous devez editer les sources  du  noyau  PPP  pour
 avoir  plus  de  ports.  (Voir le fichier README.Linux accompagnant la
 distribution de PPP-2.1.2  pour  des  details  complets  des  editions
 simples que vous devez faire).

 Remarque  :  la configuration du noyau 1.2.13 ne permet pas de revenir
 en arriere - si  vous  faites  une  erreur  en  repondant  a  une  des
 questions dans le make config quitter avec CTRL-C et recommencer.

 77..44..  CCoommppiillaattiioonn dduu nnooyyaauu LLiinnuuxx 11..33..xx eett 22..00..xx

 Pour  Linux 1.3.x et 2.0.x, vous pouvez utiliser le meme processus que
 pour Linux 1.2.13. De meme, suivez les instructions du fichier  README
 pour  installer les sources correctement. Vous lancez la configuration
 du noyau avec

      make config

 Cependant, vous pouvez aussi utiliser

      make menuconfig

 Qui fournit un systeme de configuration avec une aide en ligne et vous
 pouvez avancer et reculer dans la configuration.

 Il  y  a  aussi  l'interface de configuration sous X-Window chaudement
 recommandee

      make xconfig

 Vous pouvez compiler le support PPP directement dans  votre  noyau  ou
 sous la forme d'un module chargeable dynamiquement.
 Si  vous utilisez PPP occasionnellement, alors compiler le support PPP
 en  module  chargeable  est  recommande.  Avec  kerneld,  votre  noyau
 chargera  automatiquement  le(s) module(s) necessaires pour fournir le
 support  PPP  quand  vous  lancerez  une  liaison  PPP.  Cela   permet
 d'economiser  une  partie  de l'espace memoire : le noyau ne peut etre
 swappe, alors que les modules chargeables sont automatiquement enleves
 si ils ne sont pas utilises.

 Pour cela, vous devez activer le support des modules chargeables :

 ______________________________________________________________________
         Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
 ______________________________________________________________________

 Pour  ajouter  le  support  PPP  a votre noyau, repondre a la question
 suivante :

 ______________________________________________________________________
         PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
 ______________________________________________________________________

 Pour  un  module  chargeable,  repondre  MM,  sinon  pour  le  compiler
 directement dans le noyau, repondre YY.

 A  la  difference du 1.2.13, le noyau 2.0.x cree les peripheriques PPP
 au vol et selon les besoins, et il n'y  a  absolument  pas  besoin  de
 bricoler le source pour augmenter le nombre de peripheriques PPP.

 77..55..  RReemmaarrqquuee ssuurr PPPPPP--22..22 eett //pprroocc//nneett//ddeevv

 Si vous utilisez PPP-2.2, vous trouverez qu'un probleme de la creation
 des peripheriques PPP 'au vol' est qu'aucun peripherique n'est  trouve
 dans  le fichier /proc/net tant qu'un peripherique n'est pas cree avec
 le lancement de pppd :

 ______________________________________________________________________
 [hartr@archenland hartr]$ cat /proc/net/dev
 Inter-|   Receive                  |  Transmit
  face |packets errs drop fifo frame|packets errs drop fifo colls carrier
     lo:  92792    0    0    0    0    92792    0    0    0     0    0
   eth0: 621737   13   13    0   23   501621    0    0    0  1309    0
 ______________________________________________________________________

 Une fois que vous avez un (ou plus) services ppp lances,  vous  verrez
 des entrees comme celles-ci (sur un serveur PPP) :

 ______________________________________________________________________
 [root@kepler /root]# cat /proc/net/dev
 Inter-|   Receive                  |  Transmit
  face |packets errs drop fifo frame|packets errs drop fifo colls carrier
     lo: 428021    0    0    0    0   428021    0    0    0     0    0
   eth0:4788257  648  648  319  650  1423836    0    0    0  4623    5
   ppp0:   2103    3    3    0    0     2017    0    0    0     0    0
   ppp1:  10008    0    0    0    0     8782    0    0    0     0    0
   ppp2:    305    0    0    0    0      297    0    0    0     0    0
   ppp3:   6720    7    7    0    0     7498    0    0    0     0    0
   ppp4: 118231  725  725    0    0   117791    0    0    0     0    0
   ppp5:  38915    5    5    0    0    28309    0    0    0     0    0
 ______________________________________________________________________

 77..66..  CCoonnssiiddeerraattiioonnss ggeenneerraalleess ssuurr llaa ccoonnffiigguurraattiioonn dduu nnooyyaauu ppoouurr PPPPPP

 Si vous configurez votre PC Linux comme un  serveur  PPP,  vous  devez
 activer  le support IP Forwarding. Il est egalement necessaire si vous
 voulez utiliser Linux pour relier deux reseaux locaux entre eux ou  un
 reseau local a Internet.

 Si  vous  reliez  un  reseau  local a Internet (ou reliez deux reseaux
 entre eux), vous devez etre concernes  par  la  securite.  Ajouter  le
 support  pour  IP  firewall  dans  votre  noyau  est  alors sans doute
 obligatoire !

 Vous aurez egalement besoin, d'utiliser IP Masquerade pour  relier  un
 reseau  local  qui  utilise les adresses IP non connectees mentionnees
 plus haut.

 Pour activer IP Masquerade et IP firewalling, vous DDEEVVEEZZ repondre  Oui
 a la premiere question de make config :

 ______________________________________________________________________
 Prompt for developement and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
 ______________________________________________________________________

 Bien que cela puisse sembler un peu bizarre aux nouveaux utilisateurs,
 je confirme que de nombreux utilisateurs utilisent les possibilites de
 IP  Masquerading  et  de  IP  firewalling  du  noyau  Linux 2.0.X sans
 problemes.

 Une fois que vous avez installe et boote  votre  nouveau  noyau,  vous
 pouvez commencer a configurer et a tester votre liaison PPP.

 88..   FFoouurrnniirr lleess iinnffoorrmmaattiioonnss ddoonntt vvoouuss aavveezz bbeessooiinn ppoouurr vvoottrree sseerrvveeuurr
 PPPPPP

 Avant  d'etablir  la connexion PPP avec un serveur, vous devez obtenir
 les  informations  suivantes  (de   l'administrateur   systeme/support
 utilisateur/ personnes gerant le serveur PPP) :

 +o  Le numero de telephone a composer pour le service
    Si vous etes derriere un standard, vous avez aussi besoin du numero
    qui vous permet  de  sortir  a  l'exterieur  du  standard  -  c'est
    generalement le chiffre zero (0) ou neuf(9).

 +o  Est-ce  que  le  serveur  utilise  des  adresse  IP  DYNAMIQUES  ou
    STATIQUES ?
    Si le serveur utilise des adresses IP STATIQUES, vous devez  savoir
    quelle  adresse  IP utiliser a la fin de la connexion PPP. Si votre
    FAI vous fournit une adresse  de  sous-reseau  valide,  vous  devez
    connaitre le masque de sous-reseau a utiliser (netmask).

    La plupart des FAI utilisent des adresses IP DYNAMIQUES. Comme cela
    est mentionne plus haut, cela a des impliquations sur les  services
    que vous pouvez utiliser.

    Cependant,  meme  si  vous  utilisez  des adresses IP STATIQUES, la
    plupart des serveurs PPP ne laisseront jamais (pour des raisons  de
    securite) les clients specifier leur adresse IP car c'est un risque
    pour la securite. Vous ddeevveezz connaitre aussi cette information !

 +o  Quel sont les adresses IP des  serveur  de  noms  des  fournisseurs
    d'acces ?
    Il doit y en avoir au moins deux, meme si un seul suffit.

    Il  peut  y  avoir  un  probleme  a ce niveau. Le service PPP de MS
    Windows 95 permet que l'adresse DNS soit transmise au  client  dans
    le   processus  de  connexion.  Ainsi,  votre  fournisseur  d'acces
    pourrait vous repondre que vous n'avez pas besoin de  l'adresse  IP
    du serveur DNS.

    Avec  Linux,  vous  ddeevveezz  connaitre  l'adresse  d'au moins un DNS.
    L'implementation  PPP  de  Linux  ne  permet  pas   de   configurer
    dynamiquement  a  la  connexion  l'adresse  du  serveur DNS - et ne
    pourra certainement jamais.

    RReemmaarrqquuee: bien que Linux (comme client PPP) ne  peut  pas  recevoir
    d'adresse  DNS  du  serveur,  il peut, en tant que serveur, envoyer
    l'information au client en utilisant l'option dns-addr de pppd.

 +o  Est-ce-que le serveur a besoin d'utiliser PAP/CHAP ?
    Si tel est le cas, vous devez connaitre le id et le secret que vous
    avez pour vous connecter. (c'est probablement votre nom utilisateur
    et le mot de passe de votre fournisseur d'acces).

 +o  Le serveur est-il un systeme Microsoft Windows NT et, dans ce  cas,
    utilise-t-il le systeme PAP/CHAP ?
    De nombreux fournisseurs d'acces semblent utiliser MS-Windows NT de
    cette facon pour ameliorer la securite.

 Attention a l'information suivante - elle risque d'etre utile !

 99..  CCoonnffiigguurreerr vvoottrree mmooddeemm eett vvoottrree ppoorrtt sseerriiee

 Vous devez vous assurer que votre modem est correctement configure  et
 que vous savez sur quel port serie il est branche.

 SSee ssoouuvveenniirr qquuee :

 +o  DOS COM1: = Linux /dev/cua0 (et /dev/ttyS0)

 +o  DOS COM2: = Linux /dev/cua1 (et /dev/ttyS1)
    etc.

 Il  est egalement bien de se souvenir que si vous avez 4 ports series,
 la configuration standard d'un PC est d'avoir COM1 et COM3  partageant
 IRQ4 et COM2 et COM4 partageant IRQ3.

 Si  vous avez des peripheriques sur vos ports series qui partagent une
 IRQ avec votre modem vous allez avoir des problemes. Vous  devez  vous
 assurer  que  le port serie de votre modem est sur sa propre et unique
 IRQ. De nombreuses cartes series modernes (et  les  ports  series  des
 cartes meres de bonne qualite) permettent de changer les IRQ des ports
 serie.

 Si vous utilisez le noyau  Linux  2,  vous  pouvez  afficher  des  IRQ
 actuellement  utilises  avec  cat  /proc/interrupts,  qui produira une
 sortie ressemblant a :

 ______________________________________________________________________
  0:    6766283   timer
  1:      91545   keyboard
  2:          0   cascade
  4:     156944 + serial
  7:     101764   WD8013
 10:     134365 + BusLogic BT-958
 13:          1   math error
 15:    3671702 + serial
 ______________________________________________________________________

 Cela montre que le le port serie en IRQ4 (une souris) et le port serie
 en  IRQ15 (un modem permanent base sur PPP pour une liaison Internet).
 (Il y a egalement un port serie sur le port COM2,  IRQ3  et  COM4  est
 dans  l'IRQ14,  mais  comme  ils ne sont pas utilises, ils ne sont pas
 affiches).

 Avertissement - vous devez vous rendre compte de ce  que  vous  faites
 lorsque  vous  voulez  jouer  avec vos IRQ ! Non seulement, vous devez
 ouvrir votre ordinateur, retirer vos cartes et jouer avec les jumpers,
 mais  vous  devez  savoir  ce qu'il y a sur chaque IRQ.  Dans mon cas,
 j'ai un PC totalement SCSI, et j'ai donc desactive les interfaces  IDE
 de la carte-mere qui utilisent normalement les IRQ14 et 15 !

 Je tiens egalement a preciser que si votre PC utilise un autre systeme
 d'exploitation, changer les IRQ pourrait bien signifier que  votre  OS
 ne bootera plus correctement, ou plus du tout !

 Si  vous  deplacez  vos  ports  series vers des IRQ non-standard, vous
 devez specifier a Linux quel IRQ utilise chaque port. setserial permet
 de  le  faire,  et  de  preference lors du processus de lancement dans
 rc.local ou rc.serial qui est appele dans rc.local ou comme une partie
 de  l'initialisation SysV system. Pour la machine presentee ci-dessus,
 les commandes utilisees sont

 ______________________________________________________________________
 /bin/setserial -b /dev/ttyS2 IRQ 11
 /bin/setserial -b /dev/ttyS3 IRQ 15
 ______________________________________________________________________

 Toutefois, si vous utilisez le module serie  charge  dynamiquement  au
 besoin avec le processus kerneld, vous ne pouvez pas definir et perdre
 les IRQ a chaque redemarrage. Si le module  serie  est  efface,  Linux
 perds alors les configurations speciales.

 Donc,  si  vous  chargez  le  module  serie  a  la demande, vous devez
 reconfigurer les IRQ a chaque fois qu'il est charge.

 99..11..  RReemmaarrqquuee aauu ssuujjeett ddeess ppoorrttss sseerriieess eett ddeess ccaappaacciittee ddee vviitteessssee

 Si  vous  utilisez  un  modem  haut  debit  (externe) (14.400 Bits par
 seconde ou plus), votre port serie doit  etre  capable  de  suivre  le
 debit  qu'un  tel  modem est capable de produire, en particulier si le
 modem compresse les donnees.

 Cela  demande  que  votre  port  serie   utilise   un   UART(Universal
 Asynchronous  Receiver Transmitter) moderne comme un 16550(A). Si vous
 utilisez une vieille machine (ou une vieille carte serie), il est tout
 a  fait  possible  que votre port serie ait seulement un UART 8250, ce
 qui amenera des problemes considerables avec un modem haute vitesse.

 Utiliser la commande

      setserial -a /dev/ttySx

 Pour que Linux vous affiche le type d'UART  que  vous  avez.  Si  vous
 n'avez  pas  un  UART  de type 16550, acheter une nouvelle carte serie
 (disponible pour moins de 300 F). Quand vous  acheterez  une  nouvelle
 carte, assurez vous que vous pouvez changer les IRQ !

 Remarque  :  les  premieres  versions des puces UART 16550 avaient une
 erreur. Elle a ete rapidement decouverte et une mise a jour de la puce
 est  sortie  -  l'UART  16550A. Un nombre relativement faible de puces
 erronees ont cependant ete mises  en  circulation.  Ca  serait  de  la
 malchance  que d'un recuperer une, en particulier sur certaines cartes
 d'occasion, mais il  suffit  de  chercher  la  reponse  qui  s'appelle
 16550A.

 99..22..  NNoommss ddeess ppoorrttss sseerriiee

 Historiquement,  Linux  utilise les peripheriques cuaX pour les appels
 sortants et ttySx pour les appels entrants.

 Le code du noyau a eu besoin de changer cela dans la version 2.0.x  du
 noyau,  et  vous  devez  maintenant  utiliser  ttySx  pour  les appels
 entrants  et  sortants.  Cela  semble  annoncer  que   les   noms   de
 peripheriques  cuaX devraient disparaitre dans les futures versions du
 noyau.

 99..33..  CCoonnffiigguurraattiioonn ddee vvoottrree mmooddeemm

 Vous devez configurer votre modem correctement pour PPP -  pour  cela,
 LLIISSEEZZ  LLEE  MMAANNUUEELL  DDEE  VVOOTTRREE  MMOODDEEMM  !  La  plupart des modems ont uunnee
 ccoonnffiigguurraattiioonn ppaarr ddeeffaauutt eenn uussiinnee avec les options requises  par  PPP.
 La configuration minimale specifie :

 +o  Controle de flux materiel (RTS/CTS) (&K3 sur les modems Hayes)

 Les  autres  parametres  (en  commandes Hayes standard) que vous devez
 verifier sont :

 +o  La commande E1 Echo ON (necessaire pour que chat fonctionne)

 +o  S0=0 Auto Answer OFF (a moins que vous ne vouliez que  votre  modem
    reponde au telephone)

 +o  &C1 Carrier Detect ON seulement apres la connexion

 +o  &S0 Data Set Ready (DSR) toujours ON

 +o  (variable) Data Terminal Ready

 Un  site  fournit  la  configuration  des  modems  pour une variete de
 fabricants  et  de  modeles  de  modems  croissante  a   Modem   setup
 information   <http://www.in.net/info/modems/index.html>  qui  devrait
 vous simplifier la configuration.

 Il est aussi interessant de verifier  comment  fonctionne  l'interface
 serie  entre  votre  ordinateur  et votre modem. La plupart des modems
 modernes vous permettent d'utiliser l'interface serie  a  une  vitesse
 FIXE permettant a l'interface avec la ligne telephonique de changer de
 vitesse pour atteindre la plus  haute  vitesse  que  les  deux  modems
 peuvent supporter.

 Cela  s'appelle  l'operation de division de la vitesse. Si votre modem
 le  supporte,  bloquer  l'interface  serie  du  modem  a  la   vitesse
 disponible  la  plus  rapide  (d'habitude  115.200  bauds mais parfois
 38.400 pour les modems 14.400).

 Utiliser les outils de communication (c.-a-d. minicom ou  seyon)  pour
 acceder  a  la configuration de votre modem, et l'adapter a ce qui est
 necessaire a PPP. De nombreux modems renvoient leurs reglages courants
 apres  la  commande AT&V, mais vous devez consulter le manuel de votre
 modem.

 Si vous avez completement modifie les reglages, vous  pouvez  repartir
 sur des bases saines (generalement) en envoyant AT&F - ca retourne aux
 reglages usine. (Pour la majorite des modems que j'ai  rencontre,  les
 reglages  usine  on  tout  ce qu'il faut pour faire du PPP - mais vous
 devez verifier).

 Un fois que vous avez la commande  necessaire  pour  configurer  votre
 modem,  ecrivez-la.  Vous devez maintenant prendre une decision : vous
 pouvez stocker ces parametres dans la memoire  non-volatile  de  votre
 modem, comme cela vous pourrez la relancer en envoyant une commande AT
 appropriee. Alternativement, vous pouvez passer le parametrage correct
 a votre modem lors du processus de connexion de PPP.

 Si  vous utilisez uniquement votre modem sous Linux pour appeler votre
 FAI ou un serveur d'entreprise, la  maniere  la  plus  simple  est  de
 sauver la configuration de votre modem dans la memoire non-volatile.

 D'un  autre cote, si votre modem est utilise par d'autres applications
 et systemes d'exploitation, il est plus sur de passer ces informations
 au  modem a chaque appel que vous passez, comme cela, c'est sur que le
 modem sera bien configure lors de l'appel. (Cela a aussi l'avantage de
 conserver  la  ligne  de  configuration  du  modem  au cas ou le modem
 perdrait le contenu de sa NV-RAM, ce qui peut parfois arriver).

 99..44..  RReemmaarrqquuee ssuurr llee ccoonnttrroollee ddee fflluuxx sseerriiee

 Lorsque les donnees transitent sur les lignes de communication  serie,
 il peut arriver que les donnees arrivent plus vite que l'ordinateur ne
 peut les traiter (l'ordinateur peut etre occupe a faire autre chose  -
 n'oubliez   pas   que   Linux   est  un  systeme  Multi-taches  Multi-
 utilisateurs). Pour s'assurer que des donnees ne se sont  pas  perdues
 (les  donnees  n'arrivent  pas  dans le tampon d'entree pour se perdre
 ensuite), certaines methodes de controles sont necessaires.

 Il y a deux facons de faire sur des lignes series :

 +o  Utiliser des signaux  materiels  (Clear  To  Send/Request  To  Send
    CTS/RTS)

 +o  Utiliser  des  signaux  logiciel  (control  S  et  control Q, aussi
    appeles XON/XOFF).

 Bien  que  le  dernier  soit  correct  pour  les  liaisons  vers   des
 terminaux(texte), les donnees sur une liaison PPP utilisent les 8 bits
 - et il est fort probable que quelque part dans les donnees, un  octet
 se  traduis  par  un  control S ou un control Q. Donc, si un modem est
 configure  pour  utiliser  le  controle  de  flux,  les  choses   vont
 rapidement s'envenimer !

 Pour les liaisons a haut debit utilisant PPP (avec l'utilisation des 8
 bits de donnees) le controle de flux materiel est vital, et  c'est  la
 raison pour laquelle vous devez utiliser le controle de flux materiel.

 99..55..  TTeesstteerr vvoottrree mmooddeemm ppoouurr ccoommppoosseerr uunn nnuummeerroo

 Maintenant que vous en avez termine avec la configuration du modem  et
 du  port  serie,  il  serait  utile de verifier si cette configuration
 marche vraiment en appelant votre fournisseur d'acces et voir si  vous
 pouvez vous connecter.

 En  utilisant  le  paquetage  du  terminal  de  communication (tel que
 minicom), la  commande  d'initialisation  de  votre  modem  pour  PPP,
 appelez  le serveur PPP sur lequel vous voulez vous connecter pour une
 session PPP.

 (Remarque : a ce niveau, nous nn''eessssaayyeerroonnss ppaass d'etablir la  connexion
 PPP  -  mais  juste  d'etre sur que nous pouvons composer un numero et
 ainsi trouver eexxaacctteemmeenntt  ce  que  le  serveur  nous  envoie  pour  se
 connecter et lancer PPP).

 Pendant le processus, soit vous capturez (dans un fichier) la totalite
 du  processus  de  login   soit   vous   notez   attentivement   (_t_r_e_s
 _a_t_t_e_n_t_i_v_e_m_e_n_t)  eexxaacctteemmeenntt  ce que le serveur envoie pour savoir quand
 est le moment d'entrer votre nom utilisateur et votre mot de passe (et
 quelques  autres commandes necessaires pour etablir la connexion PPP).
 Si votre serveur utilise PAP, vous ne verrez pas de message de  login,
 mais  vous verrez a la place la (representation texte) du protocole de
 controle de liaison (une suite incoherente de  caracteres)  s'afficher
 sur votre ecran.

 Quelques mots d'avertissements :

 +o  certains serveurs sont relativement intelligents : vous pouvez vous
    connecter en utilisant un nom utilisateur /mot de passe base sur du
    texte  OU  en utilisant PAP. Ainsi, si votre fournisseur d'acces ou
    votre serveur  d'entreprise  utilise  PAP  mais  n'affiche  pas  le
    message  directement,  cela  ne signifie pas que vous avez fait une
    erreur.

 +o  certains serveurs ont besoin que vous entriez  du  texte  avant  de
    lancer _e_n_s_u_i_t_e la sequence PAP standard.

 +o  Certains  serveurs  PPP  sont  passifs - il attendent et n'envoient
    rien tant que le client avec lequel il dialogue ne  lui  envoie  un
    paquet  LCP  valide.   Si  le  serveur  PPP  sur  lequel  vous vous
    connectez fonctionne en mode  passif,  vous  ne  verrez  jamais  de
    message !

 +o  Certains  serveurs  ne  lancent  pas  PPP  tant que vous n'avez pas
    presse ENTREE - essayez donc cela si vous etes connecte et ne voyez
    pas de message !

 Il est interessant de dialoguer au moins deux fois - certains serveurs
 changent leur message d'accueil (c.-a-d. avec le temps !) chaque  fois
 que vous vous connectez. Les deux messages critiques que votre machine
 Linux doit pouvoir identifier chaque fois que vous vous vous connectez
 sont :

 +o  le message qui vous demande d'entrer votre nom utilisateur ;

 +o  le message qui vous demande d'entrer votre mot de passe ;

 Si  vous  avez  tape une commande pour lancer PPP sur le serveur, vous
 devez aussi rechercher le message que le serveur vous envoie une  fois
 que  vous  etes  connecte pour vous informer que vous pouvez entrer la
 commande pour lancer ppp.

 Si votre serveur lance automatiquement PPP, une  fois  que  vous  etes
 connecte,  vous allez voir des caracteres s'afficher sur votre ecran -
 c'est le serveur PPP qui envoie a votre machine les informations  pour
 demarrer et configurer la connexion PPP.

 Ca doit donner quelque chose comme ceci :

 ______________________________________________________________________
 ______________________________________________________________________

 (et ca ne s'arrete pas !)

 Sur  certains  systemes,  PPP  doit  etre  explicitement  lance sur le
 serveur. Cela  vient  generalement  du  fait  que  le  serveur  a  ete
 configure  pour permettre aux connexions PPP et aux connexions Shell a
 utiliser les memes paires nom utilisateur/mot de passe.  Si  c'est  le
 cas,  envoyez  cette commande lorsque vous etes connecte. Une nouvelle
 fois vous verrez des caracteres que le serveur  envoie  a  la  fin  du
 lancement de la connexion PPP.

 Si  vous  ne voyez pas directement apres la connexion (et le processus
 de connexion et le lancement du serveur PPP si besoin),  tapez  EEnnttrreeee
 pour voir si le serveur PPP demarre...

 A  ce  niveau, vous pouvez raccrocher votre modem (generalement, taper
 +++ rapidement et envoyer la commande ATHO une fois  que  votre  modem
 vous a repondu OK).

 Si  vous n'arrivez pas a faire fontionner votre modem, lisez le manuel
 du modem, les pages de manuel des programmes de communication,  et  le
 Serial HOWTO ! Une fois que vous aurez fait tout cela reprenez l'etape
 precedente.

 1100..  CCoonnffiigguurreerr llaa rreessoolluuttiioonn ddee nnoomm vveerrss ll''aaddrreessssee ((DDNNSS))

 Alors  que  les  humains  aiment  donner  des  noms  aux  choses,  les
 ordinateurs  preferent  les  nombres.  Sur  un  reseau  TCP/IP  (comme
 Internet), nous appelons les  machines  avec  un  nom  particulier  et
 chaque  machine  se trouve dans un "domaine" particulier. Par exemple,
 ma station de travail Linux s'appelle aarrcchheennllaanndd et se trouve dans  le
 domaine  iinntteerrwweefftt..ccoomm..aauu.  Son adresse lisible par un humain est donc
 archenland.interweft.com.au (qui s'appelle le FQDN -  nom  de  domaine
 totalement qualifie).

 Cependant,  pour  que  cette  machine  soit  trouvee  par  les  autres
 ordinateurs sur Internet, elle est reellement connue par  son  adresse
 IP lorsque les ordinateurs communiquent a travers Internet.

 Traduire  (resoudre)  les  noms de machines (et de domaine) en nombres
 reellement utilises sur  Internet  est  le  travail  de  machines  qui
 offrent le DNS.

 Ce qui se passe en fait :

 +o  Votre  machine  a  besoin  de  savoir  l'adresse IP d'un ordinateur
    particulier.  L'application  qui  a  besoin  de  cette  information
    interroge  le  resolveur  de  votre  PC  Linux  pour  obtenir cette
    information;

 +o  Le resolveur  interroge  le  fichier  local  /etc/hosts  et/ou  les
    serveurs  de noms des domaines qu'il connait (le comportement exact
    du resolveur est determine dans /etc/hosts.conf);

 +o  si la reponse se trouve dans  le  fichier  hosts,  la  reponse  est
    renvoyee;

 +o  si  un  serveur de nom est specifie, votre PC interroge alors cette
    machine

 +o  si la machine DNS connait deja l'adresse IP du nom demande, elle le
    retourne.  Si  elle  ne  le  connait  pas,  elle interroge un autre
    serveur de noms sur Internet pour trouver l'information. Le serveur
    de  noms  redescend  alors  les informations au resolveur qui les a
    demande - qui les envoie a l'application qui l'a interroge.

 Quand vous utilisez une connexion PPP, vous  devez  indiquer  a  votre
 machine  Linux  ou  elle  peut  recuperer l'adresse IP a partir du nom
 (resolution des adresses), comme cela vvoouuss ppoouurrrreezz uuttiilliisseerr llee nnoomm ddeess
 mmaacchhiinneess  mais  votre ordinateur pourra traduire ces derniers vers les
 adresses IP dont il a besoin pour travailler.

 Une solution est de rentrer  tous  les  hotes  avec  qui  vous  voulez
 dialoguer dans le fichier /etc/hosts (ce qui est en realite totalement
 impossible si vous etes connecte a  Internet);  une  autre  facon  est
 d'utiliser  les  adresses  IP  plutot  que  les  noms  (une  tache  de
 memorisation impossible sauf pour les petits reseaux).

 La meilleure facon est de configurer Linux  pour  qu'il  connaisse  ou
 recupere   l'information   de   conversion  des  noms  en  adresses  -
 automatiquement. Ce service est fourni par le systeme  DNS.  La  seule
 chose  a  faire est d'entrer l'adresse IP des serveurs de noms dans le
 fichier /etc/resolv.conf.

 1100..11..  LLee ffiicchhiieerr //eettcc//rreessoollvv..ccoonnff

 Le support client de votre serveur PPP doit vous fournir deux adresses
 IP  de  DNS  (un  seul  est  necessaire  -  mais  deux  permettent une
 redondance en cas d'echec).

 Comme c'est mentionne plus haut, Linux ne peut pas  definir  l'adresse
 IP  de  son  serveur  de noms comme MS Windows 95 le fait. Ainsi, vous
 devez  iinnssiisstteerr  (poliment)  aupres  de  votre  FAI  pour  qu'il  vous
 fournisse cette information !

 Votre /etc/resolv.conf doit ressembler a quelque chose comme :

 ______________________________________________________________________
 domain votre.nom.de.domaine
 nameserver 10.25.0.1
 nameserver 10.25.1.2
 ______________________________________________________________________

 Editer   ce  fichier  (le  creer  si  necessaire)  pour  contenir  les
 informations que votre FAI vous a donne. Il doit avoir les  droits  et
 les permissions comme suit :

      -rw-r--r--   1 root     root           73 Feb 19 01:46 /etc/resolv.conf

 Si  vous  avez deja configure un /etc/resolv.conf car vous etes sur un
 reseau local, ajoutez simplement les adresses IP du  serveur  DNS  PPP
 dans votre fichier existant.

 1100..22..  LLee ffiicchhiieerr //eettcc//hhoossttss..ccoonnff

 Vous  devez  egalement  verifier que votre fichier /etc/hosts.conf est
 correctement configure. Il doit ressembler a

 ______________________________________________________________________
 order hosts,bind
 multi on
 ______________________________________________________________________

 Il indique au resolveur d'utiliser les informations  du  fichier  host
 avant d'envoyer les requetes pour une resolution DNS.

 1111..  UUttiilliisseerr PPPPPP eett lleess pprriivviilleeggeess rroooott

 Puisque  PPP a besoin de configurer les peripheriques reseau, modifier
 les tables de routage entre autres, il a besoin des privileges rroooott.

 Si des utilisateurs autres que rroooott doivent lancer des connexions PPP,
 le programme pppd doit avoir l'uid rroooott :

      -rwsr-xr-x   1 root     root        95225 Jul 11 00:27 /usr/sbin/pppd

 Si  /usr/sbin/pppd  n'est  pas  defini comme cela, alors eenn eettaanntt rroooott
 taper la commande :

      chmod u+s /usr/sbin/pppd

 Cela permet a pppd de fonctionner avec les privileges root mmeemmee  i  si
 le  programme est lance par un utilisateur ordinaire. Ainsi pppd a les
 bons privileges pour configurer les interfaces reseau et les tables de
 routage.

 Les  programmes  qui  utilisent  le  uid  root sont autant de trous de
 securite potentiels  et  vous  devez  etre  extremement  vigilant  par
 rapport  aux  programmes uid root. De nombreux programmes (comme pppd)
 ont ete ecrits minutieusement pour minimiser le danger d'utiliser suit
 root,  vous  devez  donc  etre  tranquille  avec  celui-ci  (mais sans
 garanties totales).

 Selon ce que vous voulez faire de votre systeme - particulierement  si
 vous voulez qu'un utilisateur puisse initialiser une liaison PPP, vous
 devez mettre vos scripts ppp-on/off lisibles et executables  par  tout
 le  monde.   (c'est sans doute genial si vous etes le SEUL utilisateur
 du PC).

 Cependant, si vous NE voulez PAS que n'importe qui puisse  lancer  une
 connexion  PPP (par exemple, votre enfant qui a un compte sur votre PC
 Linux et que vous ne voulez pas qu'il  se  connecte  a  Internet  sans
 votre  permission),  vous devez faire un groupe PPP (en tant que root,
 editer le fichier /etc/group) et :

 +o  Rendre pppd 'suid root',  possede  par  l'utilisateur  rroooott  et  le
    groupe  PPP, avec ces nouvelles permissions sur le fichier. Il doit
    ressembler a

      -rwsr-x---   1 root     PPP        95225 Jul 11 00:27 /usr/sbin/pppd

 +o  Mettre les scripts ppp-on/off possedes par l'utilisateur rroooott et le
    groupe PPPPPP

 +o  Rendre le script ppp-on/off lisible/executable par le groupe PPP

        -rwxr-x---   1 root     PPP           587 Mar 14  1995 /usr/sbin/ppp-on
        -rwxr-x---   1 root     PPP           631 Mar 14  1995 /usr/sbin/ppp-off

 +o  Ajouter  les utilisateurs qui utilisent PPP dans le groupe PPP dans
    /etc/group

 Meme si vous faites cela, les utilisateurs  normaux  ne  pourront  pas
 fermer la connexion avec un programme ! Utiliser ppp-off necessite les
 privileges rroooott. Meme si n'importe quel utilisateur peut  eteindre  le
 modem (ou deconnecter la ligne telephonique sur un modem interne).

 Un alternative (et une meilleure methode) de faire cela est d'utiliser
 le programme sudo, qui offre une meilleure securite et vous  permettra
 de  choisir quels utilisateurs (autorises) pourrons activer/desactiver
 la  liaison  en  utilisant  des  scripts.  Utiliser  sudo  permet  aux
 utilisateurs  autorises  d'activer/desactiver  la liaison PPP de facon
 propre et securisee.

 1122..  CCoonnffiigguurreerr lleess ffiicchhiieerrss ddee ccoonnnneexxiioonn ddee PPPPPP

 Maintenant, vous devez etre connecte en tant que rroooott pour  creer  les
 repertoires  et  editer les fichiers necessaires a la configuration de
 PPP, meme si vous souhaitez que  PPP  soit  utilisable  par  tous  les
 utilisateurs.

 PPP  utilise  un  certain  nombre  de  fichiers  pour  configurer  les
 connexions.  Ceux-ci different dans leur nom et les chemins entre  PPP
 2.1.2 et 2.2.

 Pour PPP 2.1.2 les fichiers sont :

 ______________________________________________________________________
 /usr/sbin/pppd          # le programme PPP
 /usr/sbin/ppp-on        # le script d'appel/connexion
 /usr/sbin/ppp-off       # le script de deconnexion
 /etc/ppp/options        # les options utilisees pour toutes le connexions
 /etc/ppp/options.ttyXX  # les options specifiques pour ce connecter sur ce port
 ______________________________________________________________________

 Pour PPP 2.2. les fichiers sont :

 ______________________________________________________________________
 /usr/sbin/pppd                  # Le programme PPP
 /etc/ppp/scripts/ppp-on         # le script d'appel connexion
 /etc/ppp/scripts/ppp-on-dialer  # premiere partie du script d'appel
 /etc/ppp/scripts/ppp-off        # le script chat reel
 /etc/ppp/options                # options utilisees par pppd pour toutes les
                                 # connexions
 /etc/ppp/options.ttyXX          # options specifiques pour se connecter sur ce
                                 # port
 ______________________________________________________________________

 Je   rappelle   aux   utilisateurs   de   la  RedHat  Linux  que  dans
 l'installation standard de la Red Hat 4.X les scripts sont places dans
 /usr/doc/ppp-2.2.0f-2/scripts.

 Dans votre repertoire /etc, il devrait y avoir un repertoire pppppp :

      drwxrwxr-x   2 root     root         1024 Oct  9 11:01 ppp

 S'il n'existe pas - le creer avec ces possessions et permissions.

 Si le repertoire existe deja, il devrait contenir un fichier d'options
 modele appele ooppttiioonnss..ttppll. Ce fichier est inclus plus bas au cas ou il
 n'existerait pas.

 Imprimez-le  il contient une explication de presque toutes les options
 de PPP et c'est pratique de le lire en meme temps  que  les  pages  de
 manuel  de ppp).  Meme si vous pouvez utiliser ce fichier comme base a
 votre /etc/ppp/options, il est sans doute mieux de creer votre  propre
 fichier  d'options  qui  ne  contiendra  pas  tous les commentaires du
 modele - il sera bien plus court, et plus facile a lire/maintenir.

 Si vous avez une ligne serie/modems multiple (c'est typiquement le cas
 des serveurs PPP), creer un fichier general /etc/ppp/options contenant
 les options  communes  a  tous  les  ports  series  dans  lequel  vous
 supportez  la  composition  et  la reception d'appels et un fichier de
 configuration individuel pour chaque ligne  serie  sur  laquelle  vous
 etablirez la configuration individuelle necessaire pour chaque port.

 Ces   fichiers   d'options   specifiques   aux   ports   sont  appeles
 options.ttyx1, options.ttyx2 et ainsi de suite (ou  x  est  la  lettre
 appropriee pour votre port serie).

 Toutefois,  pour  une  connexion  simple,  vous  pouvez tranquillement
 utiliser le fichier /etc/ppp/options. Vous pouvez aussi mettre  toutes
 les options comme argument de la commande pppd elle-meme.

 Il  est  plus  simple  de  maintenir une configuration qui utilise les
 fichiers /etc/ppp/options.ttySx. Si vous utilisez PPP  sur  differents
 sites,  vous  pouvez  creer un fichier d'options pour chaque site dans
 /etc/ppp/options.site, et ainsi  specifier  le  fichier  d'options  en
 parametre  a la commande PPP lorsque vous vous connectez (en utilisant
 l'option file option-file de pppd dans la ligne de commande de  pppd).

 1122..11..  LLee ffiicchhiieerr ooppttiioonnss..ttppll ffoouurrnnii

 Certaines  distributions  de  PPP  semblent  avoir  perdu  le  fichier
 options.tpl, donc voici le fichier  complet.  Je  suggere  de  NE  PAS
 editer ce fichier pour creer votre fichier(s) /etc/ppp/options. Copiez
 plutot celui-ci dans un nouveau fichier et editez-le  alors.  Si  vous
 vous  trompez  dans  votre  edition,  vous pourrez toujours revenir en
 arriere en recommencant sur l'original.

 ______________________________________________________________________
 # /etc/ppp/options -*- sh -*- fichiers d'options generales pour pppd
 # cree le 13-Jul-1995 jmk
 # autodate: 01-Aug-1995
 # autotime: 19:45
 # adaptation francaise par Antoine Levavasseur [email protected]

 # Utilise l'executable ou la commande shell specifiee pour configurer la ligne
 # serie. Ce script va en fait utiliser le programme "chat" pour appeler le
 # modem et le debut de la liaison distante ppp.
 #connect "echo Vous devez installer une commande connect."

 # Lance l'executable ou la commande shell specifie, une fois que ppp a termine
 # la liaison. Ce script va, par exemple, envoyer les commandes au modem pour le
 # faire raccrocher si les signaux de controles materiels ne sont pas
 # disponibles.
 #disconnect "chat -- \d+++\d\c OK ath0 OK"

 # table de caractere async -- 32-bit hex; chacun des bit est un caractere qui
 # doit etre echappe pour que pppd le recoive.  0x00000001 represente '\x01',
 # et 0x80000000 represente '\x1f'.
 #asyncmap 0

 # Demande a votre correspondant de s'authentifier avant de pouvoir envoyer ou
 # recevoir des paquets reseaux
 #auth

 # Utilise le controle de flux materiel (i.e. RTS/CTS) pour controler le flux
 # de donnees du port serie
 #crtscts

 # Utilise le controle de flux logiciel (i.e. XON/XOFF) pour controler le flux
 # de donnees du port serie.
 #xonxoff
 # Ajouter une route par defaut aux tables de routage systeme, pour utiliser
 # votre correspondant comme gateway, lorsque la negociation ICP reussi. Cette
 # entree est supprimee lorsque la connexion PPP se termine.
 #defaultroute

 # Specifie que certains caracteres doivent etre echapes sur la transmission
 # (en fonction de la facon dont le client souhaite qu'ils soient echappes avec
 # la table de controle async). Les caracteres qui sont echappes sont specifies
 # comme une liste de nombres hexa separes par des guillemets. La plupart des
 # caracteres peuvent etres specifies avec l'option escape, a moins que l'option
 # asyncmap soit activee puisque dans ce cas seuls les caracteres de controle
 # peuvent etres specifies. Les caracteres qui ne peuvent etre echapes ont les
 # valeurs hexa 0x20 - 0x3f ou 0x5e.
 #escape 11,13,ff

 # Ne pas utiliser les lignes de controle du modem
 #local

 # Specifie que pppd doit utiliser un verouillage du peripherique serie style
 # UUCP pour s'en assurer un acces exclusif.
 #lock

 # Utilise les lignes de controle du modem. Sur un Ultrix, cette option implique
 # un controle de flux materiel, comme avec l'option crtscts. (Cette option
 # n'est pas completement implementee.)
 #modem

 # Definit la valeur MRU [Unite de Reception Maximum] a n pour la negociation.
 # pppd demandera alors de se faire renvoyer les paquets pour au plus <n> octets
 # La valeur MRU minimale est de 128. La valeur par defaut est 1500. La valeur
 # 296 est recommandee pour les liaisons lentes (40 octets pour l'entete TCP/IP
 # + 256 octets de donnees).
 #mru 542

 # Definit le masque reseau avec <n> qui est un masque reseau 32 bit en
 # "chiffres decimaux" note (e.g 255.255.255.0).
 #netmask 255.255.255.0

 # Desactive le comportement par defaut lorsque aucune adresse IP n'est
 # specifiee, et qu'elle est determine (quand c'est possible) a partir du
 # hostname. Avec cette option, votre correspondant devra vous fournir votre
 # adresse IP locale pendant la negotiation IPCP (a moins que cela ne soit
 # specifie explicitement dans la ligne de commande ou un fichier d'options)
 #noipdefault

 # Active l'option passive sur le LCP. Avec cette option, pppd, essayera
 # d'initier la connexion; si aucune reponse n'est recue de votre correspondant,
 # pppd attendra passivement un packet LCP (au lieu de s'arreter comme il fait
 # sans cette option)
 #passive

 # Avec cette option, pppd ne va pas transmettre les paquets LCP pour
 # initialiser la connexion tant qu'un paquet LCP valide n'est pas envoye
 # par votre correspondant (comme avec l'option "passive" pour des versions
 # plus anciennes de pppd).
 #silent

 # Ne requiert et ne permet pas de negociation pour n'importe quelle option de
 # LCP et IPCP (utilise  les valeurs par defaut).
 #-all

 # Desactive la negociation de la compression d'adresses/controle (utilise les
 # reglages par defaut, i.e. le champ adresse/controle desactive)
 #-ac

 # Desactive la negociation asyncmap (utilise le reglage asyncmap par defaut,
 # i.e. echappement de tout les caracteres de controle)
 #-am

 # Ne forke pas pour devenir un processus en tache de fond (sinon pppd le fera
 # si un peripherique serie est specifie).
 #-detach

 # Desactive la negociation d'adresses IP (avec cette option, l'adresse IP
 # distante doit etre specifiee avec une option en ligne de commande ou dans
 # un fichier d'options).
 #-ip

 # Desactive la negociation des nombres magiques. Avec cette option, pppd ne
 # peut pas detecter une ligne avec une boucle.
 #-mn

 # Desactive la negociation MRU [Unite de Reception Maximum] (utilise la valeur
 # par defaut, i.e. 1500).
 #-mru

 # Desactive la negociation du protocole de compression par champ (utilise la
 # valeur par defaut, i.e le protocole de compression par champs desactive)
 #-pc

 # Impose a votre corresondant de s'autentifier avec PAP. Cela necessite une
 # authentification des DEUX COTES - NE PAS utiliser pour une liaison standard
 # authentifiee par PAP vers un FAI puisqu'il faudra que la machine du FAI
 # soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
 #+pap

 # Refuse d'utiliser l'authentification avec PAP.
 #-pap
 # Oblige votre correspondant a s'authentifier avec une authentification
 # CHAP [Cryptographic Handshake Authentication Protocol]
 # Cela necessite une authentification des DEUX COTES - ne PAS utiliser pour une
 # liaison avec un FAI puisqu'il faudra que la machine du FAI
 # soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
 #+chap

 # Refuse d'utiliser l'authentification avec CHAP.
 #-chap

 # Desactive la negociation de la compression de l'entete IP style Van Jacobson
 # (utilise la valeur par defaut, i.e. pas de compression).
 #-vj
 # Augmente de niveau de deboguage (comme -d). Si cette option est passee, pppd
 # enverra dans le log le contenu de tous les paquets de controle envoyes ou
 # recus dans une forme lisible. Les paquets seront envoyes dans syslog avec les
 # possibilites des daemons et du niveau de deboguage. Ces informations peuvent
 # etre diriges dans un fichier en configurant /etc/syslog.conf correctement
 # (voir syslog.conf(5)). (Si pppd est compile avec des options de deboguage
 # supplementaires, il enverra les messages de log dans local2 au lieu du
 # daemon).
 #debug

 # Ouvre le nom de domaine <d> pour permettre l'authentification de nom d'hote
 # local. Par exemple, si gethostname() retourne le nom porsche,
 # mais le nom de domaine qualifie est porsche.Quotron.COM, vous devriez
 # utiliser l'option domain pour mettre le nom de domaine a Quotron.COM.
 #domain <d>

 # Active le code de deboguage du pilote PPP au niveau du noyau. L'argument n
 # est un nombre qui est la somme des valeurs suivantes : 1 active les messages
 # de deboguage generaux, 2 pour que le contenu des paquets recus soient
 # affiches, et 4 pour que le contenu des paquets envoyes soient affiches.
 #kdebug n

 # Configure la valeur MTU [Unitee de Transmission Maximum] a <n>. A moins
 # que votre correspondant ne demande une valeur plus petite lors de la
 # negociation MRU, pppd demande que les codes reseaux du noyau envoie des
 # paquets d'au plus n octets dans l'interface reseau PPP.
 #mtu <n>

 # Definit le nom du systeme local avec <n> dans un but d'authentification.
 # Cela doit certainement avoir ete configure avec votre nom utilisateur de votre
 # FAI si vous utilisez PAP/CHAP.
 #name <n>

 # Definit le nom utilisateur avec <u> pour l'authentification avec le
 # correspondant utilisant PAP .
 # Ne pas utiliser si vous utilisez le 'name' au-dessus !
 #user <u>

 # Force l'utilisation du nom d'hote comme nom du systeme local pour les
 # authentification (masque l'option name).
 #usehostname

 # Configure le nom du systeme distant pour les authentifications a <n>.
 #remotename <n>

 # Ajoute une entree au systeme des tables ARP [Protocole de Resolution
 # d'Adresses] avec l'adresse IP de votre correspondant et l'adresse Ethernet
 # de ce syteme.
 #proxyarp

 # Utilise le systeme de base de donnes de mots de passe pour l'authentification
 # de votre correspondant avec PAP.
 #login
 # Si cette option est passee, pppd va envoyer une requete-echo LCP a votre
 # correspondant toutes les n secondes. Sous Linux, une requete-echo est envoyee
 # lorsqu'aucun paquet n'a ete recu du correspondant depuis n secondes.
 # Normalement, le correspondant doit repondre a la requete-echo en envoyant une
 # reponse-echo. Cette option peut etre utilise avec l'option lcp-echo-failure
 # pour detecter que le correspondant n'est plus connecte.
 #lcp-echo-interval <n>

 # Si cette option est passe, pppd va supposer que le correspondant est mort
 # si n requetes-echo LCP sont envoyees sans recevoir de reponse-echo LCP
 # valide. Si cela arrive, pppd va terminer la connexion. Utiliser cette option
 # necessite une valeur non nulle pour le parametre lcp-echo-interval.
 # Cette option peut etre utilisee pour permettre a pppd de terminer une fois
 # qu'une connexion pppd ait ete cassee (c.-a-d. le modem a ete raccroche) dans
 # les situations ou aucune ligne de controle materiel du modem n'est
 # disponibles
 #lcp-echo-failure <n>

 # Definit l'intervale relance LCP (delay de retransmission) a <n> secondes
 # (defaut 3).
 #lcp-restart <n>

 # Definit le nombre maximal de transmission de requete-fin de LCP a <n>
 # (defaut 3).
 #lcp-max-terminate <n>

 # Definit la nombre maximum de transmission de requete-configure LCP a <n>
 # (defaut 10).
 # Certains serveurs PPP sont lents a demarrer. Vous devrez alors augmenter
 # ceci si vous avez des erreurs 'serial line looped back' et que vous etes
 # SUR que vous etes connecte correctement et que PPP doit demarrer sur le
 # serveur.
 #lcp-max-configure <n>

 # Definit le nombre maximum de retours LCP configure-NAKs avant de commencer
 # a envoyer des configure-Rejects a la place a <n> (defaut 10).
 #lcp-max-failure <n>

 # Definit l'intervale de relancce de IPCP (temps de retransmission) a <n>
 # secondes (defaut 3).
 #ipcp-restart <n>

 # Definit le nombre maximum de transmission de requete-fin IPCP a <n>
 # (defaut 3).
 #ipcp-max-terminate <n>

 # Definit la nombre maximum de transmission de requete-configure IPCP a <n>
 # (defaut 10).
 #ipcp-max-configure <n>

 # Definit la nombre maximem de retour configure-NAKs IPCP avant de commencer
 # a envoyer des configure-Rejects a la place a <n> (defaut 10).
 #ipcp-max-failure <n>

 # Definit l'intervalle de relance PAP (temps de retransmission) a <n> secondes
 # (defaut 3).
 #pap-restart <n>

 # Definit le nombre maximum de transmission de requete-d'authentification PAP
 # a n (defaut 10)
 #pap-max-authreq <n>

 # Definit les intervales de relance de CHAP (temps de retransmission) a <n>
 # secondes (defaut 3).
 #chap-restart <n>

 # Definit le nombre maximal d'essai de  transmission de CHAP a <n>
 # (defaut 10).
 #chap-max-challenge

 # Si cette option est passee, pppd va relancer votre correspondant toutes les
 # <n> secondes.
 #chap-interval <n>

 # Avec cette option, pppd va accepter la proposition de votre correspondant
 # pour votre adresse IP locale, meme si l'adresse IP est specifiee en option.
 #ipcp-accept-local

 # Avec cette option, pppd va accepter la proposition d'adresse IP (distante),
 # meme si l'adresse distante est specifiee en option.
 #ipcp-accept-remote
 ______________________________________________________________________

 1122..22..  QQuueelllleess ooppttiioonnss ddooiiss--jjee uuttiilliisseerr ?? ((SSaannss PPAAPP//CCHHAAPP))

 En fait,  comme  toujours,  ca  depend.  Les  options  specifiees  ici
 devraient marcher avec la plupart des serveurs.

 Cependant,   si   ca   NE  fonctionne  PAS  LISEZ  LE  FICHIER  MODELE
 (/etc/ppp/options.tpl) eett les pages de manuel de pppd  eett  demandez  a
 votre  administrateur/support  client  qui fait marcher le serveur sur
 lequel vous vous connectez.

 Je rappelle egalement que  les  scripts  de  connexion  presentes  ici
 utilisent  egalement  des  options  en  ligne de commande pour pppd et
 rendre les choses plus facilement modifiables.

 ______________________________________________________________________
 # /etc/ppp/options (NO PAP/CHAP)
 #
 # Empeche pppd de forker en tache de fond
 -detach
 #
 # utilise les lignes de controle du modem
 modem
 # utilise les verrous style uucp pour assurer une utilisation exclusive du
 # port serie
 lock
 # utilise le flux de controle materiel
 crtscts
 # creer une route par defaut pour cette connexion dans la table de routage
 defaultroute
 # ne configure aucune sequence de controle echapee
 asyncmap 0
 # utlise une taille maximale de paquet transmis de 552 octets
 mtu 552
 # utilise une taille maximale de paquets recus de 552 octets.
 mru 552
 #
 #-------FIN D'EXEMPLE /etc/ppp/options (sans PAP/CHAP)
 ______________________________________________________________________

 1133..  SSii vvoottrree sseerrvveeuurr PPPPPP uuttiilliissee PPAAPP ((PPaasssswwoorrdd AAuutthheennttiiffiiccaattiioonn  PPrroo--
 ttooccooll))

 Si  le  serveur  sur  lequel  vous  vous   connectez   a   besoin   de
 l'authentification  PAP  ou  CHAP,  vous  avez  un  petit  peu plus de
 travail.

 Pour les fichiers de  configuration  precedents,  ajouter  les  lignes
 suivantes :

 ______________________________________________________________________
 #
 # force pppd a utiliser le nom utilisateur de FAI comme 'nom d'hote' pendant
 # le processus d'authentification
 name <le nom de votre FAI>       # vous devez editer cette ligne
 #
 # Si vous avez un *serveur* PPP vous devez forcer PAP ou CHAP en decommentant
 # l'une des lignes suivantes. Ne pas les utiliser si vous etes un client qui
 # se connecte sur un serveur PPP (meme s'il utilise PAP ou CHAP) puisque cela
 # forcera le serveur a s'authentifier aupres de votre machine (alors que cela
 # ne sera certainement pas possible - et la liaison echouera).
 #+chap
 #+pap
 #
 # Si vous utilisez des secrets ENCRYPTES dans le fichier /etc/ppp/pap-secrets,
 # alors decommentez la ligne suivante.
 # Remarque: ce n'est pas pareil que d'utiliser les mots de passe MS encryptes
 # comme ils peuvent etres avec MS RAS sur Windows NT.
 #+papcrypt
 ______________________________________________________________________

 1133..11..  UUttiilliisseerr MMSSCCHHAAPP

 Microsoft  Windows  NT  RAS  peut  etre  configure  pour  utiliser une
 variation particuliere  de  CHAP  (Challenge/Handshake  Authentication
 Protocol).  Dans l'archive des sources de PPP, vous devriez trouver un
 fichier appele README.MSCHAP80 qui parle de cela.

 Vous pouvez determiner si  le  serveur  demande  une  authentification
 utilisant  ce  protocole  en  activant  le  deboguage dans pppd. Si le
 serveur demande une authentification MS CHAP, vous  devriez  voir  les
 lignes

 ______________________________________________________________________
 rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
 ______________________________________________________________________

 L'information critique ici est aauutthh cchhaapp 8800.

 Pour  utiliser MS CHAP, vous devez recompiler pppd. Veuillez consulter
 les instructions dans le fichier README.MSCHAP80 des  sources  de  PPP
 pour  obtenir  les  instructions sur la facon de compiler en utilisant
 cette variante.

 Vous devez remarquer que  le  code  present  supporte  uniquement  des
 clients  Linux  PPP  connectes  sur  un serveur MS Windows NT. Mais NE
 supporte PAS la configuration d'un serveur  PPP  Linux  pour  utiliser
 l'authentification MSCHAP80 pour les clients.

 1133..22..  LLee ffiicchhiieerr ddee sseeccrreettss ddee PPAAPP//CCHHAAPP

 Si  vous  utilisez  l'authentification  PAP  ou CHAP, alors vous devez
 creer les fichiers . Ce sont

 ______________________________________________________________________
 /etc/ppp/pap-secrets
 /etc/ppp/chap-secrets
 ______________________________________________________________________

 Il doivent etre possedes  par  rroooott,  le  groupe  rroooott  et  avoir  les
 permissions 740 pour la securite.

 Le  premier  point a remarquer au sujet de PAP et CHAP est qu'ils sont
 concus pour authentifier lleess oorrddiinnaatteeuurrss mais pas lleess uuttiilliissaatteeuurrss

 "Humm? Qu'est ce que ca change ? " Me demandez vous.

 He bien, une fois que l'ordinateur a etabli une connexion PPP avec  le
 serveur,  nn''iimmppoorrttee  qquueell  utilisateur  de votre systeme peut utiliser
 cette connexion - pas  seulement  vous.  C'est  pourquoi  vous  pouvez
 configurer  un  reseau  a large domaine en reliant deux reseaux locaux
 avec PPP.

 PAP peut (et CHAP DDOOIITT) demander une authentification bbiiddiirreeccttiioonnnneellllee
 -  c'est  un  nom  et  un  code  secret qui est necessaire pour chaque
 ordinateur avec lequel il est implique. Cependant,  ce  n'est  pas  la
 facon   dont   tous   les   serveurs   PPP  fonctionnent  pour  offrir
 l'authentification PAP des appels PPP.

 Il a ete  dit  que  votre  FAI  vous  donnerait  certainement  un  nom
 utilisateur  et  un mot de passe pour vous permettre de vous connecter
 sur son systeme et  ensuite  sur  Internet.  Votre  FAI  se  fiche  de
 connaitre  le nom de votre ordinateur, vous devrez donc utiliser votre
 nom utilisateur chez votre FAI comme nom pour votre machine.

 Cela est possible avec l'option name username de pppd. Donc,  si  vous
 utilisez le nom donne par votre FAI, ajoutez la ligne

 ______________________________________________________________________
 name votre_utilisateur nom_chez_votre_FAI
 ______________________________________________________________________

 dans votre fichier /etc/ppp/options.

 Techniquement,    vous    devrez   utiliser   user   votre_utilisateur
 nom_chez_votre_FAI pour PAP, mais pppd  est  suffisamment  intelligent
 pour  interpreter l'option name comme user si necessaire pour utiliser
 PAP. L'avantage d'utiliser l'option name  est  qu'elle  est  egalement
 valide pour CHAP.

 Puisque PAP permet d'authentifier les oorrddiinnaatteeuurrss, techniquement, vous
 devez aussi specifier un nom d'ordinateur distant. Toutefois, comme de
 nombreuses  personnes  ont plus d'un seul FAI, vous pouvez utiliser un
 caractere generique (*) pour  le  nom  d'ordinateur  distant  dans  le
 fichier de secrets.

 Il  est aussi interessant de remarquer que de nombreux FAI utilise des
 banques de modems  multiples  connectes  sur  differents  serveurs  de
 terminaux  -  tous ont un nom different, mais sont accessibles avec un
 seul numero d'appel. Il  peut  alors  etre  difficile  dans  certaines
 circonstances  de  savoir  a  l'avance quel est le nom de l'ordinateur
 distant, puisque cela dependra du serveur de terminal sur lequel  vous
 vous connecterez !

 1133..33..  LLee ffiicchhiieerr ddee sseeccrreettss ddee PPAAPP

 Le fichier /etc/ppp/pap-secrets ressemble a

 ______________________________________________________________________
 # Authentication Secrete avec PAP
 # client        serveur       secret     adresses_IP_locale_acceptable
 ______________________________________________________________________

 Les quatre champs sont separes par des espaces et le dernier peut etre
 omis (c'est l'adresse dynamique ou sans doute statique de votre  FAI).

 Supposons  que  votre FAI vous ait donne un nom utilisateur fred et un
 mot  de  passe  flintstone  vous  aurez  l'option   name   fred   dans
 /etc/ppp/options[.ttySx]  et  vous  configurerez  votre  /etc/ppp/pap-
 secrets comme suit

 ______________________________________________________________________
 # Authentication Secrete avec PAP
 # client        serveur       secret     adresses_IP_locale_acceptable
 fred            *       flintstone
 ______________________________________________________________________

 Cela signifie que pour une machine locale fred  (pppd  lui  impose  de
 s'appeler  comme cela meme si ca n'est pas son nom de machine reel) et
 pour nn''iimmppoorrttee  qquueell  serveur,  utiliser  le  mot  de  passe  (secret)
 "flintstone".

 Remarquez que vous ne devez pas specifier d'adresse IP locale, a moins
 que vous ne deviez FORCER une adresse  locale  statique  particuliere.
 Meme  si  vous  essayez  cette  option,  il y a peu de chances qu'elle
 marche puisque la plupart  des  serveurs  PPP  (pour  des  raisons  de
 securite) ne permettent pas au systeme distant de configurer l'adresse
 IP qu'ils recoivent.

 1133..44..  LLee ffiicchhiieerr ddee sseeccrreettss ddee CCHHAAPP

 Cette methode necessite une methode authentification mutuelle -  c'est
 a  dire  que  vous  devez  permettre a votre machine d'authentifier le
 serveur distant EETT le serveur distant d'authentifier votre machine.

 Donc, si votre machine  s'appelle  fred  et  que  le  serveur  distant
 s'appelle  barney il faut definir sur fred name fred remotename barney
 et sur la machine  distante  name  barney  remotename  fred  dans  les
 fichiers /etc/ppp/options.ttySx respectifs.

 Le fichier /etc/chap-secrets de fred ressemblera a

 ______________________________________________________________________
 # Authentication Secrete avec CHAP
 # client        serveur       secret     adresses_IP_locale_acceptable
 fred            barney      flintstone
 barney          fred        wilma
 ______________________________________________________________________

 et pour barney

 ______________________________________________________________________
 # Authentication Secrete avec CHAP
 # client        serveur       secret     adresses_IP_locale_acceptable
 barney          fred    flintstone
 fred            barney  wilma
 ______________________________________________________________________

 Remarquez  en  particulier  que  les  deux  machines doivent avoir des
 entrees pour une authentification bidirectionnelle. Cela permet  a  la
 machine  locale  d'authentifier  elle-meme  la  machine distante EETT la
 machine distante d'authentifier elle-meme la machine locale.

 1133..55..  SSuuppppoorrtteerr pplluussiieeuurrss ccoonnnneexxiioonnss aauutthheennttiiffiieeeess aavveecc PPAAPP

 Certains  utilisateurs  ont  plus  d'un  serveur  sur  lesquels ils se
 connectent  en  utilisant  PAP.  A  partir  du  moment  ou  votre  nom
 utilisateur est different sur chacune des machines sur lesquelles vous
 vous connectez, il n'y a pas de probleme.

 Mais, nombreux sont les utilisateurs qui ont le meme  nom  utilisateur
 sur deux (ou plus, voire meme tous les) systemes ou ils se connectent.
 Le  probleme  revient  donc  a  choisir  la  bonne  ligne  du  fichier
 /etc/ppp/pap-secrets.

 Comme  vous  pouvez  le supposer, PPP fournit un mecanisme pour regler
 cela.  PPP permet de definir un  <<  pseudonyme  >>  pour  le  serveur
 distant  final  de  la  connexion  en utilisant l'option rreemmootteennaammee de
 pppd.

 Supposons que vous vous connectiez sur deux serveurs PPP utilisant  le
 meme  nom  utilisateur  fred.  Vous  configurerez  votre /etc/ppp/pap-
 secrets avec

 ______________________________________________________________________
 fred    pppserveur1      barney
 fred    pppserveur2      wilma
 ______________________________________________________________________

 Maintenant, pour se connecter sur  pppserveur1  vous  utiliserez  name
 fred  remotename pppserver1 dans votre ppp-options et pour pppserveur2
 name fred remotename pppserver2.

 Puisque vous pouvez selectionner le fichier d'options a utiliser  avec
 pppd  en  utilisant  l'option  file  filename,  vous pouvez definir un
 script pour se connecter sur chacun de vos serveurs PPP, qui  choisira
 le fichier d'options correct et mettra la bonne option remotename.

 1144..  CCoonnffiigguurreerr uunnee ccoonnnneexxiioonn PPPPPP aa llaa mmaaiinn

 Maintenant  que  vous  avez  cree  les  fichiers  /etc/ppp/options  et
 /etc/resolv.conf (et si besoin le fichier  /etc/ppp/pap/chap-secrets),
 vous  pouvez  tester les parametres en etablissant une connexion PPP a
 la  main.  (Une  fois  que  la  connexion  manuelle   marchera,   nous
 automatiserons le processus).

 Pour  ce  faire,  votre  programme  de communication doit pouvoir etre
 quitte sans reinitialiser le modem. Minicom peut le faire  avec  Alt-Q
 (ou dans les versions plus ancienne de minicom CTRL-A Q)

 Verifiez que vous etes rroooott.

 Lancez le programme de communication (minicom par exemple), appelez le
 serveur PPP et connectez-vous comme d'habitude. Si  vous  avez  besoin
 d'envoyer  une  commande  pour demarrer PPP sur le serveur, faites-le.
 Vous devriez maintenant voir les messages que vous aviez deja vus.

 Si vous utilisez PAP ou CHAP, se connecter simplement sur  le  systeme
 distant  devrait  demarrer  PPP  et  vous  devriez voir des caracteres
 s'afficher sans toutefois se connecter (meme si ca peut ne pas marcher
 sur  certains  serveurs  -  essayez  alors d'appuyer sur EEnnttrreeee et les
 caracteres devraient s'afficher).

 Maintenant quittez le programme de communication _s_a_n_s  _i_n_i_t_i_a_l_i_s_e_r  _l_e
 _m_o_d_e_m  (ALT-Q  ou  CTRL-A  Q  dans minicom) et au message d'accueil de
 Linux (etant rroooott) tapez

 ______________________________________________________________________
 pppd -d -detach /dev/ttySx 38400 &
 ______________________________________________________________________

 L'option -d active le deboguage - la conversation de demarrage  de  la
 connexion  ppp  sera  retranscrite dans votre journal systeme - ce qui
 est tres utile si des problemes apparaissent.

 Les lumieres de votre  modem  devraient  alors  clignoter  puisque  la
 connexion PPP est etablie. Cela peut prendre un peu de temps avant que
 la connexion soit terminee.

 A ce niveau,  vous  pouver  afficher  l'interface  PPP  en  tapant  la
 commande :

 ______________________________________________________________________
 ifconfig
 ______________________________________________________________________

 En plus des eventuels peripheriques loopback et Ethernet, vous devriez
 avoir quelque chose qui ressemble a :

 ______________________________________________________________________
 ppp0     Link encap:Point-Point Protocol
          inet addr:10.144.153.104  P-t-P:10.144.153.51 Mask:255.255.255.0
          UP POINTOPOINT RUNNING  MTU:552  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0
 ______________________________________________________________________

 Ou

 +o  inet addr:10.144.153.10 est l'adresse IP de votre connexion.

 +o  P-t-P:10.144.153.5 est l'adresse IP du serveur.

 (Naturellement, ifconfig ne renvoie pas ces nombres la, mais ceux  qui
 sont utilises par le serveur PPP.)

 Remarque  :  ifconfig  indique  egalement que votre liaison fonctionne
 correctement !

 Si vous aucun peripherique PPP n'est affiche ou quelque chose du genre

 ______________________________________________________________________
 ppp0     Link encap:Point-Point Protocol
          inet addr:0.0.0.0  P-t-P:0.0.0.0  Mask:0.0.0.0
          POINTOPOINT  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0
 ______________________________________________________________________

 Votre  liaison  PPP n'est pas correcte... voir la section suivante sur
 le debuggage !
 Vous devez aussi pouvoir voir une route vers l'hote distant  (et  meme
 plus).  Pour cela, entrez la commande

 ______________________________________________________________________
 route -n
 ______________________________________________________________________

 Vous devriez obtenir quelque chose comme :

 ______________________________________________________________________
 Kernel routing table
 Destination     Gateway         Genmask         Flags MSS    Window Use Iface
 10.144.153.3    *               255.255.255.255 UH    1500   0        1 ppp0
 127.0.0.0       *               255.0.0.0       U     3584   0       11 lo
 10.0.0.0        *               255.0.0.0       U     1500   0       35 eth0
 default         10.144.153.3    *               UG    1500   0        5 ppp0
 ______________________________________________________________________

 Ce  qui  est  important  ici, c'est d'avoir DEUX entrees pointant vers
 votre interface ppp.

 La premiere est une route d'hote (indique par le  drapeau  H)  et  qui
 permet de voir l'hote sur lequel vous etes connecte - mais pas plus.

 La seconde est la route par defaut (etablie en donnant a pppd l'option
 defaultroute).  C'est  cette  route  qui  indique  a  votre  PC  Linux
 d'envoyer  tous  les paquets qui ne sont pas destines a vos interfaces
 Ethernet - vers lesquelles vous avez des routes reseau  specifiques  -
 au  serveur  PPP  lui-meme.   Le  serveur PPP est alors responsable de
 router vos paquets vers Internet et de vous renvoyer les paquets  chez
 vous.

 Si  vous  ne voyez pas une table de routage avec deux entrees, quelque
 chose ne marche pas. En  particulier  si  votre  syslog  contient  des
 messages  indiquant que pppd ne remplace pas la route par defaut, vous
 devez avoir une route  par  defaut  qui  pointe  sur  votre  interface
 Ethernet  -  qui DDOOIITT etre remplacee par une route reseau specifique :
 VVOOUUSS NNEE PPOOUUVVEEZZ AAVVOOIIRR QQUU''UUNNEE SSEEUULLEE RROOUUTTEE PPAARR DDEEFFAAUUTT !!!!!!

 Vous devez explorer vos fichiers  d'initialisation  de  votre  systeme
 pour  trouver  ou  est  configure  votre  route  par defaut (elle doit
 utiliser la commande route add default...). Changer cette commande par
 quelque chose du genre route add net ....

 Maintenant  testez  la  liaison en 'pingant' le serveur a l'adresse IP
 affiche par ifconfig, comme suit :

 ______________________________________________________________________
 ping 10.144.153.51
 ______________________________________________________________________

 Vous devriez obtenir

 ______________________________________________________________________
 PING 10.144.153.51 (10.144.153.51): 56 data bytes
 64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
 64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
 64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
 64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
 ______________________________________________________________________

 Ce listing doit continuer sans jamais s'arreter  -  pour  le  stopper,
 taper CTRL C, vous recevrez alors des informations complementaires :

 ______________________________________________________________________
 --- 10.144.153.51 ping statistics ---
 4 packets transmitted, 4 packets received, 0% packet loss
 round-trip min/avg/max = 170.7/219.2/328.3 ms
 ______________________________________________________________________

 Jusqu'ici tout va bien, jusqu'ici tout va bien.

 Maintenant, essayez de pinger un nom d'hote (pas le nom du serveur PPP
 lui-meme) mais un hote d'un autre site dont vous SAVEZ qu'il  y  a  de
 tres fortes chances qu'il marche...). Par exemple

 ______________________________________________________________________
 ping sunsite.unc.edu
 ______________________________________________________________________

  _o_u _l_i_p_6_._f_r

 Dans  ce  cas,  il  va  y  avoir  une  petite pause le temps que Linux
 obtienne l'adresse IP du nom de hote que vous avez 'pinge' par le  DNS
 que  vous  avez  specifie dans le /etc/resolv.conf - ne vous inquietez
 pas (les lumieres de votre  modem  devraient  clignoter).  Rapidement,
 vous devriez avoir l'affichage suivant

 ______________________________________________________________________
  PING sunsite.unc.edu (152.2.254.81): 56 data bytes
 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
 ______________________________________________________________________

 La   encore,   arretez   le   en   tapant  CTRL  C  pour  obtenir  les
 statistiques...

 ______________________________________________________________________
 --- sunsite.unc.edu ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max = 169.8/176.3/190.1 ms
 ______________________________________________________________________

 Si vous n'avez pas de reponse, essayer de pinger  l'adresse  de  votre
 serveur  DNS  de  votre  FAI. Si vous n'avez pas de resultat, alors il
 doit y avoir un probleme avec votre /etc/resolv.conf.

 Si ca ne fonctionne pas, vous devez avoir un probleme de  routage,  ou
 votre  FAI  a  un  probleme  a vous renvoyer les paquets. Verifiez les
 tables de routages presentees plus haut et si tout est  OK,  contacter
 votre FAI. Si cela se trouve apres votre FAI, alors le probleme est de
 votre cote.

 Si tout marche correctement, fermez la connexion en tapant

 ______________________________________________________________________
 ppp-off
 ______________________________________________________________________

 Apres une courte pause, le modem devrait raccrocher.

 Si ca ne marche pas, soit vous eteignez votre modem, soit vous  lancez
 votre  programme de communication et vous interrompez votre modem avec
 +++ puis vous raccrochez avec ATH0 quand vous recevez le message OK de
 votre modem.

 Vous devez egalement effacer le fichier cree par pppd

 ______________________________________________________________________
 rm -f /var/lock/LCK..ttySx
 ______________________________________________________________________

 1155..  AAuuttoommaattiisseerr vvoottrree ccoonnnneexxiioonn -- CCrreeeerr lleess ssccrriippttss ddee ccoonnnneexxiioonn

 Meme si vous pouvez continuer a vous connecter a la main comme  montre
 ci-dessus il est plus sympa de faire quelques scripts pour automatiser
 tout ca.

 Quelques scripts vont automatiser la connexion et le lancement de PPP,
 vous n'aurez alors plus qu'a envoyer une seule commande (en etant rroooott
 ou membre du groupe PPP) pour lancer votre connexion.

 1155..11..  SSccrriippttss  ddee  ccoonnnneexxiioonn  ppoouurr  ll''aauutthheennttiiffiiccaattiioonn  nnoomm  uuttiilliissaa--
 tteeuurr//mmoott ddee ppaassssee

 Si votre FAI n'a pas besoin  d'utiliser  PAP/CHAP,  ces  scripts  sont
 faits pour vous !
 Si  le  paquetage ppp est correctement installe, vous devez avoir deux
 fichiers d'exemple. Pour PPP 2.1.2 il sont dans /usr/sbin et pour  PPP
 2.2 il sont dans /etc/ppp/scripts. Ils s'appellent

 pour PPP-2.1.2

      ppp-on
      ppp-off

 et pour PPP 2.2

      ppp-off
      ppp-on
      ppp-on-dialer

 Maintenant,  si  vous  utilisez PPP 2.1.2, je vous presse fermement de
 detruire ces fichiers d'exemple. Il y a pleins de problemes potentiels
 avec  ceux-ci  -  et ne me dites pas qu'ils marchent correctement - je
 les ai egalement utilise pendant des annees (et les recommandait  meme
 dans la premiere version de ce HOWTO) !

 Pour  les  utilisateurs de PPP 2.1.2, voici de BIEN MEILLEURS modeles,
 pris dans la distribution 2.2 de PPP. Je vous conseille de les  copier
 et d'utiliser ces scripts a la place des anciens de PPP-2.1.2.

 1155..22..  LLee ssccrriipptt pppppp--oonn

 C'est le premier des DEUX scripts qui lance la connexion.

 ______________________________________________________________________
 #!/bin/sh
 #
 # Script pour initialiser une connexion PPP. C'est la premiere partie de deux
 # scripts. Ce ne sont pas des scripts securises, puisque les codes sont
 # visibles avec la commande 'ps'. Cependant ils sont simples.
 #
 # Ce sont des parametres a changer selon les besoins
 TELEPHONE=555-1212    # Le numero de telephone de la connexion
 ACCOUNT=george        # Le nom du compte (comme dans 'George Burns')
 PASSWORD=gracie       # Le mot de passe du compte (et 'Gracie Allen')
 LOCAL_IP=0.0.0.0      # L'adresse IP locale si elle est connue Dynamic = 0.0.0.0
 REMOTE_IP=0.0.0.0     # Adresse IP distante. Normally 0.0.0.0
 NETMASK=255.255.255.0 # Le masque reseau si besoin
 #
 # Les exporter pour qu'ils soit disponible avec 'ppp-on-dialer'
 export TELEPHONE ACCOUNT PASSWORD
 #
 # C'est l'emplacement du script qui compose le numero et se connecte.
 # Utilisez les noms de fichiers absolus, car la variable $PATH n'est pas
 # utilisee avec l'option connect. (Faire ca en etant 'root' entraine un
 # trou de securite.)
 #
 DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
 #
 # Commencer la connexion
 #
 #
 exec /usr/sbin/pppd debug /dev/ttySx 38400 \
         $LOCAL_IP:$REMOTE_IP \
         connect $DIALER_SCRIPT
 ______________________________________________________________________

 Voici le script ppp-on-dialer :

 ______________________________________________________________________
 #!/bin/sh
 #
 # C'est la deuxieme partie du script ppp-on. Il contient le protocole de
 # connexion de la connexion desiree.
 #
 /usr/sbin/chat -v                                                 \
         TIMEOUT         3                               \
         ABORT           '\nBUSY\r'                      \
         ABORT           '\nNO ANSWER\r'                 \
         ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
         ''              \rAT                            \
         'OK-+++\c-OK'   ATH0                            \
         TIMEOUT         30                              \
         OK              ATDT$TELEPHONE                  \
         CONNECT         ''                              \
         ogin:--ogin:    $ACCOUNT                        \
         assword:        $PASSWORD
 ______________________________________________________________________

 Avec PPP-2.2, le script ppp-off ressemble a :

 ______________________________________________________________________
 #!/bin/sh
 ######################################################################
 #
 # Determine le peripherique a terminer.
 #
 if [ "$1" = "" ]; then
         DEVICE=ppp0
 else
         DEVICE=$1
 fi

 ######################################################################
 #
 # Si le fichier pid ppp0 est present alors le programme est lance. Le stopper.
 if [ -r /var/run/$DEVICE.pid ]; then
         kill -INT `cat /var/run/$DEVICE.pid`
 #
 # Si le kill ne marche pas, alors il n'y a pas de processus lance pour ce pid.
 # Cela peut signifier que le fichier de lock a ete laisse. Vous souhaitez
 # peut-etre detruire le fichier de lock en meme temps.
         if [ ! "$?" = "0" ]; then
                 rm -f /var/run/$DEVICE.pid
                 echo "ERROR: Removed stale pid file"
                 exit 1
         fi
 #
 # Succes. pppd a enlever tout ce qu'il avait cree.
         echo "PPP link to $DEVICE terminated."
         exit 0
 fi
 #
 # Le processus ppp ne marche pas pour ppp0
 echo "ERROR: PPP link is not active on $DEVICE"
 exit 1
 ______________________________________________________________________

 1155..33..  EEddiitteerr lleess ssccrriippttss ddee ddeemmaarrrraaggee ddee PPPPPP ffoouurrnniiss

 Puisque  les  nouveaux  scripts  sont en deux parties, nous allons les
 editer chacun leur tour.

 1155..33..11..  LLee ssccrriipptt pppppp--oonn

 Vous devez editer ces fichiers pour contenir VOTRE nom utilisateur  de
 votre  FAI, VOTRE mot de passe de votre FAI, et le numero de telephone
 de votre FAI.

 Chacune des lignes ressemblant a TELEPHONE= definissent  une  variable
 du  shell  contenant les informations a droite du '=' (mise a part les
 commentaires evidemment). Editer donc toutes les lignes de ce  fichier
 pour qu'il corresponde a votre FAI et votre connexion.

 De plus, si vous configurez l'adresse IP (si vous avez besoin) dans le
 fichier /etc/ppp/options, DETRUISEZ les lignes mentionnant

 ______________________________________________________________________
 $LOCAL_IP:$REMOTE_IP \
 ______________________________________________________________________

 Assurez-vous egalement que la variable shell DIALER_SCRIPT pointe  sur
 le  chemin  complet  du  script  d'appel  qui sera reellement utilise.
 Ainsi, si vous deplacez ou renommez ce script, assurez-vous  que  vous
 modifier correctement cette ligne dans le script ppp-on !

 1155..33..22..  LLee ssccrriipptt pppppp--oonn--ddiiaalleerr

 C'est le deuxieme des scripts qui lance votre liaison PPP.

 Remarque : un script chat est normalement sur une ligne complete.  Les
 backslashs sont utilises pour permettre a la ligne de se repartir  sur
 plusieurs  lignes  physiques  (pour une lisibilite plus humaine) et ne
 font pas partie du script lui-meme.

 Cependant, il est tres utile de le regarder en detail, comme cela nous
 comprenons ce qu'il est reellement suppose faire !

 1155..44..  CCee qquuee ssccrriipptt CChhaatt ssiiggnniiffiiee......

 Un  script  chat est une sequence de paires de "chaines d'attentes" et
 de "chaines d'envoi ". En particulier, remarquez  que  nous  attendons
 TTOOUUJJOOUURRSS quelque chose avant d'envoyer quoi que ce soit.

 Si nous envoyons quelque chose SSAANNSS avoir rien recu avant, nous devons
 attendre une chaine vide avant (indiquee par un  "")  Et  de  la  meme
 maniere  attendre quelque chose sans avoir rien envoye ! Ainsi, si les
 chaine consistent en quelques mots, (c.-a-d. NO CARRIER),  vous  devez
 entourez  les  chaines  par des quotes pour qu'elles soient vues comme
 une seule entite par chat.

 La ligne chat de notre modele est :

 ______________________________________________________________________
 exec /usr/sbin/chat -v
 ______________________________________________________________________

 Invoque chat, le -v indique a chat de mettre toutes ses entree/sorties
 dans le journal systeme (generalement /var/log/messages). Une fois que
 votre script chat marchera correctement, editez cette ligne et enlevez
 le -v pour economiser des messages inutiles dans votre syslog.

 ______________________________________________________________________
 TIMEOUT         3
 ______________________________________________________________________

 Ca  definit  un  temps  d'attente de trois secondes avant la reception
 d'une entree attendue. Vous devrez l'augmenter a 5 ou 10  secondes  si
 vous utilisez un modem extremement lent !
 ______________________________________________________________________
 ABORT           '\nBUSY\r'
 ______________________________________________________________________

 Si la chaine BUSY est recue, abandonner l'operation.

 M

 ______________________________________________________________________
 ABORT           '\nNO ANSWER\r'
 ______________________________________________________________________

 Si la chaine NO ANSWER est recue, abandonner l'operation.

 ______________________________________________________________________
 ABORT           '\nRINGING\r\n\r\nRINGING\r'
 ______________________________________________________________________

 Si  la  chaine  RINGING  est  recue  de  maniere  repetee,  abandonner
 l'operation.  C'est parce que quelqu'un vous appelle !

 ______________________________________________________________________
 "              \rAT
 ______________________________________________________________________

 Ne rien attendre du modem et envoyer la chaine AT.

 ______________________________________________________________________
 OK-+++\c-OK   ATH0
 ______________________________________________________________________

 C'est un petit plus complique car cela utilise certaines capacites  de
 chat a recuperer les erreurs.

 Ca  veux  dire...Expect  OK, si on ne l'a pas recu (parce que le modem
 n'est pas en ligne de commande) alors envoyer +++ (la chaine  standard
 des  modems  compatible  Hayes pour retourner en ligne de commande) et
 attendre OK.  Ensuite envoyer ATH0 (la chaine pour  raccrocher).  Cela
 permet  au  script  de  repondre  a  la situation ou votre modem avait
 laisse la ligne decrochee !

 ______________________________________________________________________
 TIMEOUT         30
 ______________________________________________________________________

 Mettre le temps d'attente a 30 secondes pour le reste  du  script.  Si
 vous  avez  des  soucis  avec  des  abandons du script chat a cause de
 timeout, augmentez cette valeur a 45 secondes ou plus.
 ______________________________________________________________________
 OK              ATDT$TELEPHONE
 ______________________________________________________________________

 Attends un OK (la reponse du modem a la commande ATH0) et  compose  le
 numero que nous voulez appeler.

 ______________________________________________________________________
 CONNECT         ''
 ______________________________________________________________________

 Attendre  CONNECT(ce que le modem nous envoie lorsque le modem distant
 decroche) et n'envoie rien en reponse.

 ______________________________________________________________________
 ogin:--ogin:    $ACCOUNT
 ______________________________________________________________________

 Une fois encore nous avons une recuperation d'erreur ici. Attendre  le
 message  de  login  (...ogin:) mais si nous ne le recevons pas au bout
 d'un certain temps, envoyer un retour chariot et attendre une nouvelle
 fois  le message de login. Lorsque le message est recu, envoyer le nom
 utilisateur (stocke dans la variable shell $ACCOUNT).

 ______________________________________________________________________
 assword:        $PASSWORD
 ______________________________________________________________________

 Attendre le message du mot de passe et envoyer le  mot  de  passe  (la
 aussi stocke dans une variable shell).

 Ce  script  chat  a une capacite de recuperation d'erreurs resonnable.
 Chat possede bien d'autres possibilites  que  celles  detailles.  Pour
 plus d'informations, consulter la page de manuel de chat (man 8 chat).

 1155..44..11..  DDeemmaarrrreerr PPPPPP ssuurr llee sseerrvveeuurr ffiinnaall

 Bien que le script ppp-on-dialer soit parfait pour  les  serveurs  qui
 lancent  automatiquement  pppd  sur le serveur final une fois que vous
 etes connectes, certains serveurs necessitent  que  vous  lanciez  PPP
 explicitement sur le serveur.

 Si  vous avez besoin d'envoyer une commande de lancement de PPP sur le
 serveur, vous DEVEZ editer le script ppp-on-dialer.

 A la fin du script (apres la ligne password) ajouter une paire aatttteennttee
 eennvvooii  en  plus  -  elle  cherchera  un message de login (une suite de
 caracteres qui ont une signification particuliere dans le shell Bourne
 - comme $ et  ou  (les crochets ouverts et fermes).

 Une  fois  que  chat a obtenu le prompt du shell, chat doit envoyer la
 commande de demarrage de ppp necessaire sur le serveur  PPP  de  votre
 FAI.

 Pour ma part, mon serveur PPP utilise un prompt Bash standard

 ______________________________________________________________________
 [hartr@kepler hartr]$
 ______________________________________________________________________

 et necessite que je tapes

 ______________________________________________________________________
 ppp
 ______________________________________________________________________

 pour lancer ppp sur le serveur.

 Une  idee  judicieuse  peut  etre  d'ajouter  un  peu  de recuperation
 d'erreur, dans mon cas j'utilise

 ______________________________________________________________________
         hartr--hartr    ppp
 ______________________________________________________________________

 Cela signifie que si je ne recois pas le prompt dans le temps imparti,
 j'envoie  un  retour  chariot  et  je recherche le prompt une nouvelle
 fois.

 Une fois que le message est recu, j'envoie la chaine ppp.

 Remarque : n'oubliez  pas  d'ajouter  un  \  a  la  fin  de  la  ligne
 precedente  pour que chat pense que le script de connexion de chat est
 toujours sur une seule ligne !

 Malheureusement, certains serveurs generent un nombre de messages tres
 variable  !  Vous  aurez  peut-etre besoin de vous connecter plusieurs
 fois avec minicom pour comprendre comment ca marche et  recuperer  une
 chaine "d'attente" stable.

 1155..55..  UUnn ssccrriipptt cchhaatt ppoouurr lleess ccoonnnneeccttiioonnss aauutthheennttiiffiieeeess aavveecc PPAAPP//CCHHAAPP

 Si  votre  FAI utilise PAP/CHAP, alors votre script chat est bien plus
 simple. Tout ce que votre script chat doit faire est  de  composer  le
 numero,  attendre  la  connexion  et ensuite laisser pppd s'occuper du
 processus de connexion !

 ______________________________________________________________________
 #!/bin/sh
 #
 # C'est la deuxieme partie du script ppp-on. Il contient le protocole de
 # connexion de la connexion desiree.
 #
 exec /usr/sbin/chat -v                                  \
         TIMEOUT         3                               \
         ABORT           '\nBUSY\r'                      \
         ABORT           '\nNO ANSWER\r'                 \
         ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
         ''              \rAT                            \
         'OK-+++\c-OK'   ATH0                            \
         TIMEOUT         30                              \
         OK              ATDT$TELEPHONE                  \
         CONNECT         ''                              \
 ______________________________________________________________________

 1155..66..  LLeess ooppttiioonnss ddeebbuugg et file option_file de pppd

 Comme nous l'avons deja vu, vous pouvez activer  les  informations  de
 debuggage avec l'option -d de pppd. L'option 'debug' est equivalente a
 celle-ci.

 Puisque vous etablissez la connexion avec un nouveau  script,  laissez
 pour  le  moment  les informations de debuggage. (Attention : si votre
 espace disque est reduit, les echanges de connexion  de  pppd  peuvent
 rapidement augmenter votre fichier syslog et vous amener des problemes
 - mais pour aller jusque la, il faut que vous essayez et vous echouiez
 vos connexions un certain temps).

 Une fois que tout marche correctement, vous pouvez alors enlever cette
 option.

 Si vous avez appele votre  fichier  d'options  de  ppp  autrement  que
 /etc/ppp/options   ou  /etc/ppp/options.ttySx,  specifiez  le  nom  du
 fichier avec l'option file de pppd :

 ______________________________________________________________________
 exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
 ______________________________________________________________________

 1166..  TTeesstteezz vvoottrree ssccrriipptt ddee ccoonnnneexxiioonn

 Ouvrez un nouveau Xterm rroooott (si vous  etes  sous  X)  ou  ouvrez  une
 nouvelle console virtuelle et connectez vous comme rroooott.

 Dans cette nouvelle session, tapez la commande

      tail -f /var/log/messages

 (ou l'endroit exact ou se trouve le fichier log).

 Dans la premiere fenetre (ou console virtuelle), tapez la commande

      ppp-on &

 (ou  le  nom  que  vous  avez  donne  a  la  nouvelle version de votre
 /usr/sbin/ppp- on). Si vous ne mettez pas le script en tache  de  fond
 en  specifiant & en fin de commande, vous ne recupererez pas le prompt
 de votre terminal avant que ppp se  termine  (ou  que  la  liaison  se
 termine).

 Maintenant  revenez  dans  la  fenetre  ou vous affichez votre journal
 systeme.

 L'affichage devrait ressembler a ce qui suit (si  vous  avez  specifie
 l'option  -vi  a chat et -d a pppd )....c'est le deroulement du script
 chat et des reponses envoyees dans le fichier  journal  systeme  suivi
 des informations de demarrage de pppd :

 ______________________________________________________________________
 Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER)
 Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY)
 Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M)
 Oct 21 16:09:59 hwin chat[19868]: expect (OK)
 Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M
 Oct 21 16:10:00 hwin chat[19868]: OK -- got it
 Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M)
 Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT)
 Oct 21 16:10:00 hwin chat[19868]: ^M
 Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M
 Oct 21 16:10:22 hwin chat[19868]: CONNECT -- got it
 Oct 21 16:10:22 hwin chat[19868]: send (^M)
 Oct 21 16:10:22 hwin chat[19868]: expect (ogin:)
 Oct 21 16:10:23 hwin chat[19868]: kepler login: -- got it
 Oct 21 16:10:23 hwin chat[19868]: send (hartr^M)
 Oct 21 16:10:23 hwin chat[19868]: expect (ssword:)
 Oct 21 16:10:23 hwin chat[19868]:  hartr^M
 Oct 21 16:10:23 hwin chat[19868]: Password: -- got it
 Oct 21 16:10:23 hwin chat[19868]: send (??????^M)
 Oct 21 16:10:23 hwin chat[19868]: expect (hartr)
 Oct 21 16:10:24 hwin chat[19868]: [hartr -- got it
 Oct 21 16:10:24 hwin chat[19868]: send (ppp^M)
 Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0
 Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0
 Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <--> /dev/cua1
 Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1.
 Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure-Request, id 1
 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1.
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU
 Oct 21 16:10:27 hwin pppd[19873]: (1500)
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP
 Oct 21 16:10:27 hwin pppd[19873]: (0)
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER
 Oct 21 16:10:27 hwin pppd[19873]: (a098b898)
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK.
 Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1.
 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1.
 Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
 Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1.
 Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR
 Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51)
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE
 Oct 21 16:10:27 hwin pppd[19873]: (45)
 Oct 21 16:10:27 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure-ACK
 Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 1.
 Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
 Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
 Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255.
 Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR
 Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51)
 Oct 21 16:10:31 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE
 Oct 21 16:10:31 hwin pppd[19873]: (45)
 Oct 21 16:10:31 hwin pppd[19873]:  (ACK)
 Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure-ACK
 Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 255.
 Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1.
 Oct 21 16:10:31 hwin pppd[19873]: ipcp: up
 Oct 21 16:10:31 hwin pppd[19873]: local  IP address 10.144.153.104
 Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51
 ______________________________________________________________________

 (Remarque  - j'utilise les adresses IP STATIQUES - ma machine l'envoie
 au serveur PPP - vous ne verrez pas la meme chose si vous utilisez des
 adresses  IP  DYNAMIQUES.)  Ainsi,  le  server  necessite une commande
 specifique pour demarrer ppp a la fin.

 Ca semble OK - alors testez comme avant avec des ping des adresses  IP
 et des noms des hotes.

 Lancer  votre navigateur web ou n'importe quoi d'autre et allez surfer
 - vous etes connecte !

 1177..  TTeerrmmiinneerr uunnee ccoonnnneexxiioonn PPPPPP

 Quand vous en avez termine avec la liaison PPP, utilisez  la  commande
 standard  ppp-off  pour  la terminer (rappel - vous devez etre rroooott ou
 membre du groupe PPP ! ).

 Dans votre fichier journal  de  votre  systeme,  il  devrait  y  avoir
 quelque chose ressemblant a :

 ______________________________________________________________________
 Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating link
 Oct 21 16:10:45 hwin pppd[19873]: ipcp: down
 Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT): Bad address
 Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2.
 Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP).
 Oct 21 16:10:46 hwin pppd[19873]: Connection terminated.
 Oct 21 16:10:46 hwin pppd[19873]: Exit.
 ______________________________________________________________________

 Ne  pas  s'inquieter du SIOCDELRT - c'est juste pppd qui indique qu'il
 se termine, il n'y a pas a s'en inquieter.

 1188..  RReessoouuddrree lleess pprroobblleemmeess

 Il y a de nombreuses raisons pour que votre liaison ne fonctionne  pas
 -  chat  n'a  pas reussi a aller jusqu'au bout, vous avez une mauvaise
 ligne, etc.  Regardez votre syslog pour avoir des indications.

 1188..11..  JJ''aaii ccoommppiillee llee ssuuppppoorrtt PPPPPP ddaannss llee nnooyyaauu,, mmaaiiss......

 Un probleme relativement courant est que les gens compilent le support
 PPP  dans  leur noyau et apres, lorsqu'ils essayent de lancer pppd, le
 noyau repond qu'il ne supporte pas ppp ! Un grand  nombre  de  raisons
 peuvent en etre la cause.

 1188..11..11..  BBooootteezz--vvoouuss aavveecc llee bboonn nnooyyaauu ??

 Meme  si  vous aavveezz recomplie votre support de ppp dans le noyau, vous
 ne bootez pas sur le nouveau noyau. Cela peut arriver si  vous  n'avez
 pas mis a jour /etc/lilo.conf et relance lilo.

 Une  bonne  facon de verifier le noyau est d'envoyer la commande uname
 -a, qui affiche la ligne ressemblant a

 ______________________________________________________________________
 Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586
 ______________________________________________________________________

 Cela donne la version du noyau et la date a laquelle il a ete  compile
 - ce qui vous donnera une bonne idee de ce qui se passe.

 1188..11..22..  AAvveezz--vvoouuss ccoommppiillee llee ssuuppppoorrtt nnooyyaauu ddee pppppp ccoommmmee uunn mmoodduullee ??

 Si vous avez compile le support de ppp comme un  module,  mais  n'avez
 pas  fait  d'installation  des  modules, alors vous pouvez avoir cette
 erreur. Relisez le kernel-HOWTO et le fichier README de /usr/src/linux
 !

 Une autre possibilite concernant les modules est que vous supposez que
 les modules sont charges automatiquement, alors que le daemon  kerneld
 n'est  pas  lance (il charge et decharge les modules au vol). Verifiez
 le mini-HOWTO kerneld pour des informations sur  la  configuration  de
 kerneld.

 1188..11..33..  UUttiilliisseezz--vvoouuss uunnee bboonnnnee vveerrssiioonn ddee PPPPPP ppoouurr vvoottrree nnooyyaauu ??

 Vous ddeevveezz utiliser ppp-2.2 avec les versions  2.0.x  du  noyau.  Vous
 pouvez  utiliser  ppp-2.2 avec les versions 1.2.x du noyau (si vous le
 patchez) sinon vous devez utiliser ppp-2.1.2.

 1188..11..44..  LLaanncceezz vvoouuss ppppppdd eenn eettaanntt rroooott ??

 Si vous ne lancez pas pppd en etant l'utilisateur rroooott  (et  que  pppd
 n'est pas suid vers rroooott), vous pourrez recevoir ce message.

 1188..22..  MMoonn mmooddeemm ssee ccoonnnneeccttee mmaaiiss PPPPPP nnee ddeemmaarrrree jjaammaaiiss

 Il   y   a   d'innombrables   possibilites   avec  ca  (regardez  dans
 comp.os.linux....).

 Une erreur EEXXTTRREEMMEEMMEENNTT frequente est que vous avez  mal  tape  quelque
 chose  dans  vos  scripts.  La seule chose a faire est de verifier que
 vous avez la conversation entre votre PC Linux et le serveur  rapporte
 dans le syslog /var/log/message) allez ensuite dans celui-ci _l_i_g_n_e _p_a_r
 _l_i_g_n_e. Vous aurez peut-etre besoin d'appeler votre serveur  ppp  a  la
 main pour reverifier tout ca.

 Vous devez verifier les messages de logs reels tres attentivement - et
 ayez a l'esprit que les hommes on tendance a lire  ce  qu'ils  PENSENT
 avoir tape - et non ce qu'ils ont sous leurs yeux !

 1188..33..  LLee ssyysslloogg ccoonnttiieenntt ""sseerriiaall lliinnee iiss nnoott 88 bbiitt cclleeaann..."

 Il y a plusieurs possibilites a cela - comme des retours sur la  ligne
 etc., qui peuvent etre la consequence d'une (ou plusieurs) choses.

 Pour  comprendre ce qui se passe, il est necessaire de chercher se qui
 se passe en coulisses dans pppd lui-meme.

 Lorsque  pppd  demarre,  il  envoie  des  paquets  LCP  (Link  Control
 Protocol)  a  la  machine distante. Si il recoit une reponse valide il
 passe ensuite a l'etape suivante (avec IPCP - les paquets de  controle
 IP) et c'est seulement une fois que cette negociation est terminee que
 les trames IP reelles  commencent  et  que  vous  pouvez  utiliser  la
 liaison PPP.

 Si  il n'y a pas de serveur ppp fonctionnel a l'autre bout quand votre
 PC envoie les paquets LCP, ceux-ci sont renvoyes par le  processus  de
 login  final.  Comme  ces  paquets utilisent 8 bits, et sont reflechis
 avec le 8eme bit (souvenez vous qu'ASCII est un code 7 bits). PPP s'en
 apercoit et s'en plaint.

 Il y a plusieurs possibilite pour qu'un reflexion arrive.

 1188..33..11..  VVoouuss nn''eetteess ppaass ccoorrrreecctteemmeenntt ccoonnnneeccttee ssuurr llee sseerrvveeuurr

 Lorsque le  script  chat  se  termine,  pppd  demarre  sur  votre  PC.
 Cependant,  si  vous  n'avez  pas termine le processus de connexion au
 serveur (comme envoyer une commande necessaire a  lancer  PPP  sur  le
 serveur), PPP ne se lancera pas.

 Ainsi, le paquet LCP sera reflechi et vous aurez une erreur.

 Vous  devez  verifier  et corriger (si necessaire) attentivement votre
 script chat (voir plus haut).

 1188..33..22..  VVoouuss nn''aavveezz ppaass llaannccee PPPPPP ssuurr llee sseerrvveeuurr

 Certains serveurs PPP necessitent que vous entriez une commande  et/ou
 un  retour  chariot  apres  avoir termine le processus de connexion et
 avant que ppp soit lance a l'autre bout.

 Verifiez votre script chat (voir plus haut).

 Si vous vous connectez a la main et que vous vous  rendez  compte  que
 vous   devez  envoyer  sur  ENTREE  apres  avoir  lance  PPP,  ajouter
 simplement une paire attente/envoi vide a la fin de votre script  chat
 (un chaine vide envoie en fait ENTREE).

 1188..44..  LLee pprroocceessssuuss PPPPPP ddiissttaanntt eesstt lloonngg aa ddeemmaarrrreerr

 La c'est un peu delicat !

 Par defaut, votre pppd Linux est compile pour envoyer un maximum de 10
 requetes LCP de configuration.  Si  le  serveur  est  un  peu  lent  a
 demarrer, la totalite des 10 requetes auront ete envoyees avant que le
 serveur PPP distant n'ait eu le temps de les recevoir.

 Sur votre machine, pppd voit la reflexion des  10  requetes  (avec  le
 8eme bit inverse) et s'arrete.

 Il y a deux facon de resoudre cela :

 Ajouter  lcp-max-configure  30 comme option de ppp. Cela augmentera le
 nombre  de  packets  de  configuration  LCP  que  pppd  enverra  avant
 d'abandonner.   Pour  les  serveurs  vraiment  lents,  vous devez meme
 mettre plus que ca.

 Sinon, vous pouvez etre un peu malin de votre cote.  Vous  avez  peut-
 etre remarque que lorsque vous vous connectez a la main au serveur PPP
 et que vous demarrez alors PPP, le pprreemmiieerr caractere que ppp envoie et
 qui apparait est toujours le caractere tilda (~).

 En savant cela, vous pouvez ajouter une nouvelle paire attente/envoi a
 la fin de votre script chat qui attendra un tilda et  n'enverra  rien.
 Cela ressemblera alors a :

 ______________________________________________________________________
 \~      ''
 ______________________________________________________________________

 Remarque  :  comme le caractere tilda a une signification particuliere
 pour  le  shell,  il  doit  etre  echappe  (en  fait  precede  par  un
 backslash).

 1188..55..  LLaa rroouuttee ppaarr ddeeffaauutt nn''eesstt ppaass ccoonnffiigguurreeee

 Si  pppd  refuse  de  configurer  la route par defaut, c'est parce que
 (assez justement) il  refuse  de  remplacer/supprimer  une  route  par
 defaut existante.

 La  raison  habituelle lorsque cette erreur apparait est que certaines
 distributions configurent  une  route  par  defaut  pour  votre  carte
 Ethernet au lieu de la configurer comme une route reseau specifique.

 Voir  le  Linux  NAG  et  le HOWTO Net2/3 pour des informations sur la
 facon de configurer correctement votre carte Ethernet  et  les  routes
 associees.

 Une  alternative  a  cela  est  que votre reseau local utilise deja un
 gateway/routeur et que votre table de routage est deja configuree pour
 envoyer la route par defaut a cet endroit.

 Resoudre  cette  situation  peut  necessiter quelques connaissances de
 reseau IP qui sort du domaine de ce HOWTO. Il  est  suggere  d'obtenir
 l'avis  d'un  expert  (par  les  groupes de news ou quelqu'un que vous
 pouvez interroger pres de vous).

 1188..66..  AAuuttrreess pprroobblleemmeess

 Il y a des tas de  raisons  autres  que  celles-ci  pour  que  ppp  ne
 parvienne pas a se connecter et/ou fonctionner correctement.

 Lisez  la  FAQ  PPP(qui est une serie de questions-reponses). C'est un
 document tres didactique et les reponses y SONT !  De  ma  propre  (et
 triste)  experience,  si la reponse a votre probleme n'est pas dedans,
 votre probleme  N'est  PAS  de  la  faute  de  ppp  !  Pour  ma  part,
 j'utilisais  un  noyau  ELF  alors  que  je n'avais pas mis a jour les
 modules du noyau. J'ai juste perdu 2 jours (et  presque  une  nuit)  a
 chercher  comment  doit  etre  un  serveur  PPP parfait avant de faire
 lumiere !

 1199..  OObbtteenniirr ddee ll''aaiiddee qquuaanndd oonn eesstt ttoottaalleemmeenntt ppeerrdduu

 Si vous n'arrivez pas a faire fonctionner votre liaison  PPP,  relisez
 ce  document  et  tout  verifier  - en conjonction avec les sorties de
 "chat-v..."  et "pppd -d" dans votre journal systeme.

 Consultez egalement la  documentation  de  PPP  la  FAQ  et  tout  les
 documents mentionnes ici !

 Si   vous   etes   encore   bloque,   essayez   les  groupes  de  news
 comp.os.linux.misc et comp.os.linux.networking qui sont  regulierement
 parcourus  par  des  gens capable de vous aider sur PPP ainsi que dans
 comp.protocols.ppp

 Vous pouvez essayer de m'envoyer personnellement  un  email,  mais  si
 j'ai  une  journee  (et  meme  une  vie)  charge, je ne garanti pas de
 repondre rapidement (meme pas du tout) selon la quantite de travail en
 cours et l'etat de ma vie privee !

 En  particulier  -  NNEE  PPOOSSTTEEZZ PPAASS DDEESS PPAAGGEESS EETT DDEESS PPAAGGEESS DDEE SSOORRTTIIEE DDEE
 DDEEBBUUGGGGAAGGEE DDAANNSS LLEESS NNEEWWSS GGRROOUUPPSS NNII MMEEMMEE AA MMOOII PPAARR  EEMMAAIILL  -  c'est  une
 enorme  perte  de  bande  passante,  et  la  majorite sera envoye dans
 /dev/null (a moins qu'elle ne soit expressement demande).

 2200..  PPrroobblleemmeess ccllaassssiiqquueess lloorrssqquuee llaa lliiaaiissoonn ffoonnccttiioonnnnee

 Un  des  problemes  que  vous  rencontrerez  est   que   de   nombreux
 fournisseurs  d'acces est qu'ils ne supporterons que les programmes de
 connexions qu'ils distribuent  avec  les  nouveaux  comptes.  Il  sont
 (habituellement) pour Microsoft Windows :-( - et la plupart des bureau
 d'aide des fournisseurs d'acces ne sembleront  rien  savoir  au  sujet
 d'Unix  (ou Linux). Donc preparez vous a une assistance limite de leur
 part !

 Vous pouvez evidemment leur faire une  faveur  et  leur  apprendre  ce
 qu'est  Linux  (certaines  personnes  au  support de votre fournisseur
 d'acces seront relativement  'branche'  avec  le  monde  Internet  est
 auront une machine Linux chez eux - bien sur que ca existe ! )

 2200..11..  JJee nn''aarrrriivvee ppaass aa vvooiirr aapprreess llee sseerrvveeuurr PPPPPP oouu jjee ssuuiiss ccoonnnneeccttee

 OK  -  votre connexion PPP est lancee et fonctionne vous pouvez pinger
 le serveur PPP avec son adresse IP (la deuxieme ou "remote" adresse IP
 affichee  par ifconfig ppp0), mais vous ne pouvez rien atteindre apres
 cela.

 Tout d'abord, essayez de pinger les adresses IP que vous avez specifie
 dans  /etc/resolv.conf  comme serveur de noms. Si elles marchent, vous
 ppoouuvveezz voir apres votre serveur PPP (en tout cas ce qui a une  adresse
 IP  identique  a  ce  que  vous  avez specifie). Maintenant essayez de
 pinger l'adresse complete de votre fournisseur d'acces :

      ping mon.fournisseur.internet.fr

 Si ca ne marche pas, vous avez un  probleme  avec  la  resolution  des
 noms.  C'est  probablement  a  cause  d'une faute de frappe dans votre
 fichier /etc/resolv.conf.  Verifiez  ca  attentivement  a  partir  des
 informations  que  vous  aviez  obtenues en appelant votre fournisseur
 d'acces. Si ca semble correct, appelez votre fournisseur  d'acces,  et
 verifiez que vous avez note l'adresse IP correctement.

 Si  ca  ne  marche TOUJOURS pas (et que votre fournisseur d'acces vous
 confirme que le serveur de noms fonctionne correctement),  vous  devez
 avoir  un  probleme  ailleurs  -  et je vous suggere de verifier votre
 installation de Linux (en particulier les permissions des fichiers).

 Si vous ne pouvez TOUJOURS pas pinger  le  serveur  de  nom  de  votre
 fournisseur  d'acces par l'adresse IP, soit il est eteint (appelez les
 par telephone et verifiez) soit il y a un probleme de routage du  cote
 de votre fournisseur d'acces. De meme appelez-les et demandez leur.

 Un  autre possibilite est qu'a l'autre bout le serveur PPP Linux n'ait
 pas l'option IP forwarding d'activee dans le noyau !

 Un bon test est d'essayer de se connecter avec le programme que  votre
 fournisseur  d'acces  vous  a  donne pour (oups) Microsoft Windows. Si
 tout marche sur un autre systeme  d'exploitation  avec  exactement  le
 meme  compte, alors le probleme vient de votre machine Linux et NON de
 votre fournisseur d'acces.

 2200..22..  JJee ppeeuuxx eennvvooyyeerr dduu ccoouurrrriieerr mmaaiiss ppaass eenn rreecceevvooiirr

 Si vous avez une adresse IP dynamique, c'est tout a fait normal.  Voir
 "Configurer les services" plus bas.

 2200..33..   aavveecc  mmaa  mmaacchhiinnee ??  PPoouurrqquuooii lleess ggeennss nnee ppeeuuvveenntt ppaass ffaaiirree ddee
 ffiinnggeerr,, WWWWWW,, ggoopphheerr,, ttaallkk eettcc

 La  aussi, si vous utilisez une adresse IP dynamique c'est tout a fait
 normal.  voir "Configurer les services" plus bas.

 2211..  UUttiilliisseerr lleess sseerrvviicceess IInntteerrnneett aavveecc ddeess aaddrreesssseess IIPP ddyynnaammiiqquueess

 Si  vous  utilisez une adresse IP dynamique (et tous les provideurs ne
 vous donnerons qu'une adresse dynamique a moins que vous ne payez bien
 plus  pour  votre  connexion),  vous  devez  accepter  les limitations
 qu'elle impose.

 Tout d'abord, les requetes pour les  services  sortant  fonctionneront
 parfaitement.  Cela signifie que vous pourrez envoyer du courrier avec
 sendmail (si sendmail est configure correctement),  les  fichiers  ftp
 pour  les  sites  distants, les fingers vers d'autres machines, surfer
 sur le web etc.

 En particulier, vous pourrez repondre au courrier que vous  avez  recu
 meme  si  votre machine n'est plus connectee. Le courrier restera dans
 votre queue de messages jusqu'a ce que vous appeliez votre FAI.

 Cependant, votre machine N'est PAS connectee a Internet 24H/24, et  en
 plus  elle  n'a  pas  la  meme  adresse  IP  a  chaque fois qu'elle se
 connecte. Il est donc impossible de recevoir du courrier  electronique
 directement  sur  votre machine, et de creer un serveur web et ftp que
 vos amis pourraient acceder !  A  partir  du  moment  ou  ca  concerne
 Internet,  votre  machine  n'est  pas unique, ni accessible de maniere
 permanente comme cela serait le cas avec une adresse IP unique (rappel
 -  les  autres machines utilisent les adresses IP pour acceder a votre
 machine).

 Si vous configurez en serveur WWW (ou n'importe quoi d'autre), il  est
 totalement  inconnu  des utilisateurs d'Internet A MOINS QU'ils soient
 au courant que votre machine est connectee et qu'ils connaissent votre
 adresse  IP  courante.  Il  y  a  plusieurs  facon  de  fournir  cette
 information, vous demander par telephone, leur envoyer un e-mail  pour
 leur dire, ou utiliser un fichier ".plan" sur le compte shell de votre
 fournisseur d'acces (en partant  du  principe  que  votre  fournisseur
 d'acces permet les script shell et les finger).

 Maintenant,  pour  la majorite des utilisateurs, ca n'est pas vraiment
 un probleme - la plupart des gens veulent pouvoir envoyer et  recevoir
 leur  email  (sur  le compte de leur fournisseur d'acces) et faire des
 connexions sortantes vers WWW, ftp et d'autres services d'Internet. Si
 vous  AVEZ  un  besoin  imperatif  de connexion sortantes, vous feriez
 mieux de prendre une adresse  IP  statique.   Cependant,  vous  pouvez
 aussi explorer les methodes astucieuses ci dessous...

 2211..11..  CCoonnffiigguurreerr llee ccoouurrrriieerr eelleeccttrroonniiqquuee ((eemmaaiill))

 Meme   avec   une  adresse  IP  dynamique,  vous  devrez  certainement
 configurer sendmail sur votre machine pour  envoyer  le  courrier  que
 vous  ecrivez  localement.   La  configuration  de  sendmail peut etre
 obscure et difficile - ce document ne vous parleras pas de la facon de
 faire.  Cependant,  vous  aimeriez sans doute configurer sendmail pour
 que votre fournisseur d'acces soit  considere  comme  un  hote  "smart
 relay"   (l'options   DDSS  de  sendmail).  (Pour  plus  d'info  sur  la
 configuration de sendmail, voir la  documentation  de  sendmail  -  et
 regardez la configuration de m4 fourni avec sendmail. Il y a forcement
 quelque chose qui reponds a ce que vous cherchez).

 Il y a un excellent livre sur  Sendmail  (une  veritable  'bible'  aux
 editions  O'Reilly  and  Associates), mais c'est certainement beaucoup
 trop pour la plupart des utilisateurs !

 Une fois que vous avez  configure  sendmail,  vous  avez  probablement
 envie que sendmail envoie les messages en attente des que la connexion
 PPP est lancee.  Pour cela, ajouter la commande

      sendmail -q &

 dans votre script /etc/ppp/ip-up (voir plus haut).

 Les mails entrant sont problematique avec les adresses IP  dynamiques.
 La facon de les supporter est de :

 +o  configurer  votre  lecteur d'email pour que le courrier contiennent
    un  champ  "reply  to"  dans  lequel  il  y  aura   votre   adresse
    electronique chez votre fournisseur d'acces.
    Si  vous  le  pouvez, configurez egalement le champ FROM avec votre
    adresse electronique chez votre FAI.

 +o  utiliser les programmes  popclient,  fetchmail  pour  recuperer  le
    courrier  chez  votre  fournisseur  d'acces.  Ou bien, si votre FAI
    utilise IMAP, utilisez un lecteur de  courrier  electronique  ayant
    IMAP d'active (comme pine).

 Vous  pouvez  automatiser  ce processus lors de l'appel en ajoutant la
 commande necessaire dans le script /etc/ppp/ip-up (voir plus haut).

 2211..22..  CCoonnffiigguurreerr uunn sseerrvveeuurr ddee nnoommss llooccaall

 Meme si vous etes content d'utiliser le serveur  de  noms  situe  chez
 votre  fournisseur  d'acces, vous pouvez en plus configurer un serveur
 de nom local (secondaire) de cache uniquement qui serait lance avec le
 script  ip-up.   L'avantage d'utiliser un serveur de noms local (cache
 uniquement) est de gagner du temps (et de la bande passante)  si  vous
 contactez souvent les meme sites pendant de longues sessions en ligne.

 La configuration du DNS  pour  un  serveur  de  cache  seulement  (qui
 utilise une ligne 'forwarders' dans le fichier named.boot pointant sur
 le DNS de votre FAI) est relativement simple. Le livre  O'Reilly  (DNS
 et Bind) explique tout ce que vous devez savoir sur le sujet.

 Il existe egalement un DNS-HOWTO.

 Si  un  petit  reseau  local  accede a Internet grace a votre PC Linux
 (avec IP masquerading par exemple), c'est sans  doute  une  excellente
 idee  d'utiliser  un  serveur  de  noms (avec la directive forwarders)
 puisque cela reduira les delais et la bande passante utilisee pour  la
 resolution des noms.

 Un point de la Netiquette : demandez la permission a votre fournisseur
 d'acces avant de mettre en place un  serveur  de  noms  secondaire  de
 cache uniquement dans le domaine de votre FAI. Configure correctement,
 il n'entrainera aucun probleme chez votre FAI, mais  si  il  ne  l'est
 pas, il peut causer de nombreux problemes.

 2222..  RReelliieerr ddeeuuxx rreesseeaauuxx llooccaauuxx aavveecc PPPPPP

 Il  y  a fondamentalement aucune difference entre le fait de relier un
 seul PC Linux avec PPP et relier deux reseaux locaux avec PPP  et  une
 machine   sur  chaque  reseau.  Souvenez-vous  PPP  est  un  protocole
 rreevveerrssiibbllee.

 Cependant, vous devez RREEEELLLLEEMMEENNTT  comprendre  comment  le  routage  se
 deroule.   Lisez  le  NET-2  HOWTO  et le Guide d'administration Linux
 (NAG). Vous trouverez egalement une aide inestimable dans le  " TCP/IP
 Network   Administration"  (publie  par  O'Reilly  and  Assoc  -  ISBN
 0-937175-82-X)

 Si vous utilisez une adresse de  sous-reseau  de  chaque  cote  de  la
 liaison, le (brouillon) de mini-howto Linux sub networking pourra vous
 etre utile.  Il est  disponible  a  Linux  Sub  networking  mini-HOWTO
 <http://www.interweft.com.au/other/>.

 Pour  relier  deux reseaux locaux, vous ddeevveezz utiliser des adresses IP
 differentes (ou des sous-reseau d'adresses differentes) et vous devrez
 utiliser  des  adresses  IP  statiques  ou  l'IP Masquerading. Si vous
 voulez  utiliser  l'IP  Masquerading,  consultez  le   mini-howto   IP
 masquerade   pour   avoir  des  instructions  sur  la  maniere  de  le
 configurer.

 2222..11..  CCoonnffiigguurreerr lleess aaddrreesssseess IIPP

 Arrangez-vous avec l'administrateur systeme de  l'autre  reseau  local
 pour  choisir  les  adresses  IP qui seront utilises de chaque cote de
 l'interface PPP.  Si vous utilisez des adresses IP statiques, il  sera
 sans doute pratique d'appeler un numero de telephone dedie.

 Maintenant,  editez le fichier /etc/ppp/options[.ttyXX] approprie - il
 est judicieux d'avoir un modem et un port dedie de chaque cote  de  la
 connexion.   Cela  necessite  quelques  changements  dans  le  fichier
 /etc/ppp/options et la creation d'un fichier  options.ttyXX  approprie
 pour les autres connexions !

 Specifiez  les  adresses IP pour le cote de votre liaison PPP dans les
 fichiers d'options appropries exactement comme cela  est  decris  plus
 haut pour les adresses IP statiques.

 2222..22..  CCoonnffiigguurreerr llee rroouuttaaggee..

 Vous  devez vous occuper que les paquets du reseau local soit routes a
 travers l'interface lorsque la liaison PPP est lancee. Ce processus se
 fait en deux parties.

 Tout  d'abord,  vous  devez configurer une route partant de la machine
 qui fait marcher la liaison PPP vers le reseau situe a  l'autre  bout.
 Si cette liaison donne sur Internet, vous pouvez utilisez la route par
 defaut mise en place par pppd lui-meme a la  connexion  avec  l'option
 defaultroute.

 Si  toutefois,  la  liaison relie seulement deux reseaux locaux, alors
 une route reseau specifique doit etre ajoutee pour  tous  les  reseaux
 accessible  par  cette  liaison. C'est la commande 'route' qui le fait
 pour chaque reseau dans le script /etc/ppp/ip-up script (voir une fois
 que la liaison fonctionne...) pour des instructions detaillees.

 La  seconde  chose  dont  vous  avez besoin est de prevenir les autres
 ordinateurs que vous etes le gateway vers les reseaux situes a l'autre
 bout de la liaison.

 Bien  sur,  l'administrateur reseau de l'autre cote de la liaison doit
 faire les meme choses ! Cependant, puisque  qu'il  route  les  paquets
 vers  votre  reseau  particulier,  une  rroouuttee  rreesseeaauu  ssppeecciiffiiqquuee  est
 indispensable, et non la route par defaut (a moins que le reseau situe
 a l'autre bout se connecte chez vous pour acceder a Internet).

 2222..33..  SSeeccuurriittee rreesseeaauu

 Si  vous  reliez  votre reseau local a Internet avec PPP - ou du moins
 avec un reseau local "etranger", vous devez reflechir aux problemes de
 securite.  Je  vous  conseille  fermement  de  penser  a configurer un
 firewall !

 Vous devriez egalement parler a l'administrateur reseau de votre  site
 AAVVAANNTT de lancer une connexion vers un reseau local etranger voire vers
 Internet ce cette maniere. Ne rien faire  peut  soit  n'amener  aucune
 reaction soit de serieux problemes !

 2233..  UUnnee ffooiiss qquuee llaa ccoonnnneexxiioonn ffoonnccttiioonnnnee -- llee ssccrriipptt //eettcc//pppppp//iipp--uupp

 Une fois que la connexion est etablie, pppd cherche un /etc/ppp/ip-up.
 Si  ce  script  existe et est executable, le daemon PPP le lance. Cela
 permet d'automatiser des commandes de routages speciales  qui  peuvent
 etre  necessaires  et  toutes  les  autres  actions que vous souhaitez
 lancer une fois que la liaison PPP est activee.

 C'est un simple script shell qui fait uniquement ce qu'un script shell
 peut faire (en fait quasiment tout ce que vous voulez).

 Par exemple, vous pouvez demander a sendmail d'envoyer les messages en
 attentes.

 Il y a quelques restrictions avec /etc/ppp/ip-up:

 +o  Il fonctionne  deliberemment  dans  un  environnement  reduit  pour
    augmenter  la  securite.  Cela  signifie  que  vous devez donner le
    chemin complet des executables.

 +o  Techniquement, /etc/ppp/ip-up est un _p_r_o_g_r_a_m_m_e et  non  un  script.
    Cela  signifie qu'il ne peut pas etre execute directement - meme si
    il a besoin du (#!/bin/bash) magique au debut de la premiere  ligne
    et qu'il doit etre lisible est executable par root.

 2233..11..  RRoouuttaaggeess ssppeecciiaauuxx

 Si  vous  reliez deux reseaux locaux, vous devez configurer des routes
 specifiques vers le reseau 'etranger'. Le script  /etc/ppp/ip-up  peut
 le  faire  facilement.  La  seule difficulte est lorsque votre machine
 supporte plusieurs liaisons PPP.

 /etc/ppp/ip-up est utilise a chaque lancement de ppp, vous devez  donc
 etre   extremement   vigilant  d'executer  les  commandes  de  routage
 correctes pour la liaison qui  demarre  -  et  non  lorsque  n'importe
 quelle liaison demarre !

 2233..22..  SSuuppppoorrtt dduu ccoouurrrriieerr eelleeccttrroonniiqquuee eenn aatttteennttee

 Lorsqu'une  liaison  entre  deux reseaux locaux demarre, vous voudriez
 vous assurez que le courrier en attente de chaque cote de  la  liaison
 est  bien  envoye a son destinataire. Cela est possible en ajoutant un
 appel correct a sendmail.

 Utiliser la commande case du bash sur le bon parametre que passe  pppd
 au script permet cela. Par exemple, voici un script /etc/ppp/ip-up que
 j'utilise pour mes liaisons entre  l'entreprise  et  chez  mon  reseau
 Ethernet (egalement connecte au meme serveur ppp).

 2233..33..  UUnn eexxeemmppllee ddee ssccrriipptt //eettcc//pppppp//iipp--uupp

 Le script suivant permet de nombreuses utilisations.

 ______________________________________________________________________
 #!/bin/bash
 #
 # Script permettant de supporter les possiblites de routages necessaires a pppd
 # Seule la liaison vers Newman necessite ce support.
 #
 # Quand la liaison ppp demarre, ce script est appele avec les parmetres
 # suivants
 #       $1      le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
 #       $2      le nom du peripherique tty
 #       $3      la vitesse du peripherique tty
 #       $4      l'adresse IP locale de l'interface
 #       $5      l'adresse  IP distante
 #       $6      le parametre specifie par l'option 'ipparam' a pppd
 #
 case "$5" in
 # Supporte le routage vers le serveur du Newman Campus
         202.12.126.1)
                 /sbin/route add -net 202.12.126.0 gw 202.12.126.1
 # et envoie les courriers en attente la-bas !
                 /usr/sbin/sendmail -q &
                 ;;
         139.130.177.2)
 # Notre liaison Internet
 # Lorsque notre liaison est lancee, demarre le serveur de temps et
 # se synchronise avec le monde si il n'a pas encore bouge.
                 if [ ! -f /var/lock/subsys/xntpd ]; then
                         /etc/rc.d/init.d/xntpd.init start &
                 fi
 # Demarre le serveur de news (si il ne marche pas encore)
                 if [ ! -f /var/lock/subsys/news ]; then
                         /etc/rc.d/init.d/news start &
                 fi
                 ;;
         203.18.8.104)
 # Recupere le courrier electronique sur ma machine tant que la liaison
 # fonctionne. Aucun routage n'est necessaire tant que mon reseau local
 # Ethernet supporte IP masquerade et le routages proxyarp.
                 /usr/sbin/sendmail -q &
                 ;;
         *)
 esac
 exit 0
 ______________________________________________________________________

 Le resultat du lancement de la liaison PPP vers notre campus Newman et
 le demarrage de ce script,  determine  les  entrees  de  la  table  de
 routage (cette machine est aussi notre serveur PPP general ET supporte
 nos liaisons Internet).  J'ai ajoute des commentaires  sur  la  sortie
 pour expliquer a quoi correspond chaque entree) :

 ______________________________________________________________________
 [root@kepler /root]# route -n
 Kernel routing table
 Destination     Gateway         Genmask         Flags MSS    Window Use Iface
 # la route de l'HOTE de notre gateway internet
 139.130.177.2   *               255.255.255.255 UH    1500   0      134 ppp4
 # la route de l'HOTE vers le serveur Newman campus
 202.12.126.1    *               255.255.255.255 UH    1500   0       82 ppp5
 # la route de l'HOTE de mon reseau local ethernet
 203.18.8.104    *               255.255.255.255 UH    1500   0       74 ppp3
 # deux des lignes generales PPP
 203.18.8.64     *               255.255.255.255 UH    552    0        0 ppp2
 203.18.8.62     *               255.255.255.255 UH    552    0        1 ppp1
 # la route reseau specifique vers le reseau Newman campus
 202.12.126.0    202.12.126.1    255.255.255.0   UG    1500   0        0 ppp5
 # la route de notre reseau local Ethernet (super-netting two adjacent C classes)
 203.18.8.0      *               255.255.254.0   U     1500   0     1683 eth0
 # la route vers le peripherique loop back
 127.0.0.0       *               255.0.0.0       U     3584   0      483 lo
 # la route par defaut vers Internet
 default         139.130.177.2   *               UG    1500   0     3633 ppp4
 ______________________________________________________________________

 2233..44..  SSuuppppoorrtt dduu ccoouurrrriieerr eelleeccttrroonniiqquuee

 La  section precedente montrait comment supporter le mail sortant - en
 envoyant simplement le courrier lorsque la liaison demarrait.

 Si vous utilisez une liaison pour un reseau large,  vous  pouvez  vous
 arranger avec l'administrateur reseau du site distant pour qu'il fasse
 exactement la meme chose. Par exemple, a l'autre bout de la liaison au
 Newman Campus, le script /etc/ppp/ip-up ressemble a :

 ______________________________________________________________________
 #!/bin/bash
 #
 # Script permettant de supporter les possiblites de routages necessaires a pppd
 # Seule la liaison vers Hedland necessite ce support.
 #
 # Quand la liaison ppp demarre, ce script est appele avec les parmetres
 # suivants
 #       $1      le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
 #       $2      le nom du peripherique tty
 #       $3      la vitesse du peripherique tty
 #       $4      l'adresse IP locale de l'interface
 #       $5      l'adresse  IP distante
 #       $6      le parametre specifie par l'option 'ipparam' a pppd
 #
 case "$5" in
         203.18.8.4)
                 /usr/sbin/sendmail -q
                 ;;
         *)
 esac
 exit 0
 ______________________________________________________________________

 Si  toutefois, vous n'avez qu'une adresse IP dynamique chez votre FAI,
 vous devrez recevoir votre courrier sur le compte de votre fournisseur
 d'acces.  Cela est generalement possible en utilisant POP (Post Office
 Protocol).  Ce  processus  peut  etre  supporte  avec   le   programme
 'popclient"  - le script ip-up peut automatiser le processus pour vous
 !

 Creez simplement  un  script  /etc/ppp/ip-up  qui  contient  un  appel
 correct  a  popclient.  Pour mon portable avec la RedHat Linux (que je
 prends lorsque je voyage), j'ai

 ______________________________________________________________________
 popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail
 ______________________________________________________________________

 Vous pouvez aussi utiliser slurp en quelque chose d'autre  d'identique
 pour  les  news,  et d'autres trucs. Souvenez vous que le script ip-up
 est un script bash standard et qui peut servir  a  automatiser  TOUTES
 les  fonctions que vous devez accomplir chaque fois qu'une liaison PPP
 correspondante demarre.

 2244..  UUttiilliisseerr //eettcc//pppppp//iipp--ddoowwnn

 Vous pouvez ecrire un script, qui sera execute a  chaque  fois  qu'une
 liaison  se  termine. Qui se situe dans /etc/ppp/ip-down. Il peut etre
 utilise pour retirer ce que vous  avez  ajoutez  de  special  avec  le
 script /etc/ppp/ip-up correspondant.

 2255..  PPoossssiibbiilliittee ddee rroouuttaaggee ssuurr uunn rreesseeaauu llooccaall

 Si  vous etes connecte sur un reseau local et que vous voulez toujours
 utiliser PPP avec votre machine Linux, vous devez definir  les  routes
 que  les  packets  doivent  prendre  pour  atteindre le reseau local a
 partir de votre machine (par l'interface  Ethernet)  et  egalement  le
 serveur PPP distant voire plus loin.

 Cette  section  ne pretend pas vous apprendre le routage - elle traite
 seulement de cas simples et speciaux de routage (statique) !

 Je vous recommande chaudement de lire de Guide d'administration Reseau
 Linux  si  vous  n'etes  pas habitue avec le routage. De meme le livre
 d'O'Reilly "TCP/IP Network Administration" couvre le sujet de  maniere
 tres abordable.

 La  regle  de  base  du  routage  statique est que la route par DEFAUT
 pointe a l'endroit ou il y le PLUS grand nombre d'adresse reseau. Pour
 les  autres  reseau,  entres  des  routes specifiques dans la table de
 routage.

 La SEULE situation que je couvre ici est lorsque votre  machine  Linux
 est  sur  un  reseau  non  connecte  a  Internet - et vous voulez vous
 connectez a Internet pour une utilisation personnelle tout en  restant
 connecte au reseau local.

 Tout d'abord, assurez-vous que votre route Ethernet est bien configure
 comme une adresse reseau specifique disponible sur votre reseau  local
 - et PAS dans la route par defaut !

 Verifiez  cela en tapant la commande route, vous devriez avoir quelque
 chose qui ressemble a ce qui suit :

      [root@hwin /root]# route -n
      Kernel routing table
      Destination     Gateway         Genmask         Flags MSS    Window Use Iface
      loopback        *               255.255.255.0   U     1936   0       50 lo
      10.0.0.0        *               255.255.255.0   U     1436   0      565 eth0

 Si votre interface Ethernet (eth0) pointe vers la  route  par  defaut,
 (la  premiere colonne contiendra un "default" dans la ligne eth0) vous
 devez changer les scripts  d'inititalisation  d'Ethernet  pour  qu'ils
 utilisent  des  adresses  reseau  specifiques  plutot que la route par
 defaut (consultez le HOWTO Net2 et le NAG).

 Cela va permettre a pppd de configurer votre route  par  defaut  comme
 suit :

      [root@hwin /root]# route -n
      Kernel routing table

      Destination     Gateway         Genmask         Flags MSS    Window Use Iface
      10.144.153.51   *               255.255.255.255 UH    488    0        0 ppp0
      127.0.0.0       *               255.255.255.0   U     1936   0       50 lo
      10.1.0.0        *               255.255.255.0   U     1436   0      569 eth0
      default         10.144.153.51   *               UG    488    0        3 ppp0

 Comme vous pouvez le voir, nous avons une route d'hote vers le serveur
 PPP (10.144.153.51) par ppp0 qui est egalement  la  route  par  defaut
 utilise par le serveur PPP comme gateway.

 Si  votre  configuration  est  plus  complique  que  cela,  lisez  les
 documents concernant le routage  cites  plus  haut,  et  consultez  un
 expert de votre site !

 Si  votre reseau local a aussi des routeurs, vous devez deja avoir des
 gateways pour interconnecter les reseaux disponibles sur  votre  site.
 Vous  devez TOUJOURS mettre la route par defaut vers l'interface PPP -
 et utiliser des routes specifiques pour les autres  reseaux  que  vous
 accedez.

 2255..11..  RReemmaarrqquueess ssuurr llaa sseeccuurriittee

 Lorsque vous configurez une machine Linux sur un reseau local existant
 sur Internet, vous ouvrez potentiellement tout votre reseau local vers
 Internet - ainsi que les pirates qui l'utilise. Avant de commencer, je
 vous conseille vivement de consulter votre administrateur reseau et le
 responsable  de la securite de votre site. Si votre connexion PPP vers
 Internet est utilise et permet d'attaquer votre site, vous serez  dans
 la  plus  mauvaise position face a la colere de vos collegues et votre
 administrateur systeme et reseau. Vous  pourriez  vous-meme  avoir  de
 serieux problemes !

 Avant de connecter un reseau local sur Internet, vous devez prendre en
 compte les problemes de securite meme avec une connexion  DYNAMIQUE  -
 dans  ce  cas  la  reference la plus recente est le "Building Internet
 Firewalls" d'O'Reilly !

 2266..  CCoonnffiigguurreerr uunn sseerrvveeuurr PPPPPP

 Comme c'est mentionne plus haut, il y a des tas de facons de faire. Ce
 que  je  presente  ici est la facon de faire une liaison tournante sur
 plusieurs lignes  telephoniques  (avec  une  carte  serie  multi-ports
 utilisant des Cyclades)

 Si  vous  n'aimez pas la methode presentee ici, faites donc comme vous
 preferez.  J'aimerais toutefois ajouter des  methodes  supplementaires
 dans  les  prochaines  versions  de ce HOWTO. Envoyez donc moi comment
 vous faites !

 Remarquez que cette section ne concerne que la configuration de  Linux
 comme  serveur  PPP. Je ne compte absolument pas donner d'informations
 sur la facon de configurer des serveurs terminaux ou autre.

 Meme si, j'ai deja experimente l'utilisation de  shadow  password  (et
 l'utilise   de  temps  en  temps).  Les  informations  presentees  ici
 n'utiliserons toutefois pas ce mecanisme.

 2266..11..  CCoommppiilleerr llee nnooyyaauu

 Tous les commentaires precedent concernant la compilation du noyau  et
 les  versions  du noyau et de pppd sont encore valables. Cette section
 considere que vous avez lu les sections precedentes du document !

 Pour un serveur PPP, vous DDEEVVEEZZ ajouter le support  de  IP  forwarding
 dans  votre  noyau. Vous pouvez aussi inclure d'autres supports (comme
 le IP fire walls, accounting etc etc).

 Si vous utilisez une carte serie multi-port, vous devez  bien  entendu
 inclure egalement les pilotes necessaires dans le noyau !

 2266..22..  PPrreesseennttaattiioonn dduu ssyysstteemmee ddee sseerrvveeuurr

 Nous  offrons  des  comptes  PPP  (ou  SLIP)  et  des comptes shell en
 utilisant les memes paires nom utilisateur/ mot de passe. Cela  permet
 (pour  nous)  que  les  utilisateurs  n'aient qu'un seul compte qu'ils
 peuvent utiliser pour toutes les connexions.

 Comme nous sommes une organisation  educative,  nous  ne  faisons  pas
 payer  le  personnel ni les etudiants pour leur acces, et nous n'avons
 donc pas besoin de nous inquieter des problemes de payement.
 Un firewall existe entre notre site et Internet, et  cela  limite  les
 acces  des  utilisateurs  puisque  les  lignes d'appels sont sur notre
 firewall Internet (pour certaines raisons evidentes,  le  details  des
 autres  firewalls internes ne sera pas presente ici et serait de toute
 facon inutile)

 Le processus avec lequel un utilisateur etablit une liaison  PPP  avec
 notre site (une fois qu'ils ont un compte bien sur) :

 +o  Appeler  notre ligne d'appel groupe (qui est un numero de telephone
    qui se connecte sur une banque de modems - le premier  modem  libre
    est utilise).

 +o  Connexion avec une paire valide de nom utilisateur et mot de passe

 +o  Au  prompt  du  shell, lancement de la commande ppp pour lancer PPP
    sur le serveur.

 +o  Demarrer PPP sur le PC (il peut utiliser Windows, DOS,  Linux,  MAC
    OS ou n'importe quoi d'autre - ce n'est pas un probleme).

 Le  serveur  utilise un fichier /etc/ppp/options.ttyXX individuel pour
 chacune des connexions sur le  port  ou  est  configure  l'adresse  IP
 distante  pour  l'allocation  des  adresses  IP dynamiques. Le serveur
 utilisateur route les clients avec proxyarp (configure  avec  l'option
 appropriee de pppd). Cela oblige la presence de routed ou gated.

 Quand  l'utilisateur raccroche de son cote, pppd le detecte et indique
 au modem de raccrocher, fermant en meme temps la liaison PPP.

 2266..33..  FFaaiirree mmaarrcchheerr lleess pprrooggrraammmmeess ttoouuss eennsseemmbbllee

 Vous avez besoin des programmes suivants :

 +o  Linux, correctement compile avec les options necessaires

 +o  La version de pppd correspondant a votre noyau

 +o  Un programme 'getty' qui decroche intelligemment les communications
    par modem.
    Nous  utilisons getty_ps2.0.7h, mais mgetty est aussi bien. Je sais
    que mgetty peut s'apercevoir qu'un appel utiliser PAP/CHAP (PAP est
    le standard pour Windows 95) et invoquer pppd automatiquement, mais
    je dois encore explorer un peu ca.

 +o  Un serveur de nom (DNS) fonctionnel qui  est  accessible  pour  les
    utilisateurs qui se connectent.

 CCee  hhoowwttoo nnee ccoouuvvrree ppaass ssaa ccoonnffiigguurraattiioonn.. RReeggaarrddeezz llaa ddooccuummeennttaattiioonn ddee
 ggeettttyy ddee vvoottrree cchhooiixx oouu llee sseerriiaall HHOOWWTTOO ppoouurr pplluuss  dd''iinnffoorrmmaattiioonnss  ssuurr
 llee ssuujjeett..

 2266..44..  CCoonnffiigguurreerr lleess ffiicchhiieerrss dd''ooppttiioonnss

 Vous  avez  besoin  de configurer la totalite de /etc/ppp/options avec
 les options standard pour les ports d'appel. Les options utiles sont :

 ______________________________________________________________________
 asyncmap 0
 netmask 255.255.254.0
 proxyarp
 lock
 crtscts
 modem
 ______________________________________________________________________

 Remarque - nous n'utilisons AUCUN routage (direct) - et en particulier
 il n'y a pas d'option defaultroute. La raison de cela est que tout  ce
 dont  vous avez besoin (en tant que serveur PPP) a l'endroit ou router
 les paquets vveennaanntt du client ppp vers votre reseau local  ou  Internet
 et  de  router  les  paquets  vveerrss le client ppp qui viennent du votre
 reseau local ou d'Internet.

 Tout ce dont vous avez besoin est la route hote de la  machine  client
 et l'utilisation de l'option 'proxyarp' de pppd.

 L'option  'proxyarp' configure (surprise) une entree proxy ARP dans la
 table ARP du serveur qui signifie en substance 'envoie  moi  tous  les
 paquets  destines  au  client'.  C'est  la  maniere  la plus simple de
 configurer le routage vers un client PPP unique - mais  elle  ne  peut
 etre  utilise  pour  le routage entre deux reseaux locaux - vous devez
 alors utiliser les routes reseau reelles qui ne pourront pas  utiliser
 le proxy ARP.

 Vous  devez  certainement  avoir  envie  de  fournir  des  adresses IP
 dynamiques aux utilisateurs qui se connectent. Vous pouvez le faire en
 associant  une  adresse  IP  dynamique  sur chaque port d'appel. Creez
 alors pour chaque port d'appel un /etc/ppp/options.ttyXX.

 Dedans, mettez simplement l'adresse IP locale du serveur et  l'adresse
 IP qui doit etre utilise pour ce port. Par exemple

 ______________________________________________________________________
 kepler:slip01
 ______________________________________________________________________

 Remarquez  en  particulier  que  vous pouvez utiliser les noms d'hotes
 valides dans ce fichier (je trouve que c'est  la  seule  facon  de  se
 souvenir  des  adresses IP des machines importantes de mon reseau, les
 noms sont bien plus significatifs) !

 2266..55..  CCoonnffiigguurreerr ppppppdd ppoouurr ppeerrmmeettttrree aauuxx uuttiilliissaatteeuurrss ddee llee llaanncceerr

 Comme   configurer   une   liaison   ppp  implique  de  configurer  un
 peripherique dans le noyau (une interface reseau) et de manipuler  les
 tables  de routage, des privileges speciaux sont necessaires - en fait
 la totalite des privileges root.

 Heureusement, pppd est prevu pour marcher correctement  avec  set  uid
 root.  Vous devez donc

 ______________________________________________________________________
 chmod u+s /usr/sbin/pppd
 ______________________________________________________________________

 Quand vous listez le fichier, il doit apparaitre comme cela

 ______________________________________________________________________
 -rwsr-xr-x   1 root     root        74224 Apr 28 07:17 /usr/sbin/pppd
 ______________________________________________________________________

 Si vous n'avez pas ca, vous ne pourrez pas utiliser votre liaison ppp.

 2266..66..  CCrreeeerr uunn aalliiaass gglloobbaall ppoouurr ppppppdd

 Pour simplifier les choses pour les utilisateurs  de  notre  connexion
 PPP,  nous creerons un alias global (dans /etc/bashrc) qui est en fait
 une simple commande qui lancera ppp sur le serveur des  qu'ils  seront
 connectes.

 Cela nous donne

 ______________________________________________________________________
 alias ppp="exec /usr/sbin/pppd -detach"
 ______________________________________________________________________

 Et il fait ceci

 +o  exec  : va remplacer le programme en cours (dans le cas d'un shell)
    par le programme qui va etre lance.

 +o  pppd -detach : lance pppd et le laisse pas en tache de  fond.  Cela
    assure  que  pppd  existe et qu'il n'y a pas d'autres processus qui
    trainent.

 Quand un utilisateur se connecte comme cela, il va apparaitre apres un
 'w'

 ______________________________________________________________________
   6:24pm  up 3 days,  7:00,  4 users,  load average: 0.05, 0.03, 0.00
 User     tty       login@  idle   JCPU   PCPU  what
 hartr    ttyC0     3:05am  9:14                -
 ______________________________________________________________________

 Et  c'est  tout... Je vous avais dit que c'etait simple un serveur PPP
 de base !

 2277..  UUttiilliisseerr PPPPPP aavveecc uunnee ccoonnnneexxiioonn nnuullll mmooddeemm

 C'est tres simple - il n'y a pas de modem et  ainsi  les  choses  sont
 bien plus facile.

 Tout d'abord, choisissez une machine comme 'serveur', configurez getty
 sur le port serie pour que vous testiez si vous avez une  connectivite
 en utilisant minicom sur le 'client'.

 Une  fois  que ca fonctionne, vous pouvez enlever le getty A MOINS que
 vous vouliez etre sur que la connexion permet  d'utiliser  les  paires
 nom  utilisateur/  mot  de  passe pour les connexions entrantes. Comme
 vous avez un 'controle physique' des deux machines, je pense que  vous
 n'avez pas besoin de ca.

 Maintenant,  sur  le  serveur,  enlevez  getty et assurez vous que les
 ports serie sont configures correctement sur les  deux  machines  avec
 'setserial'.

 Tout  ce  que vous avez besoin maintenant est de demarrer pppd sur les
 deux systemes. Je suppose que les connexions utilise une connexion par
 /dev/ttyS34.  Ainsi sur les deux machines lancez la commande :

 ______________________________________________________________________
 pppd -detach crtscts lock <local IP>:<remote IP> /dev/ttyS3 38400 &
 ______________________________________________________________________

 Cela  devrait lancer la connexion - mais pour le moment il n'y a aucun
 routage de specifie.  Vous  pouvez  tester  la  connexion  en  pingant
 l'autre  machine.   Si  ca  marche,  eteignez  la  liaison en tuant le
 processus pppd

 Le routage dont vous avez besoin depend de ce que  vous  voulez  faire
 exactement.   Generalement,  une  des  machines  sera  connecte sur un
 reseau  Ethernet  (et  meme  plus)  le  routage  necessaire  est  donc
 exactement le meme qu'entre un serveur PPP et un client.

 Sur la machine equipee d'Ethernet, la commande sera donc

 ______________________________________________________________________
 pppd -detach crtscts lock proxyarp <local IP>:<remote IP> /dev/ttyS3 38400 &
 ______________________________________________________________________

 et sur l'autre machine

 ______________________________________________________________________
 pppd -detach crtscts lock defaultroute <local IP>:<remote IP> /dev/ttyS3 38400 &
 ______________________________________________________________________

 Si  vous  reliez  deux  reseaux locaux (avec une liaison serie !) vous
 aurez  besoin  d'un  routage  plus  complexe,  vous  pouvez   utiliser
 /etc/ppp/ip-up exactement de la meme facon qu'il est decrit plus haut.

 RRoobbeerrtt HHaarrtt
 Port Hedland, Western Australia
 Melbourne, Victoria, Australia August/October 1996 January/March 1997