Next Previous Contents

9. Cas de plusieurs FAI

On supppose que vous avez les fichiers de connexion ppp tel que décrits dans la page connexion ppp à la main. Est présentée une config avec libertysurf et fnac qui se contente d'un login et d'un mot de passe, mais aussi avec free et waika9 qui nécessitent une identification par CHAP. Ce script ne gère pas les identifications PAP pour le moment.

On va modifier le fichier /etc/ppp/ppp-on comme suit:

#!/bin/bash   
 
# 
# définition du nom de domaine de la machine qui peut être totalement différent de celui du FAI 
MON_DOMAINE=kervao.fr  
 
# définition de l'interface ppp0, si vous en avez plusieurs, 
# vous pouvez faire en sorte de la  rentrer en argument 
DEVICE=ppp0  
 
# définition du fichier contenant les paramètres de connexion 
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer  
 
# définition des options à passer à pppd 
OPTIONS="modem defaultroute debug" 
OPTIONS_DEF="-detach lock crtscts asyncmap 00000000" 
OPTIONS_CHAP="noauth ipcp-accept-remote ipcp-accept-local idle 180" 
 
if [ "$1" = "" ] ; then 
 ###################################################################### 
 ##### Pas de paramètre indiqué : on utilise la connexion par defaut 
 ###################################################################### 
 
 CONNEXION=fnac 
else 
 CONNEXION=$1 
fi  
 
# à rajouter si vous voulez que sendmail soit reconfiguré à chaque connexion en fonction du FAI 
export $CONNEXION  
 
############################################################################ 
##### Initialisations diverses en fonction de la connexion désirée 
############################################################################# 
 
case $CONNEXION in 
 fnac) 
 #################### 
 # fnac             # 
 #################### 
 
 echo Tentative de connexion sur Fnac 
 TYPE= 
 REMOTE_NAME=$DEVICE 
 UTIL=login-chez-fnac 
 MOTP=password-en-clair 
 TELE=0298304698 
 DNS="194.149.160.9 194.149.160.1" 
 ;;  
 
 liberty) 
 #################### 
 # libertysurf      # 
 #################### 
 
 echo Tentative de connexion sur LibertySurf 
 TYPE= 
 REMOTE_NAME=$DEVICE 
 UTIL=login-chez-liberty 
 MOTP=password-en-clair 
 TELE=0298304691 
 DNS="194.149.160.9 194.149.160.1" 
 ;;  
 
 free) 
 #################### 
 # free             # 
 #################### 
 
 echo Tentative de connexion sur Free 
 TYPE=CHAP 
 REMOTE_NAME=proxad 
 UTIL=login-chez-free 
 MOTP=password-en-clair 
 TELE=0860912006 
 DNS="217.27.32.5 217.27.32.6" 
 ;;  
 
waika9) 
 #################### 
 # waika9           # 
 #################### 
 
 echo Tentative de connexion sur Waika9 
 TYPE=CHAP 
 REMOTE_NAME=proxad 
 UTIL=login-chez-waika9 
 MOTP=password-en-clair 
 TELE=0860912006 
 DNS="217.27.32.5 217.27.32.6" 
 ;;  
 
 *) 
 echo "Nom de connexion inconnu $CONNEXION ??" 
 echo "Vous avez le choix entre free, liberty, waika9 et fnac" 
 exit 0 
 ;;  
 
esac  
 
########################################################################### 
#### Création du fichier /etc/resolv.conf 
########################################################################### 
 
echo "search $MON_DOMAINE" >/etc/resolv.conf  
 
for dns in $DNS ; do 
 echo "nameserver $dns" >>/etc/resolv.conf 
done  
 
########################################################################### 
##### Initialisation du fichier /etc/ppp/ppp-on-dialer 
########################################################################### 
  
cat <<END_OF-DATA > /etc/ppp/ppp-on-dialer 
'ABORT' 'BUSY' 
'ABORT' 'ERROR' 
'ABORT' 'NO CARRIER' 
'ABORT' 'NO DIALTONE' 
'ABORT' 'Invalid Login' 
'ABORT' 'Login incorrect' 
'' 'ATZ' 
'OK' 'ATDT$TELE' 
'CONNECT' '' 
END_OF-DATA 
 
########################################################################### 
##### Lancement de la connexion 
########################################################################### 
  
if [ $TYPE = "CHAP" ] ; then 
echo "$UTIL   *       $MOTP" >/etc/ppp/chap-secrets 
 rm -f /etc/ppp/pap-secrets 
 touch /etc/ppp/pap-secrets 
 chmod 600 /etc/ppp/pap-secrets 
 chmod 600 /etc/ppp/chap-secrets 
 PPPOPTIONS="$OPTIONS $OPTIONS_CHAP remotename $REMOTE_NAME user $UTIL" 
exec /usr/sbin/pppd noauth /dev/ttyS0 115200 $PPPOPTIONS  ipparam $CONNEXION  \   
 connect "/usr/sbin/chat -v -f $DIALER_SCRIPT" 
 
else 
 rm -f /etc/ppp/chap-secrets 
 touch /etc/ppp/chap-secrets 
 chmod 600 /etc/ppp/pap-secrets 
 chmod 600 /etc/ppp/chap-secrets 
 PPPOPTIONS="$OPTIONS $OPTIONS_DEF ipparam $CONNEXION" 
 
 ####################################################################### 
 ##### Complément du fichier /etc/ppp/ppp-on-dialer 
 ####################################################################### 
 
cat <<END_OF-DATA >> /etc/ppp/ppp-on-dialer 
'ogin:' '$UTIL' 
'ord:' '$MOTP' 
'TIMEOUT' '5' 
'--' '' 
END_OF-DATA 
 
exec /usr/sbin/pppd $PPPOPTIONS /dev/ttyS0 115200  \   
 connect "/usr/sbin/chat -v -f $DIALER_SCRIPT" 
 
fi  
 

ATTENTION: Ne pas mettre d'espace ou de tabulation au niveau du 'ogin:', jusqu'à END_OF-DATA.

NOTE: ipparam sert à passer un argument à /etc/ppp/ip-up le script qui sera appelé à l'établissement de la connexion, dans le cas présent on lui passe le nom du FAI utilisé, il servira après pour lancer certaines actions dansip-up suivant le type de FAI.

Pour appeler ce script, c'est très simple, il suffit de taper:

/etc/ppp/ppp-on liberty   
 

A la place de liberty, avec le script cité précedemment, on peut aussi bien mettre fnac, waika9 et free.

Servez vous ensuite de sudo, pour spécifier les utilisateurs qui pourront lancer une connexion ppp, ils taperont ensuite:

sudo /etc/ppp-on liberty   
 


Next Previous Contents