This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
Version française de Frédéric Haby <frederic.haby@mail.dotcom.fr>.
Si vous vous connectez à l'Internet avec un modem ou si vous voulez offrir à d'autres la possibilité de se connecter à l'Internet par l'intermédiaire d'un système FreeBSD, vous pouvez utiliser PPP ou SLIP. Il y a par ailleurs deux versions de PPP: en mode utilisateur (aussi appelé iijppp) et intégré au noyau. Ce chapitre décrit les procédures de configuration des deux variantes de PPP et de mise en oeuvre de SLIP.
La version utilisateur de PPP est apparue avec la version 2.0.5 de FreeBSD en supplément à l'implémentation existante de PPP dans le noyau. Qu'a donc de différent cette nouvelle version de PPP qui justifie son ajout? Pour citer les pages de manuel:
Ceci est le logiciel PPP sous forme de processus utilisateur. PPP est normalement implémenté dans le noyau (e.g. le ``démon'' pppd) et est alors plus difficile à déboguer ou à modifier. A l'inverse, la présente implémentation se présente sous forme de processus utilisateur utilisant le pilote de périphérique ``tunnel'' (tun).
Cela signifie essentiellement qu'au lieu de lancer un ``démon'' PPP, le programme ppp peut être exécuté quand et de la façon que l'on veut. Il n'y a pas besoin de compiler d'interface PPP dans le noyau, parce que le programme peut utiliser le pilote ``tunnel'' générique pour échanger des données avec le noyau.
A partir de maintenant, le programme utilisateur ppp sera simplement appelé ppp, à moins qu'il ne faille explicitement faire la distinction entre lui et d'autres logiciels PPP client/serveur comme pppd. Sauf indications contraires, toutes les commandes mentionnées dans cette section doivent être exécutées par le super-utilisateur root.
Il y a de nombreuses améliorations dans la version 2 de ppp. Vous pouvez savoir quelle est la version que vous utilisez en lançant ppp sans argument et en tapant show version à l'invite. Il est facile de passer à la version la plus récente de ppp (sur n'importe quelle version de FreeBSD) en téléchargeant la dernière version archivée sur www.Awfulhak.org.
Ce document suppose que vous en êtes à peu près à ce point:
Vous avez un compte chez un fournisseur d'accès Internet (FAI) qui vous permet d'utiliser PPP. Vous avez de plus un modem (ou un autre périphérique) installé et correctement configuré avec lequel vous pouvez vous connecter chez votre fournisseur d'accès.
Vous devrez avoir les informations suivantes à portée de main:
Le(s) numéro(s) de téléphone de votre fournisseur d'accès.
Votre identifiant utilisateur et votre mot de passe. Selon le cas, ce seront soit un identifiant et un mot de passe Unix classiques, soit un identifiant et un mot de passe PPP PAP ou CHAP.
Les adresses IP d'un ou plusieurs serveurs de noms de domaines. Votre fournisseur doit normalement vous donner deux adresses IP. Vous devez avoir cette information pour PPP version 1.x, à moins que vous n'ayez votre propre serveur de noms de domaines. A partir de la version 2, PPP supporte la négociation des adresses des serveurs de noms. Si votre fournisseur dispose de cette fonctionnalité, alors la commande enable dns dans votre fichier de configuration dit à PPP de définir à votre place les serveurs de noms.
Les informations suivantes vous ont peut-être aussi été données par votre fournisseur d'accès, mais ce n'est pas absolument indispensable:
L'adresse IP de la passerelle de votre fournisseur. La passerelle est la machine à laquelle vous vous connecterez et qui deviendra votre route par défaut - ``default route''. S'il ne vous l'a pas donnée, vous pouvez en fabriquer une et le serveur PPP de votre fournisseur vous donnera l'adresse exacte quand vous vous connecterez.
ppp connaît ce numéro IP sous l'appellation HISADDR.
Le masque de sous-réseau de votre fournisseur d'accès. S'il ne vous l'a pas donné, vous pouvez sans risque utiliser la valeur 255.255.255.0.
Si votre fournisseur vous procure une adresse IP fixe et un nom de machine, vous pouvez aussi introduire ces informations dans votre configuration. Sinon, nous le laisserons simplement nous attribuer l'adresse IP qui lui convient.
Si vous n'avez pas l'une des informations requises, contactez votre fournisseur et assurez-vous qu'il vous la donne.
Comme on l'a vu dans la description qu'en donnent les pages de manuel, ppp utilise le pilote tun du noyau. Il faut vous assurez que le support de ce pseudo-périphérique est bien inclus dans votre noyau.
Pour cela, allez dans votre répertoire de configuration du noyau (/sys/i386/conf ou /sys/pc98/conf) et consultez votre fichier de configuration. Il doit comporter quelque part la ligne
pseudo-device tun 1Elle figure en standard dans le noyau GENERIC, donc, si vous n'avez pas installé de noyau sur-mesure ou n'avez pas de répertoire /sys, vous n'avez rien à changer.
Si la ligne n'est pas dans le fichier de configuration de votre noyau, ou si vous avez besoin de plus d'un périphérique tun (par exemple, si vous installez un serveur qui puisse fournir 16 connexions simultanées vers l'extérieur, vous devrez mettre 16 au lieu de 1), il vous faut alors ajouter la ligne, recompiler, réinstaller et redémarrer avec le nouveau noyau. Reportez-vous s'il vous plaît au chapitre Configurer le noyau de FreeBSD pour plus d'informations sur la marche à suivre.
Vous pouvez voir de combien de pseudo-périphériques tun dispose votre noyau avec la commande suivante:
# ifconfig -a tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 200.10.100.1 --> 203.10.100.24 netmask 0xffffffff tun1: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mtu 576 tun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 203.10.100.1 --> 203.10.100.20 netmask 0xffffffff tun3: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
Dans cette exemple, il y a quatre périphériques ``tunnel'', dont deux sont déjà configurés et utilisés. Remarquez que l'indication RUNNING signifie que l'interface a déjà été utilisée à un moment donné - ce n'est pas une erreur si votre interface n'apparaît pas comme RUNNING.
Si votre noyau n'inclut pas de pseudo-périphérique tun et que vous ne pouvez pas le recompiler pour une raison ou une autre, tout n'est pas perdu. Vous devriez pouvoir charger dynamiquement le code. Voyez les pages de manuel de modload(8) et lkm(4) appropriées pour plus de détails.
Vous voudrez peut-être en profiter pour configurer en même temps un coupe-feu. Vous trouverez plus de détails à la section Coupe-Feux.
La plupart des utilisateurs n'auront besoin que d'un périphérique tun (/dev/tun0). Si vous en avez définis plus d'un (i.e., une autre valeur que 1 à la ligne pseudo-device du fichier de configuration du noyau), adaptez toutes les références à tun0 dans ce qui suit à votre cas particulier.
La meilleure façon de vous assurez que votre périphérique tun0 est correctement configuré est de recréer le fichier spécial de périphérique. Pour cela, exécutez les commandes suivantes:
Si vous avez 16 périphériques ``tunnel'' dans votre noyau, il vous faudra créer plus que tun0:
Pour vérifier encore que votre noyau est correctement configuré, la commande ci-dessous devrait vous donner le même résultat:
L'indication RUNNING n'est peut-être pas encore présente, auquel cas vous verriez:
Le solveur est la partie du système qui convertit les adresses IP en noms de machines et vice versa. Il est configurable pour consulter des tables de correspondances entre adresses et noms qui peuvent se trouver à deux endroits différents. La première est le fichier /etc/hosts (man 5 hosts). La seconde est le service de noms de domaines Internet (``Domain Name Service'' - DNS), une base de données distribuée dont la description déborde le cadre du présent document.
Cette section décrit brièvement comment configurer votre solveur.
Le solveur est un ensemble d'appels système qui font la conversion, mais vous devez leur dire où trouver l'information. Cela se fait en modifiant le fichier /etc/host.conf. N'appelez pas ce fichier /etc/hosts.conf (Remarquez le s en trop), cela pourrait poser des problèmes.
Ce fichier doit contenir les deux lignes suivantes (dans cet ordre):
hosts bind
Cela dit au solveur de chercher d'abord dans le fichier /etc/hosts, puis de consulter le DNS s'il n'a pas trouvé le nom recherché.
Ce fichier doit contenir les noms et les adresses IP des machines de votre réseau. Il doit au grand minimum contenir les entrées pour la machine sur laquelle tournera ppp. Supposons qu'elle s'appelle foo.bar.com et que son adresse IP soit 10.0.0.1, /etc/hosts devra comporter:
127.0.0.1 localhost 10.0.0.1 foo.bar.com foo
La première ligne définit l'adresse localhost comme synonyme de la machine elle-même. Quelle que soit votre propre adresse IP, l'adresse IP sur cette ligne doit toujours être 127.0.0.1. La deuxième ligne affecte au nom foo.bar.com (et au raccourci foo) l'adresse IP 10.0.0.1.
Si votre fournisseur vous a donné une adresse IP statique et un nom de machine, mettez-les à la place de l'entrée 10.0.0.1.
/etc/resolv.conf dit au solveur ce qu'il doit faire. Si vous avez en service votre propre DNS, vous pouvez le laisser vide. Vous devez normalement y mettre la(les) ligne(s) suivante(s):
nameserver x.x.x.x nameserver y.y.y.y domain bar.com
x.x.x.x et y.y.y.y sont les adresses que votre fournisseur vous a données. Mettez autant de lignes nameserver qu'il vous a donné d'adresses. La ligne domain se réfère par défaut au nom de domaine de votre machine, et est probablement inutile. Consultez les pages de manuel de resolv.conf pour plus de détails sur les autres entrées possibles dans ce fichier.
Si vous utilisez la version 2 ou ultérieure de PPP, la commande enable dns dira à PPP de demander à votre fournisseur de confirmer les informations sur les serveurs de noms. S'il vous donne des adresses différentes (ou s'il n'y a pas de ligne nameserver dans /etc/resolv.conf), PPP récrira dans le fichier les valeurs que votre fournisseur lui aura données.
Le programme utilisateur ppp et le ``démon'' pppd (l'implémentation de PPP dans le noyau) emploient tous deux des fichiers de configuration qui se trouvent dans le répertoire /etc/ppp. Les fichiers de configuration fournis en exemple sont une bonne référence pour ppp en mode utilisateur, ne les effacez pas.
Pour configurer ppp, vous devrez, selon vos besoins, renseigner un certain nombre de fichiers. Ce que vous y mettrez dépend entre autres du fait que votre fournisseur vous alloue une adresse IP statique (i.e., on vous donne une adresse IP et vous utilisez toujours la même) ou dynamique (i.e., votre adresse IP peut être différente à chaque session PPP).
Vous devrez créer un fichier de configuration appelé /etc/ppp/ppp.conf. Il ressemblera à l'exemple ci-dessous:
Note : Les lignes qui se terminent par : commencent en première colonne. Toutes les autres lignes doivent être indentées avec des espaces ou des tabulations comme dans l'exemple donné.
1 default: 2 set device /dev/cuaa0 3 set speed 115200 4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\TTIMEOUT 40 CONNECT" 5 provider: 6 set phone "(0123) 456 7890" 7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp" 8 set timeout 300 9 set ifaddr x.x.x.x y.y.y.y 255.255.255.0 0.0.0.0 10 add default HISADDR 11 enable dns
Ne mettez pas les numéros de ligne, ils ne sont là que pour pouvoir y faire référence dans la suite de cette documentation.
Définit l'entrée par défaut. Les commandes de cette entrée sont automatiquement exécutées au lancement de ppp.
Identifie le périphérique auquel est connecté le modem. COM1: correspond à /dev/cuaa0 et COM2: à /dev/cuaa1.
Fixe la vitesse à laquelle vous voulez vous connecter. Si 115200 ne marche pas (cela devrait fonctionner avec n'importe quel modem assez récent), essayez avec 38400.
La chaîne d'appel. PPP en mode utilisateur utilise une syntaxe ``commande envoyée/réponse attendue'' semblable à celle du programme chat(8). Reportez-vous aux pages de manuel pour plus d'informations sur les caractéristiques de ce langage.
Définit une entrée pour un fournisseur appelé ``provider''.
Donne le numéro de téléphone de ce fournisseur. On peut indiquer plusieurs numéros de téléphone avec les caractères : ou | comme séparateur. La différence entre les deux est décrite dans les pages de manuel de ppp. En résumé, si vous voulez utiliser les numéros les uns après les autres, utilisez :. Si vous voulez toujours essayer d'appeler le premier numéro et n'utiliser les autres qu'en cas d'échec, servez-vous de |. Mettez toujours la série de numéros de téléphone entre guillemets comme dans l'exemple.
La séquence d'ouverture de session suit la même syntaxe de style ``chat'' que la séquence d'établissement de la connexion. Dans l'exemple donné, la séquence correspond à un service où l'ouverture de session ressemble à:
Vous devrez modifier cette procédure pour l'adapter à vos besoins. Quand vous la mettez pour la première fois au point, activez la trace de ``chat'' pour vérifier que la conversation se déroule conformément à votre attente.
Si vous utilisez PAP ou CHAP, il n'y aura pas à ce stade d'ouverture de session, la séquence peut donc être laissée à blanc. Voyez la section authentification PAP et CHAP pour plus de détails.
Définit le délai de connexion par défaut (en secondes). Ici, la connexion sera automatiquement coupée après 300 secondes d'inactivité. Si vous ne voulez pas de coupure automatique après un temps d'inactivité donné, mettez cette valeur à zéro.
Donne les adresses des interfaces. La chaîne x.x.x.x doit être remplacée par l'adresse IP que votre fournisseur vous a allouée. La chaîne y.y.y.y doit être remplacée par l'adresse IP que votre fournisseur vous a donnée comme passerelle (la machine à laquelle vous vous connectez). Si votre fournisseur ne vous a pas indiqué d'adresse pour la passerelle, utilisez 10.0.0.2/0. Si vous devez ``deviner'' cette adresse, veillez à créer une entrée dans /etc/ppp/ppp.linkup comme expliqué à la section PPP et les adresses IP dynamiques. Si cette ligne manque, ppp ne pourra pas être utilisé en mode -auto ou -dynamic.
Ajoute une route par défaut vers la passerelle de votre fournisseur. Le mot réservé HISADDR est remplacé par l'adresse de la passerelle donnée à la ligne 9. Il est important que cette ligne apparaisse après la précédente, sans quoi le valeur de HISADDR n'est pas encore initialisée.
Cette ligne dit à PPP de demander à votre fournisseur de confirmer que les adresses des serveurs de noms sont correctes. Si votre fournisseur supporte cette fonctionnalité, PPP peut alors mettre à jour les entrées pour les serveurs de noms dans /etc/resolv.conf avec les bonnes valeurs.
Il n'est pas utile d'ajouter une entrée au fichier ppp.linkup lorsque vous avez une adresse IP statique car les entrées de votre table de routage sont correctes avant même que vous vous soyez connecté. Vous pouvez malgré tout vouloir ajouter des entrées pour lancer des programmes une fois que vous êtes déjà connecté. C'est expliqué plus bas dans l'exemple pour sendmail.
Il y a des exemples de fichiers de configuration dans le répertoire /etc/ppp.
Si votre fournisseur ne vous donne pas d'adresse IP statique, ppp peut être configuré pour négocier les adresses locale et éloignée. Cela se fait en ``devinant'' l'adresse IP et en laissant ppp la rectifier avec le protocole de configuration IP (``IP Configuration Protocol'' - IPCP) une fois la connexion établie. Le fichier de configuration ppp.conf est le même que pour PPP et les addresses IP statiques, aux modifications suivantes près:
9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
Encore une fois, ne mettez pas les numéros de ligne, ils ne sont là que pour y faire référence dans le suite des explications. Indentez avec au moins un blanc.
Le nombre qui suit le caractère / est le nombre de bits de l'adresse que ppp ne négociera pas. Vous voudrez peut être utiliser des adresses IP plus adaptées à votre cas particulier, mais l'exemple donné marchera dans tous les cas de figure.
Le dernier argument (0.0.0.0) dit à PPP de négocier en utilisant l'adresse 0.0.0.0 plutôt que 10.0.0.1. Ne mettez pas 0.0.0.0 en premier argument de set ifaddr parce que cela empêche PPP de définir la route initiale en mode -auto.
Si vous utilisez la version 1.x de PPP, il vous faudra aussi une entrée dans /etc/ppp/ppp.linkup. ppp.linkup est utilisé après que la connexion ait été établie. A ce stade, ppp connaît les adresses IP réelles. L'entrée qui suit supprimera les routes erronées existantes et créera les routes valides:
1 provider: 2 delete ALL 3 add 0 0 HISADDR
A l'établissement de la connexion, ppp parcourera les entrées de ppp.linkup selon le principe suivant. Il essayera d'abord de trouver le même libellé que celui qui a été employé dans ppp.conf. S'il échoue, il cherchera une entrée pour l'adresse IP de la passerelle. C'est une entrée dont le libellé est composé de quatre entiers (pour les quatre octets). S'il ne la trouve pas non plus, il cherchera l'entrée MYADDR.
Cette ligne dit à ppp de supprimer toutes les routes existantes pour l'interface tun qu'il utilise (sauf la route directe).
Cette ligne dit à ppp d'ajouter une route par défaut vers HISADDR. HISADDR sera remplacée par l'adresse IP de la passerelle négociée par IPCP.
Voyez l'entrée ``pmdemand'' dans les fichiers /etc/ppp/ppp.conf.sample et /etc/ppp/ppp.linkup.sample pour avoir un exemple détaillé.
La version 2 de PPP introduit les ``routes persistantes''. Toutes les lignes add ou delete qui contiennent MYADDR ou HISADDR sont mémorisées et chaque fois que la valeur de MYADDR ou HISADDR change, les routes sont redéfinies. Il n'est donc plus nécessaire de répéter ces lignes dans ppp.linkup.
Cette section vous explique comment configurer ppp pour l'utiliser comme serveur.
Quand vous configurez ppp pour recevoir des appels entrants sur une machine connectée à un réseau local, vous devez décider si vous transmettrez des paquets vers le réseau local. Si c'est le cas, vous devrez allouer à la machine distante une adresse IP sur votre sous-réseau local et utiliser la commande
enable proxydans le fichier ppp.conf. Vous devrez aussi vous assurer que le fichier /etc/rc.conf (ce fichier s'appelait auparavant /etc/sysconfig) contienne la ligne:
gateway=YES
La section Connexions téléphoniques décrit en détail la mise en oeuvre des connexions entrantes avec ``getty''.
Une alternative à getty est mgetty, une version de getty spécialement conçue pour les connexions téléphoniques.
Un des avantages de mgetty est qu'il discute avec les modems, ce qui signifie que si le port est marqué ``off'' dans /etc/ttys, votre modem ne décrochera pas le téléphone.
Les dernières versions de mgetty (à partir de la 0.99bêta) suportent aussi la détection automatique des fluxs PPP, ce qui permet à vos clients d'accéder au serveur sans exécuter de procédures particulières.
Voyez Mgetty et AutoPPP pour plus d'informations sur mgetty.
ppp doit normalement être exécuté avec un IDentifiant utilisateur de 0. Cependant, si vous voulez autoriser l'exécution du serveur ppp, comme décrit ci-dessous, sous un compte utilisateur ordinaire, vous devez autoriser ces utilisateurs à exécuter ppp en les ajoutant au groupe network dans /etc/group.
Vous devrez aussi leur donner accès à une ou plusieurs sections du fichier de configuration avec la commande allow:
allow users fred mary
Si vous mettez cette commande dans la section default, vous donnez aux utilisateurs mentionnés accès à tout.
Créez un fichier appelé /etc/ppp/ppp-shell comme suit:
#!/bin/sh IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` CALLEDAS="$IDENT" TTY=`tty` if [ x$IDENT = xdialup ]; then IDENT=`basename $TTY` fi echo "PPP pour $CALLEDAS sur $TTY" echo "Démarrage PPP pour $IDENT" exec /usr/sbin/ppp -direct $IDENT
Cette procédure doit être exécutable. Créez maintenant un lien symbolique appelé ppp-dialup sur cette procédure avec la commande:
Utilisez cette procédure comme interpréteur de commandes pour tous vos utilisateurs qui se connectent avec ppp. Voici une exemple de fichier /etc/password avec un utilisateur PPP appelé pchilds. (n'oubliez pas de ne pas éditer directement le fichier passwd, utilisez vipw):
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
Créez un répertoire /home/ppp que tout le monde puisse lire, avec le fichier vide suivant:
ce qui évite que le contenu du fichier /etc/motd soit affiché à l'ouverture de session.Créez le fichier ppp-shell comme décrit ci-dessus, et pour chaque compte auquel est assignée une adresse IP fixe, créez un lien symbolique sur ppp-shell.
Par exemple, si vous avez trois clients appelés fred, sam, et mary, qui se connectent par téléphone et pour qui vous servez de passerelle sur des réseaux de classe C, vous taperez les commandes suivantes:
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary
Vous devez définir comme interpréteur de commandes de chacun de ces comptes les liens symboliques que vous venez de créer. (ie. /etc/ppp/ppp-mary pour mary, etc.)
Le fichier /etc/ppp/ppp.conf doit contenir quelque chose qui ressemble à:
default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyd1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy
Note : L'indentation est importante.
La section default: est utilisée pour chaque session. Créez une entrée semblable à celle pour ttyd0: ci-dessus pour chaque ligne activée dans /etc/ttys. Vous devez attribuer à chaque ligne une adresse IP dans votre plage d'adresses IP dynamiques.
En plus de ce que vous avez déjà introduit dans le fichier /etc/ppp/ppp.conf d'exemple ci-dessus vous devez ajouter une section pour chaque utilisateur auquel est assignée une adresse IP fixe. En continuant avec notre exemple pour fred, sam et mary:
fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
Vous devez aussi, si besoin est, donnez les informations de routage dans /etc/ppp/ppp.linkup pour chaque utilisateur ayant une adresse IP fixe. La première ligne ci-dessous ajoute une route vers le réseau de classe C 203.14.101.0 via la liaison ppp du client.
fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR
Configurer et compiler mgetty avec l'option AUTO_PPP permet à mgetty de détecter la phase LCP des connexions PPP et de lancer automatiquement une procédure adaptée à ppp. Cependant, comme il n'y a pas alors d'ouverture de session avec invite et demande de mot de passe, il est nécessaire d'authentifier les utilisateurs en utilisant soit PAP, soit CHAP.
Nous supposerons dans cette section que vous avez déjà réussi à configurer, compiler et installer une version de mgetty avec l'option AUTO_PPP (v0.99bêta ou ultérieure).
Assurez-vous que le fichier /usr/local/etc/mgetty+sendfax/login.config contienne bien la ligne suivante:
/AutoPPP/ - - /etc/ppp/ppp-pap-dialup
Cela dit à mgetty d'exécuter la procédure ppp-pap-dialup lorsqu'il reconnaît une connexion PPP.
Créez un fichier /etc/ppp/ppp-pap-dialup (ce fichier doit être exécutable) avec pour contenu:
#!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT
Pour chaque ligne d'appel activée dans le fichier /etc/ttys, créez une entrée correspondante dans le fichier /etc/ppp/ppp.conf. Ces entrées peuvent sans problème exister conjointement aux entrées que nous avons déjà créées plus haut.
pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy
Chaque utilisateur se connectant de cette manière devra disposer d'une entrée ``nom d'utilisateur/mot de passe'' dans le fichier /etc/ppp/ppp.secret, ou bien vous pouvez ajouter l'option:
enable passwdauth
pour identifier les utilisateurs avec pap en utilisant le fichier /etc/password.
Si vous voulez affecter à certains utilisateurs une adresse IP statique, vous pouvez donner ce numéro comme troisième argument de /etc/ppp/ppp.secret. Le fichier /etc/ppp/ppp.secret.sample vous en donne des exemples.
Il est possible de configurer PPP pour qu'il fournisse à la demande les adresses des serveurs DNS et NetBIOS.
Pour mettre en service ces extensions avec PPP version 1.x, ajoutez les lignes suivantes à la section adéquate de /etc/ppp/ppp.conf:
enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5
Et pour PPP version 2 et ultérieures:
accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5
Cela donnera aux clients les adresses des serveurs DNS primaire et secondaire et du serveur de noms netbios.
A partir de la version 2, si la ligne set dns n'est pas mentionnée, PPP utilise les valeurs données par /etc/resolv.conf.
Certains fournisseurs d'accès configurent leurs systèmes de sorte que la phase d'authentification de votre connexion se fasse par PAP ou CHAP. Si tel est le cas, il n'y a pas d'invite login: quand vous vous connectez, le dialogue s'établit immédiatement avec PPP.
PAP est moins sécurisé que CHAP, mais la sécurité n'est normalement pas un problème dans ce cas, parce que les mots de passe, bien que transmis en clair, ne sont transmis que sur une liaison série, ce qui la rend très difficile à espionner par un pirate.
Par rapport aux exemples donnés aux sections PPP et les adresses IP statiques ou PPP et les adresses IP dynamiques, vous devez faire les modifications suivantes:
7 set login ... 12 set authname MonNomUtilisateur 13 set authkey MonMotDePasse
Comme toujours, ne mettez pas les numéros de ligne, ils ne sont là que pour y faire référence dans les explications qui suivent. Il faut indenter avec au moins un espace.
Votre fournisseur ne vous demandera normalement pas d'ouvrir de session sur le serveur si vous utilisez PAP ou CHAP. Vous devez donc désactiver votre séquence ``set login''.
Cette ligne donne votre nom d'utilisateur PAP/CHAP. Remplacez MonNomUtilisateur par la bonne valeur.
Cette ligne donne votre mot de PAP/CHAP. Remplacez MonMotDePasse par la bonne valeur. Peut-être voudrez-vous ajouter une ligne supplémentaire:
15 accept PAPou
15 accept CHAPpour que l'intention soit claire, mais PAP et CHAP sont tous deux acceptés par défaut.
Il est possible de dialoguer avec le programme ppp tandis qu'il s'exécute en tâche de fond, mais vous devez avoir configuré un port de diagnostic qui convienne. Pour cela, ajoutez à votre configuration la ligne suivante:
set server /var/run/ppp-tun%d MotDePasseDeDiagnostic 0177
Cela dit à PPP d'écouter sur la ``prise'' - socket - Unix indiquée, et de demander au client de lui donner le mot de passe mentionné avant de lui autoriser l'accès. Le %d est à remplacer par le numéro du périphérique ``tunnel'' utilisé.
Une fois que la ``prise'' - socket - a été créée, le programme pppctl(8) peut être utilisé par des procédures qui veulent agir sur la configuration du programme ppp actif.
ppp est maintenant configuré, mais il y a encore quelques petites choses à faire avant de pouvoir l'utiliser. Il faut pour cela modifier le fichier /etc/rc.conf (qui s'appelait auparavant /etc/sysconfig).
En le parcourant de haut en bas, vérifiez que la valeur hostname= est bien renseignée, e.g.:
hostname=foo.bar.com
Si votre fournisseur d'accès vous a donné une adresse IP statique et un nom de machine, le mieux est d'utiliser ce nom comme nom de votre machine.
Cherchez la variable network_interfaces. Si vous voulez configurer votre système pour vous connecter à la demande chez votre fournisseur, vérifiez que le périphérique tun0 est bien dans la liste, sinon ajoutez-le.
network_interfaces="lo0 tun0" ifconfig_tun0=
Note : La variable ifconfig_tun0 doit être vide. Il faut créer un fichier /etc/start_if.tun0 avec la ligne:
ppp -auto mysystemCette procédure est exécutée lors de la configuration du réseau au démarrage et lance le ``démon'' ppp en mode automatique. Si cette machine sert de passerelle sur un réseau local, vous pouvez aussi ajouter l'indicateur -alias. Reportez-vous aux pages de manuel pour plus de détails.
Donnez NO comme valeur pour le programme de routage avec la ligne:
router_enable=NO (/etc/rc.conf) router=NO (/etc/sysconfig)
Il est important que le ``démon'' routed ne soit pas lancé (il est démarré par défaut) parce que routed a tendance à effacer les entrées par défaut créées dans la table de routage par ppp.
Il vaut probablement la peine de vérifier que la ligne sendmail_flags ne comporte pas l'option -q, sans quoi sendmail jettera de temps à autre un oeil au réseau, ce qui peut amener votre machine à ouvrir la connexion. Vous pouvez essayez:
sendmail_flags="-bd"
L'inconvénient est que vous devrez forcer sendmail à réexaminer la file d'attente du courrier électronique chaque fois que la liaison ppp sera activée, en tapant:
Vous pouvez utiliser la commande !bg de ppp.linkup pour le faire automatiquement:
1 provider: 2 delete ALL 3 add 0 0 HISADDR 4 !bg sendmail -bd -q30m
Si cela ne vous convient pas, il est possible de mettre en place un ``dfilter'' pour bloquer le trafic SMTP. Consultez les fichiers d'exemple pour plus de détails.
Vous n'avez plus qu'à redémarrer votre machine.
Apres qu'elle ait redémarré, vous pouvez taper soit:
puis dial provider pour initialiser la session PPP ou, si vous voulez que ppp lance la session automatiquement lorsqu'il y a du trafic sortant (et que vous n'avez pas créé le fichier start_if.tun0), tapez:
Pour récapituler, les étapes suivantes sont nécessaires lors de la première configuration de ppp:
Côté client:
Vérifier que le pilote de périphérique tun soit inclus dans le noyau.
Vérifier que le fichier spécial de périphérique tunX existe dans le répertoire /dev.
Créer une entrée dans /etc/ppp/ppp.conf. L'exemple pmdemand doit suffire pour la plupart des fournisseurs d'accès.
Dans le cas d'une adresse IP dynamique, créer une entrée dans /etc/ppp/ppp.linkup.
Modifier le fichier /etc/rc.conf (ou sysconfig).
Créer une procédure start_if.tun0 dans le cas d'une connexion automatique à la demande.
Côté serveur:
Vérifier que le pilote de périphérique tun soit inclus dans le noyau.
Vérifier que le fichier spécial de périphérique tunX existe dans le répertoire /dev.
Créer une entrée dans /etc/passwd (avec le programme vipw(8)).
Créer un profil dans le répertoire de cet utilisateur qui exécute ppp -direct direct-server ou quelque chose d'équivalent.
Créer une entrée dans /etc/ppp/ppp.conf. L'exemple direct-server devrait suffire.
Créer une entrée dans /etc/ppp/ppp.linkup.
Modifier le fichier /etc/rc.conf (ou sysconfig).
La dernière mise à jour de cette section du manuel a été effectuée le Lundi 10 Août 1998 par Brian Somers <brian@FreeBSD.org>.
Merci aux personnes suivantes pour les informations, commentaires et suggestions qu'elles m'ont transmis:
Nik Clayton <nik@FreeBSD.org>
Dirk-Willem van Gulik <Dirk.vanGulik@jrc.it>
Peter Childs <pjchilds@imforei.apana.org.au>
Précédent | Sommaire | Suivant |
Service d'appel sortant | Niveau supérieur | Configurer PPP intégré au noyau |
For questions about FreeBSD, e-mail
<questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.