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.

Répondre à