Les configurations précédentes décrivent la façon d'installer une station Linux pour des utilisations normales. Certains d'entre vous ont peut-être des besoins qui requièrent des configurations légèrement plus avancées. Les exemples suivants sont les plus communs. Les détails concernant AX.25, Ottawa PI et les pilotes génériques SCC ont été mis sur http://sunsite.unc.edu/mdw/HOWTO/HAM-HOWTO.html .
Le Protocole Point à Point est un protocole transportant d'autres protocoles, TCP/IP par exemple, sur des lignes séries, et que beaucoup de personnes utilisent à la place de SLIP. Il offre des fonctionnalités avancées, des options de corrections d'erreurs et gestion de la sécurité. Il corrige beaucoup de déficiences de SLIP et est utilisable aussi bien pour des liaisons asynchrones que synchrones.
Une caractéristique importante de PPP est l'allocation dynamique d'adresses, probablement exploitée par votre serveur PPP. Cette caractéristique permet à un client PPP de demander son adresse au serveur grâce à une requête spéciale. De cette manière, la configuration est plus propre qu'avec SLIP car la capacité à retrouver son adresse est externe au protocole.
Les auteurs de la version Linux sont Michael Callahan,
<callahan@maths.ox.ac.uk> et Al Longyear,
<longyear@netcom.com>. La plupart des informations que vous trouverez
ici viennent de la documentation qui accompagne les logiciels PPP. Cette
documentation est complète et vous en apprendra beaucoup plus.
Le code PPP de Linux est sorti de la phase de tests ALPHA et est maintenant disponible pour tout le monde. Le code PPP 1.0.0 de Linux est basé sur la version libre de PPP de Paul Mackerras pour les systèmes d'exploitation dérivés de BSD. La version 1.0.0 est basée sur la version 2.1.1 du code libre.
Le code PPP se compose de deux parties. La première est un module du noyau qui gère l'assemblage et le désassemblage des paquets. La seconde est un ensemble de protocoles appelés LCP, IPCP, UPAP et CHAP, qui négocient les options de la liaison, faisant fonctionner la liaison et gérant l'authentification.
Vous utiliserez PPP à la place de SLIP pour plusieurs raisons. Les plus courantes sont~:
C'est la plus évidente des raisons pour utiliser PPP au lieu de SLIP.
PPP fournit une séquence de vérification pour chaque paquet transmis, SLIP non. Si vous avez une ligne série bruitée, et que vous utilisez SLIP, votre correction d'erreur sera réalisée d'une extrémité à l'autre de la connexion IP, c'est-à-dire entre votre machine et la machine de destination, alors qu'avec PPP la détection d'erreur s'effectue localement sur la liaison entre votre machine et le serveur PPP. Ceci permet une récupération d'erreurs plus rapide.
PPP propose plusieurs possibilités que ne permet pas SLIP. Vous pouvez vouloir par exemple transporter non seulement de l'IP, mais aussi du DECNET, ou des paquets AppleTalk au dessus de votre liaison série. PPP vous permet de le faire.
Le logiciel PPP est disponible à~:
sunsite.unc.edu
/pub/Linux/system/Networking/serial/ppp-2.1.2d.tar.gz
Ce fichier contient le source du noyau et les sources et binaires de pppd. La version 1.0.0 est prévu pour être utilisée avec les noyaux 1.0.x et 1.1.x. La version 2.1.2 est prévue pour les noyaux 1.2.x, et la 2.2.0 pour les noyaux 1.3.x.
L'installation du logiciel PPP est très simple.
Un support pour PPP a été construit dans le noyau depuis quelque temps, dès lors vous êtes encouragés à utiliser un noyau récent. La configuration du noyau est très simple, les commandes suivantes devraient fonctionner~:
# make config (rappelez-vous de repondre 'y' au support PPP)
# make dep
# make (pensez a installer le nouveau noyau apres la recompilation!)
Quand vous rebootez avec le nouveau noyau, vous devriez voir à peu près les messages suivants au moment du boot:
PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS OPTIMIZE_FLAGS
TCP compression code copyright 1989 Regents of the University of California
PPP line discipline registered.
Ceci indique que le support PPP a bien été compilé dans votre noyau.
Maintenant, essayez de regarder le contenu de /proc/net/dev. Faites attention à ne pas utiliser more ou less dans le système de fichiers proc car ils vérifient la longueur du fichier en premier et c'est une caractéristique des fichiers de proc d'avoir une longueur nulle, aussi faites:
# cat /dev/proc/net
Il
devrait ressembler à quelque chose comme~:
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 0 0 0 0 0 0 0 0 0 0 0
ppp0: 0 0 0 0 0 0 0 0 0 0 0
ppp1: 0 0 0 0 0 0 0 0 0 0 0
ppp2: 0 0 0 0 0 0 0 0 0 0 0
ppp3: 0 0 0 0 0 0 0 0 0 0 0
Cela indique que le pilote noyau a été installé correctement.
Pour extraire le logiciel pppd et les utilitaires l'accompagnant, ce qui suit devrait convenir:
# cd /usr/src
# gzip -dc ppp-2.1.2d.tar.gz | tar xvf -
Si vous voulez recompiler pppd, tapez make dans le
sous-répertoire pppd. Il y aura des messages d'avertissement pendant
la compilation de lcp.c, upap.c et chap.c mais tout
sera OK.
Si vous voulez recompiler chat, consultez le fichier
README.linux dans le répertoire chat.
Pour installer, taper make install dans les répertoires chat
et pppd. Ces commandes installeront les binaires de chat et
pppd dans /usr/etc et la page de man pppd.8 dans
/usr/man/man8.
pppd a besoin d'être lancé sous root. Vous pouvez positionner
le bit suid root ou juste le lancer quand vous êtes root. make install
essaiera de l'installer avec le bit suid root, donc si vous êtes root quand
vous l'installez tout devrait fonctionner correctement.
Comme SLIP, vous pouvez configurer les logiciels PPP comme client ou comme serveur. Le programme chat joue le même rôle que dip dans le sens qu'il automatise la composition du numéro de téléphone et la connexion à la machine distante. A la différence de dip, il ne convertit pas la ligne série à la discipline PPP. Ceci est réalisé par le programme pppd. pppd peut servir de serveur ou de client. Quand vous l'utilisez comme un client, il appelle le programme chat pour établir la connexion puis il reprend la main pour faire l'ioctl qui change la discipline de la ligne pour celle de ppp et ensuite il vous laisse opérer.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README livré avec le logiciel PPP.
C'est peut-être ce que la plupart d'entre vous voudront faire, donc nous allons
l'aborder en premier. Vous utiliserez cette configuration si votre fournisseur
réseau propose des accès PPP par modem. Quand vous voulez établir la connexion
vous lancez simplement pppd sans arguments. Ceci suppose que votre serveur PPP vous assignera une adresse de manière dynamique. Nous verrons plus loin le cas où vous avez une adresse statique.
Le programme pppd a un certain nombre d'arguments en ligne qui peuvent modifier son comportement. Ces arguments peuvent être placés d'un fichier de configuration de telle manière que les commandes n'apparaissent pas visibles lorsque quelqu'un branché sur le système fait la commande ps. Ceci est particulièrement important quand pppd fait appel au programme chat: en effet il a besoin du mot de passe pour se connecter sur le serveur et en général vous ne souhaitez pas qu'il soit visible aux autres utilisateurs du système.
Le fichier que pppd utilise s'appelle /etc/ppp/options.
Un bon point de départ pour une installation `typique' PPP peut ressembler à ceci:
connect /etc/ppp/ppp-connect
/dev/ttyS1
19200
crtscts
modem
lock
asyncmap 0
defaultroute
Cela signifie que:
/etc/ppp/ppp-connect pour numéroter via le modem et se connecter.ttyS1 à 19200 bits par seconde, en utilisant le protocole d'échanges de données matériel crtscts et doit respecter les signaux du modem (particulièrement la détection de porteuse) pour détecter si le modem est toujours en ligne ou si l'appel est fini.lock pour le dispositif tty pour s'assurer qu'un autre processus n'essaie pas de l'utiliser en même temps que lui.asyncmap détermine quels caractères pppd doit échapper et par défaut ceci est valable pour tous les caractères de contrôle. La plupart des serveurs PPP modernes sont aptes pour les 8 bits et mettre asyncmap à 0 enjoint pppd de n'échapper aucun caractère.defaultroute via le dispositif ppp quand la connexion a réussi./etc/ppp/ppp-connect. Vous devriez normalement utiliser le programme chat livré, avec pppd à l'intérieur de ce script, étant données sa simplicité d'utilisation et sa brièveté.
Pour commencer vous devez connaître à quoi ressemble la séquence de connexion de votre serveur PPP. Ce qui suit est un exemple fictif sur lequel je m'appuyerai.
CONNECT 14400
Bienvenue sur les serveur PPP XYZ !
login: <vous entrez votre nom d'utilisateur>^M
password: <vous entrez votre mot de passe>^M
Maintenant PPP:
Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'. /etc/ppp/ppp-connect ne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
#!/bin/sh
# Un script pour se connecter au serveur PPP XYZ
NUM=5552857
UID=terryd
PASSWD=secret1
#
/usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).
Notez l'argument "", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.
L'argument -v enjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le \\q avant $PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré.
Il est bon de faire chmod 600 /etc/ppp/ppp-connect pour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe.
Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une route default dans votre table de routage quand vous utilisez la commande route -n pointée via votre nouveau dispositif ppp0.
Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier /etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnn étant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.
Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
pppd defaultroute noipdefault debug \
kdebug 2 /dev/cua0 9600
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par
défaut sur l'interface ppp. Le paramètre noipdefault signifie
que le programme pppd doit demander l'adresse à utiliser pour son
interface au serveur. Les messages de debug passeront par syslog.
L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui
vous donnera plus d'informations sur le déroulement des opérations. Il utilisera
le pilote /dev/cua0 à 9600 bps.
Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous
pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de
connexion. L'entrée du fichier /etc/passwd ressemblera à~:
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppplogin
et le script /etc/ppp/ppplogin ressemblera à~:
#!/bin/sh
exec /usr/etc/pppd passive :192.1.2.23
L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez créer autant de comptes et de scripts de connexion que vous voudrez autoriser d'accès PPP car vous ne pouvez utiliser qu'une seule adresse IP par script.
L'url http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html est une excellente référence pour obtenir des informations plus compréhensible que celles que je donne ici. La plupart des discussions sur PPP pour Linux se tiennent sur la liste de diffusion PPP.
Pour joindre le canal PPP Linux sur le serveur de listes, envoyez un courrier électronique à~:
Majordomo@vger.rutgers.edu
avec la ligne~:
subscribe linux-ppp
dans le corps du message. La ligne sujet est ignorée.
N'oubliez pas de joindre tout le contexte de votre problème, ainsi que toutes les informations utiles pour votre rapport d'anomalie afin que ceux qui vous assisteront comprennent bien votre problème.
Vous pouvez aussi consulter~:
Les RFC 1548, 1331, 1332, 1333 et 1334. Ce sont les documents de référence pour PPP.
W. Richard Stevens décrit aussi PPP dans son livre `TCP/IP Illustrated Volume 1', (Addison-Wesley, 1994, ISBN 0-201-63346-9).
Si vous avez une machine qui doit être joignable par téléphone, et proposer des services réseau, vous devrez configurer votre machine en serveur. Si vous voulez utiliser SLIP comme protocole série, vous aurez le choix entre trois solutions pour configurer votre machine Linux comme serveur SLIP. Ma préférence va à la première présentée, sliplogin, car elle est la plus simple à configurer et à comprendre, mais je présenterai un résumé de chaque pour vous faire une opinion.
sliplogin est un programme que vous pouvez utiliser à la place du programme login normal pour les comptes SLIP. Il convertit la ligne du terminal en ligne SLIP.
L'appelant se connectera avec la procédure standard, en entrant son nom d'utilisateur puis son mot de passe, mais au lieu d'avoir un shell de>
CONNECT 14400 Bienvenue sur les serveur PPP XYZ ! login: <vous entrez votre nom d'utilisateur>^M password: <vous entrez votre mot de passe>^M Maintenant PPP:
Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'. /etc/ppp/ppp-connect ne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
#!/bin/sh
# Un script pour se connecter au serveur PPP XYZ
NUM=5552857
UID=terryd
PASSWD=secret1
#
/usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).
Notez l'argument "", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.
L'argument -v enjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le \\q avant $PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré.
Il est bon de faire chmod 600 /etc/ppp/ppp-connect pour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe.
Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une route default dans votre table de routage quand vous utilisez la commande route -n pointée via votre nouveau dispositif ppp0.
Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier /etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnn étant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.
Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
pppd defaultroute noipdefault debug \
kdebug 2 /dev/cua0 9600
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par
défaut sur l'interface ppp. Le paramètre noipdefault signifie
que le programme pppd doit demander l'adresse à utiliser pour son
interface au serveur. Les messages de debug passeront par syslog.
L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui
vous donnera plus d'informations sur le déroulement des opérations. Il utilisera
le pilote /dev/cua0 à 9600 bps.
Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous
pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de
connexion. L'entrée du fichier /etc/passwd ressemblera à~:
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppplogin
et le script /etc/ppp/ppplogin ressemblera à~:
#!/bin/sh
exec /usr/etc/pppd passive :192.1.2.23
L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez créer autant de comptes et de scripts de connexion que vous voudrez autoriser d'accès PPP car vous ne pouvez utiliser qu'une seule adresse IP par script.
L'url http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html est une excellente référence pour obtenir des informations plus compréhensible que celles que je donne ici. La plupart des discussions sur PPP pour Linux se tiennent sur la liste de diffusion PPP.
Pour joindre le canal PPP Linux sur le serveur de listes, envoyez un courrier électronique à~:
Majordomo@vger.rutgers.edu
avec la ligne~:
subscribe linux-ppp
dans le corps du message. La ligne sujet est ignorée.
N'oubliez pas de joindre tout le contexte de votre problème, ainsi que toutes les informations utiles pour votre rapport d'anomalie afin que ceux qui vous assisteront comprennent bien votre problème.
Vous pouvez aussi consulter~:
Les RFC 1548, 1331, 1332, 1333 et 1334. Ce sont les documents de référence pour PPP.
W. Richard Stevens décrit aussi PPP dans son livre `TCP/IP Illustrated Volume 1', (Addison-Wesley, 1994, ISBN 0-201-63346-9).
Si vous avez une machine qui doit être joignable par téléphone, et proposer des services réseau, vous devrez configurer votre machine en serveur. Si vous voulez utiliser SLIP comme protocole série, vous aurez le choix entre trois solutions pour configurer votre machine Linux comme serveur SLIP. Ma préférence va à la première présentée, sliplogin, car elle est la plus simple à configurer et à comprendre, mais je présenterai un résumé de chaque pour vous faire une opinion.
sliplogin est un programme que vous pouvez utiliser à la place du programme login normal pour les comptes SLIP. Il convertit la ligne du terminal en ligne SLIP.
L'appelant se connectera avec la procédure standard, en entrant son nom d'utilisateur puis son mot de passe, mais au lieu d'avoir un shell de>
CONNECT 14400 Bienvenue sur les serveur PPP XYZ ! login: <vous entrez votre nom d'utilisateur>^M password: <vous entrez votre mot de passe>^M Maintenant PPP:
Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'. /etc/ppp/ppp-connect ne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
#!/bin/sh
# Un script pour se connecter au serveur PPP XYZ
NUM=5552857
UID=terryd
PASSWD=secret1
#
/usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).
Notez l'argument "", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.
L'argument -v enjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le \\q avant $PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré.
Il est bon de faire chmod 600 /etc/ppp/ppp-connect pour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe.
Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une route default dans votre table de routage quand vous utilisez la commande route -n pointée via votre nouveau dispositif ppp0.
Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier /etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnn étant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.
Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
pppd defaultroute noipdefault debug \
kdebug 2 /dev/cua0 9600
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par
défaut sur l'interface ppp. Le paramètre noipdefault signifie
que le programme pppd doit demander l'adresse à utiliser pour son
interface au serveur. Les messages de debug passeront par syslog.
L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui
vous donnera plus d'informations sur le déroulement des opérations. Il utilisera
le pilote /dev/cua0 à 9600 bps.
Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous
pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de
connexion. L'entrée du fichier /etc/passwd ressemblera à~:
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppplogin
et le script /etc/ppp/ppplogin ressemblera à~:
#!/bin/sh
exec /usr/etc/pppd passive :192.1.2.23
L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez créer autant de comptes et de scripts de connexion que vous voudrez autoriser d'accès PPP car vous ne pouvez utiliser qu'une seule adresse IP par script.
L'url http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html est une excellente référence pour obtenir des informations plus compréhensible que celles que je donne ici. La plupart des discussions sur PPP pour Linux se tiennent sur la liste de diffusion PPP.
Pour joindre le canal PPP Linux sur le serveur de listes, envoyez un courrier électronique à~:
Majordomo@vger.rutgers.edu
avec la ligne~:
subscribe linux-ppp
dans le corps du message. La ligne sujet est ignorée.
N'oubliez pas de joindre tout le contexte de votre problème, ainsi que toutes les informations utiles pour votre rapport d'anomalie afin que ceux qui vous assisteront comprennent bien votre problème.
Vous pouvez aussi consulter~:
Les RFC 1548, 1331, 1332, 1333 et 1334. Ce sont les documents de référence pour PPP.
W. Richard Stevens décrit aussi PPP dans son livre `TCP/IP Illustrated Volume 1', (Addison-Wesley, 1994, ISBN 0-201-63346-9).
Si vous avez une machine qui doit être joignable par téléphone, et proposer des services réseau, vous devrez configurer votre machine en serveur. Si vous voulez utiliser SLIP comme protocole série, vous aurez le choix entre trois solutions pour configurer votre machine Linux comme serveur SLIP. Ma préférence va à la première présentée, sliplogin, car elle est la plus simple à configurer et à comprendre, mais je présenterai un résumé de chaque pour vous faire une opinion.
sliplogin est un programme que vous pouvez utiliser à la place du programme login normal pour les comptes SLIP. Il convertit la ligne du terminal en ligne SLIP.
L'appelant se connectera avec la procédure standard, en entrant son nom d'utilisateur puis son mot de passe, mais au lieu d'avoir un shell de>
CONNECT 14400 Bienvenue sur les serveur PPP XYZ ! login: <vous entrez votre nom d'utilisateur>^M password: <vous entrez votre mot de passe>^M Maintenant PPP:
Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'. /etc/ppp/ppp-connect ne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
#!/bin/sh
# Un script pour se connecter au serveur PPP XYZ
NUM=5552857
UID=terryd
PASSWD=secret1
#
/usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).
Notez l'argument "", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.
L'argument -v enjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le \\q avant $PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré.
Il est bon de faire chmod 600 /etc/ppp/ppp-connect pour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe.
Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une route default dans votre table de routage quand vous utilisez la commande route -n pointée via votre nouveau dispositif ppp0.
Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier /etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnn étant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.
Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
pppd defaultroute noipdefault debug \
kdebug 2 /dev/cua0 9600
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par
défaut sur l'interface ppp. Le paramètre noipdefault signifie
que le programme pppd doit demander l'adresse à utiliser pour son
interface au serveur. Les messages de debug passeront par syslog.
L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui
vous donnera plus d'informations sur le déroulement des opérations. Il utilisera
le pilote /dev/cua0 à 9600 bps.
Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous
pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de
connexion. L'entrée du fichier /etc/passwd ressemblera à~:
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppplogin
et le script /etc/ppp/ppplogin ressemblera à~:
#!/bin/sh
exec /usr/etc/pppd passive :192.1.2.23
L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez créer autant de comptes et de scripts de connexion que vous voudrez autoriser d'accès PPP car vous ne pouvez utiliser qu'une seule adresse IP par script.
L'url http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html est une excellente référence pour obtenir des informations plus compréhensible que celles que je donne ici. La plupart des discussions sur PPP pour Linux se tiennent sur la liste de diffusion PPP.
Pour joindre le canal PPP Linux sur le serveur de listes, envoyez un courrier électronique à~:
Majordomo@vger.rutgers.edu
avec la ligne~:
subscribe linux-ppp
dans le corps du message. La ligne sujet est ignorée.
N'oubliez pas de joindre tout le contexte de votre problème, ainsi que toutes les informations utiles pour votre rapport d'anomalie afin que ceux qui vous assisteront comprennent bien votre problème.
Vous pouvez aussi consulter~:
Les RFC 1548, 1331, 1332, 1333 et 1334. Ce sont les documents de référence pour PPP.
W. Richard Stevens décrit aussi PPP dans son livre `TCP/IP Illustrated Volume 1', (Addison-Wesley, 1994, ISBN 0-201-63346-9).
Si vous avez une machine qui doit être joignable par téléphone, et proposer des services réseau, vous devrez configurer votre machine en serveur. Si vous voulez utiliser SLIP comme protocole série, vous aurez le choix entre trois solutions pour configurer votre machine Linux comme serveur SLIP. Ma préférence va à la première présentée, sliplogin, car elle est la plus simple à configurer et à comprendre, mais je présenterai un résumé de chaque pour vous faire une opinion.
sliplogin est un programme que vous pouvez utiliser à la place du programme login normal pour les comptes SLIP. Il convertit la ligne du terminal en ligne SLIP.
L'appelant se connectera avec la procédure standard, en entrant son nom d'utilisateur puis son mot de passe, mais au lieu d'avoir un shell de>
CONNECT 14400 Bienvenue sur les serveur PPP XYZ ! login: <vous entrez votre nom d'utilisateur>^M password: <vous entrez votre mot de passe>^M Maintenant PPP:
Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'. /etc/ppp/ppp-connect ne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
#!/bin/sh
# Un script pour se connecter au serveur PPP XYZ
NUM=5552857
UID=terryd
PASSWD=secret1
#
/usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).
Notez l'argument "", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.
L'argument -v enjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le \\q avant $PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré.
Il est bon de faire chmod 600 /etc/ppp/ppp-connect pour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe.
Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une route default dans votre table de routage quand vous utilisez la commande route -n pointée via votre nouveau dispositif ppp0.
Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier /etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnn étant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.
Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
pppd defaultroute noipdefault debug \
kdebug 2 /dev/cua0 9600
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par
défaut sur l'interface ppp. Le paramètre noipdefault signifie
que le programme pppd doit demander l'adresse à utiliser pour son
interface au serveur. Les messages de debug passeront par syslog.
L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui
vous donnera plus d'informations sur le déroulement des opérations. Il utilisera
le pilote /dev/cua0 à 9600 bps.
Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous
pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de
connexion. L'entrée du fichier /etc/passwd ressemblera à~:
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppplogin
et le script /etc/ppp/ppplogin ressemblera à~:
#!/bin/sh
exec /usr/etc/pppd passive :192.1.2.23
L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez cré