mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-23 14:48:51 +01:00
9f718f5c1b
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@5032 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
683 lines
23 KiB
XML
683 lines
23 KiB
XML
<?xml version="1.0" encoding="ISO-8859-15"?>
|
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
<article lang="fr">
|
|
<!--$Id$-->
|
|
|
|
<articleinfo>
|
|
<title>Shorewall et pont filtrant</title>
|
|
|
|
<subtitle>Version Française de <foreignphrase lang="en"><ulink
|
|
url="http://www.shorewall.net/bridge.html">Shorewall and Bridged
|
|
Firewalls</ulink></foreignphrase></subtitle>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Tom</firstname>
|
|
|
|
<surname>Eastep</surname>
|
|
</author>
|
|
|
|
<othercredit role="translator">
|
|
<firstname>Guy</firstname>
|
|
|
|
<surname>Marcenac</surname>
|
|
|
|
<contrib>Adaptation française</contrib>
|
|
</othercredit>
|
|
</authorgroup>
|
|
|
|
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
|
|
|
|
<copyright>
|
|
<year>2004-2006</year>
|
|
|
|
<holder>Thomas M. Eastep</holder>
|
|
|
|
<holder>Guy Marcenac</holder>
|
|
</copyright>
|
|
|
|
<legalnotice>
|
|
<para>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
|
|
<quote><ulink url="http://cesarx.free.fr/gfdlf.html">Licence de
|
|
Documentation Libre GNU</ulink></quote>. 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.</para>
|
|
|
|
<para>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
|
|
<quote><ulink url="GnuCopyright.htm">GNU Free Documentation
|
|
License</ulink></quote>.</para>
|
|
</legalnotice>
|
|
</articleinfo>
|
|
|
|
<note>
|
|
<para><emphasis role="underline">Notes du traducteur :</emphasis> Si vous
|
|
trouvez des erreurs ou si vous avez des améliorations à apporter à cette
|
|
documentation vous pouvez <ulink url="mailto:guy@posteurs.com">me
|
|
contacter</ulink>.</para>
|
|
</note>
|
|
|
|
<caution>
|
|
<para><emphasis role="bold">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.</emphasis></para>
|
|
</caution>
|
|
|
|
<section>
|
|
<title>Contexte</title>
|
|
|
|
<para>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 à un switch ethernet).</para>
|
|
|
|
<para>Voici quelques-unes des différences entre les routeurs et les
|
|
ponts:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>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
|
|
ethernet.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Dans la plupart des configurations, les routeurs ne font pas
|
|
suivre les paquets de diffusion (broadcast) alors que les ponts le
|
|
font.</para>
|
|
|
|
<note>
|
|
<para>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.</para>
|
|
</note>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Pré-requis système</title>
|
|
|
|
<warning>
|
|
<para><emphasis role="bold">LE SUPPORT POUR LES PONTS TEL QU'IL EST
|
|
DECRIT DANS CET ARTICLE RISQUE D'ETRE ABANDONNE.</emphasis> Les
|
|
fonctions sous-jacentes de netfilter sur lesquelles le pont filtrant de
|
|
Shorewall reposent sont en train d'être abandonnées et il n'est pas
|
|
certain que Shorewall puisse continuer à supporter les ponts filtrants
|
|
tels qu'ils sont décrits ici.</para>
|
|
|
|
<para>Dans <ulink url="NewBridge.html">un autre article (en
|
|
aglais)</ulink>, je décris comment configurer avec Shorewall un
|
|
pont-routeur qui fonctionnera avec les versions futures du
|
|
kernel.</para>
|
|
</warning>
|
|
|
|
<para>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 <ulink
|
|
url="SimpleBridge.html">Documentation pour un pont simple</ulink>.</para>
|
|
|
|
<para>Pour utiliser Shorewall comme pont filtrant:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Votre noyau doit être compilé avec le support pour les ponts
|
|
(CONFIG_BRIDGE=m ou CONFIG_BRIDGE=y).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Votre noyau doit comprendre l'intégration bridge/netfilter
|
|
(CONFIG_BRIDGE_NETFILTER=y).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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 <ulink
|
|
url="http://linux-net.osdl.org/index.php/Bridge">icit</ulink>). Les
|
|
utilisateurs de Bering et de Bering uCLibc doivent trouver et
|
|
installer ipt_physdev.o pour leur distribution puis ajouter
|
|
<quote>ipt_physdev</quote> au fichier
|
|
<filename>/etc/modules</filename>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Votre version d'<command>iptables</command> doit offrir le
|
|
support pour les correspondances physdev. Ceci est le cas avec
|
|
iptables 1.2.9 et toutes ses versions ultérieures.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Vous devez avoir installé le paquetage des utilitaires pour les
|
|
ponts (bridge-utils).</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Application</title>
|
|
|
|
<para>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).</para>
|
|
|
|
<graphic fileref="images/bridge.png" />
|
|
|
|
<para>Il existe des différences clé entre cette configuration et une
|
|
configuration normale de Shorewall:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Le système Shorewall Pont/Firewall ne possède qu'une seule
|
|
adresse IP même si il dispose de deux interfaces ethernet ! Cette
|
|
adresse IP est configurée sur le pont même au lieu de l'être sur l'une
|
|
des cartes réseau.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><command>traceroute</command> ne détectera pas le Pont/Firewall
|
|
comme un routeur intermédiaire</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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
|
|
<command>dhcrelay</command> sure le Pont/Firewal.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<warning>
|
|
<para>L'insertion d'un pont filtrant entre un routeur et un ensemble
|
|
d'hôtes locaux ne fonctionne que si ces machines locales forment un
|
|
réseau IP unique. Dans le schéma ci-dessus, tous les hôtes dans la zone
|
|
loc sont dans le réseau 192.168.1.0/24. Si le routeur doit router entre
|
|
plusieurs réseaux locaux par la même interface physique (plusieurs
|
|
réseaux IP partagent le même réseau local), l'insertion d'un pont
|
|
filtrant entre le routeur et le réseau local ne fonctionnera pas.</para>
|
|
</warning>
|
|
|
|
<para>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.<graphic
|
|
fileref="images/bridge3.png" /></para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Configuration du pont</title>
|
|
|
|
<para>Configure le pont est une chose assez simple. On se sert de
|
|
l'utilitaire <command>brctl</command> issu du paquetage bridge-utils. Vous
|
|
trouverez des informations sur la configuration d'un pont à <ulink
|
|
url="http://linux-net.osdl.org/index.php/Bridge">http://linux-net.osdl.org/index.php/Bridge</ulink>.</para>
|
|
|
|
<para>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:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>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</programlisting>
|
|
</blockquote>
|
|
|
|
<para>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 <link linkend="bridge-router">Pont/Routeur</link>, il est
|
|
également indispensable de lui donner une adresse IP.</para>
|
|
|
|
<important>
|
|
<para>Avant de configurer Shorewall, assurerez-vous d'avoir un pont qui
|
|
fonctionne et qui se lance au boot.</para>
|
|
</important>
|
|
|
|
<para>On peut attribuer une adresse IP au pont par DHCP.</para>
|
|
|
|
<para>Voici un fichier
|
|
<filename>/etc/sysconfig/network/ifcfg-br0</filename> issu d'un système
|
|
<trademark>SUSE</trademark>:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>BOOTPROTO='dhcp'
|
|
REMOTE_IPADDR=''
|
|
STARTMODE='onboot'
|
|
UNIQUE='3hqH.MjuOqWfSZ+C'
|
|
WIRELESS='no'
|
|
MTU=''</programlisting>
|
|
</blockquote>
|
|
|
|
<para>Voici un fichier
|
|
/<filename>etc/sysconfig/network-scripts/ifcfg-br0</filename> issu d'un
|
|
système <trademark>Mandriva</trademark>:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>DEVICE=br0
|
|
BOOTPROTO=dhcp
|
|
ONBOOT=yes</programlisting>
|
|
</blockquote>
|
|
|
|
<para>Aussi bien sur les systèmes <trademark>SUSE</trademark> que sur les
|
|
systèmes Mandriva, il faudra un script séparé pour configurer le
|
|
pont.</para>
|
|
|
|
<para>Voilà les scripts dont je me sers sur un système
|
|
<trademark>SUSE</trademark> 9.1.</para>
|
|
|
|
<blockquote>
|
|
<para><filename>/etc/sysconfig/network/ifcfg-br0</filename></para>
|
|
|
|
<programlisting>BOOTPROTO='dhcp'
|
|
REMOTE_IPADDR=''
|
|
STARTMODE='onboot'
|
|
UNIQUE='3hqH.MjuOqWfSZ+C'
|
|
WIRELESS='no'
|
|
MTU=''</programlisting>
|
|
|
|
<para><filename>/etc/init.d/bridge</filename><programlisting>#!/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</programlisting></para>
|
|
</blockquote>
|
|
|
|
<para>Voici une contribution de Axel Westerhold qui propose cet exemple de
|
|
configuration d'un pont ayant une adresse statique sur un système Fedora
|
|
(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é.</para>
|
|
|
|
<blockquote>
|
|
<para><filename>/etc/sysconfig/network-scripts/ifcfg-br0:</filename></para>
|
|
|
|
<programlisting>DEVICE=br0
|
|
TYPE=Bridge
|
|
IPADDR=192.168.50.14
|
|
NETMASK=255.255.255.0
|
|
ONBOOT=yes</programlisting>
|
|
|
|
<para><filename>/etc/sysconfig/network-scripts/ifcfg-eth0:</filename><programlisting>DEVICE=eth0
|
|
TYPE=ETHER
|
|
BRIDGE=br0
|
|
ONBOOT=yes</programlisting><filename>/etc/sysconfig/network-scripts/ifcfg-eth1:</filename><programlisting>DEVICE=eth1
|
|
TYPE=ETHER
|
|
BRIDGE=br0
|
|
ONBOOT=yes</programlisting></para>
|
|
</blockquote>
|
|
|
|
<para>Florin Grad de <trademark>Mandriva</trademark> fournit ce script
|
|
pour configurer un pont:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>#!/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</programlisting>
|
|
|
|
<para>Le fichier <filename>/etc/sysconfig/bridge</filename>:</para>
|
|
|
|
<programlisting>BRIDGE_INTERFACE=br0 #The name of your Bridge
|
|
INTERFACES="eth0 eth1" #The physical interfaces to be bridged</programlisting>
|
|
</blockquote>
|
|
|
|
<para>Andrzej Szelachowski a proposé la contribution suivante:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>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 </programlisting>
|
|
</blockquote>
|
|
|
|
<para>Joshua Schmidlkofer a écrit:</para>
|
|
|
|
<blockquote>
|
|
<programlisting>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" </programlisting>
|
|
</blockquote>
|
|
|
|
<para>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 à
|
|
<ulink url="mailto:webmaster@shorewall.net">m'envoyer</ulink> leurs
|
|
configurations afin que je puisse les publier ici.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Configuration de Shorewall</title>
|
|
|
|
<para>Dans Shorewall, on active le mode Pont avec l'option BRIDGING du
|
|
fichier <filename>/etc/shorewall/shorewall.conf</filename>:</para>
|
|
|
|
<programlisting>BRIDGING=Yes</programlisting>
|
|
|
|
<para>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 un fichier <filename>/etc/shorewall/zones</filename> comme
|
|
celui-ci:</para>
|
|
|
|
<programlisting>#ZONE TYPE OPTIONS
|
|
fw firewall
|
|
net ipv4
|
|
loc ipv4
|
|
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE</programlisting>
|
|
|
|
<para>Une politique habituelle à deux zones est parfaitement adaptée à ce
|
|
cas — <filename>/etc/shorewall/policy</filename>:</para>
|
|
|
|
<programlisting>#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</programlisting>
|
|
|
|
<para>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
|
|
<filename>/etc/shorewall/interfaces</filename>:</para>
|
|
|
|
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
|
- br0 192.168.1.255
|
|
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE</programlisting>
|
|
|
|
<para>Les zones sont définies en utilisant le fichier
|
|
<filename>/etc/shorewall/hosts</filename>. En supposant que le routeur est
|
|
connecté à <filename class="devicefile">eth0</filename> et que le switch
|
|
est connecté à <filename class="devicefile">eth1</filename>:</para>
|
|
|
|
<programlisting>#ZONE HOST(S) OPTIONS
|
|
net br0:eth0
|
|
loc br0:eth1
|
|
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS LINE -- DO NOT REMOVE</programlisting>
|
|
|
|
<para>Même lorsque Shorewall est arrêté, vous voudrez probablement
|
|
autoriser le trafic à transiter par le pont —
|
|
<filename><filename>/etc/shorewall/routestopped</filename></filename>:</para>
|
|
|
|
<programlisting>#INTERFACE HOST(S) OPTIONS
|
|
br0 192.168.1.0/24 routeback
|
|
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE</programlisting>
|
|
|
|
<para>Pour la définition de votre jeu de règles pour votre firewall, vous
|
|
pouvez prendre comme point de départ le fichier
|
|
<filename>/etc/shorewall/rules</filename> présenté dans l'exemple de
|
|
Firewall à Deux Interfaces.</para>
|
|
</section>
|
|
|
|
<section id="bridge-router">
|
|
<title>Combinaison Pont/Routeur</title>
|
|
|
|
<para>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:<graphic fileref="images/bridge2.png" /></para>
|
|
|
|
<para>Il s'agit quasiment de la même configuration que celle présentée
|
|
dans le <ulink url="shorewall_setup_guide_fr.htm">Guide de Configuration
|
|
de Shorewall</ulink> 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:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Le fichier <filename>/etc/shorewall/proxyarp</filename> doit
|
|
être vide dans cette configuration.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Le fichier <filename>/etc/shorewall/interfaces</filename>
|
|
ressemble à ceci:<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
|
- br0 detect routefilter
|
|
loc eth1 detect</programlisting></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Le fichier <filename>/etc/shorewall/hosts</filename> devrait
|
|
avoir:</para>
|
|
|
|
<programlisting>#ZONE HOSTS OPTIONS
|
|
net br0:eth0
|
|
dmz br0:eth2</programlisting>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>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'ils puissent communiquer avec
|
|
le réseau local.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Limites</title>
|
|
|
|
<para>Avec certaines cartes sans fil, le mode pont ne fonctionne pas
|
|
— vous pouvez regarder à <ulink
|
|
url="http://linux-net.osdl.org/index.php/Bridge">http://linux-net.osdl.org/index.php/Bridge</ulink>.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Liens</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><ulink
|
|
url="http://wiki.buenosaireslibre.org/HowTos_2fBridgedFirewall">Vous
|
|
trouverez ici un article en Espagnol</ulink> qui présente de manière
|
|
détaillée comment <quote>ponter</quote> un réseau public et un réseau
|
|
local avec Shorewall. Il s'agit d'une autre configuration en
|
|
Pont/Routeur.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</article> |