|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Avant ce HOWTO, il existait un Diald-mini-Howto, 馗rit par Harish Pillay
h.pillay@ieee.org et
demande de me le faire savoir.
La version la plus r馗ente de ce document peut 黎re trouv馥 sur ma page web
En quelques mots, Diald cr馥 une nouvelle interface r駸eau et la d馭init comme
騁ant la passerelle par d馭aut. Cette interface n'est pas r馥lle (dans la
documentation originale elle est appel馥 En plus des trois possibilit駸 expos馥s, vous pouvez utiliser un lien sans
authentification (en g駭駻al quand vous contr?ez 馮alement l'autre bout de la
ligne).
http://www.ctv.es/USERS/andressh/linux aux formats SGML et HTML.
D'autres versions et d'autres formats sont 馮alement disponibles en espagnol sur le
site internet d'Insflug
3. Description rapide du fonctionnement de Diald
proxy interface). Diald surveille
cette interface et quand un paquet arrive, cr馥 une connexion ppp, attend
qu'elle soit 騁ablie et d馭init cette nouvelle interface ppp (en g駭駻al
lit/馗rit au travers d'une socket en lieu et place d'un vrai p駻iph駻ique
r駸eau), la sauvegarde des connexions et d'autres
fonctions.4. Note sur l'authentification
4.1 Nom d'utilisateur et mot de passe -- invites Login et password
qui num駻ote, en g駭駻al chat, qui envoie le nom d'utilisateur et le mot de
passe. Ces donn馥s sont envoy馥s sous forme de texte brut, donc cette m騁hode ne
doit pas 黎re consid駻馥 comme s?e.
Un script d'exemple pour chat, dans lequel vous pouvez voir comment faire
OK ATDT_Num駻o_De_T駘駱hone_
CONNECT \d\c
ogin _Nom_d_Utilisateur_
assword _Mot_De_Passe_
Les deux derni鑽es lignes d馭inissent le nom d'utilisateur et le mot de passe et quand les envoyer (apr鑚 avoir re輹 respectivement « ogin » et « assword »). Le script chat n'a besoin de voir qu'une partie des mots « login » et « password » ce qui permet de ne pas tester la premi鑽e lettre de chaque mot, et donc de /usr/sbin/chat -v -f /etc/chatscripts/provider
/etc/ppp/pap-secrets. Ce fichier doit avoir les droits de lecture et
d'馗riture pour root uniquement. De ce fait, personne ne peut lire les mots
Dans ce sc駭ario, pppd va envoyer le nom d'utilisateur et le mot de passe qu'il
cherchera dans le fichier /etc/ppp/pap-secrets. Ce fichier doit avoir
les droits de lecture et d'馗riture pour root uniquement. De ce fait,
Parfois un m麥e FAI varie l'utilisation de ces protocoles, il n'est donc pas rare de d馭inir le nom d'utilisateur et le mot de passe dans les deux fichiers.
Dans le cas d'un ordinateur qui est un proxy/firewall, ce fichier contient g駭駻alement la propre adresse IP de cette machine (ou l'adresse loopback -- de bouclage : 127.0.0.1). Cet ordinateur doit faire tourner un serveur DNS qui transforme les noms de domaine en adresses IP en questionnant un DNS externe.
#fichier /etc/resolv.conf pour une r駸olution locale des noms
nameserver 127.0.0.1
L'installation d'un serveur DNS n'est pas le sujet de ce document, mais une
approche rapide et pertinente peut 黎re trouv馥 dans le DNS-Howto :
http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html,
http://www.freenix.org/unix/linux/HOWTO/Modems-HOWTO.html et
http://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馗rit 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馗entes).
/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/addroute et /etc/diald/delroute). Tous les
deux doivent avoir les droits d'ex馗ution de root. Cette 騁ape n'est pas
n馗essaire 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駑arrage de l'ordinateur sont mis
en place au moment de l'installation du paquetage dans les r駱ertoires
/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駑arrer (« /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駻ifier :
restrict ;
ip-up et ip-down. Options
ip-up et ip-down ;
addroute et delroute :
options addroute et delroute. En g駭駻al il n'est pas n馗essaire de
#fifo /var/run/diald/diald.fifo
# Activation du deboguage
# Activer le deboguage r馘uit les performances
#debug 31
# Nous utilisons PPP comme encapsulateur
mode ppp
# L'adresse IP locale (cette adresse sera automatiquement remplac馥 par celle
# Masque de sous-r駸eau pour le lien vers le WAN
# (Wide Area Network -- r駸eau non local).
netmask 255.255.255.0
# L'adresse IP sera allou馥 dynamiquement au d饕ut de la connexion.
dynamic
# exacte vu que certains n'ont pas besoin du @fai.
pppd-options noauth user utilisateur@fai
# Restrictions horaires.
# Cette section doit appara?re avant les filtres.
# La commande restrict est exp駻imentale et peut changer dans les versions
maintenir, la d騁ruire ou ignorer les paquets en fonction du type de trafic.
En g駭駻al le fichier de filtres standard de Diald convient pour la plupart des cas mais il peut s'av駻er trop ou au contraire pas assez restrictif dans certaines # 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鑒les de filtrages assez compliqu馥s # (Ce sont celles que j'utilise.) # #------------------------------------------------------------------------------ # Commentaires g駭駻aux sur cet ensemble de r鑒les : # # En g駭駻al nous souhaitons ne traiter que les donn馥s d'une liaison TCP # ayant un sens pour le temps de d馗onnexion. Cependant, nous essayons # d'ignorer les trames sans donn馥s. # Puisque la taille minimale d'un en-t黎e dans une trame TCP est de 40 octets, # toutes les trames d'une longueur de 40 ne devraient pas contenir de donn馥s. # vide puisque nous les utiliserons plus tard pour acc駘駻er la d馗onnexion de # certaines liaisons TCP. # # Nous voulons 馮alement nous assurer que les trames WWW restent en vie m麥e # si la socket TCP est arr黎馥. Nous faisons cela parce que WWW ne garde pas la # Avec la r鑒le ci-dessous nous ne lui donnons initialement que 15 secondes. # Si le r駸eau est accessible, nous devrions normalement recevoir une # r駱onse contenant des donn馥s dans les 15 secondes. Si cela pose un probl鑪e # parce que vous avez des r駱onses lentes de certains sites que vous # visitez r馮uli鑽ement, vous pouvez augmenter le temps avant d馗onnexion ou # bien supprimer cette r鑒le. accept tcp 15 tcp.syn # Emp鹹her 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駱onse. Pfuuutt... accept tcp 5 ip.tot_len=40,tcp.syn # Emp鹹her les trames vides (autres que les trames # REMARQUE : votre fichier /etc/services ne devrait pas d馭inir le service tcp # www, auquel cas vous devez commenter les deux lignes suivantes et vous # procurer un fichier /etc/services plus r馗ent. 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 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黎es de nom de domaine entre deux ex馗utions de named. ignore udp udp.dest=udp.domain,udp.source=udp.domain # Activer le r駸eau pour les requ黎es 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麥e chose pour les diffusions de netbios-ns. # REMARQUE : votre fichier /etc/services peut ne pas d馭inir 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
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDT0123456789
CONNECT \d\c
smtp externe
utilis駸 comme mod鑞es pour les futures configurations.
#!/bin/sh
#File /etc/diald/providers/setupdialdmultiprovider
mkdir /etc/diald/providers
mkdir /etc/diald/providers/setup
cp /etc/ppp/pap-secrets /etc/diald/providers/setup
cp /etc/ppp/chap-secrets /etc/diald/providers/setup
cp /etc/resolv.conf /etc/diald/providers/setup
cp /etc/diald/diald.options /etc/diald/providers/setup
cp /etc/diald/standard.filter /etc/diald/providers/setup
cp /etc/diald/personal.filter /etc/diald/providers/setup
cp /etc/diald/diald.connect /etc/diald/providers/setup
cp /etc/chatscripts/provider /etc/diald/providers/setup
cp /etc/diald/ip-up /etc/diald/providers/setup
cp /etc/diald/ip-down /etc/diald/providers/setup
cp /etc/diald/providers/setup/* /etc/diald/providers/$1
タ pr駸ent vous pouvez modifier, en fonction de vos besoins, les fichiers
nouvellement cr鳬s dans /etc/diald/providers/providername, tout en
ln -sf /etc/diald/providers/$1/pap-secrets /etc/ppp
ln -sf /etc/diald/providers/$1/chap-secrets /etc/ppp
ln -sf /etc/diald/providers/$1/resolv.conf /etc
ln -sf /etc/diald/providers/$1/diald.options /etc/diald
ln -sf /etc/diald/providers/$1/standard.filter /etc/diald
ln -sf /etc/diald/providers/$1/personal.filter /etc/diald
ln -sf /etc/diald/providers/$1/diald.connect /etc/diald
ln -sf /etc/diald/providers/$1/provider /etc/chatscripts
ln -sf /etc/diald/providers/$1/ip-up /etc/diald
ln -sf /etc/diald/providers/$1/ip-down /etc/diald
/etc/ppp/ip-up.d et /etc/ppp/ip-down.d pour prendre en charge
le lancement de /sbin/ipmasq, un script qui analyse les interfaces
existantes et cr馥 une configuration simple qui est valable dans la plupart des
moment du lancement du script ipmasq en effa軋nt le lien symbolique contenu
dans le r駱ertoire /etc/rcS.d et en en cr饌nt un nouveau dans
/etc/rc2.d apr鑚 S20diald. タ pr駸ent, quand ipmasq est
version de votre noyau puisque le script /sbin/ipmasq utilise
ipfwadm ou ipchains selon le cas.
Cet exemple nous vient de M. Cornish Rex,
troll@tnet.com.au.
Nous allons supposer que l'interface ethernet a l'adresse ip 192.168.1.1 avec un masque r駸eau de 16 bits, soit 255.255.0.0.
Voici le fichier /etc/ppp/ip-up :
#!/bin/sh
# $1 = Interface
# $2 = Tty device
# $3 = speed
# $4 = local ip
# $5 = remote ip
# $6 = ipparam
/sbin/ipchains -F input
/sbin/ipchains -P input DENY
/sbin/ipchains -A input -j ACCEPT -i eth0 -s 192.168.0.0/16 -d 0.0.0.0/0
/sbin/ipchains -A input -j DENY -p udp -i $1 -s 0.0.0.0/0 -d $4/32 0:52 -l
/sbin/ipchains -A input -j DENY -p udp -i $1 -s 0.0.0.0/0 -d $4/32 54:1023 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 0:112 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 114:1023 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 6000:6010 -l
/sbin/ipchains -A input -j DENY -p icmp --icmp-type echo-request \
-i $1 -s 0.0.0.0/0 -l
/sbin/ipchains -A input -j DENY -p icmp -f -i $1 -s 0.0.0.0/0 -l
/sbin/ipchains -A input -j DENY -p udp -i $1 -s 0.0.0.0/0 -d $4/32 5555 -l
/sbin/ipchains -A input -j DENY -p udp -i $1 -s 0.0.0.0/0 -d $4/32 8000 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 8000 -l
/sbin/ipchains -A input -j DENY -p udp -i $1 -s 0.0.0.0/0 -d $4/32 6667 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 6667 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 4557 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 4559 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 4001 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 2005 -l
/sbin/ipchains -A input -j DENY -p tcp -i $1 -s 0.0.0.0/0 -d $4/32 6711 -l
/sbin/ipchains -A input -j DENY -i $1 -s 192.168.0.0/16 -d 0.0.0.0/0 -l
/sbin/ipchains -A input -j ACCEPT -i $1 -s 0.0.0.0/0 -d $4/32
/sbin/ipchains -A input -j ACCEPT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0
/sbin/ipchains -A input -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 -l
/sbin/ipchains -F output
/sbin/ipchains -P output DENY
/sbin/ipchains -A output -j ACCEPT -i eth0 -s 0.0.0.0/0 -d 192.168.0.0/16
/sbin/ipchains -A output -j DENY -i $1 -s 192.168.0.0/16 -d 0.0.0.0/0 -l
/sbin/ipchains -A output -j ACCEPT -i $1 -s $4/32 -d 0.0.0.0/0
/sbin/ipchains -A output -j ACCEPT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0
/sbin/ipchains -A output -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0
/sbin/ipchains -F forward
/sbin/ipchains -P forward DENY
/sbin/ipchains -M -S 120 120 120
/sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24
/sbin/ipchains -A forward -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0
exit 0
Voici le fichier /etc/ppp/ip-down :
#!/bin/sh
# $1 = Interface
# $2 = Tty device
# $3 = Speed
# $4 = Local ip
# $5 = Remote ip
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
/sbin/ipchains-restore < /etc/ppp/orig.chains
Voici le dernier fichier du dernier script, origin.chain (statut original
d'ipchains) :
# orig.chains
# cr馥 avec : ipchains-save > orig.chains
:input ACCEPT
:forward ACCEPT
:output ACCEPT
-A input -s 0.0.0.0/0.0.0.0 -d 192.168.1.1/255.255.255.255
-A output -s 192.168.1.1/255.255.255.255 -d 0.0.0.0/0.0.0.0
compl鑼ement fonctionnel. Cet exemple nous montre comment
configurer le masquage avant l'existence de l'interface s10 et il ne
change pas quand l'interface ppp0 appara?. Si vos exigences en mati鑽e de
Et les versions suivantes de pppd :
La version 0.16.5 de diald est peut-黎re la plus 騁endue et celle qui est incluse dans le plus de distributions Linux. Elle est suffisante pour la plupart des sites et elle est tr鑚 stable, mais bien s?, les versions plus r馗entes ont de nombreuses fonctions int駻essantes.
Les informations originales, sources de ce document, peuvent 黎re trouv馥s
dans les pages de manuel de diald, diald-examples, diald-control,
diald-monitor, dctrl, pppd, chat, ainsi que dans les
informations contenues dans les r駱ertoires de /usr/doc et sur les
pages web de ces paquetages :
http://diald.sourceforge.net/
ftp://diald.sourceforge.net/pub/diald/
http://diald.unix.ch
http://www.loonie.net/ erics/diald.html
ftp://cs.anu.edu.au/pub/software/ppp/
http://www.p2sel.com/diald
http://rufus.w3.org/linux/RPM/
Il existe 馮alement de nombreux documents RFC (Request For Comments
-- demande de commentaires) qui d馭inissent la mani鑽e dont les lignes
encapsul馥s de PPP et les protocoles associ駸 (LCP, IPCP, PAP, CHAP, ...)
doivent fonctionner. Vous pouvez trouver ces documents dans le r駱ertoire
Les « Howto » suivants peuvent vous 黎re utiles :
/usr/doc/doc-rfc et sur certains sites de la grande toile mondiale
comme par exemple
http://metalab.unc.edu et
http://www.freenix.org/unix/linux/HOWTO/DNS-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/Firewall-HOWTO.html
http://www.linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/IPCHAINS-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/Modems-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/NET4-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html
http://www.freenix.org/unix/linux/HOWTO/Serial-HOWTO.html