Dernière modif 15.7.02
Dans un premier temps avant de commencer, vous devez connaître:
- Le numéro de téléphone de votre fournisseur d'accès
- Votre nom de compte chez votre fournisseur et votre mot de passe
- L'adresse IP du serveur DNS primaire de votre fournisseur (éventuellement)
- L'adresse IP du serveur DNS secondaire de votre fournisseur (éventuellement)
NOTE: Je propose dans cette page une 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.
Voir ma remarque importante sur la page connexion PPP "à la main".
Au cas où vous avez un serveur DNS qui tourne sur votre machine, créer le fichier /etc/named contenant :
};
};
zone "." {
type hint;
file "named.ca";
};
zone "kervao.fr"{
type master;
file "kervao.fr";
notify no;
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
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 noauth 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
# voir page sendmail
export $CONNEXION
############################################################################
##### Initialisations diverses en fonction de la connexion désirée
############################################################################
#
case $CONNEXION in
fnac)
####################
# fnac ou mageos #
####################
echo Tentative de connexion sur Fnac
TYPE=
REMOTE_NAME=$DEVICE
UTIL=login-chez-fnac
MOTP=password-en-clair
TELE=0298304698
# en cas d'attribution automatique d'adresses IP des serveurs DNS du fai
# commentez les lignes DNS et DNS2
DNS="194.149.160.9 194.149.160.1"
# si vous avez un serveur DNS décommenter la ligne suivante
# DNS2=""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
# en cas d'attribution automatique d'adresses IP des serveurs DNS du fai
# commentez les lignes DNS et DNS2
DNS="194.149.160.9 194.149.160.1"
# si vous avez un serveur DNS décommenter la ligne suivante
# DNS2="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
# en cas d'attribution automatique d'adresses IP des serveurs DNS du fai
# commentez les lignes DNS et DNS2
DNS="217.27.32.5 217.27.32.6"
# si vous avez un serveur DNS décommenter la ligne suivante
# DNS2="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
# en cas d'attribution automatique d'adresses IP des serveurs DNS du fai
# commentez les lignes DNS et DNS2
DNS="217.27.32.5 217.27.32.6"
# si vous avez un serveur DNS décommenter la ligne suivante
# DNS2="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
#### Commenter cette partie en cas d'attribution automatique des
adresses
#### IP des serveurs DNS du fai
###########################################################################
echo "search $MON_DOMAINE" >/etc/resolv.conf
# si vous avez un serveur DNS local décommenter la
ligne suivante
# echo "nameserver 127.0.0.1" >> /etc/resolv.conf
for dns in $DNS ; do
echo "nameserver $dns"
>>/etc/resolv.conf
done
###########################################################################
#### Création du fichier /etc/named.conf
#### A décommenter en cas de serveur DNS local et
#### de NON atrribution des adresses IP des serveurs DNS du FAI
##########################################################################
# echo "options {">/etc/named.conf
# echo " directory \"/var/named\";">>/etc/named.conf
# echo " forwarders{">>/etc/named.conf
# for dns in $DNS2 ; do
#
echo " $dns" >>/etc/named.conf
# done
# cat /etc/named >> /etc/named.conf
###########################################################################
##### 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é.
- En cas d'attribution automatique des serveurs DNS, il n'est pas
nécessaire de définir la variable DNS, le fichier /etc/resolv.conf
sera
automatiquement renseigné.
Voici maintenant à quoi ressemble le fichier /etc/ppp/ip-up
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
# l'argument 4 correspond à l'adresse IP attribuée
par le FAI
# l'argument 6 correspond est passé en argument de la commande
pppd juste
# après ipparam, voir /etc/ppp/ppp-on
ADRESSE=$4
CONNEXION=$6
# écriture des paramètres de connexion dans un fichier
de log
echo " " >> /var/log/connex
echo $1 >> /var/log/connex
echo "Connecté à $CONNEXION adresse $4 le " >> /var/log/connex
date >> /var/log/connex
nslookup $4|grep Name:|sed 's/Name:*//' >> /var/log/connex
# si serveur DNS local
# en cas d'attribution automatique d'adresses IP des serveurs DNS
# on décommente les lignes suivantes
#rm -f /etc/named.conf
#echo "options {">/etc/named.conf
#echo " directory \"/var/named\";">>/etc/named.conf
#echo " forwarders{">>/etc/named.conf
#cat /etc/ppp/resolv.conf| grep nameserver | awk -F" " '{if ($2
!= "127.0.0.1") {print $2";"}}' >>/etc/named.conf
#cat /etc/named >> /etc/named.conf
# jusqu'à ici
# Pour serveur DNS local, attribution auto ou pas
# on relance le serveur en décommentant la ligne suivante
# /etc/rc.d/init/named restart
# on envoie le courrier
# attention vous ne pourrez envoyer le courrier
# sur un serveur SMTP d'un fai que si vous êtes
# connecté avec ce fai
# /usr/sbin/sendmail -q -v >> /var/log/connex
# on récupère le courrier
# root doit posséder un .fetchmailrc
# relevant les boîtes aux lettres de tout le monde
/usr/bin/fetchmail -a
exit 0
A tout honneur, tout seigneur, les grandes lignes du script ppp-on 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
Maintenant si vous voulez que sendmail se reconfigure suivant le fai utilisé (pour pouvoir envoyer des emails), allez faire un tour sur la page configurer sendmail en fonction du FAI utilisé
Si pour une raison x ou y votre fichier /etc/resolv.conf n'est pas renseigné automatiquement en cas d'atribution automatique des adresses IP de votre serveur DNS une fois la connexion établie, rajoutez les lignes suivantes dans votre fichier /etc/ppp/ip-up en début de fichier (après le #!/bin/bash tout de même)
rm -f /etc/resolv.conf
echo "search kervao.fr" > /etc/resolv.conf
# en cas de serveur DNS local, décommentez la ligne suivante
# echo "nameserver 127.0.0.1"
tail --lines 25 /var/log/messages | grep DNS | awk -F" " '{print
"nameserver "$9}' >> /etc/resolv.conf
- créer autant d'utilisateur que vous avez de fai, pour vous
y retrouvez chacun ayant pour nom celui du provider. Configurer maintenant
Netscape
ou votre navigateur préféré 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
ou votre navigateur préféré pour ne pas utiliser de
proxy mais une connexion directe, pour utiliser movemail
(dans le cas de Netscape) ou le serveur pop
que vous aurez installer sur votre système 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 (/etc/leafnode par défaut). Il faudrait
donc modifier le script ppp-on pour mettre à jour config
suivant le fai utilisé, puis récupérer les posts dans
la file d'attente pour changer l'email, fonction non testée. Si
cette idée vous rebute, sachez que vous pouvez très bien
accèder au lecteur de news de free quelque soit le provider utilisé
(à condition d'avoir un compte chez eux), c'est la solution que
j'ai adoptée.
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.
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 automatiser la chose, au moment de la connexion fetchmail peut être appelé automatiquement dans le fichier /etc/ppp/ip-up (voir exemple plus haut), il faut alors que root possède un .fetchmailrc dans sa home directory (/root) capable de récupèrer le courrier de tous les utilisateurs.
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 à chaque connexion il faut reconfigurer
sendmail pour "attaquer" le serveur SMTP correspondant au fai utilisé,
pour cela n'oublier pas d'aller voir à la rubrique configurer
sendmail en fonction du FAI utilisé.
NOTE Voir également la page recevoir du courrier avec fetchmail/procmail pour la récupération du courrier et l'installation d'un serveur pop.
Dans le fichier /etc/ppp/ip-up présenté plus haut, vous allez rajouter la ligne suivante:
echo -n "$CONNEXION|"`date`"|">> /var/log/historique-connexion
A présent dans le fichier /etc/ppp/ip-down rajouter la ligne suivante:
date >> /var/log/historique-connexion
Cela va donner un fichier qui aura cette tête là:
fnac|Sat Jun 24 18:45:35 CEST 2000|Sat Jun 24 18:54:46 CEST 2000
liberty|Sat Jun 24 19:14:02 CEST 2000|Sat Jun 24 19:34:11 CEST 2000
Maintenant libre à vous de créer un petit programme pour
mettre en forme tout ça. Je vous propose un
programme en PHP3 (que j'ai volontairement renommé en
.txt pour qu'il ne soit pas interprété) qui présentera
les résultats sous forme d'une page HTML, comme ceci (les chiffres
sont en minute):
FAI | Janvier | Février | Mars | Avril | Mai | Juin | Juillet | Août | Septembre | Octobre | Novembre | Décembre |
Fnac/Mageos | 0 | 0 | 0 | 0 | 0 | 9.1833333333333 | 0 | 0 | 0 | 0 | 0 | 0 |
LibertySurf | 0 | 0 | 0 | 0 | 0 | 6.15 | 0 | 0 | 0 | 0 | 0 | 0 |
Free | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Freesbee | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Total (min) | 0 | 0 | 0 | 0 | 0 | 15.333333333333 | 0 | 0 | 0 | 0 | 0 | 0 |
Coût estimé (FHT) | 0 | 0 | 0 | 0 | 0 | 2.1466666666667 | 0 | 0 | 0 | 0 | 0 | 0 |
Ce script PHP3 présente un défaut il ne gère pas
le passage d'un mois à un autre, si vous vous connectez à
cheval d'un mois à un autre (avec passage à minuit), la communication
n'est pas prise en compte. De même pour le coût comme
j'appelle uniquement en heure creuse (0.14FHT la min), il n'y a pas de
distinction de ce côté là (heure creuse, heure pleine),
par ailleurs l'établissement de chaque appel est facturé
0.615FHT, ce n'est pas pris en compte.
C'est la première version du script, par ailleurs je ne suis
pas une bête de programmation, je compte néanmoins l'améliorer,
pour corriger notamment les défauts cités plus haut. Si vous
trouvez un bug ou si vous avez des remarques au sujet de ce programme n'hésitez
pas à m'en faire part.
Note Désolé j'ai pas encore converti mon script en euros, je vous laisse ce soin.
###########################################################################
##### Initialisation du fichier /etc/ppp/ppp-on-dialer
###########################################################################
cat <<END_OF-DATA > /etc/ppp/ppp-on-dialer
'ABORT' 'BUSY'
On va rajouter
cat <<END_OF-DATA > /etc/ppp/ppp-on-dialer
'REPORT' 'CONNECT'
'ABORT' 'BUSY'
Maintenant au niveau de la commande chat, on va rajouter au lieu de :
"/usr/sbin/chat -v -f $DIALER_SCRIPT"
Ceci
"/usr/sbin/chat -v -f $DIALER_SCRIPT -r /tmp/report-file"
Attention, ces commandes apparaîssent deux fois dans le fichier. Maintenant lors d'une connexion, l'inscription suivante va s'inscrire dans le fichier /tmp/report-file :
Opening "/tmp/report-file"...
chat: Jul 14 09:17:56 CONNECT 45333/ARQ/V90/LAPM/V42BIS
Closing "/tmp/report-file".
Ce fichier n'est pas écrasé mais incrémenté à chaque connexion. Il vous suffit à chaque début de connexion de jeter un coup d'oeil dedans pour voir à quelle vitesse vous êtes connectés.
Voici un petit script pour en extraire la vitesse:
#!/bin/bash
LINE=`fgrep CONNECT /tmp/report-file`
set $LINE none
echo $6 | awk -F "/" '{ print $1 }'
On peut faire en sorte que ce soit inscrit dans le fichier historique-connexion, pour cela en début de fichier ppp-on on va d'abord supprimer tout fichier /tmp/report-file en rajoutant:
rm -f /var/log/ChatReport
Copier le script d'extraction de la vitesse dans /etc/ppp et appelez le speed, donnez lui les droits 755. Maintenant apportez ces modifications dans le fichier ip-down, au lieu de :
date >> /var/log/historique-connexion
On va écrire
echo -n "`date`|" >> /var/log/historique-connexion
echo "`/etc/ppp/speed`" >> /var/log/historique-connexion
Voilà un extrait maintenant du fichier historique-connexion :
voonoo|Fri Jul 14 10:23:52 CEST 2000|Fri Jul 14 10:23:59 CEST 2000|45533
liberty|Fri Jul 14 10:26:18 CEST 2000|Fri Jul 14 10:26:42 CEST 2000|40000
Vous n'avez pas à modifier le script connex.php présenté
plus haut qui fait des stats pour estimer
le coût des communications.
[Retour page d'accueil FUNIX] | [Retour haut de la page] |