diff --git a/Shorewall-docs2/bridge_fr.xml b/Shorewall-docs2/bridge_fr.xml new file mode 100644 index 000000000..f7b787288 --- /dev/null +++ b/Shorewall-docs2/bridge_fr.xml @@ -0,0 +1,650 @@ + + +
+ + + + Shorewall et pont filtrant + + + + Tom + + Eastep + + + + Guy + + Marcenac + + + + 2005-12-18 + + + 2004 + + 2005 + + Thomas M. Eastep + + Guy Marcenac + + + + Permission est accordée de copier, distribuer et/ou modifier ce + document selon les termes de la Licence de Documentation Libre GNU (GNU + Free Documentation License), version 1.2 ou toute version ultérieure + publiée par la Free Software Foundation ; sans section Invariables, sans + première de Couverture, et sans texte de quatrième de couverture. Une + copie de la présente Licence est incluse dans la section intitulée. Une + traduction française de la licence se trouve dans la section + Licence de + Documentation Libre GNU. Ce paragraphe est une + traduction française pour aider à votre compréhension. Seul le texte + original en anglais présenté ci-dessous fixe les conditions + d'utilisation de cette documentation. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, Version + 1.2 or any later version published by the Free Software Foundation; with + no Invariant Sections, with no Front-Cover, and with no Back-Cover + Texts. A copy of the license is included in the section entitled + GNU Free Documentation + License. + + + + + Notes du traducteur : Si vous + trouvez des erreurs ou si vous avez des améliorations à apporter à cette + documentation vous pouvez me contacter Guy Marcenac. + + + + Cet article s'applique à Shorewall 3.0 et à + ses versions ultérieures. Si vous utilisez une version plus ancienne de + Shorewall, référez-vous à la documentation s'appliquant à votre + version. + + +
+ Contexte + + Les systèmes sur lesquels tourne Shorewall fonctionnent en général + comme des routeurs. Dans le modèle de référence OSI (Open System + Interconnect), un routeur opère au niveau 3. Shorewall peut également être + déployé sur un système GNU Linux se comportant comme un pont (bridge). Les + ponts sont des équipements de niveau 2 dans le modèle OSI (pensez à un + pont comme étant un switch éthernet). + + Voici quelques-unes des différences entre les routeurs et les + ponts: + + + + Les routeurs déterminent la destination d'un paquet en fonction + de l'adresse IP de destination alors que les ponts routent le trafic + en fonction de l'adresse MAC de destination de la trame + éthernet. + + + + Par conséquent, les routeurs peuvent être connectés à plusieurs + réseaux IP alors qu'un pont ne peut appartenir qu'à un seul + réseau. + + + + Dans la plupart des configurations, les routeurs ne font pas + suivre les paquets de diffusion (broadcast) alors que les ponts le + font. + + + Les conditions dans lesquelles un routeur peut ou doit faire + suivre les paquets de diffusion sont décrites dans la section 4 de + la RFC 1812. + + + +
+ +
+ Pré-requis système + + N'importe quelle version de Shorewall fera l'affaire si vous avez + besoin d'un pont mais que vous n'avez pas besoin de restreindre le trafic + à travers ce pont. Pour plus de détails, reportez vous à la Documentation pour un pont simple. + + Pour utiliser Shorewall comme pont filtrant: + + + + Votre noyau doit être compilé avec le support pour les ponts + (CONFIG_BRIDGE=m ou CONFIG_BRIDGE=y). + + + + Votre noyau doit être compilé avec le support pour les + correspondances physdev de Netfilter (CONFIG_IP_NF_MATCH_PHYSDEV=m ou + CONFIG_IP_NF_MATCH_PHYSDEV=y). Le support des correspondances physdev + est en standard dans le noyau 2.6 mais doit être patché dans les + noyaux 2.4 (voir http://bridge.sf.net). Les + utilisateurs de Bering et de Bering uCLibc doivent trouver et + installer ipt_physdev.o pour leur distribution puis ajouter + ipt_physdev au fichier + /etc/modules. + + + + Votre version d'iptables doit offrir le + support pour les correspondances physdev. Ceci est le cas avec + iptables 1.2.9 et toutes ses versions ultérieures. + + + + Vous devez avoir installé le paquetage des utilitaires pour les + ponts (bridge-utils). + + +
+ +
+ Application + + Le diagramme au dessous présente une application classique d'un + pont/firewall. Il y a déjà un routeur installé qui supporte un réseau + local sur son interface interne et vous voulez insérer un firewall entre + ce routeur et les systèmes de ce réseau local. Dans notre exemple, le + réseau local utilise des adresses de la RFC 1918 mais ceci n'est pas + obligatoire. Le pont marcherait de la même façon si on utilisait des + adresses IP publiques (n'oubliez pas qu'un pont ne s'occupe pas d'adresses + IP). + + + + Il existe des différences clé entre cette configuration et une + configuration normale de Shorewall: + + + + Le système Shorewall Pont/Firewall ne possède qu'une seule + adresse IP même si il dispose de deux interfaces éthernet ! Cette + adresse IP est configurée sur le pont même au lieu de l'être sur l'une + des cartes réseau. + + + + Les systèmes connectés au LAN sont configurés avec l'adresse du + routeur IP (192.168.1.254 dans notre exemple) comme passerelle par + défaut. + + + + traceroute ne détectera pas le Pont/Firewall + comme un routeur intermédiaire + + + + Si le routeur exécute un serveur DHCP, les hôtes connectés au + réseau local peuvent utiliser ce serveur sans avoir à exécuter + dhcrelay sure le Pont/Firewal. + + + + Voici d'autres possibilités -- Il pourrait y avoir un hub ou un + switch entre le routeur et le Pont/Firewall, et il pourrait y avoir + d'autres systèmes connectés à ce hub ou ce switch. Tous les systèmes du + coté local du routeur devraient toujours être configurés avec des adresses + IP prises dans 192.168.1./24. +
+ +
+ Configuration du pont + + Configure le pont est une chose assez simple. On se sert de + l'utilitaire brctl issu du paquetage bridge-utils. Vous + trouverez des informations sur la configuration d'un pont à http://bridge.sf.net. + + Malheureusement peu de distributions Linux ont de bons outils de + configuration pour un pont et les outils de configuration réseau + graphiques ne détectent pas la présence d'un pont. Voici l'extrait d'un + fichier de configuration Debian pour un pont à deux interfaces et ayant + une adresse IP statique: + +
+ auto br0 +iface br0 inet static + address 192.168.1.253 + netmask 255.255.255.0 + network 192.168.1.0 + broadcast 192.168.1.255 + pre-up /sbin/ip link set eth0 up + pre-up /sbin/ip link set eth1 up + pre-up /usr/sbin/brctl addbr br0 + pre-up /usr/sbin/brctl addif br0 eth0 + pre-up /usr/sbin/brctl addif br0 eth1 +
+ + Bien qu'il ne soit pas obligatoire de donner une adresse IP à un + pont, le faire permet au Pont/Firewall d'accéder à d'autres systèmes et + permet également l'administration distante du pont. Le pont doit aussi + avoir une adresse IP pour que les politiques et les règles REJECT + fonctionnent correctement - sinon les règles REJECT se comporteront + exactement de la même manière que des règles DROP. Enfin, si un pont fait + partie d'un Pont/Routeur, il est + également indispensable de lui donner une adresse IP. + + + Avant de configurer Shorewall, assurerez-vous d'avoir un pont qui + fonctionne et qui se lance au boot. + + + On peut attribuer une adresse IP au pont par DHCP. + + Voici un fichier + /etc/sysconfig/network/ifcfg-br0 issu d'un système + SUSE: + +
+ BOOTPROTO='dhcp' +REMOTE_IPADDR='' +STARTMODE='onboot' +UNIQUE='3hqH.MjuOqWfSZ+C' +WIRELESS='no' +MTU='' +
+ + Voici un fichier + /etc/sysconfig/network-scripts/ifcfg-br0 issu d'un + système Mandriva: + +
+ DEVICE=br0 +BOOTPROTO=dhcp +ONBOOT=yes +
+ + Aussi bien sur les systèmes SUSE que sur les systèmes Mandriva, il + faudra un script séparé pour configurer le pont. + + Voilà les scripts dont je me sers sur un système + Suse 9.1. + +
+ /etc/sysconfig/network/ifcfg-br0 + + BOOTPROTO='dhcp' +REMOTE_IPADDR='' +STARTMODE='onboot' +UNIQUE='3hqH.MjuOqWfSZ+C' +WIRELESS='no' +MTU='' + + /etc/init.d/bridge#!/bin/sh + +################################################################################ +# Script to create a bridge +# +# (c) 2004 - Tom Eastep (teastep@shorewall.net) +# +# Modify the following variables to match your configuration +# +#### BEGIN INIT INFO +# Provides: bridge +# Required-Start: coldplug +# Required-Stop: +# Default-Start: 2 3 5 +# Default-Stop: 0 1 6 +# Description: starts and stops a bridge +### END INIT INFO +# +# chkconfig: 2345 05 89 +# description: GRE/IP Tunnel +# +################################################################################ + + +PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin + +INTERFACES="eth1 eth0" +BRIDGE="br0" +MODULES="tulip" + +do_stop() { + echo "Stopping Bridge $BRIDGE" + brctl delbr $BRIDGE + for interface in $INTERFACES; do + ip link set $interface down + done +} + +do_start() { + + echo "Starting Bridge $BRIDGE" + for module in $MODULES; do + modprobe $module + done + + sleep 5 + + for interface in $INTERFACES; do + ip link set $interface up + done + + brctl addbr $BRIDGE + + for interface in $INTERFACES; do + brctl addif $BRIDGE $interface + done +} + +case "$1" in + start) + do_start + ;; + stop) + do_stop + ;; + restart) + do_stop + sleep 1 + do_start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac +exit 0 +
+ + Voici une contribution de Axel Westerhold qui propose cet exemple de + configuration d'un pont ayant une adresse statique sur un système Fedora + System (Core 1 and Core 2 Test 1). Remarquez que ces fichiers configurent + également le pont ce qui évite d'avoir à écrire un script de configuration + séparé. + +
+ /etc/sysconfig/network-scripts/ifcfg-br0: + + DEVICE=br0 +TYPE=Bridge +IPADDR=192.168.50.14 +NETMASK=255.255.255.0 +ONBOOT=yes + + /etc/sysconfig/network-scripts/ifcfg-eth0:DEVICE=eth0 +TYPE=ETHER +BRIDGE=br0 +ONBOOT=yes/etc/sysconfig/network-scripts/ifcfg-eth1:DEVICE=eth1 +TYPE=ETHER +BRIDGE=br0 +ONBOOT=yes +
+ + Florin Grad de Mandriva fournit ce script + pour configurer un pont: + +
+ #!/bin/sh +# chkconfig: 2345 05 89 +# description: Layer 2 Bridge +# + +[ -f /etc/sysconfig/bridge ] && . /etc/sysconfig/bridge + +PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin + +do_stop() { + echo "Stopping Bridge" + for i in $INTERFACES $BRIDGE_INTERFACE ; do + ip link set $i down + done + brctl delbr $BRIDGE_INTERFACE +} + +do_start() { + + echo "Starting Bridge" + for i in $INTERFACES ; do + ip link set $i up + done + brctl addbr br0 + for i in $INTERFACES ; do + ip link set $i up + brctl addif br0 $i + done + ifup $BRIDGE_INTERFACE +} + +case "$1" in + start) + do_start + ;; + stop) + do_stop + ;; + restart) + do_stop + sleep 1 + do_start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac +exit 0 + + Le fichier /etc/sysconfig/bridge: + + BRIDGE_INTERFACE=br0 #The name of your Bridge +INTERFACES="eth0 eth1" #The physical interfaces to be bridged +
+ + Andrzej Szelachowski a proposé la contribution suivante: + +
+ Here is how I configured bridge in Slackware: + +1) I had to compile bridge-utils (It's not in the standard distribution) +2) I've created rc.bridge in /etc/rc.d: + +######################### +#! /bin/sh + +ifconfig eth0 0.0.0.0 +ifconfig eth1 0.0.0.0 +#ifconfig lo 127.0.0.1 #this line should be uncommented if you don't use rc.inet1 + +brctl addbr most + +brctl addif most eth0 +brctl addif most eth1 + +ifconfig most 192.168.1.31 netmask 255.255.255.0 up +#route add default gw 192.168.1.1 metric 1 #this line should be uncommented if + #you don't use rc.inet1 +######################### + +3) I made rc.brige executable and added the following line to /etc/rc.d/rc.local + +/etc/rc.d/rc.bridge +
+ + Joshua Schmidlkofer a écrit: + +
+ Bridge Setup for Gentoo + +#install bridge-utils +emerge bridge-utils + +## create a link for net.br0 +cd /etc/init.d +ln -s net.eth0 net.br0 + +# Remove net.eth*, add net.br0 and bridge. +rc-update del net.eth0 +rc-update del net.eth1 +rc-update add net.br0 default +rc-update add bridge boot + + + +/etc/conf.d/bridge: + + #bridge contains the name of each bridge you want created. + bridge="br0" + + # bridge_<bridge>_devices contains the devices to use at bridge startup. + bridge_br0_devices="eth0 eth1" + +/etc/conf.d/net + + iface_br0="10.0.0.1 broadcast 10.0.0.255 netmask 255.255.255.0" + #for dhcp: + #iface_br0="dhcp" + #comment this out if you use dhcp. + gateway="eth0/10.0.0.1" +
+ + Les utilisateurs qui réussissent dans la configuration d'un pont sur + d'autres distributions que celles présentées plus haut, sont encouragés à + m'envoyer leurs + configurations afin que je puisse les publier ici. +
+ +
+ Configuration de Shorewall + + Dans Shorewall, on active le mode Pont avec l'option BRIDGING du + fichier /etc/shorewall/shorewall.conf: + + BRIDGING=Yes + + Dans le scénario présenté plus haut, il y aurait probablement deux + zones définies. - une pour internet et une pour le réseau local, ce qui + donnerait en fichier /etc/shorewall/zones comme + celui-ci: + + #ZONE TYPE OPTIONS +fw firewall +net ipv4 +loc ipv4 +#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE + + Une politique habituelle à deux zones est parfaitement adaptée à ce + cas — /etc/shorewall/policy: + + #SOURCE DEST POLICY LOG LIMIT:BURST +loc net ACCEPT +net all DROP info +all all REJECT info +#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE + + Puisque c'est le pont lui-même qui est configuré avec une adresse + IP, seul ce dispositif doit être défini pour Shorewall dans + /etc/shorewall/interfaces: + + #ZONE INTERFACE BROADCAST OPTIONS +- br0 192.168.1.255 +#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE + + Les zones sont définies en utilisant le fichier + /etc/shorewall/hosts. En supposant que le routeur est + connecté à eth0 et que le switch + est connecté à eth1: + + #ZONE HOST(S) OPTIONS +net br0:eth0 +loc br0:eth1 +#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS LINE -- DO NOT REMOVE + + Même lorsque Shorewall est arrêté, vous voudrez probablement + autoriser le trafic à transiter par le pont — + /etc/shorewall/routestopped: + + #INTERFACE HOST(S) OPTIONS +br0 192.168.1.0/24 routeback +#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE + + Pour la définition de votre jeu de règles pour votre firewall, vous + pouvez prendre comme point de départ le fichier + /etc/shorewall/rules présenté dans l'exemple de + Firewall à Deux Interfaces. +
+ +
+ Combinaison pont/routeur + + Un système Shorewall n'a pas à s'exécuter exclusivement comme un + pont ou bien comme un routeur -- il peut parfaitement faire les deux. + Voici un exemple: + + Il s'agit quasiment de la même configuration que celle présentée + dans le Guide de Configuration + de Shorewall si ce n'est que la DMZ utilise un pont plutôt qu'un + Proxy ARP. Les modifications à apporter à la configuration présentée dans + le Guide de Configuration sont les suivants: + + + + Le fichier /etc/shorewall/proxyarp doit + être vide dans cette configuration. + + + + Le fichier /etc/shorewall/interfaces + ressemble à ceci:#ZONE INTERFACE BROADCAST OPTIONS +- br0 detect routefilter +loc eth1 detect + + + + Le fichier /etc/shorewall/hosts devrait + avoir: + + #ZONE HOSTS OPTIONS +net br0:eth0 +dmz br0:eth2 + + + + Les systèmes en DMZ ont besoin d'avoir une route par 192.0.2.176 + vers le réseau 192.168.201.0/24 afin qu'il puissent communiquer avec + le réseau local. + + +
+ +
+ Limites + + Avec certaines cartes sans fil, le mode pont ne fonctionne pas + — vous pouvez regarder à http://bridge.sf.net. +
+ +
+ Liens + + + + Vous + trouverez ici un article en Espagnol qui présente de manière + détaillée comment ponter un réseau public et un réseau + local avec Shorewall. Il s'agit d'une autre configuration en + Pont/Routeur. + + +
+
\ No newline at end of file