ppp (cot� serveur), suite et fin.
Voici comme promis le petit r�sum�.
Il s'agissait donc de monter une liaison ppp entre deux machines linux,
pour pouvoir faire de la t�l�-maintenance avec ssh, au travers de deux
modems (ligne t�l�phonique standard).
La solution ci-dessous manque totalement d'�l�gance, c'est certainement
plein de trous de s�curit�*, mais �a fonctionne (et comme j'ai pas pu
faire mieux, je me suis arr�t� l�!).
* ma r�ponse tr�s primitive aux trous de s�curit�: j'�teints les modems
!
Les deux machines ont �t� configur�es de mani�re sym�trique. Les deux
modems sont sur les ports series /dev/ttyS0 (= COM1 pour ceux qui
viennent du monde windows).
(A) la partie "serveur":
1) installer mgetty (le programme qui "r�pond au t�l�phone" lorsque le
modem sonne).
2) modifier /etc/mgetty+sendfax/login.config pour qu'il contienne:
/AutoPPP/ - a_ppp /usr/sbin/pppd crtscts noauth modem -detach
debug 192.168.1.116:192.168.1.92
(je ne suis pas s�r que les IP_local:IP_remote soient indispensables
ici, puisqu'ils sont aussi sp�cifi�s par la machine qui lance l'appel)
3) mettre la ligne suivante dans /etc/inittab
S0:23:respawn:/sbin/mgetty -x 4 ttyS0
( dans mon syst�me, le 23 veut dire
# 2 - Multiuser, without NFS
# 3 - Full multiuser mode )
4) si on veut �viter de rebooter, faire relire /etc/inittab avec la
commande:
kill -1 1
(B) La partie "client":
5) le fichier /etc/ppp/options contient:
lock
6) le fichier /etc/ppp/scripts/ppp-on contient:
#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=0223xxxxxx # The telephone number for the connection
LOCAL_IP=192.168.1.116 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=192.168.1.92 # Remote IP address if desired. Normally
0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/etc/ppp/scripts/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug noauth lock modem crtscts /dev/ttyS0 38400 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
7) et finalement le fichier /etc/ppp/scripts/ppp-on-dialer contient:
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec 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 '' \
8) NOTE: la commande ./ppp-on doit �tre lanc�e par root (� cause de
l'option noauth).
Avec cette liaison ppp, j'ai pu faire un slogin dans les deux sens (m�me
le X11 fonctionne, par exemple xterm et xcalc), monter une partition
(mount -t nfs ...) et installer des programes � distance avec rpm.
Merci � F�lix pour sa solution tr�s �labor�e (j'ai ador� le
printf >>/etc/ppp/pap-secrets "%s\t-\t\"*\"\t-\n" /
`cat /etc/passwd|sed -e s/:.*//`
mais malgr� tous mes efforts je n'ai pas r�ussi � faire fonctionner ppp
avec l'option login et/ou pap-secret. Je r�-essayerai � la prochaine
occasion, promis.
Pierre Maitre
--
Dr Pierre-O. Maitre
Privat Docent
FMH Anesth�siologie
FMH Pharmacologie Clinique
Cabinet m�dical / A la Joy
CH-1272 Genolier Switzerland
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.