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