mini-HOWTO PPP-par-minicom
Winfried Truemper (
[email protected])
Traduction : Philippe Martin (
[email protected])
v0.0 09 December 1996
Vous desirez un outil commande par menu pour traiter avec PPP ? Un
annuaire telephonique puissant et facile d'utilisation avec les
numeros de telephone de votre ISP ? Vous voulez voir ce qui se passe
lors d'une connexion ? Alors ce mini-HowTo est pour vous !
11.. IInnttrroodduuccttiioonn
PPP est devenu le protocole reseau standard pour se relier a
l'internet via le reseau telephonique. Le demon pppd associe est un
outil de connexion tres primitif qui manie seulement des
configurations tres simples.
Je vais decrire ici une alternative basee sur minicom.
Cette documentation est une version simplifiee du document allemand
_I_n_t_e_r_n_e_t_a_n_b_i_n_d_u_n_g _m_i_t _P_P_P (
http://www.uni-koeln.de/themen/linux/ppp/).
11..11.. LLee tteerrmmiinnaall mmiinniiccoomm
minicom est un outil tres sophistique pour se connecter a d'autres
ordinateurs (ISP ou BBS). Il possede un menu en couleur d'une grande
qualite, un annuaire telephonique et un puissant langage de script.
Il convient donc absolument pour une utilisation conjointe avec pppd.
Mais attention, si vous executez /sbin/mgetty /dev/modem, toute
personne ayant un compte valide sur votre machine peut utiliser la
connexion (par exemple avec minicom). Mais ceci est une autre
histoire. Veuillez consulter la documentation sur mgetty pour plus
d'informations.
11..22.. CCoommmmeennttaaiirreess
Je suis uniquement interesse par des remarques qui pourraient faire
evoluer ce mini-HowTo. Je ne repondrai pas aux questions generales sur
Linux, PPP, SLIP ou les reseaux.
11..33.. BBoogguueess ccoonnnnuueess
A l'heure ou j'ecris ce document, il semble y avoir quelques bogues
dans minicom, runscript et dans la methode decrite ci-dessous :
+o runscript n'attend pas que les programmes externes finissent
print "ding"
! sleep 10
print "dong"
Ce script se termine immediatement (mais pas sous strace ...)
+o pppd retire le port serie a minicom (quand il n'est pas alimente
par stdin).
Il semblerait que Miquel van Smoorenburg (l'auteur de minicom) soit
trop occupe pour y mettre le doigt dessus. Les volontaires seront
alors les bienvenus.
22.. SSee ccoonnnneecctteerr aavveecc mmiinniiccoomm
Un grand nombre de documentations sur PPP recommandent de quitter
minicom apres l'avoir utilise pour se connecter. Mais vous n'avez
vraiment pas besoin de quitter cet agreable programme...
22..11.. CCoonnffiigguurreerr mmiinniiccoomm
Executez minicom -s et choisissez l'article de menu _S_e_r_i_a_l _p_o_r_t _s_e_t_u_p
(Configuration du port serie). La premiere entree devrait etre _S_e_r_i_a_l
_d_e_v_i_c_e (Peripherique serie) et c'est le parametre le plus important :
le peripherique serie auquel votre modem est rattache. (Des
volontaires pour retoucher minicom afin qu'il puisse gerer plusieurs
peripheriques serie a la fois ?)
Pressez <<rreettuurrnn>> pour confirmer puis <<eesscc>> pour revenir au menu de
configuration initial. Choisissez _E_x_i_t _t_o _m_i_n_i_c_o_m (Sortie vers
minicom) et tapez atdt99999. Votre modem devrait commencer a composer
le numero immediatement et vous devriez entendre un _c_l_i_c_k lorsque le
modem se relie a la ligne. Heureusement, 99999 n'est pas un numero de
telephone valide.
22..22.. DDeemmaarrrreerr PPPPPP aa llaa mmaaiinn
Peut-etre avez-vous deja essaye de composer le numero de telephone de
votre ISP au lieu de 99999. Vous avez alors surement vu de droles de
caracteres apparaitre a l'ecran apres etre entre dans le systeme
(sinon, tapez ppp). Ils proviennent du demon pppd (ou equivalent)
demarre a l'autre bout de la ligne. Dans ce cas, vous pouvez essayer
de demarrer le demon pppd de votre cote, et evaluer le fichier _l_o_g par
la suite.
Pour demarrer pppd depuis minicom, vous pouvez definir une nouvelle
methode de chargement (voyez comment par vous-meme) ou redefinir le
parametre _k_e_r_m_i_t _p_r_o_g_r_a_m depuis le menu de configuration _F_i_l_e_n_a_m_e _a_n_d
_p_a_t_h_s(Fichiers et repertoires) :
A - Download directory :
B - Upload directory :
C - Script directory :
D - Script program : /usr/bin/runscript
E - Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options
Maintenant, si vous voyez apparaitre ces droles de caracteres la
prochaine fois que vous appelez votre ISP, vous pouvez presser les
touches <Alt>+<K> pour demarrer pppd.
La suite de ce mini-HowTo traite de l'automatisation du processus de
connexion et de demarrage de pppd.
22..33.. EEvvaalluueerr llee ffiicchhiieerr lloogg
Bien que mon but ne soit pas d'expliquer comment configurer PPP, je
donne un petit conseil pour lire le fichier _l_o_g. Pour extraire les
informations essentielles du fichier _l_o_g /var/log/debug (ou
/var/log/daemon.log), executez la commande
tail -n 40 /var/log/debug |\
grep -E " pppd\[[0-9]*\]:" |\
sed -e "s/^.*pppd\[/[/"
Vous devriez voir des messages comme
sent [LCP ConfReq id=0x1 <mru 296>]
rcvd [LCP ConfRej id=0x1 <mru 296>]
qui indiquent que nous avons envoye (_s_e_n_t) une requete de configura-
tion (_C_o_n_f_i_g_-_r_e_q_u_e_s_t) pour mettre le bloc maximal de reception (_m_a_x_i_-
_m_u_m _r_e_c_e_i_v_e _u_n_i_t _- _m_r_u) a 296. Le second message refuse cette config-
uration (_c_o_n_f_i_g_u_r_a_t_i_o_n _r_e_j_e_c_t_e_d). Dans ce cas, j'ai juste retire
l'option mru dans /etc/ppp/options (voir plus loin).
22..44.. CCoonnffiigguurreerr uunn nnuummeerroo ddee tteelleepphhoonnee
Si tout a bien marche jusqu'ici, vous voudrez surement enregistrer un
numero de telephone dans l'annuaire de minicom. Pressez <ALT>+<D> pour
faire apparaitre le menu de composition d'un numero (_d_i_a_l_i_n_g _m_e_n_u) et
utilisez les touches du curseur pour selectionner Edit :
A - Name : Xeno
B - Number : 022039697303
C - Dial string # : 1
D - Local echo : No
E - Script : /etc/ppp/login.script
F - Username : ppp-382
G - Password : top-secret
H - Terminal Emulation : VT102
I - Backspace key sends : Delete
J - Linewrap : Off
K - Line Settings : Curr 8N1
Ceci est un exemple d'entrees pour me connecter a l'un de mes ISP. Le
script /etc/ppp/login.script apparait plus loin. Deux variables
particulieres sont passees au script : $(LOGIN) et $(PASS) qui
prennent les valeurs entrees comme nom d'utilisateur (_F _- _U_s_e_r_n_a_m_e) et
mot de passe (_G _- _P_a_s_s_w_o_r_d). Cette caracteristique rend minicom assez
souple car il utilise un unique script pour automatiser la connexion a
differents ISP.
22..55.. UUnn ssccrriipptt ddee ccoonnnneexxiioonn
minicom lance le script de connexion apres avoir recu la chaine de
caracteres CONNECT. Pour etre plus precis, minicom ne le lance pas
lui-meme, mais appelle pour ca l'utilitaire runscript comme sous-
procesus.
En voici un exemple (que j'utilise pour mon ISP) :
# v1.0, 20.08.96 Winfried Trumper <
[email protected]>
print ""
print "Connexion automatique via /etc/ppp/login.script"
## Retirez le commentaire si vous devez presser Entree
## pour obtenir le prompt
#send ""
expect {
"ogin:"
"ogin>"
"sername:"
"sername>"
"NO CARRIER" exit 1
}
send "$(LOGIN)"
expect {
"assword:"
"assword>"
timeout 20
}
send "$(PASS)"
expect {
"port" send "ppp"
"Start your PPP now"
"}!}!}"
timeout 10
}
print ""
print "Passage en mode PPP ..."
print ""
! /usr/sbin/pppd file /etc/ppp/mini_options
print ""
print "la commande killall -TERM pppd termine pppd"
L'aptitude de runscript a appeler des programmes externes est utilisee
pour demarrer pppd. Copiez votre fichier d'options original pour ppp
vers /etc/ppp/options.ttyS1 (remplacez ttyS1 par le nom du
peripherique auquel votre modem est rattache) et supprimez toutes les
lignes dans /etc/ppp/options specifiques a votre modem (comme connect,
crtscts ou modem).
Mettez les options specifiques a la connexion PPP via minicom dans
/etc/ppp/mini_options. Une de ces options devrait etre
disconnect "chat '' '\d\d+++\d\dATH\r\c'"
Ceci est indispensable car pppd est alimente par stdin et ne peut pas
racccrocher le modem via crtscts.
22..66.. NNuummeerroottaattiioonn aauuttoommaattiiqquuee aauu ddeemmaarrrraaggee
Utilisez l'option -d pour numeroter un numero de telephone particulier
au demarrage de minicom.
Vous pouvez aussi essayer
open -sl -- minicom -d 1
pour envoyer minicom sur une autre console (voir le mini-howTo Con-
soles-Many pour plus de details).
22..77.. EExxtteennssiioonnss ffuuttuurreess
pppd etant un demon, il n'est pas concu pour une interaction avec
l'utilisateur ou pour l'observation. C'est clair. Apres tout, nous
utilisons un systeme unix...
La solution canonique est un programme d'arriere-plan. Des volontaires
pour tailler minicom en pieces ?
Des extensions interessantes seraient :
+o la generation automatique du script de connexion par l'observation
de l'utilisateur se connectant manuellement,
+o l'evaluation automatique du fichier _l_o_g avec correction automatique
des options,
+o l'extraction de messages comme ceux vus a la section ``Evaluer le
fichier log''.