|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Traduction Fran軋ise de ce document
La traduction du pr駸ent document PPP-Howto (et pr馗馘emment PPP-FAQ) 騁ait
Vous pouvez 馮alement configurer votre PC Linux comme un serveur PPP, de cette fa輟n, d'autres ordinateurs peuvent appeler votre ordinateur et acc馘er aux ressources de votre PC et/ou r駸eau local.
Comme PPP est un syst鑪e qui marche dans les deux sens, vous pouvez 馮alement
Par cons駲uent, selon le type de votre connexion PPP, il y aura des limitations sur l'utilisation des applications et des services.
PPP est un protocole strictement sym騁rique; il n'y a (techniquement) aucune client. La machine sur laquelle vous-vous connectez est le serveur.
Quand vous configurez une machine Linux pour r駱ondre aux appels pour les connexion PPP, vous configurez un serveur PPP.
Ce document r馭駻ence la machine qui initie l'appel (qui le compose) comme le CLIENT, alors que la machine qui r駱ond au t駘駱hone, v駻ifie l'authentification de l'appel (en utilisant les noms utilisateurs, les mots de
Il y a de nombreuses distributions Linux diff駻entes qui on leurs propres idiosyncrasies et fa輟ns de faire les choses.
En particulier, il y a deux mani鑽es diff駻entes sur une machine Linux (ou Unix) de d駑arrer, configurer ses interfaces et ainsi de suite.
Il y l'initialisation BSD et l'initialisation SysV system. 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 syst鑪es. Si ce genre de chose vous pla?, allez donc les rejoindre pour g稍her de la bande passante avec eux !
Les distributions les plus utilis馥s sont sans doute :
/etc/rc.d/ contenant les fichiers de d駑arrage
plut? que de tout mettre dans /etc.
L'initialisation System V conserve ses fichiers d'initialisation dans les
r駱ertoires /etc/ ou /etc/rc.d et un certain nombre de
sous-r駱ertoires 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
Dans certaines installations (par exemple Red Hat et Caldera), il y a un syst鑪e de configuration des PPP sous X Window. Ce HOWTO ne traite pas de ces outils sp馗ifiques aux distributions. Si vous avez des probl鑪es avec ceux-ci, contactez directement les distributeurs !
Pour les utilisateurs de Red Hat 4.x, il y a maintenant un Red Hat PPP-TIP dans la partie Linux ressources et 馮alement chez Red Hat Software dans la partie support.
Ces adresses ne doivent jamais 黎re utilis馥s sur Internet.
Cependant, elles peuvent 黎re utilis馥s pour les r駸eaux locaux Ethernet sur la
Les limitations de service dues aux allocations dynamiques d'adresses IP (et les fa輟ns d'騅iter cela, quand c'est possible) sont d馗rites plus loin.
dip pour lancer une connexion PPP.
A la place, ce document d馗rit les programmes standard Linux/PPP (chat/pppd).
Notez qu'il y a un grand nombre de fa輟ns de configurer Linux comme serveur PPP. Ce document donne une m騁hode - qui est utilis馥 par l'auteur pour configurer quelques petits serveurs PPP (chacun avec 16 modems).
Cette m騁hode est connue pour fonctionner correctement. Cependant, ce n'est pas forc駑ent la meilleure m騁hode.
Ce document offre un bref aper輹 d'utilisation de PPP pour relier deux PC Linux avec un c稈le null modem. Il est possible de relier d'autres Syst鑪es
pppd que vous
utilisez.
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 r馘action, la derni鑽e 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 n馗essite des le programme PPP 2.1.2 avec un noyau Linux 2.0.X.
Veuillez remarquer que ce document ne traite pas des probl鑪es venant de l'utilisation de modules chargeables pour votre noyau Linux 2.0.x. Consulter la version appropri馥 de PPP qui sont connus pour fonctionner ensemble.
Je conseille aux utilisateurs de lire :
pppd et chat; man chat et man pppd pour les lire)Ces documents (ainsi que quelques autres, comme les RFCs correspondants)
fournissent des explications compl駑entaires et plus d騁aill馥s que ce qui est
"TCP/IP Network Administration" et
"Building Internet Firewalls" un b駭馭ice
consid駻able !
Si votre distribution Linux ne contient pas les programmes PPP, vous devez les obtenir sur the Linux PPP daemon
C'est la derni鑽e version officielle lors de la r馘action du document. Cependant, prenez la derni鑽e version disponible sur ce site (ppp-2.3 騁ait en b騁a lors de la r馘action de ce document et devrait sortir bient?).
Le paquetage PPP contient les instructions sur la fa輟n de compiler et d'installer le logiciel donc ce HOWTO n'en parlera pas. !
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 mat駻ielle personnelle. Il est bon de votre intranet), vous devez obtenir des informations sur la fa輟n dont le serveur fonctionne.
Puisque vous utilisez Linux, vous pourriez avoir quelques difficult駸 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 p駭鑼re 馮alement l'environnement industriel, vous devriez r馘uire ainsi les chances de rencontrer des probl鑪es.
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.
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 r駸oudre les noms comme
www.interweft.com.au vers l'adresse IP qui est r馥llement utilis馥
pour contacter cet ordinateur. Ces fichiers sont :
/etc/resolv.conf/etc/host.confVoir la section Tout ce dont vous avez besoin est de conna?re l'adresse IP d'au moins l'un des serveurs de noms que vous pouvez utiliser (plut? celui de votre fournisseur d'acc鑚).
Puisqu'騁ablir une liaison PPP entre votre ordinateur Linux et un autre
serveur PPP n馗essite la manipulation des p駻iph駻iques r駸eau (l'interface
PPP est une interface r駸eau) et des tables de routages du noyau, pppd
n馗essite les privil鑒es root.
Il y a un certain nombre de fichiers de configuration et d'appel qui doivent 黎re configur駸 pour rendre PPP op駻ationnel. 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 cr馥r des fichiers suppl駑entaires 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 il n'utilise pas PAP), vous pouvez tranquillement ignorer cette section.
Plut? que se connecter dans de tels serveurs en utilisant le nom utilisateur et le mot de passe quand vous 黎es interrog駸 par le serveur pour les entrer, Si votre serveur PPP utilise PAP (Password Authentification Protocol) fournit des informations sur les fichiers dont vous avez besoin pour 騁ablir une connexion PPP en utilisant PAP.
et la mise en place des scripts et du processus de login avec le serveur PPP, ainsi que des d騁ails complets surchat.
Cette section traite des scripts d'authentification du nom utilisateur/mot de passe ainsi que des scripts d'authentification pour les serveurs PAP/CHAP.
Une fois que votre connexion est activ馥 et fonctionne, vous devez pouvoir d駸activer la liaison.
Consultez la section Terminer une connexion PPP.
De nombreuses personnes ont des probl鑪es pour faire fonctionner PPP directement. Les diff駻ences entre les serveurs PPP et la fa輟n dont il faut configurer la connexion sont 駭ormes. De plus, PPP a de nombreuses options - et certaines combinaisons d'entre elles ne fonctionnent absolument pas ensemble.
En plus des probl鑪es de journalisation et de d駑arrage du service PPP, il y a des probl鑪es li駸 aux modems et aux lignes de t駘駱hones qui s'ajoutent !
La section R駸oudre les probl鑪es fournit des informations de base au sujet des erreurs classiques, et la fa輟n de les isoler et de les corriger.
Une fois que la liaison PPP est op駻ationnelle (sp馗ifiquement, 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 lanc馥
fournit des informations sur le script /etc/ppp/ip-up, les param鑼res
que PPP lui envoie et comment l'utiliser pour r馗up駻er votre courrier
駘ectronique de votre compte de votre fournisseur d'acc鑚, ou envoyer
les messages en attente de transmission sur votre machine.
ftp.lip6.fr.
La suite regroupe de br钁es instructions pour obtenir et installer les sources du noyau Linux. Des informations compl鑼es sont disponibles a The Linux Kernel HOWTO.
Pour installer et compiler le noyau Linux vous devez 黎re root.
ftp.lip6.fr.tar xzf linux-2.0.XX.tar.gz
cd /usr/usr/linux et lire le fichier README. Il
contient une excellente explication de la fa輟n de faire pour configurer et
compiler un nouveau noyau. Lisez ce fichier (c'est une bonne id馥 de
(comme les IRQ et les adresse I/O et des choses du genre).
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
R駱ondre aux autres questions du make config en accord avec le mat駻iel de
votre PC et les caract駻istiques que vous souhaitez pour votre syst鑪e
multiports, vous devez 馘iter 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 d騁ails complets des 馘itions simples que vous devez
faire).
Pour Linux 1.3.x et 2.0.x, vous pouvez utiliser le m麥e processus que pour
Linux 1.2.13. De m麥e, 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 syst鑪e 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 recommand馥
make xconfig
chargeables sont automatiquement enlev駸 si ils ne sont pas utilis駸.
Pour cela, vous devez activer le support des modules chargeables :
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
A la diff駻ence du 1.2.13, le noyau 2.0.x cr馥 les p駻iph駻iques PPP au vol et selon les besoins, et il n'y a absolument pas besoin de bricoler le source pour augmenter le nombre de p駻iph駻iques PPP.
lancement depppd :
[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 lanc駸, vous verrez des entr馥s 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
Si vous configurez votre PC Linux comme un serveur PPP, vous devez activer le support IP Forwarding. Il est 馮alement n馗essaire si vous voulez
Vous aurez 馮alement besoin, d'utiliser IP Masquerade pour relier un r駸eau local qui utilise les adresses IP non connect馥s mentionn馥s plus haut.
Pour activer IP Masquerade et IP firewalling, vous DEVEZ r駱ondre Oui
Avant d'騁ablir la connexion PPP avec un serveur, vous devez obtenir les
Remarque: 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.
Il est 馮alement bien de se souvenir que si vous avez 4 ports s駻ies, la configuration standard d'un PC est d'avoir COM1 et COM3 partageant IRQ4 et COM2 et COM4 partageant IRQ3.
Si vous avez des p駻iph駻iques sur vos ports s駻ies qui partagent une IRQ avec votre modem vous allez avoir des probl鑪es. Vous devez vous assurer que le port s駻ie de votre modem est sur sa propre et unique IRQ. De nombreuses ne sont pas utilis駸, ils ne sont pas affich駸).
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 plus), votre port s駻ie doit 黎re capable de suivre le d饕it qu'un tel modem est capable de produire, en particulier si le modem compresse les donn馥s.
Cela demande que votre port s駻ie utilise un UART(Universal Asynchronous 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 s駻ie (disponible pour moins de
Historiquement, Linux utilise les p駻iph駻iques 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 p駻iph駻iques cuaX
devraient dispara?re dans les futures versions du noyau.
Vous devez configurer votre modem correctement pour PPP - pour cela, LISEZ LE MANUEL DE VOTRE MODEM ! La plupart des modems ont une configuration par d馭aut en usine avec les options requises par PPP. La configuration minimale sp馗ifie :
&K3 sur les modems
Hayes)Les autres param鑼res (en commandes Hayes standard) que vous devez v駻ifier sont :
Il est aussi int駻essant de v駻ifier comment fonctionne l'interface s駻ie entre
Si vous utilisez uniquement votre modem sous Linux pour appeler votre FAI ou un serveur d'entreprise, la mani鑽e la plus simple est de sauver la configuration de votre modem dans la m駑oire non-volatile.
des donn馥s ne se sont pas perdues (les donn馥s n'arrivent pas dans le tampon d'entr馥 pour se perdre ensuite), certaines m騁hodes de contr?es sont n馗essaires.Il y a deux fa輟ns de faire sur des lignes s駻ies :
Bien que le dernier soit correct pour les liaisons vers des terminaux(texte), 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.
Quelques mots d'avertissements :
Si vous ne voyez pas directement apr鑚 la connexion (et le processus de connexion et le lancement du serveur PPP si besoin), tapez Entr馥 pour voir si le serveur PPP d駑arre...
A ce niveau, vous pouvez raccrocher votre modem (g駭駻alement, taper HOWTO ! Une fois que vous aurez fait tout cela reprenez l'騁ape pr馗馘ente.
Alors que les humains aiment donner des noms aux choses, les ordinateurs
pr馭鑽ent les nombres. Sur un r駸eau 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
ordinateur pourra traduire ces derniers vers les adresses IP dont il a
besoin pour travailler.
Une solution est de rentrer tous les h?es avec qui vous voulez dialoguer dans
/etc/resolv.conf
Le support client de votre serveur PPP doit vous fournir deux adresses IP de DNS (un seul est n馗essaire - mais deux permettent une redondance en cas d'馗hec).
Si des utilisateurs autres que root doivent lancer des connexions PPP, le
programme pppd doit avoir l'uid root :
-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
Si /usr/sbin/pppd n'est pas d馭ini comme cela, alors en 騁ant
root taper la commande :
chmod u+s /usr/sbin/pppd
pour minimiser le danger d'utiliser suit root, vous devez donc 黎re tranquille
avec celui-ci (mais sans garanties totales).
Selon ce que vous voulez faire de votre syst鑪e - particuli鑽ement si vous
voulez qu'un utilisateur puisse initialiser une liaison PPP, vous devez
mettre vos scripts ppp-on/off lisibles et ex馗utables par tout le
monde. (c'est sans doute g駭ial si vous 黎es le SEUL utilisateur du PC).
Cependant, si vous NE voulez PAS que n'importe qui puisse lancer une
ppp-on/off poss馘駸 par l'utilisateur
root et le groupe PPP
ppp-on/off lisible/ex馗utable 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
/etc/groupM麥e si vous faites cela, les utilisateurs normaux ne pourront pas fermer
la connexion avec un programme ! Utiliser ppp-off n馗essite les
choisir quels utilisateurs (autoris駸) pourrons activer/d駸activer
la liaison en utilisant des scripts. Utiliser sudo permet aux utilisateurs
autoris駸 d'activer/d駸activer la liaison PPP de fa輟n propre et
s馗uris馥.
PPP utilise un certain nombre de fichiers pour configurer les connexions. Ceux-ci diff鑽ent 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 d馗onnexion /etc/ppp/options # les options utilis馥s pour toutes le connexions /etc/ppp/options.ttyXX # les options sp馗ifiques 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 # premi鑽e partie du script d'appel
/etc/ppp/scripts/ppp-off # le script chat r馥l
/etc/ppp/options # options utilis馥s par pppd pour toutes les
# connexions
/etc/ppp/options.ttyXX # options sp馗ifiques 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 plac駸 dans
/usr/doc/ppp-2.2.0f-2/scripts.
Dans votre r駱ertoire /etc, il devrait y avoir un r駱ertoire ppp :
drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
la configuration individuelle n馗essaire pour chaque port.
Ces fichiers d'options sp馗ifiques aux ports sont appel駸 options.ttyx1,
options.ttyx2 et ainsi de suite (ou x est la lettre appropri馥 pour
votre port s駻ie).
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-m麥e.
Il est plus simple de maintenir une configuration qui utilise les fichiers
/etc/ppp/options.ttySx. Si vous utilisez PPP sur diff駻ents
sites, vous pouvez cr馥r un fichier d'options pour chaque site dans
Certaines distributions de PPP semblent avoir perdu le fichier options.tpl,
donc voici le fichier complet. Je sugg鑽e de NE PAS 馘iter ce fichier pour
cr馥r votre fichier(s) /etc/ppp/options. Copiez plut? celui-ci
dans un nouveau fichier et 馘itez-le alors. Si vous vous trompez dans votre
馘ition, vous pourrez toujours revenir en arri鑽e en recommen軋nt sur
l'original.
# /etc/ppp/options -*- sh -*- fichiers d'options generales pour pppd # cree le 13-Jul-1995 jmk # 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 mat駻iels 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 s駻ie #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
En fait, comme toujours, 軋 d駱end. Les options sp馗ifi馥s ici devraient marcher avec la plupart des serveurs.
Je rappelle 馮alement que les scripts de connexion pr駸ent駸 ici
utilisent 馮alement 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)
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 pr馗馘ents, 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
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
L'information critique ici est auth chap 80.
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 fa輟n de compiler en utilisant cette variante.
Vous devez remarquer que le code pr駸ent supporte uniquement des clients Linux PPP connect駸 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.
Cela est possible avec l'option name username de pppd. Donc, si vous
user votre_utilisateur nom_chez_votre_FAI pour PAP, mais pppd est
suffisamment intelligent pour interpr騁er l'option name comme user
si n馗essaire pour utiliser PAP. L'avantage d'utiliser l'option name
est qu'elle est 馮alement valide pour CHAP.
Puisque PAP permet d'authentifier les ordinateurs, techniquement, vous devez aussi sp馗ifier un nom d'ordinateur distant. Toutefois, comme de nombreuses personnes ont plus d'un seul FAI, vous pouvez utiliser un caract鑽e g駭駻ique (*) pour le nom d'ordinateur distant dans le fichier de secrets.
Il est aussi int駻essant de remarquer que de nombreux FAI utilise des banques
de modems multiples connect駸 sur diff駻ents serveurs de terminaux - tous ont
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
ET le serveur distant d'authentifier votre machine.
Donc, si votre machine s'appelle fred et que le serveur distant s'appelle
barney il faut d馭inir sur fred name fred remotename barney et
# 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 d'authentifier elle-m麥e la machine distante ET la machine distante d'authentifier elle-m麥e la machine locale.13.5 Supporter plusieurs connexions authentifi馥s avec PAP
PPP permet de d馭inir un << pseudonyme >> pour le serveur distant final de la connexion en utilisant l'option remotename de pppd.Supposons que vous vous connectiez sur deux serveurs PPP utilisant le m麥e nom utilisateur
fred. Vous configurerez votre/etc/ppp/pap-secretsavec
fred pppserveur1 barney fred pppserveur2 wilma
Maintenant, pour se connecter sur
r駟nitialiser le modem.pppserveur1vous utiliserezpppden utilisant l'optionfile filename, vous pouvez d馭inir un script pour se connecter sur chacun de vos serveurs PPP, qui choisira le fichier d'options correct et mettra la bonne optionremotename.Minicompeut le faire avec Alt-Q (ou dans les versions plus ancienne deminicomCTRL-A Q)V駻ifiez que vous 黎es root.
Lancez le programme de communication (
minicompar exemple), appelez leSi vous utilisez PAP ou CHAP, se connecter simplement sur le syst鑪e distant devrait d駑arrer PPP et vous devriez voir des caract鑽es s'afficher sans toutefois se connecter (m麥e si 軋 peut ne pas marcher sur certains serveurs - essayez alors d'appuyer sur Entr馥 et les caract鑽es devraient s'afficher).
Maintenant quittez le programme de communication sans initialiser le modem (ALT-Q ou CTRL-A Q dans
minicom) et au message d'accueil de Linux (騁ant root) tapez
pppd -d -detach /dev/ttySx 38400 &
L'option -d active le d饕oguage - la conversation de d駑arrage de la connexion ppp sera retranscrite dans votre journal syst鑪e - ce qui est tr鑚 utile si des probl鑪es apparaissent.
Les lumi鑽es de votre modem devraient alors clignoter puisque la connexion PPP est 騁ablie. Cela peut prendre un peu de temps avant que la connexion soit termin馥.
A ce niveau, vous pouver afficher l'interface PPP en tapant la commande :
ifconfig
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 d饕uggage !
Vous devez aussi pouvoir voir une route vers l'h?e distant (et m麥e 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 entr馥s pointant vers votre interface ppp.
de vous renvoyer les paquets chez vous.Si vous ne voyez pas une table de routage avec deux entr馥s, quelque chose ne
marche pas. En particulier si votre syslog contient des messages indiquant que
pppd ne remplace pas la route par d馭aut, vous devez avoir une route par
d馭aut qui pointe sur votre interface Ethernet - qui DOIT 黎re remplac馥
par une route r駸eau sp馗ifique : VOUS NE POUVEZ AVOIR QU'UNE SEULE ROUTE
PAR DEFAUT !!!
Ce listing doit continuer sans jamais s'arr黎er - pour le stopper, taper CTRL C, vous recevrez alors des informations compl駑entaires :
--- 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'h?e (pas le nom du serveur PPP lui-m麥e) mais un h?e d'un autre site dont vous SAVEZ qu'il y a de tr鑚 fortes 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 round-trip min/avg/max = 169.8/176.3/190.1 ms
Si vous n'avez pas de r駱onse, essayer de pinger l'adresse de votre serveur DNS
de votre FAI. Si vous n'avez pas de r駸ultat, alors il doit y avoir un
probl鑪e avec votre /etc/resolv.conf.
Si 軋 ne marche pas, soit vous 騁eignez 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 馮alement effacer le fichier cr鳬 par pppd
du groupe PPP) pour lancer votre connexion.15.1 Scripts de connexion pour l'authentification nom utilisateur/mot de passe
Si votre FAI n'a pas besoin d'utiliser PAP/CHAP, ces scripts sont faits pour vous !
et pour PPP 2.2
ppp-off ppp-on ppp-on-dialerMaintenant, si vous utilisez PPP 2.1.2, je vous presse fermement de d騁ruire
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 '' \ # 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
15.3 Editer les scripts de d駑arrage de PPP fournis
Puisque les nouveaux scripts sont en deux parties, nous allons les 馘iter chacun leur tour.
Le script ppp-on
Vous devez 馘iter ces fichiers pour contenir VOTRE nom utilisateur de votre FAI, commentaires 騅idemment). ノditer 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
cette ligne dans le scriptppp-on!Le script ppp-on-dialer
C'est le deuxi鑪e des scripts qui lance votre liaison PPP.
Remarque : un script
chatest normalement sur une ligne compl鑼e. d'attentes"et de"cha?es d'envoi". En particulier, remarquez que nous attendons TOUJOURS quelque chose avant d'envoyer quoi que ce soit.Si nous envoyons quelque chose SANS avoir rien re輹 avant, nous devons dans le journal syst鑪e (g駭駻alement /var/log/messages). Une fois que votre script
chatmarchera correctement, 馘itez cette ligne et enlevez le -v pour 馗onomiser des messages inutiles dans votre syslog.
TIMEOUT 3Si la cha?e BUSY est re輹e, abandonner l'op駻ation.
M
ABORT '\nNO ANSWER\r'
Si la cha?e NO ANSWER est re輹e, abandonner l'op駻ation.
ABORT '\nRINGING\r\n\r\nRINGING\r'
Si la cha?e RINGING est re輹e de mani鑽e r駱騁馥, abandonner l'op駻ation. C'est parce que quelqu'un vous appelle !
" \rAT
Ne rien attendre du modem et envoyer la cha?e AT.
en ligne de commande) alors envoyer +++ (la cha?e standard des modems compatible Hayes pour retourner en ligne de commande) et attendre OK. Ensuite envoyer ATH0 (la cha?e pour raccrocher). Cela permet au script deAttendre CONNECT(ce que le modem nous envoie lorsque le modem distant d馗roche) et n'envoie rien en r駱onse.
ogin:--ogin: $ACCOUNT
Une fois encore nous avons une r馗up駻ation d'erreur ici. Attendre le message poss鐡e bien d'autres possibilit駸 que celles d騁aill駸. Pour plus d'informations, consulter la page de manuel de
chat(man 8 chat).D駑arrer PPP sur le serveur final
Bien que le script ppp-on-dialer soit parfait pour les serveurs qui lancent automatiquement
pppdsur le serveur final une fois que vous 黎es connect駸, certains serveurs n馗essitent 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 馘iter le script ppp-on-dialer.
A la fin du script (apr鑚 la ligne password) ajouter une paire attente envoi en plus - elle cherchera un message de login (une suite de commande de d駑arrage de ppp n馗essaire sur le serveur PPP de votre FAI.
Pour ma part, mon serveur PPP utilise un prompt Bash standard
[hartr@kepler hartr]$
et n馗essite que je tapes
ppp
pour lancer ppp sur le serveur.
Une id馥 judicieuse peut 黎re d'ajouter un peu de r馗up駻ation d'erreur, dans mon cas j'utilise
hartr--hartr ppp
Cela signifie que si je ne re輟is pas le prompt dans le temps imparti, j'envoie pour que
chatpense que le script de connexion dechatest toujours sur une seule ligne !Malheureusement, certains serveurs g駭鑽ent un nombre de messages tr鑚 variable ! Vous aurez peut-黎re besoin de vous connecter plusieurs fois avec
minicompour comprendre comment 軋 marche et r馗up駻er une cha?e "d'attente" stable.15.5 Un script chat pour les connections authentifi馥s avec PAP/CHAP
Si votre FAI utilise PAP/CHAP, alors votre script
chatest bien plus simple. Tout ce que votre scriptchatdoit faire est de composer le num駻o, attendre la connexion et ensuite laisserpppds'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 '' \
/etc/ppp/optionsou/etc/ppp/options.ttySx, sp馗ifiez le nom du fichier avec l'optionfiledepppd:
exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
16. Testez votre script de connexion
Ouvrez un nouveau Xterm root (si vous 黎es sous X) ou ouvrez une nouvelle console virtuelle et connectez vous comme root.
Dans cette nouvelle session, tapez la commande
tail -f /var/log/messages(ou l'endroit exact ou se trouve le fichier log).
Dans la premi鑽e fen黎re (ou console virtuelle), tapez la commande
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.51ppp-on &
(Remarque - j'utilise les adresses IP STATIQUES - ma machine l'envoie au 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'inqui騁er du
SIOCDELRT- c'est justepppdqui indique qu'il dans leur noyau et apr鑚, lorsqu'ils essayent de lancer pppd, le noyau r駱ond qu'il ne supporte pas ppp ! Un grand nombre de raisons peuvent en 黎re la cause.Bootez-vous avec le bon noyau ?
utiliser ppp-2.2 avec les versions 1.2.x du noyau (si vous le patchez) sinon vous devez utiliser ppp-2.1.2.Lancez vous pppd en 騁ant root ?
Si vous ne lancez pas
pppden 騁ant l'utilisateur root (et quepppdn'est pas suid vers root), vous pourrez recevoir ce message.18.2 Mon modem se connecte mais PPP ne d駑arre jamais
Il y a d'innombrables possibilit駸 avec 軋 (regardez dans comp.os.linux....).
Il y a deux fa輟n de r駸oudre cela :
Ajouter
lcp-max-configure 30comme option de ppp. Cela augmentera le nombre de packets de configuration LCP quepppdenverra avant d'abandonner.18.5 La route par d馭aut n'est pas configur馥
Si
pppdrefuse de configurer la route par d馭aut, c'est parce que (assez justement) il refuse de remplacer/supprimer une route par d馭aut existante.La raison habituelle lorsque cette erreur appara? est que certaines distributions configurent une route par d馭aut pour votre carte Ethernet au lieu de la configurer comme une route r駸eau sp馗ifique.
Voir le Linux NAG et le HOWTO Net2/3 pour des informations sur la fa輟n de
20. Probl鑪es classiques lorsque la liaison fonctionne
Un des probl鑪es que vous rencontrerez est que de nombreux fournisseurs d'acc鑚 est qu'ils ne supporterons que les programmes de connexions qu'ils que le serveur de noms fonctionne correctement), vous devez avoir un probl鑪e ailleurs - et je vous sugg鑽e de v駻ifier votre installation de Linux (en particulier les permissions des fichiers).
Si vous ne pouvez TOUJOURS pas pinger le serveur de nom de votre fournisseur voir "Configurer les services" plus bas.
21. Utiliser les services Internet avec des adresses IP dynamiques
Si vous utilisez une adresse IP dynamique (et tous les provideurs ne vous totalement inconnu des utilisateurs d'Internet A MOINS QU'ils soient au courant que votre machine est connect馥 et qu'ils connaissent votre adresse IP courante. Il y a plusieurs fa輟n de fournir cette information, vous demander par t駘駱hone, leur envoyer un e-mail pour leur dire, ou utiliser un fichier ".plan" sur le compte shell de votre fournisseur d'acc鑚 (en partant du principe que votre fournisseur d'acc鑚 permet les script shell et les finger).
de connexion sortantes, vous feriez mieux de prendre une adresse IP statique. Cependant, vous pouvez aussi explorer les m騁hodes astucieuses ci dessous...21.1 Configurer le courrier 駘ectronique (email)
M麥e avec une adresse IP dynamique, vous devrez certainement configurer sendmail sur votre machine pour envoyer le courrier que vous 馗rivez localement. La configuration de sendmail peut 黎re obscure et difficile - ce document
sendmail -q &dans votre script /etc/ppp/ip-up (voir plus haut).
Les mails entrant sont probl駑atique avec les adresses IP dynamiques. La fa輟n de les supporter est de :
Vous pouvez automatiser ce processus lors de l'appel en ajoutant la commande
n馗essaire dans le script /etc/ppp/ip-up (voir plus haut).
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 馮alement un DNS-HOWTO.
chez votre FAI, mais si il ne l'est pas, il peut causer de nombreux probl鑪es.Il y a fondamentalement aucune diff駻ence entre le fait de relier un seul PC Linux avec PPP et relier deux r駸eaux locaux avec PPP et une machine sur chaque r駸eau. Souvenez-vous PPP est un protocole r騅ersible.
Cependant, vous devez REELLEMENT comprendre comment le routage se d駻oule.
Pour relier deux r駸eaux locaux, vous devez utiliser des adresses IP diff駻entes (ou des sous-r駸eau d'adresses diff駻entes) 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 mani鑽e de le configurer.
Arrangez-vous avec l'administrateur syst鑪e de l'autre r駸eau local pour route r駸eau sp馗ifique doit 黎re ajout馥 pour tous les r駸eaux accessible par cette liaison. C'est la commande 'route' qui le fait pour chaque r駸eau dans le script /etc/ppp/ip-up script (voir une fois que la liaison Internet ce cette mani鑽e. Ne rien faire peut soit n'amener aucune r饌ction soit de s駻ieux probl鑪es !
/etc/ppp/ip-upUne fois que la connexion est 騁ablie, pppd cherche un
/etc/ppp/ip-up.
Si ce script existe et est ex馗utable, le daemon PPP le lance. Cela permet
d'automatiser des commandes de routages sp馗iales qui peuvent 黎re n馗essaires
et toutes les autres actions que vous souhaitez lancer une fois que la liaison
et qu'il doit 黎re lisible est ex馗utable par root.
Si vous reliez deux r駸eaux locaux, vous devez configurer des routes
sp馗ifiques vers le r駸eau '騁ranger'. Le script /etc/ppp/ip-up peut
la liaison qui d駑arre - et non lorsque n'importe quelle liaison d駑arre !
Lorsqu'une liaison entre deux r駸eaux locaux d駑arre, vous voudriez vous
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 r駸ultat du lancement de la liaison PPP vers notre campus Newman et le d駑arrage de ce script, d騁ermine les entr馥s de la table de routage (cette machine est aussi notre serveur PPP g駭駻al ET supporte nos liaisons 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 r駸eau local ethernet 203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3 # deux des lignes g駭駻ales 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 r駸eau specifique vers le r駸eau Newman campus 202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5 # la route de notre r駸eau 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 p駻iph駻ique loop back 127.0.0.0 * 255.0.0.0 U 3584 0 483 lo # la route par d馭aut vers Internet default 139.130.177.2 * UG 1500 0 3633 ppp4
La section pr馗馘ente montrait comment supporter le mail sortant - en envoyant simplement le courrier lorsque la liaison d駑arrait.
#!/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 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 l'interface Ethernet) et 馮alement le serveur PPP distant voire plus loin.
Cette section ne pr騁end pas vous apprendre le routage - elle traite seulement de cas simples et sp馗iaux de routage (statique) !
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 eth0Si votre interface Ethernet (eth0) pointe vers la route par d馭aut, (la premi鑽e colonne contiendra un "default" dans la ligne eth0) vous devez changer les scripts d'inititalisation d'Ethernet pour qu'ils utilisent des 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'h?e vers le serveur PPP
Si vous n'aimez pas la m騁hode pr駸ent馥 ici, faites donc comme vous pr馭駻ez. J'aimerais toutefois ajouter des m騁hodes suppl駑entaires dans les prochaines versions de ce HOWTO. Envoyez donc moi comment vous faites !
de temps en temps). Les informations pr駸ent馥s ici n'utiliserons toutefois pas ce m馗anisme.Tous les commentaires pr馗馘ent concernant la compilation du noyau et les
versions du noyau et de pppd sont encore valables. Cette section
consid鑽e que vous avez lu les sections pr馗馘entes du document !
Pour un serveur PPP, vous DEVEZ 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 s駻ie multi-port, vous devez bien entendu inclure 馮alement les pilotes n馗essaires dans le noyau !
Nous offrons des comptes PPP (ou SLIP) et des comptes shell en utilisant les m麥es 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 馘ucative, nous ne faisons pas payer le personnel ni les 騁udiants pour leur acc鑚, et nous n'avons donc pas besoin de nous inqui騁er des probl鑪es de payement.
Un firewall existe entre notre site et Internet, et cela limite les acc鑚 des
ppp pour lancer PPP sur
le serveur.pppd automatiquement, mais je dois encore explorer un
peu 軋.Ce howto ne couvre pas sa configuration. Regardez la documentation de getty de votre choix ou le serial HOWTO pour plus d'informations sur le sujet.
Tout ce dont vous avez besoin est la route h?e de la machine client et l'utilisation de l'option 'proxyarp' de pppd.
L'option 'proxyarp' configure (surprise) une entr馥 proxy ARP dans la table ARP du serveur qui signifie en substance 'envoie moi tous les paquets destin駸 au client'. C'est la mani鑽e la plus simple de configurer le routage vers un
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. Cr馥z alors pour chaque port d'appel
un /etc/ppp/options.ttyXX.
Heureusement, pppd est pr騅u pour marcher correctement avec set uid root.
Vous devez donc
chmod u+s /usr/sbin/pppd
Quand vous listez le fichier, il doit appara?re comme cela
-rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
Si vous n'avez pas 軋, vous ne pourrez pas utiliser votre liaison ppp.
Pour simplifier les choses pour les utilisateurs de notre connexion PPP, nous cr馥rons un alias global (dans /etc/bashrc) qui est en fait une simple commande qui lancera ppp sur le serveur d鑚 qu'ils seront connect駸.
Cela nous donne
alias ppp="exec /usr/sbin/pppd -detach"
Et il fait ceci
pppd existe et qu'il n'y a pas d'autres processus qui tra?ent.
Quand un utilisateur se connecte comme cela, il va appara?re apr鑚 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'騁ait simple un serveur PPP de base !
Une fois que 軋 fonctionne, vous pouvez enlever le getty A MOINS que vous vouliez 黎re s? que la connexion permet d'utiliser les paires nom utilisateur/ mot de passe pour les connexions entrantes. Comme vous avez un 'contr?e physique' des deux machines, je pense que vous n'avez pas besoin de 軋.
Maintenant, sur le serveur, enlevez getty et assurez vous que les ports s駻ie sont configur駸 correctement sur les deux machines avec 'setserial'.
Tout ce que vous avez besoin maintenant est de d駑arrer pppd sur les deux
syst鑪es. Je suppose que les connexions utilise une connexion par /dev/ttyS34.
Ainsi sur les deux machines lancez la commande :
Sur la machine 駲uip馥 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 r駸eaux locaux (avec une liaison s駻ie !) vous aurez besoin d'un routage plus complexe, vous pouvez utiliser /etc/ppp/ip-up exactement de la m麥e fa輟n qu'il est d馗rit plus haut.
Robert Hart
Port Hedland, Western Australia
Melbourne, Victoria, Australia August/October 1996 January/March 1997