12 Configurations avancées

Contenu de cette section

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 .

12.1 PPP - Protocole Point à Point

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.

Dois-je utiliser PPP à la place de SLIP ?

Vous utiliserez PPP à la place de SLIP pour plusieurs raisons. Les plus courantes sont~:

Votre opérateur internet ne supporte que PPP

C'est la plus évidente des raisons pour utiliser PPP au lieu de SLIP.

Vous avez du bruit sur votre ligne série en temps normal

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.

Vous avez besoin d'une des caractéristiques propres à PPP.

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.

Où obtenir les logiciels PPP

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.

Installer le logiciel PPP

L'installation du logiciel PPP est très simple.

Le pilote du noyau.

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.

pppd

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.

Configurer et utiliser les logiciels PPP

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.

Configurer un client PPP utilisant un modem numéroteur.

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:

  1. pppd doit utiliser le script /etc/ppp/ppp-connect pour numéroter via le modem et se connecter.
  2. pppd doit utiliser le dispositif 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.
  3. pppd doit créer un fichier lock pour le dispositif tty pour s'assurer qu'un autre processus n'essaie pas de l'utiliser en même temps que lui.
  4. Que la ligne est `bonne pour les 8 bits', c'est à dire que tous les caractères peuvent passer sur la ligne. L'option 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.
  5. pppd doit créer une defaultroute via le dispositif ppp quand la connexion a réussi.
La prochaine étape consiste à configurer le script /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 sur une ligne spécialisée.

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.

Configurer un serveur 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.

Où obtenir plus d'information sur PPP ou envoyer des rapports d'anomalies?

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

12.2 Configurer Linux comme serveur SLIP.

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.

Serveur SLIP utilisant sliplogin

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 sur une ligne spécialisée.

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.

Configurer un serveur 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.

Où obtenir plus d'information sur PPP ou envoyer des rapports d'anomalies?

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

12.2 Configurer Linux comme serveur SLIP.

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.

Serveur SLIP utilisant sliplogin

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 sur une ligne spécialisée.

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.

Configurer un serveur 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.

Où obtenir plus d'information sur PPP ou envoyer des rapports d'anomalies?

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

12.2 Configurer Linux comme serveur SLIP.

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.

Serveur SLIP utilisant sliplogin

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 sur une ligne spécialisée.

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.

Configurer un serveur 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.

Où obtenir plus d'information sur PPP ou envoyer des rapports d'anomalies?

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

12.2 Configurer Linux comme serveur SLIP.

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.

Serveur SLIP utilisant sliplogin

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 sur une ligne spécialisée.

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.

Configurer un serveur 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é