M�me si vous pouvez continuer � vous connecter � la main comme montr� ci-dessus il est plus sympa de faire quelques scripts pour automatiser tout �a.
Quelques scripts vont automatiser la connexion et le lancement de PPP, vous n'aurez alors plus qu'� envoyer une seule commande (en �tant root ou membre du groupe PPP) pour lancer votre connexion.
Si votre FAI n'a pas besoin d'utiliser PAP/CHAP, ces scripts sont faits pour vous !
Si le paquetage ppp est correctement install�, vous devez avoir deux fichiers
d'exemple. Pour PPP 2.1.2 il sont dans /usr/sbin
et pour PPP 2.2 il
sont dans /etc/ppp/scripts
. Ils s'appellent
pour PPP-2.1.2
ppp-on
ppp-off
et pour PPP 2.2
ppp-off
ppp-on
ppp-on-dialer
Maintenant, si vous utilisez PPP 2.1.2, je vous presse fermement de d�truire ces fichiers d'exemple. Il y a pleins de probl�mes potentiels avec ceux-ci - et ne me dites pas qu'ils marchent correctement - je les ai �galement utilis� pendant des ann�es (et les recommandait m�me dans la premi�re version de ce HOWTO) !
Pour les utilisateurs de PPP 2.1.2, voici de BIEN MEILLEURS mod�les, pris dans la distribution 2.2 de PPP. Je vous conseille de les copier et d'utiliser ces scripts � la place des anciens de PPP-2.1.2.
C'est le premier des DEUX scripts qui lance la connexion.
#!/bin/sh # # Script pour initialiser une connexion PPP. C'est la premiere partie de deux # scripts. Ce ne sont pas des scripts securises, puisque les codes sont # visibles avec la commande 'ps'. Cependant ils sont simples. # # Ce sont des parametres a changer selon les besoins TELEPHONE=555-1212 # Le numero de telephone de la connexion ACCOUNT=george # Le nom du compte (comme dans 'George Burns') PASSWORD=gracie # Le mot de passe du compte (et 'Gracie Allen') LOCAL_IP=0.0.0.0 # L'adresse IP locale si elle est connue Dynamic = 0.0.0.0 REMOTE_IP=0.0.0.0 # Adresse IP distante. Normally 0.0.0.0 NETMASK=255.255.255.0 # Le masque reseau si besoin # # Les exporter pour qu'ils soit disponible avec 'ppp-on-dialer' export TELEPHONE ACCOUNT PASSWORD # # C'est l'emplacement du script qui compose le numero et se connecte. # Utilisez les noms de fichiers absolus, car la variable $PATH n'est pas # utilisee avec l'option connect. (Faire ca en etant 'root' entraine un # trou de securite.) # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Commencer la connexion # # exec /usr/sbin/pppd debug /dev/ttySx 38400 \ $LOCAL_IP:$REMOTE_IP \ connect $DIALER_SCRIPT
Voici le script ppp-on-dialer :
#!/bin/sh # # C'est la deuxieme partie du script ppp-on. Il contient le protocole de # connexion de la connexion desiree. # /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD
Avec PPP-2.2, le script ppp-off
ressemble � :
#!/bin/sh ###################################################################### # # Determine le peripherique a terminer. # if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi ###################################################################### # # Si le fichier pid ppp0 est present alors le programme est lance. Le stopper. if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` # # Si le kill ne marche pas, alors il n'y a pas de processus lance pour ce pid. # Cela peut signifier que le fichier de lock a ete laisse. Vous souhaitez # peut-etre detruire le fichier de lock en meme temps. if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "ERROR: Removed stale pid file" exit 1 fi # # Succes. pppd a enlever tout ce qu'il avait cree. echo "PPP link to $DEVICE terminated." exit 0 fi # # Le processus ppp ne marche pas pour ppp0 echo "ERROR: PPP link is not active on $DEVICE" exit 1
Puisque les nouveaux scripts sont en deux parties, nous allons les �diter chacun leur tour.
Vous devez �diter ces fichiers pour contenir VOTRE nom utilisateur de votre FAI, VOTRE mot de passe de votre FAI, et le num�ro de t�l�phone de votre FAI.
Chacune des lignes ressemblant � TELEPHONE=
d�finissent une variable
du shell contenant les informations � droite du '=' (mise � part les
commentaires �videmment). �diter donc toutes les lignes de ce fichier
pour qu'il corresponde a votre FAI et votre connexion.
De plus, si vous configurez l'adresse IP (si vous avez besoin) dans le fichier
/etc/ppp/options
, DETRUISEZ les lignes mentionnant
$LOCAL_IP:$REMOTE_IP \
Assurez-vous �galement que la variable shell DIALER_SCRIPT pointe sur le
chemin complet du script d'appel qui sera r�ellement utilis�. Ainsi, si vous
d�placez ou renommez ce script, assurez-vous que vous modifier correctement
cette ligne dans le script ppp-on
!
C'est le deuxi�me des scripts qui lance votre liaison PPP.
Remarque : un script chat
est normalement sur une ligne compl�te.
Les backslashs sont utilis�s pour permettre � la ligne de se r�partir
sur plusieurs lignes physiques (pour une lisibilit� plus humaine) et
ne font pas partie du script lui-m�me.
Cependant, il est tr�s utile de le regarder en d�tail, comme cela nous comprenons ce qu'il est r�ellement suppos� faire !
Un script chat
est une s�quence de paires de "
cha�nes
d'attentes"
et de "
cha�nes d'envoi
"
. En particulier, remarquez que nous attendons TOUJOURS
quelque chose avant d'envoyer quoi que ce soit.
Si nous envoyons quelque chose SANS avoir rien re�u avant, nous devons
attendre une cha�ne vide avant (indiqu�e par un
"
"
) Et de la m�me mani�re attendre quelque chose
sans avoir rien envoy� ! Ainsi, si les cha�ne consistent en quelques mots,
(c.-�-d. NO CARRIER), vous devez entourez les cha�nes par des quotes pour
qu'elles soient vues comme une seule entit� par chat.
La ligne chat
de notre mod�le est :
exec /usr/sbin/chat -v
Invoque chat, le -v indique � chat
de mettre toutes ses entr�e/sorties
dans le journal syst�me (g�n�ralement /var/log/messages). Une fois que votre
script chat
marchera correctement, �ditez cette ligne et enlevez le -v
pour �conomiser des messages inutiles dans votre syslog.
TIMEOUT 3
ABORT '\nBUSY\r'
Si la cha�ne BUSY est re�ue, abandonner l'op�ration.
M
ABORT '\nNO ANSWER\r'
Si la cha�ne NO ANSWER est re�ue, abandonner l'op�ration.
ABORT '\nRINGING\r\n\r\nRINGING\r'
Si la cha�ne RINGING est re�ue de mani�re r�p�t�e, abandonner l'op�ration. C'est parce que quelqu'un vous appelle !
" \rAT
Ne rien attendre du modem et envoyer la cha�ne AT.
OK-+++\c-OK ATH0
C'est un petit plus compliqu� car cela utilise certaines capacit�s de chat � r�cup�rer les erreurs.
�a veux dire...Expect OK, si on ne l'a pas re�u (parce que le modem n'est pas en ligne de commande) alors envoyer +++ (la cha�ne standard des modems compatible Hayes pour retourner en ligne de commande) et attendre OK. Ensuite envoyer ATH0 (la cha�ne pour raccrocher). Cela permet au script de r�pondre � la situation ou votre modem avait laiss� la ligne d�croch�e !
TIMEOUT 30
Mettre le temps d'attente � 30 secondes pour le reste du script. Si vous avez
des soucis avec des abandons du script chat
� cause de timeout, augmentez
cette valeur � 45 secondes ou plus.
OK ATDT$TELEPHONE
Attends un OK (la r�ponse du modem � la commande ATH0) et compose le num�ro que nous voulez appeler.
CONNECT ''
Attendre CONNECT(ce que le modem nous envoie lorsque le modem distant d�croche) et n'envoie rien en r�ponse.
ogin:--ogin: $ACCOUNT
Une fois encore nous avons une r�cup�ration d'erreur ici. Attendre le message de login (...ogin:) mais si nous ne le recevons pas au bout d'un certain temps, envoyer un retour chariot et attendre une nouvelle fois le message de login. Lorsque le message est re�u, envoyer le nom utilisateur (stock� dans la variable shell $ACCOUNT).
assword: $PASSWORD
Attendre le message du mot de passe et envoyer le mot de passe (l� aussi stock� dans une variable shell).
Ce script chat
� une capacit� de r�cup�ration d'erreurs r�sonnable. Chat
poss�de bien d'autres possibilit�s que celles d�taill�s. Pour plus
d'informations, consulter la page de manuel de chat
(man 8 chat
).
Bien que le script ppp-on-dialer soit parfait pour les serveurs qui lancent
automatiquement pppd
sur le serveur final une fois que vous �tes connect�s,
certains serveurs n�cessitent que vous lanciez PPP explicitement sur le serveur.
Si vous avez besoin d'envoyer une commande de lancement de PPP sur le serveur, vous DEVEZ �diter le script ppp-on-dialer.
A la fin du script (apr�s la ligne password) ajouter une paire attente envoi en plus - elle cherchera un message de login (une suite de caract�res qui ont une signification particuli�re dans le shell Bourne - comme $ et [ ou ] (les crochets ouverts et ferm�s).
Une fois que chat
� obtenu le prompt du shell, chat
doit envoyer la
commande de d�marrage de ppp n�cessaire sur le serveur PPP de votre FAI.
Pour ma part, mon serveur PPP utilise un prompt Bash standard
[hartr@kepler hartr]$
et n�cessite que je tapes
ppp
pour lancer ppp sur le serveur.
Une id�e judicieuse peut �tre d'ajouter un peu de r�cup�ration d'erreur, dans mon cas j'utilise
hartr--hartr ppp
Cela signifie que si je ne re�ois pas le prompt dans le temps imparti, j'envoie un retour chariot et je recherche le prompt une nouvelle fois.
Une fois que le message est re�u, j'envoie la cha�ne ppp
.
Remarque : n'oubliez pas d'ajouter un \ � la fin de la ligne pr�c�dente
pour que chat
pense que le script de connexion de chat
est toujours
sur une seule ligne !
Malheureusement, certains serveurs g�n�rent un nombre de messages tr�s
variable ! Vous aurez peut-�tre besoin de vous connecter plusieurs fois
avec minicom
pour comprendre comment �a marche et r�cup�rer une cha�ne
"d'attente" stable.
Si votre FAI utilise PAP/CHAP, alors votre script chat
est bien plus
simple. Tout ce que votre script chat
doit faire est de composer le
num�ro, attendre
la connexion et ensuite laisser pppd
s'occuper du processus de connexion !
#!/bin/sh # # C'est la deuxieme partie du script ppp-on. Il contient le protocole de # connexion de la connexion desiree. # exec /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \
debug
et file option_file
de pppdComme nous l'avons d�j� vu, vous pouvez activer les informations de d�buggage avec l'option -d de pppd. L'option 'debug' est �quivalente � celle-ci.
Puisque vous �tablissez la connexion avec un nouveau script, laissez pour le
moment les informations de d�buggage. (Attention : si votre espace disque est
r�duit, les �changes de connexion de pppd
peuvent rapidement augmenter
votre fichier syslog et vous amener des probl�mes - mais pour aller jusque l�,
il faut que vous essayez et vous �chouiez vos connexions un certain temps).
Une fois que tout marche correctement, vous pouvez alors enlever cette option.
Si vous avez appel� votre fichier d'options de ppp autrement que
/etc/ppp/options
ou /etc/ppp/options.ttySx
, sp�cifiez le
nom du fichier avec l'option file
de pppd
:
exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:37