Configuration PPPà la main |
||
|
Le numéro de téléphone de votre fournisseur d'accès | |
L'adresse IP du serveur DNS primaire de votre fournisseur | |
L'adresse IP du serveur DNS secondaire de votre fournisseur | |
Votre nom de compte chez votre fournisseur et votre mot de passe |
Cette configuration est valable dans le cas où vous avez un provider
unique, dans le cas où vous avez plusieurs providers (essais de
FAI gratuits), reportez vous à la page configuration
PPP avec multi FAI.
Je trouve la configuration de la connexion PPP sur la Mandrake particulièrement
confuse, il y a des fichiers sous /usr/bin et une tonne sous /etc/sysconfig/network-scripts,
je n'ai jamais vraiment réussi à comprendre le mécanisme
d'une connexion PPP. C'est pourquoi j'ai essayé de construire une
solution qui se veut la plus portable possible et donc doit marcher sur
toutes les distribs de linux. Cette page comprend l'identification CHAP
telle que l'utilise Free. Elle ne comprend pas l'authentification PAP pour
le moment.
ATTENTION: Pour info j'utilise le package ppp-2.3.8-1mdk.i586.rpm, on m'a fait remarquer que mes scripts pouvaient ne pas marcher avec des versions plus anciennes de ppp, je vous conseille donc d'upgrader ppp, ce qui a pour effet de résoudre le problème.
-rw------- 1 root root
733 nov 9 18:47 connect-errors
-rwxr-xr-x- 1 root root
265 sep 16 1997 ip-down
-rwxr-xr-x- 1 root root
446 nov 9 20:55 ip-up
-rwxr-x--- 1 root pppusers
369 nov 9 18:52 ppp-off
-rwxr-x--- 1 root pppusers
496 nov 9 20:57 ppp-on
-rw------- 1 root root
237 nov 9 19:16 ppp-on-dialer
Le fichier connect-errors est généré automatiquement en cas d'erreur lors d'une connexion PPP, les autres fichiers sont des fichiers de configuration et des scripts de commande. En cas d'authentification par PAP ou CHAP, vous auriez d'autres fichiers.
Le script exécutable ppp-on permet de lancer une connexion, voici son contenu:
#!/bin/bash
# définition du nom du fichier contenant les paramètres
de connexion
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#définition du port sur lequel est branché le modem
MODEM=/dev/ttyS0
#définition de la vitesse max du modem (on peut mettre 115200
même si le modem plafonne à 56400)
SPEED=115200
#options diverses PPP, pour plus d'info "man pppd"
PPPOPTIONS="lock modem crtscts asyncmap 00000000 defaultroute debug"
exec /usr/sbin/pppd -detach $PPPOPTIONS $MODEM $SPEED \
remotename $DEVICE ipparam
$DEVICE \
connect "/usr/sbin/chat
-v -f $DIALER_SCRIPT"
Les options que je passe à pppd sont celles qui sont définies par défaut sur une distrib Mandrake 6.1, je n'ai pas cherché à les comprendre et encore moins à les modifier, retenez quand même que debug sert à avoir plus d'informations et que sans defaultroute le routage ne marchera pas.
Le script exécutable ppp-off permet de stopper la connexion:
#!/bin/bash
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "Argh erreur en détruisant le fichier pid"
exit 1
fi
echo "Liaison PPP $DEVICE
terminé"
exit 0
fi
echo "Erreur liaison PPP non active sur $DEVICE"
exit 1
Le fichier ppp-on-dialer contient les paramètres de connexion
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'OK' 'ATDT0491294697'
'CONNECT' ''
'ogin:' 'le-login-chez-le-fai'
'ord:' 'le-mot-de-passe'
'TIMEOUT' '5'
'~--' ''
Vous remplacez évidemment le numéro de téléphone,
le login et le mot de passe par les votres.
Dans le fichier ip-up vous pouvez mettre ce que voulez comme
par exemple l'envoie du courrier en attente de même que la réception
#!/bin/bash
/usr/sbin/sendmail -q -v
/usr/bin/fetchmail
ATTENTION: mettre le chemin complet des commandes
De même dans le fichier ip-down, vous mettrez les commandes que vous souhaitez lancer à l'arrêt d'une connexion.
#!/bin/bash
# définition du nom du fichier contenant les paramètres
de connexion
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#définition du port sur lequel est branché le modem
MODEM=/dev/ttyS0
#définition de la vitesse max du modem (on peut mettre 115200
même si le modem plafonne à 56400)
SPEED=115200
#options diverses PPP, pour plus d'info "man pppd"
PPPOPTIONS=" noauth defaultroute modem debug ipcp-accept-remote
ipcp-accept-local idle 180"
exec /usr/sbin/pppd $PPPOPTIONS /dev/ttys0 115200 \
connect "/usr/sbin/chat
-v -f $DIALER_SCRIPT" \
remotename proxad user
login-chez-free
Le fichier /etc/ppp/ppp-on-dialer est plus court:
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'' 'ATZ'
'OK' 'ATDT0491294697'
'CONNECT' ''
Un fichier fait son apparition /etc/ppp/chap-secrets, il contient
login-chez-free * mot-de-passe-chez-free
Ce fichier doit avoir les droits 600 pour des raisons évidentes de sécurité.
search kervao.fr
nameserver 194.149.160.9
nameserver 194.149.160.1
A noter qu'il n'est absolument pas nécessaire de spécifier le même nom de domaine que celui de votre provider, vous pouvez garder votre nom farfelu.
[root@tavel /]# ./ppp-on \&
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xd54de4d8>
<pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <mru 1524> <asyncmap 0xa0000> <pcomp><accomp><
11 04 05 f4> < 13 08 01 62 72 65 73 74>]Imp>]
rcvd [LCP ConfReq id=0x2 <mru 1524> <asyncmap 0xa0000> <pcomp>
<accomp>]
sent [LCP ConfAck id=0x2 <mru 1524> <asyncmap 0xa0000> <pcomp>
<accomp>]
sent [IPCP ConfReq id=0x1 <addr 192.168.13.11> <compress VJ
0f 01>]
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd
v1 15>]
rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 194.149.178.1>]
sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 194.149.178.1>]
rcvd [CCP ConfReq id=0x1 < 11 06 00 01 01 03>]
sent [CCP ConfRej id=0x1 < 11 06 00 01 01 03>]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 192.168.13.11>]
rcvd [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15> <bsd
v1 15>]
sent [CCP ConfReq id=0x2]
rcvd [IPCP ConfNak id=0x2 <addr 194.149.178.133>]
sent [IPCP ConfReq id=0x3 <addr 194.149.178.133>]
rcvd [CCP ConfRej id=0x2]
rcvd [IPCP ConfAck id=0x3 <addr 194.149.178.133>]
local IP address 194.149.178.133
remote IP address 194.149.178.1
Script /etc/ppp/ip-up started (pid 1468)
Script /etc/ppp/ip-up finished (pid 1468), status = 0x0
Pour avoir un max d'info, avant de lancer ppp-on, ouvrer un shell en tant que root et taper tail -f /var/log/messages, vous devriez y voir ça:
Nov 9 21:21:00 tavel kernel: CSLIP: code copyright 1989 Regents
of the University of California
Nov 9 21:21:00 tavel kernel: PPP: version 2.3.7 (demand dialling)
Nov 9 21:21:00 tavel kernel: PPP line discipline registered.
Nov 9 21:21:00 tavel kernel: registered device ppp0
Nov 9 21:21:00 tavel pppd[1459]: pppd 2.3.8 started by root,
uid 0
Nov 9 21:21:01 tavel chat[1463]: abort on (BUSY)
Nov 9 21:21:01 tavel chat[1463]: abort on (ERROR)
Nov 9 21:21:01 tavel chat[1463]: abort on (NO CARRIER)
Nov 9 21:21:01 tavel chat[1463]: abort on (NO DIALTONE)
Nov 9 21:21:01 tavel chat[1463]: abort on (Invalid Login)
Nov 9 21:21:01 tavel chat[1463]: abort on (Login incorrect)
Nov 9 21:21:01 tavel chat[1463]: send (ATZ^M)
Nov 9 21:21:01 tavel chat[1463]: expect (OK)
Nov 9 21:21:02 tavel chat[1463]: ATZ^M^M
Nov 9 21:21:02 tavel chat[1463]: OK
Nov 9 21:21:02 tavel chat[1463]: -- got it
Nov 9 21:21:02 tavel chat[1463]: send (ATDT0496294696^M)
Nov 9 21:21:02 tavel chat[1463]: expect (CONNECT)
Nov 9 21:21:02 tavel chat[1463]: ^M
Nov 9 21:21:28 tavel chat[1463]: ATDT0496294696^M^M
Nov 9 21:21:28 tavel chat[1463]: CONNECT
Nov 9 21:21:28 tavel chat[1463]: -- got it
Nov 9 21:21:28 tavel chat[1463]: send (^M)
Nov 9 21:21:28 tavel chat[1463]: expect (ogin:)
Nov 9 21:21:28 tavel chat[1463]: 45333/ARQ/V90/LAPM/V42BIS^M
Nov 9 21:21:31 tavel chat[1463]: ^M
Nov 9 21:21:31 tavel chat[1463]:
Nov 9 21:21:31 tavel last message repeated 23 times
Nov 9 21:21:31 tavel chat[1463]: *** DANUP ISDnet ***^M
Nov 9 21:21:31 tavel chat[1463]: ^M
Nov 9 21:21:31 tavel chat[1463]: ^M
Nov 9 21:21:31 tavel chat[1463]: Login:
Nov 9 21:21:31 tavel chat[1463]: -- got it
Nov 9 21:21:31 tavel chat[1463]: send (le-login-chez-le-fai^M)
Nov 9 21:21:32 tavel chat[1463]: expect (ord:)
Nov 9 21:21:32 tavel chat[1463]: -- got it
Nov 9 21:21:32 tavel chat[1463]: send (mot-de-passe-en-clair!!^M)
Nov 9 21:21:32 tavel chat[1463]: timeout set to 5 seconds
Nov 9 21:21:32 tavel chat[1463]: expect (~)
Nov 9 21:21:32 tavel chat[1463]: ^M
Nov 9 21:21:32 tavel chat[1463]: Entering
PPP Mode.^M
Nov 9 21:21:32 tavel chat[1463]: IP
address is 194.149.178.133^M
Nov 9 21:21:32 tavel chat[1463]: MTU
is 1524.^M
Nov 9 21:21:37 tavel chat[1463]: alarm
Nov 9 21:21:37 tavel chat[1463]: send (^M)
Nov 9 21:21:37 tavel pppd[1459]: Serial connection established.
Nov 9 21:21:37 tavel pppd[1459]: Using interface ppp0
Nov 9 21:21:37 tavel pppd[1459]: Connect: ppp0 <--> /dev/ttyS0
Nov 9 21:21:37 tavel chat[1463]: send (^M)
Nov 9 21:21:40 tavel kernel: PPP BSD Compression module registered
Nov 9 21:21:40 tavel kernel: PPP Deflate Compression module
registered
Nov 9 21:21:40 tavel pppd[1459]: local IP address 194.149.178.133
Nov 9 21:21:40 tavel pppd[1459]: remote IP address 194.149.178.1
Cette sortie est un peu différente dans le cas d'une connexion
avec identification CHAP (Free).
A noter que le mot de passe de connexion PPP ainsi que le login apparaît
en clair dans le fichiet de log.
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias PPPON=/etc/ppp/ppp-on
Cmnd_Alias PPPOFF=/etc/ppp/ppp-off
# User privilege specification
root ALL=(ALL) ALL
olivier ALL=NOPASSWD:PPPON,NOPASSWD:PPPOFF
veronique ALL=NOPASSWD:PPPON,NOPASSWD:PPPOFF
Mes deux utilisateurs olivier et veronique ont le droit d'utiliser les commandes ppp-on et ppp-off et donc de déclencher et d'arrêter une connexion PPP. Pour déclencher une connexion, il suffira donc de taper:
sudo /etc/ppp/ppp-on
Et pour l'arrêter:
sudo /etc/ppp/ppp-off