Configuration PPP(cas de plusieurs providers) |
||
|
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 |
NOTE: J'avais d'abord rédigé une première solution mais qui était vraiment spécifique Mandrake et absolument pas portable sur les autres distribs linux comme me l'a fait remarqué pas mal d'entre vous, j'ai donc revu ma copie et je propose une autre solution que j'espère la plus portable possible, pour cela vous devez avoir la même architecture PPP que décrite dans ma page connexion PPP à la main. A tout hasard j'ai quand même laissé ma config type Mandrake, mais ma config portable me semble quand même plus propre.
Voir ma remarque importante sur la page connexion PPP "à la main".
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 dans ip-up suivant
le type de FAI. Pour avoir une idée de l'utilité de ce paramètre,
voir la page sendmail au paragraphe configurer
sendmail en fonction du FAI utilisé.
A tout honneur, tout seigneur, les grandes lignes du script m'ont été communiquées par Bernard Delechamp j'ai adapté ensuite. Pour appeler ce script, c'est très simple, il suffit de taper:
/etc/ppp/ppp-on liberty
A la place de liberty, dans mon exemple, 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
connexion-fnac
connexion-liberty
connexion-waika9
connexion-free
etc.
Ces scripts ont pour droit 755 (proprio root, groupe root), voici le
contenu du script "template" ou patron connexion-fai qui sert d'exemple
aux autres, dans la suite de la manip remplacez fai par le nom du
provider.
Voici le contenu de connexion-fai:
#!/bin/bash
/sbin/connecte_fai ppp0
Pour le fichier connecte_fai, c'est une copie de /sbin/ifup que j'ai un peu modifié, on commence donc par:
cp /sbin/ifup /sbin/connecte_fai
Puis on modifie le fichier connecte_fai, voici le début du fichier, les lignes rajoutées apparaissent en italiques
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
#début des modifs
cp /etc/resolv.conf.fai /etc/resolv.conf
cd /etc/sysconfig/network-scripts
if [ -x /etc/sysconfig/network-scripts/ifup ]; then
rm /etc/sysconfig/network-scripts/ifup
ln -s /sbin/connecte_fai /etc/sysconfig/network-scripts/ifup
fi
#fin des modifs
. network-functions
need_hostname
CONFIG=$1
...
A un moment vous trouvez dans le fichier:
OTHERSCRIPT=" /etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"
Remplacez le par
OTHERSCRIPT=" /etc/sysconfig/network-scripts/ifup.fnac-${DEVICETYPE}"
Maintenant vous copiez votre fichier /etc/resolv.conf en resolv.conf.fai:
cp /etc/resolv.conf /etc/resolv.conf.fai
Voici le contenu du fichier :
search votre-nom-de-domaine
nameserver 194.149.160.9
nameserver 194.149.160.1
Au lieu de votre-nom-de-domaine vous mettez le nom de votre domaine
privé, ce n'est absolument pas nécessaire d'avoir le même
nom de domaine que celui de votre provider, vous pouvez mettre ce que vous
voulez même les noms les plus farfelus, chez moi par exemple c'est
kervao.fr car c'est le nom du quartier où j'habite...
Dans la première ligne nameserver vous mettez l'adresse
IP du serveur DNS primaire, puis dans la deuxième l'adresse IP du
serveur DNS secondaire.
ATTENTION les adresses IP données ici le sont à
titre d'exemple.
NOTE IMPORTANTE Un truc rigolo que j'ai constaté lors de mes essais, on pouvait se connecter avec un fai et utilisez les serveurs DNS d'un autre fai ! La manip de modifier resolv.conf est peut être pas nécessaire mais sait-on jamais...
Maintenant on va copier le fichier /etc/sysconfig/network-scripts/ifup-ppp en ifup.fai-ppp, avec la commande:
cp /etc/sysconfig/network-scripts/ifup-ppp /etc/sysconfig/network-scripts/ifup.fai-ppp
On édite le fichier ifup.fai.ppp et on remplace toutes les occurences (y en a 5) de /etc/sysconfig/network-scripts/chat-$DEVICE par /etc/sysconfig/network-scripts/chat.fai-$DEVICE
Maintenant on va copier le fichier /etc/sysconfig/network-scripts/chat-ppp0 en chat.fai-ppp0
cp /etc/sysconfig/network-scripts/chat-ppp0 /etc/sysconfig/network-scripts/chat.fai-ppp0
Voici la tête de ce fichier
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'OK' 'ATDT0298304698'
'CONNECT' ''
'ogin:' 'le-login-chez-le-provider'
'ord:' 'mot-de-passe-en-clair'
'TIMEOUT' '5'
'~--' ''
Au niveau du OK, juste après ATDT vous mettez le numéro
de téléphone du fai correspondant. Au niveau du "ogin" (nom
j'ai pas fait d'erreur de frappe), vous mettez le login attribué
par le fai, puis la ligne suivante au niveau du "ord", saisissez votre
mot de passe en clair.
Pour des raisons évidentes seul root a le droit en lecture-écriture
sur le fichier (-rw-------):
chmod 600 /etc/sysconfig/network-scripts/chat.fai-ppp0
Voilà c'est presque fini, maintenant il manque plus que le script de déconnexion, qui marchera pour tous les fai, sous /sbin créer le fichier deconnecte contenant:
#!/bin/bash
/sbin/ifdown ppp0
Vous lui donnez les droits en exécution pour tout le monde (-rwxr-xr-x):
chmod 755 /sbin/deconnecte
Ca y est c'est fini, passons à l'utilisation. L'utilisation est très simple, suivant le type de provider que vous voulez utiliser vous lancer en tant que simple utilisateur une connexion avec le script correspondant, puis vous la cessez avec le script deconnecte.
- créer autant d'utilisateur que vous avez de fai, pour vous
y retrouvez chacun ayant pour nom celui du provider. Configurer maintenant
Netscape avec comme serveur de mail entrant le pop du fai, comme serveur
de mail sortant le smtp du fai, et comme serveur de news le serveur nntp
du fai.
Avantage de cette solution vous testez à fond les possibilités
du provider, inconvénient si vous être seul utilisateur, vous
ne récupérez pas vos mails chez d'autres providers ou pop
gratuit (comme ifrance), et tout se retrouve dispersé dans les différentes
boîtes aux lettres de vos utilisateurs.
Autre solution plus "sioux":
- vous continuez à utilisateur votre login habituel sur votre
machine, vous configurez Netscape
pour ne pas utiliser de proxy mais une connexion directe, pour utiliser
movemail
pour récupérer le courrier et sendmail
pour le départ. Comme ça quelque soit le provider la configuration
de Netscape reste la même. Vous êtes évidemment obligé
de donner un email qui apparaitra dans les mails et posts sortants, on
verra plus bas comment arranger ça, mettez celui que vous utilisez
le plus courramment.
Pour les news leafnode va les chercher sur
le serveur nntp du provider qui est défini dans le fichier config
(/usr/lib/leafnode par défaut). Il faudrait donc modifier
mon script connexion-fai pour mettre à jour config suivant le fai,
puis récupérer les posts dans la file d'attente pour changer
l'email, fonction non testée. N'essayer pas de récupérer
les news d'un fai alors que vous vous êtes connectés avec
un autre ça ne marchera pas (encore que...).
Pour le mail entrant ça pose pas de problème, chaque
utilisateur dispose dans sa homedirectory d'un fichier .fetchmailrc,
il suffit de l'étoffer un peu en y notant tous les serveurs pop
où vous êtes sensés récupérer du mail:
set logfile /var/log/fetchmail.log
poll pop.fai.fr protocol pop3
user login-fai there with password password-fai is olivier
here
poll pop.fnac.net protocol pop3
user login-fnac there with password password-fnac is olivier
here
poll pop.free.fr protocol pop3
user login-free there with password password-free is olivier
here
poll pop.ifrance.com protocol pop3
user login-ifrance there with password password-ifrance is
olivier here
poll pop.fnac.net protocol pop3
user login2-fnac there with password password2-fnac is veronique
here
poll pop.ifrance.com protocol pop3
user login2-ifrance there with password password2-ifrance
is veronique here
poll pop.libertysurf.fr protocol pop3
user login-liberty there with password password-liberty is
olivier here
Vous constaterez qu'en se connectant avec un fai vous pouvez quand même récupérer le courrier chez les serveurs pop des autres fai, ce qui est super pratique, c'est du moins ce que j'ai constaté avec free, fnac.net, libertysurf, ifrance étant un pop gratuit mais pas un fai, j'ai pas encore testé avec freesbee et waika9.
ATTENTION c'est pas le cas pour tous les fai, pour certains il
est impossible de se connecter au serveur pop, si vous n'avez pas ouvert
une session de connexion préalablement chez le même provider.
Vous constaterez qu'on peut aussi en profiter pour récupérer
le courrier d'autres utilisateur du système, dans l'exemple olivier
est mon compte utilisateur, veronique ma moitié, je récupére
son courrier et je le redirige vers sa boîte aux lettres.
Petit rappel vous récupérez le courrier en tapant en
tant que simple utilisateur (après avoir défini un .fetchmailrc
adéquat) par:
fetchmail -a
Pour le mail sortant, maintenant que vous avez configuré Netscape
pour utiliser sendmail, c'est ce dernier qui va se charger de relayer le
courrier vers le fai.
Une chose est claire, vous ne pouvez pas vous connecter chez un fai
et envoyez vos mails chez le serveur smtp d'un autre, les serveurs smtp
des fai sont configurés de telle sorte d'interdire de relayer le
courrier si celui-ci n'appartient pas au domaine du serveur, ceux-ci pour
éviter les spam. En clair pour envoyer le courrier, vous devez avoir
autant de config de sendmail que de fai, pour
cela vous pouvez toujours bricoler un script qui modifie le fichier de
config, kill sendmail et le relance pour le relire, avant d'envoyer tout
courrier. Je crois cependant savoir qu'on peut spécifier plusieurs
serveurs smtp à sendmail. Franchement je n'ai pas fouillé
la question car je me contente d'expédier mes emails chez le même
provider, il vaut mieux éviter de noyer vos interlocuteurs avec
36 emails différents, ceux-ci concerne aussi bien le mail que les
news.
NOTE J'ai modifié ma page recevoir du courrier avec fetchmail/procmail pour prendre cette nouvelle donne en compte.