Pppd

De Lea Linux
Révision datée du 2 septembre 2005 à 18:09 par PingouinMigrateur (discussion | contributions) (conversion de la documentation originale de Léa par HTML::WikiConverter)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Connexion à Internet multi-comptes

Connexion à Internet multi-comptes


Partie 1 : Configuration de pppd

Par Fred

Avant de pouvoir nous connecter à internet via tous nos providers, voyons déjà comment établir une connexion à Internet.


Introduction

Cette série de 4 articles va nous permettre d'utiliser une connexion internet avec plusieurs fournisseurs d'accès (on dit aussi ISP, ou FAI), de façon transparente pour la gestion du mail notamment. Les conseils qui sont donnés ici peuvent tout aussi bien s'appliquer à d'autres logiciels que ceux donnés en exemple ; il suffira alors d'adapter les scripts donnés. On peut aussi utiliser ces articles pour configurer sa connexion avec un seul FAI.

Un peu de technique

Vous voulez vous connecter à internet donc vous avez contacté un fournisseur d'accès qui doit vous avoir fourni les renseignements suivants :

  • un numéro de téléphone,
  • un login (parfois appelé identifiant),
  • un mot de passe (parfois appelé code d'accès),
  • deux "dns" (aussi appelés nameserver, serveur de noms) sous la forme de deux numéros du type 123.123.123.123,
  • un identifiant de messagerie (si vous n'en avez pas c'est que c'est votre login),
  • un mot de passe de messagerie (si vous n'en avez pas, c'est le même que le précédant),
  • le nom du serveur de messagerie sortant (souvent : smtp.isp.com ou mail.isp.com),
  • le nom du serveur de messagerie entrant (souvent : pop.isp.com).

Tout ce qui vous a été fourni en plus ne sert à rien ;) avec Linux !

Établir une liaison à internet c'est relier votre ordinateur au réseau des réseaux via votre modem. C'est-à-dire connecter le modem de votre PC à celui de votre ISP par une liaison téléphonique en utilisant un protocole de communication particulier. Le protocole retenu dans ce document se nomme "Point to Point Protocol" ou ppp ; c'est le plus souvent employé... l'exception étant AOL ! Le programme chargé d'établir cette connexion se nomme pppd (pour ppp daemon, ppp pour Point to Point Protocol). Mais avant d'établir la liaison avec internet, vous devez contacter votre fournisseur d'accès (j'utiliserai désormais l'abréviation ISP : Internet Service Provider), le programme chargé de communiquer avec votre modem est chat.

Voyons comment configurer chat, le programme qui discute ("to chat" en anglais) avec le modem :

Configuration de chat

Ce n'est pas obligatoire mais nous allons stocker le fichier de configuration de chat dans /etc/ppp/chat, pour cela vous devez créer ce répertoire (mkdir /etc/ppp/chat) car il n'existe pas par défaut.

Les scripts chat se composent d'une série de paire de chaînes de caractère. La première chaîne de chaque paire est ce que l'on attend du modem, la seconde ce que l'on doit alors envoyer au modem. Pour configurer très finement votre modem, vous devez posséder la documentation technique de celui-ci mais en général ce n'est pas nécessaire.

Un premier script élémentaire pourrait être :



'' 'ATZ'
'OK' 'ATDT0359602000'
'CONNECT' ''


Explications :

  • on n'attend rien : '', on renvoie 'ATZ' (c'est la chaîne d'initialisation de la plupart des modems)
  • en réponse de 'ATZ' on doit recevoir 'OK', au quel cas on renvoie 'ATDT0359602000' (c'est la commande de numérotation - tel : 0359602000 - de la majorité des modems).
  • le modem doit répondre 'CONNECT' (s'il réussi à se connecter !), on ne renvoie rien.

C'est relativement simpliste. Un script plus complexe mais plus sûr devrait être :



'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'OK' 'ATM0L0'
'OK' 'ATDT0359602000'
'CONNECT' ''
'TIMEOUT' '5'
'~--' ''



Les séquences commençant par 'ABORT' ne signifient pas que l'on attend 'ABORT' mais que l'on doit "quitter chat en erreur" s'il l'on reçoit la chaîne qui suit. Les séquences commençant par 'TIMEOUT' indiquent à chat que l'on doit attendre la réponse du modem pendant le nombre de secondes qui suit.

Appelons ce script /etc/ppp/chat/connexion0. Comme vous pouvez vous en douter, connexion0 peut être changé en n'importe quoi.
Pour tester ce script, nous devons d'abord configurer pppd.

Configuration de pppd

Il existe plusieurs méthodes de configuration de pppd. Nous allons en choisir une et passer sous silence les autres (via kppp, ezppp etc) et créer nous même, avec nos petites mains, les fichiers de configuration. Nous allons créer une connexion appelée connexion0 (connexion "zéro").

Pour pouvoir initialiser cette connexion, pppd a besoin de 3 (de mon point de vue) fichiers de configuration (au moins) :

  • /etc/ppp/options :

lock # la connexion est exclusive
ttyS0 115200 crtscts # la connexion est sur /dev/ttyS0 (i.e. com1) en 115200 bauds avec contrôle de flux matériel (c'est le modem qui le fait !)
noauth # l' isp ne doit pas s'authentifier pour nous donner une adresse
defaultroute # ppp fourni la route par défaut 
usepeerdns # pour que pppd demande les DNS au provider, cela ne marche peut-être pas toujours mais chez moi : si !
idle 300 # pour demander à pppd de raccrocher votre téléphone au bout de 300 secondes d'inactivité. (Si vous ne voulez pas utiliser cette option, ne la mettez pas du tout.)

  • /etc/ppp/peers/connexion0

Si le répertoire /etc/ppp/peers n'existe pas : vous devez le créer ! Le nom de ce répertoire est impératif (plus précisément : je ne sais pas comment le changer - autrement qu'en modifiant les sources de pppd).



connect '/usr/sbin/chat -v -f /etc/ppp/chat/connexion0'
user <login de connexion>



Ce fichier se passe de commentaire. Il n'est nécessaire que parce que c'est celui que pppd va chercher quand on lui passe comme argument 'call connexion0'.

  • /etc/ppp/pap-secrets


<login de connexion> * <mot de passe de connexion>



Ce fichier doit contenir votre 'login de connexion' et votre 'mot de passe' fourni par votre ISP. Prenez garde au fait que le mot de passe est stocké en clair dans ce fichier. Pour que tout cela fonctionne, il faut que vous seul ayez les droits de lire ces fichiers (mettez par exemple l'utilisateur qui doit activer la connexion internet dans le groupe pppusers et faites appartenir ces fichiers à ce groupe, voir l'[../admin/permissions.php3 article sur les permissions]).

Ensuite, pour activer la connexion il suffit de faire :

/usr/sbin/pppd call connexion0

Pour voir comment tout cela ce passe faite : tail -f /var/log/messages.  Vous devez suivre au fur et à mesure l'établissement de la connexion ainsi que l'affection de votre nouvelle adresse IP.
Si tout fonctionne, vous êtes maintenant connecté à Internet mais vous ne pouvez pas encore vous en servir : Linux ne sait toujours pas comment faire le lien entre les noms (www.trucs.org) et leur adresse IP (111.222.333.444).

Pour cela nous allons configurer la "résolution des noms" :

Configuration de resolv.conf

Le programme chargé de la résolution des noms (faire la correspondance entre nom et adresse) s'appelle un serveur de nom. Pour indiquer à Linux quel serveur de nom nous devons utiliser, il faut préciser celui-ci dans /etc/resolv.conf :



search org
nameserver xxx.xxx.xxx.xxx
nameserver yyy.yyy.yyy.yyy



A la place de xxx.xxx.xxx.xxx vous mettez l'adresse du premier DNS (name server, serveur de noms) que vous a fourni votre ISP et à la place de yyy.yyy.yyy.yyy le second.
On a le droit de mettre des commentaires dans ce fichier, pour peu que ceux-ci soient précédés du caractère '#'.

Testons cela : rétablissez votre liaison : /usr/sbin/ppp call connexion0 puis lancez nslookup (ce que vous devez tapez est en gras, les réponses ne sont pas nécessairement les mêmes) :


[root@becane home]# nslookup
Default Server:  ns3.wanadoo.fr
Address:  193.252.19.3

> www.free.fr
Server:  ns3.wanadoo.fr
Address:  193.252.19.3

Non-authoritative answer:
Name:    www.free.fr
Address:  212.27.32.114

> exit



A la place de www.free.fr vous pouvez taper n'importe quel nom de domaine valide. Si vous obtenez :
*** gros.tux can't find gros: No response from server
C'est que :

  • ou votre configuration n'est pas valide :
    • ou vous n'êtes pas connecté
    • ou vous n'avez pas ajouté le bon DNS dans /etc/resolv.conf
  • ou le nom de domaine que vous avez tapé n'existe effectivement pas (ce qui est le cas ici : gros.tux n'existe pas!).

Établissement et coupure de la connexion

Pour activer la connexion, vous avez déjà pu constater que la commande est :

/usr/sbin/pppd call connexion0

(évidemment connexion0 doit être remplacé par le nom du fichier de configuration dans /etc/ppp/peers). Pour que n'importe quel utilisateur ait le droit d'activer la connexion, je vous conseille de rendre pppd suid (c'est à dire que n'importe quel urilisateur peut le lancer, mais que ce programme possède les droits de root) par :

chmod +s /usr/sbin/pppd

Couper la connexion n'est pas aussi simple : il n'existe pas de programme s'en chargeant ! Nous devons tuer le processus de pppd. Mais heureusement c'est simple car il sauve son 'pid' dans /var/run/ppp*.pid. Donc, pour fermer la connexion, la commande est :

kill `cat /var/run/ppp*.pid`

Si cette commande vous retourne un message d'erreur, c'est sans doute parce que pppd n'est pas actif à ce moment !
 

Dans l'[multi2_sendmail-config.php3 article suivant], nous allons voir comment configurer la messagerie.

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Frédéric Bonnaud le 30/05/2000.