Au moment de configurer Diald pour connecter votre ordinateur � votre FAI, il est n�cessaire de faire ce qui suit :
/etc/resolv.conf
).
http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html
,http://www.freenix.org/unix/linux/HOWTO/Modems-HOWTO.html
ethttp://www.freenix.org/unix/linux/HOWTO/Serial-HOWTO.html
./etc/ppp/pap-secrets
et
/etc/ppp/chap-secrets
en y mettant votre nom d'utilisateur et votre mot
de passe comme d�crit plus haut.
Et enfin, pour Diald il faut :
/etc/diald/diald.options
pour la version 0.16.5, et
/etc/diald/diald.conf
pour les versions plus r�centes).
/etc/diald/standard.filter
, ou
mieux, laisser ce fichier tel quel, et en modifier une copie que vous pouvez
appeler /etc/diald/personal.filter
.
/etc/diald/diald.connect
qui doit avoir les droits d'ex�cution de
root) et le fichier d'instruction de chat
(/etc/chatscripts/provider
) qui sera utilis� par le pr�c�dent.
/etc/diald/ip-up
et /etc/diald/ip-down
) si vous
voulez utiliser cette possibilit�. Les deux scripts doivent avoir les droits
d'ex�cution de root.
/etc/diald/addroute
et /etc/diald/delroute
). Tous les
deux doivent avoir les droits d'ex�cution de root. Cette �tape n'est pas
n�cessaire si vous n'utilisez qu'une seule instance de Diald.
diald
(« /etc/init.d/diald start
» pour une Debian et
« /etc/rc.d/init.d/diald start
» pour une RedHat). Normalement, les
scripts pour lancer Diald au moment du d�marrage de l'ordinateur sont mis
en place au moment de l'installation du paquetage dans les r�pertoires
/etc/rcX.d
.
Si vous faites quelque changement que ce soit aux fichiers de configuration de
Diald pendant que ce dernier est en train de tourner, vous devez le
red�marrer (« /etc/init.d/diald restart
» pour une Debian et
« /etc/rc.d/init.d/diald restart
» pour une RedHat).
Dans ce fichier d'exemple vous devez v�rifier :
device
;
speed
;
pppd-options
;
restrict
;
ip-up
et ip-down
. Options
ip-up
et ip-down
;
addroute
et delroute
:
options addroute
et delroute
. En g�n�ral il n'est pas n�cessaire de
modifier ces scripts mais si vous utilisez plus d'une instance de Diald ou
si vous avez une configuration complexe, vous devrez le faire ;
include
.
##########################
# /etc/diald/diald.options
# Device auquel votre modem est connect�
device /dev/ttyS0
# Fichier de log
accounting-log /var/log/diald.log
# Surveillance de la queue
#fifo /var/run/diald/diald.fifo
# Activation du deboguage
# Activer le deboguage r�duit les performances
#debug 31
# Nous utilisons PPP comme encapsulateur
mode ppp
# L'adresse IP locale (cette adresse sera automatiquement remplac�e par celle
# que vous donne votre FAI au moment o� vous vous connectez si vous utilisez
# l'option dynamic).
local 127.0.0.5
# L'adresse IP distante (au moment de la connexion cette adresse est remplac�e
# automatiquement par l'adresse IP du serveur distant qui re�oit notre appel).
remote 127.0.0.4
# Masque de sous-r�seau pour le lien vers le WAN
# (Wide Area Network -- r�seau non local).
netmask 255.255.255.0
# L'adresse IP sera allou�e dynamiquement au d�but de la connexion.
dynamic
# Si le lien est bris� par une action distante, ne le relancer que s'il reste
# des paquets � envoyer.
two-way
# Si le lien existe, router directement vers la vraie interface ppp et non pas
# vers le proxy. Si vous ne faites pas cela, vous aurez une perte de performances
# d'� peu pr�s 20%. Certains noyaux anciens ne suportent pas reroute.
# Reportez-vous au manuel de diald pour plus d'informations.
reroute
# Diald s'occupera d'�tablir la route par d�faut.
defaultroute
# Scripts pour �tablir les routes personnalis�es.
#addroute "/etc/diald/addroute"
#delroute "/etc/diald/delroute"
# Scripts � ex�cuter une fois que le lien est �tabli et pr�t, ou une fois que le
# lien est d�truit et ferm�. Dans les versions 0.9x de Diald, il existe l'option
# ip-goingdown qui peut �tre utilis�e au moment o� le lien va �tre d�truit mais
# qu'il est encore actif.
ip-up /etc/diald/ip-up
#ip-down /etc/diald/ip-down
# Scripts utilis�s pour connecter ou d�connecter l'interface.
connect "/etc/diald/diald.connect"
#disconnect "/etc/diald/diald.disconnect"
# Utiliser un verrou UUCP pour signaler que le p�riph�rique est en cours
# d'utilisation.
#lock
# Nous nous connectons � l'aide d'un modem. ATTENTION : ne mettez pas cette
# option dans le fichier d'options de ppp sinon il y aura conflit avec les
# options de diald. Pour conna�tre les options ppp que vous ne pouvez pas
# utiliser dans le fichier pppd-options, reportez-vous � la page de manuel de
# diald et recherchez pppd-options.
modem
crtscts
speed 115200
# Quelques options sur les compteurs et le nombre d'essais.
# Reportez-vous � la page de manuel de Diald pour plus d'informations.
connect-timeout 120
redial-timeout 60
start-pppd-timeout 120
died-retry-count 0
redial-backoff-start 4
redial-backoff-limit 300
dial-fail-limit 10
# Options qui seront pass�es � pppd.
# Ces options peuvent �tre incluses dans le fichier /etc/ppp/options. Elles
# seront consid�r�es comme options par d�faut de pppd, mais si vous avez
# d'autres besoins de configurations pour Diald, dans le cas o� vous avez
# plusieurs instances, vous devez p�ciser ici
# noauth - ne pas demander d'authentification au serveur distant.
# "Infov�a Plus" (en Espagne) n'identifie pas votre machine.
# user - votre nom d'utilisateur et de fai. Demandez � votre FAI la syntaxe
# exacte vu que certains n'ont pas besoin du @fai.
pppd-options noauth user utilisateur@fai
# Restrictions horaires.
# Cette section doit appara�tre avant les filtres.
# La commande restrict est exp�rimentale et peut changer dans les versions
# futures de diald. Repotez-vous � la page de manuel. (Cet exemple a �t� test�
# pour la version 0.16 mais je pense qu'il fonctionne sur les versions plus
# r�centes.)
# Exemple : utilisation uniquement la nuit entre lundi et vendredi et toute la
# journ�e les samedi et dimanche.
restrict 8:00:00 18:00:00 1-5 * *
down
restrict * * * * *
# Pas de consid�rations sp�ciales sur la tarification (le nombre de secondes
# au d�part comprises dans le co�t, l'unit� de tarification en secondes, temps
# en secondes pour tester s'il faut d�truire le lien)
impulse 160,0,0
# Si c'est tarif� � la minute et que les 10 premi�res seront toujours compt�es :
#impulse 600,60,10
# Filtres standards
#include /etc/diald/standard.filter
# Ou filtres personnels
include /etc/diald/personal.filter
Vous devez modifier ce fichier avec beaucoup de pr�cautions. Il est utilis� pour d�cider quand et pourquoi il faut �tablir la connexion, la maintenir, la d�truire ou ignorer les paquets en fonction du type de trafic.
En g�n�ral le fichier de filtres standard de Diald convient pour la plupart
des cas mais il peut s'av�rer trop ou au contraire pas assez restrictif dans certaines
situations. Le fichier personal.filter
que nous pr�sentons a subi quelques
corrections par rapport � l'original de la version 0.16.
Dans les versions futures de ce document, d'autres exemples comment�s plus restrictifs seront inclus.
# /etc/diald/personal.filter
# Les r�gles de filtrage pr�sent�es ici sont les m�mes que dans le fichier
# standard.filter avec les changements suivants :
#
# Changement de 10 � 4 minutes dans le cas de "n'importe quelle autre connexion
# tcp".
# Ajout de "ignore tcp tcp.fin" pour ignorer les paquets FIN ACK.
# Ignorer les paquets icmp (ping et traceroute n'activent pas l'interface).
#
# Voici un ensemble de r�gles de filtrages assez compliqu�es
# (Ce sont celles que j'utilise.)
#
# J'ai d�compos� les r�gles en quatre sections :
# Les trames TCP, les trames UDP, les trames ICMP et enfin une r�gle
# g�n�rale pour tout le reste.
ignore icmp any
#------------------------------------------------------------------------------
# R�gles pour les trames TCP.
#------------------------------------------------------------------------------
# Commentaires g�n�raux sur cet ensemble de r�gles :
#
# En g�n�ral nous souhaitons ne traiter que les donn�es d'une liaison TCP
# ayant un sens pour le temps de d�connexion. Cependant, nous essayons
# d'ignorer les trames sans donn�es.
# Puisque la taille minimale d'un en-t�te dans une trame TCP est de 40 octets,
# toutes les trames d'une longueur de 40 ne devraient pas contenir de donn�es.
# De cette mani�re il est possible de manquer des trames vides (des informations
# optionnelles de routage et d'autres choses suppl�mentaires peuvent �tre
# pr�sentes dans un en-t�te IP), mais nous devrions en capter la majorit�.
# Remarquez que nous ne voulons pas rejeter les trames avec un champ tcp.live
# vide puisque nous les utiliserons plus tard pour acc�l�rer la d�connexion de
# certaines liaisons TCP.
#
# Nous voulons �galement nous assurer que les trames WWW restent en vie m�me
# si la socket TCP est arr�t�e. Nous faisons cela parce que WWW ne garde pas la
# connexion une fois que les donn�es ont �t� transf�r�es, et il serait
# g�nant d'avoir une liaison qui se cr�e et se coupe � chaque document.
#
# En dehors de WWW, l'utilisation la plus courante de TCP concerne les
# connexions de longue dur�e dont la coupure signifie que vous n'allez plus
# avoir besoin du r�seau.
# Nous ne voulons pas n�cessairement avoir � attendre 10 minutes que la
# connexion se termine alors que nous n'avons ni telnet ni rlogin en cours, donc
# nous voulons acc�l�rer le d�lai de d�connexion sur les liaisons TCP qui sont
# termin�es. Cela est r�alis� en mettant dans un cache les trames qui n'ont pas l'indicateur
# live positionn�.
# --- d�but proprement dit de l'ensemble de r�gles ---
# Quand on d�bute une connexion on ne donne tout d'abord au lien que 15
# secondes. L'id�e ici est de pouvoir �ventuellement se rendre compte que le
# r�seau de l'autre c�t� de la connexion n'est pas accessible. Dans ce cas
# il n'est pas n�cessaire de donner un temps de vie de 10 minutes au lien.
# Avec la r�gle ci-dessous nous ne lui donnons initialement que 15 secondes.
# Si le r�seau est accessible, nous devrions normalement recevoir une
# r�ponse contenant des donn�es dans les 15 secondes. Si cela pose un probl�me
# parce que vous avez des r�ponses lentes de certains sites que vous
# visitez r�guli�rement, vous pouvez augmenter le temps avant d�connexion ou
# bien supprimer cette r�gle.
accept tcp 15 tcp.syn
# Emp�cher named de garder la connexion active.
ignore tcp tcp.dest=tcp.domain
ignore tcp tcp.source=tcp.domain
# (Argh ! Le telnet de SCO commence par envoyer des SNY vides et n'initie la
# connexion que s'il obtient une r�ponse. Pfuuutt...
accept tcp 5 ip.tot_len=40,tcp.syn
# Emp�cher les trames vides (autres que les trames
# vides SNY) de maintenir le lien actif.
ignore tcp ip.tot_len=40,tcp.live
# Modifications d'Andres Seco pour ignorer les paquets FIN ACK.
ignore tcp tcp.fin
# On s'assure que le transfert http maintient la ligne active pendant 2
# minutes, m�me apr�s que c'est termin�.
# REMARQUE : votre fichier /etc/services ne devrait pas d�finir le service tcp
# www, auquel cas vous devez commenter les deux lignes suivantes et vous
# procurer un fichier /etc/services plus r�cent. Lisez la FAQ pour savoir
# comment obtenir un nouveau fichier /etc/services.
accept tcp 120 tcp.dest=tcp.www
accept tcp 120 tcp.source=tcp.www
# Idem pour https
accept tcp 120 tcp.dest=tcp.443
accept tcp 120 tcp.source=tcp.443
# Une fois que le lien n'est plus actif, nous tentons de stopper la connexion
# rapidement. Remarquez que si le lien est d�j� arr�t�, un changement d'�tat
# ne le ram�nera pas � l'�tat actif.
keepup tcp 5 !tcp.live
ignore tcp !tcp.live
# une donn�e ftp ou une connexion ftp peut �tre attendue pour rendre compte
# du trafic relativement fr�quent.
accept tcp 120 tcp.dest=tcp.ftp
accept tcp 120 tcp.source=tcp.ftp
# REMARQUE : les donn�es ftp ne sont pas d�finies dans le fichier /etc/services
# distribu� dans les derni�res versions de NETKIT, donc j'ai comment� ce
# passage.
# Si vous d�sirez le d�finir, ajoutez la ligne suivante � votre fichier
# /etc/services :
# ftp-data 20/tcp
# et d�commentez les deux r�gles suivantes :
#accept tcp 120 tcp.dest=tcp.ftp-data
#accept tcp 120 tcp.source=tcp.ftp-data
# Si nous n'avons pas r�ussi � l'avoir avec les r�gles ci-dessus, donnons au
# lien 10 minutes de plus.
#accept tcp 600 any
# Modification d'Andres Seco. Ne lui donnons que 4 minutes de plus.
accept tcp 240 any
# R�gles pour les trames UDP.
#
# Nous donnons d�s � pr�sent un temps limite aux requ�tes de domaine puisque
# nous voulons seulement qu'elles �tablissent le lien, pas qu'elles le maintiennent
# pour un long moment.
# Cela parce que le r�seau sera g�n�ralement �tabli par un appel de la
# biblioth�que de r�solution de nom (� moins que vous n'ayez mis toutes les
# adresses que vous utilisez fr�quemment dans /etc/hosts, auquel cas vous
# d�couvrirez d'autres probl�mes.)
# Remarquez que vous ne devez pas donner une valeur de temps limite de
# d�connexion plus courte que le temps suppos� que va mettre votre DNS pour
# r�pondre. Sinon, quand le lien original s'�tablit, il risque d'y avoir
# une attente sup�rieure � celle qu'il y a entre les s�ries de trames initiales
# avant qu'une trame destin�e � maintenir le lien passe par ce dernier.
# Ne pas activer le lien pour rwho.
ignore udp udp.dest=udp.who
ignore udp udp.source=udp.who
# Ne pas activer le lien pour RIP.
ignore udp udp.dest=udp.route
ignore udp udp.source=udp.route
# Ne pas activer le lien pour NTP ou pour timed.
ignore udp udp.dest=udp.ntp
ignore udp udp.source=udp.ntp
ignore udp udp.dest=udp.timed
ignore udp udp.source=udp.timed
# Ne pas activer les requ�tes de nom de domaine entre deux ex�cutions de named.
ignore udp udp.dest=udp.domain,udp.source=udp.domain
# Activer le r�seau pour les requ�tes de domaine qui ne viennent pas de
# named.
accept udp 30 udp.dest=udp.domain
accept udp 30 udp.source=udp.domain
# Faire la m�me chose pour les diffusions de netbios-ns.
# REMARQUE : votre fichier /etc/services peut ne pas d�finir le service
# netbios-ns, auquel cas vous devez commenter les trois lignes suivantes.
ignore udp udp.source=udp.netbios-ns,udp.dest=udp.netbios-ns
accept udp 30 udp.dest=udp.netbios-ns
accept udp 30 udp.source=udp.netbios-ns
# emp�cher les transferts de routed et gated de maintenir le lien actif
ignore udp tcp.dest=udp.route
ignore udp tcp.source=udp.route
# Le reste a droit � 2 minutes.
accept udp 120 any
# R�cup�rer toutes les trames que nous n'avons pas trait�es auparavant et donner 30
# secondes de dur�e de vie � la connexion.
accept any 30 any
Le fichier /etc/diald/diald.connect
(il doit avoir les droits
d'ex�cution) :
/usr/sbin/chat -f /etc/chatscripts/provider
Le fichier /etc/chatscripts/provider
. Dans ce fichier d'exemple vous
devez modifier le num�ro de t�l�phone � appeler (le 0123456789
) :
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDT0123456789
CONNECT \d\c
Il doit avoir les droits d'ex�cution.
Ce script peut �tre utilis� pour de nombreuses t�ches (synchronisation, envoi des messages en attente, r�cup�ration des messages chez le FAI, etc.).
#!/bin/sh
iface=$1
netmask=$2
localip=$3
remoteip=$4
metric=$5
# mise � jour de l'heure et de la date
# netdate ntp.server.somecountry
# s'occupe des mails dans la file d'attente
# runq
echo `date` $1 $2 $3 $4 $5 | mail -s "diald - connexion" root@localhost
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34