shorewall_code/docs/three-interface_fr.xml

1198 lines
56 KiB
XML
Raw Normal View History

<?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 id="three-interface_fr" lang="fr">
<!--$Id$-->
<articleinfo>
<title>Firewall <20> trois interfaces</title>
<subtitle>Version Fran<61>aise de <foreignphrase lang="en"><ulink
url="https://shorewall.org/three-interface.htm">Three-Interface
Firewall</ulink></foreignphrase></subtitle>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Eastep</surname>
</author>
<othercredit role="translator">
<firstname>Patrice</firstname>
<surname>Vetsel</surname>
<contrib>Traduction fran<61>aise initiale</contrib>
</othercredit>
<othercredit role="translator">
<firstname>Fabien</firstname>
<surname>Demassieux</surname>
<contrib>Adaptation fran<61>aise version 2.0</contrib>
</othercredit>
<othercredit role="translator">
<firstname>Guy</firstname>
<surname>Marcenac</surname>
<contrib>Adaptation fran<61>aise version 3.0</contrib>
</othercredit>
</authorgroup>
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
<copyright>
<year>2002-2006</year>
<holder>Thomas M. Eastep</holder>
<holder>Patrice Vetsel</holder>
<holder>Fabien Demassieux</holder>
<holder>Guy Marcenac</holder>
</copyright>
<legalnotice>
<para>Permission est accord<72>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<6C>rieure
publi<6C>e par la Free Software Foundation ; sans section Invariables, sans
premi<6D>re de Couverture, et sans texte de quatri<72>me de couverture. Une
copie de la pr<70>sente Licence est incluse dans la section intitul<75>e. Une
traduction fran<61>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<61>aise pour aider <20> votre compr<70>hension. Seul le texte
original en anglais pr<70>sent<6E> 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, no Front-Cover Texts, and 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> Le guide
initial a <20>t<EFBFBD> traduit par <ulink
url="mailto:vetsel.patrice@wanadoo.fr">VETSEL Patrice</ulink> et la
r<>vision pour la version 2 de Shorewall a <20>t<EFBFBD> effectu<74>e par <ulink
url="mailto:fd03x@wanadoo.fr">Fabien Demassieux</ulink>. J'ai assur<75> la
r<>vision pour l'adapter <20> la version 3 de Shorewall. Si vous trouvez des
erreurs ou des am<61>liorations <20> y apporter vous pouvez <ulink
url="mailto:guy@posteurs.com">me contacter</ulink>.</para>
</note>
<caution>
<para><emphasis role="bold">Cet article s'applique <20> Shorewall 3.0 et <20>
ses versions ult<6C>rieures. Si vous utilisez une version plus ancienne de
Shorewall, r<>f<EFBFBD>rez-vous <20> la documentation s'appliquant <20> votre
version</emphasis>.</para>
</caution>
<section>
<title>Introduction</title>
<para>Mettre en place un syst<73>me Linux en tant que firewall pour un petit
r<>seau contenant une <acronym>DMZ</acronym> est une chose assez simple, si
vous comprenez les bases et que vous suivez la documentation.</para>
<para>Ce guide ne pr<70>tend pas vous apprendre tous les rouages de
Shorewall. Il se concentre sur ce qui est n<>cessaire pour configurer
Shorewall dans son utilisation la plus courante:</para>
<itemizedlist>
<listitem>
<para>Un syst<73>me Linux utilis<69> en tant que firewall/routeur pour un
petit r<>seau local.</para>
</listitem>
<listitem>
<para>Une seule adresse IP publique.</para>
<note>
<para>Si vous avez plus d'une adresse IP, ce n'est pas le guide qui
vous convient -- regardez plut<75>t du cot<6F> du <ulink
url="shorewall_setup_guide_fr.htm">Guide de Configuration
Shorewall</ulink>.</para>
</note>
</listitem>
<listitem>
<para>Une DMZ connect<63>e sur une interface ethernet s<>par<61>e. L'objet
d'une <acronym>DMZ</acronym> est d'isoler les syst<73>mes de votre r<>seau
local de vos serveurs qui sont expos<6F>s sur internet, de telle mani<6E>re
que, si un de ces serveurs <20>tait compromis, il reste encore un
firewall entre le syst<73>me compromis et vos syst<73>mes locaux.</para>
</listitem>
<listitem>
<para>Une connexion internet par le biais d'un modem c<>ble,
<acronym>ADSL</acronym>, <acronym>ISDN-RNIS</acronym>, "Frame Relay",
<acronym>RTC</acronym> ...</para>
</listitem>
</itemizedlist>
<para>Voici le sch<63>ma d'une installation typique.</para>
<figure>
<title>Sch<EFBFBD>ma d'une installation typique</title>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="images/dmz1.png" format="PNG" />
</imageobject>
</mediaobject>
</figure>
<section>
<title>Pr<EFBFBD>-requis Syst<73>me</title>
<para>Shorewall a besoin que le paquetage
<command><command>iproute</command></command>/<command><command>iproute2</command></command>
soit install<6C> (avec la distribution <trademark>RedHat</trademark>, le
paquetage s'appelle <command><command>iproute</command></command>). Vous
pouvez contr<74>ler que le package est install<6C> en v<>rifiant la pr<70>sence du
programme <command><command>ip</command></command> sur votre firewall.
En tant que <systemitem class="username">root</systemitem>, vous pouvez
utiliser la commande <command>which</command> pour cela:</para>
<programlisting>[root@gateway root]# <command>which ip</command>
/sbin/ip
[root@gateway root]#</programlisting>
</section>
<section>
<title>Avant de commencer</title>
<para>Je vous recommande de commencer par une lecture compl<70>te du guide
afin de vous familiariser avec les concepts mis en oeuvre, puis de
recommencer la lecture et seulement alors d'appliquer vos modifications
de configuration.</para>
<caution>
<para>Si vous <20>ditez vos fichiers de configuration sur un syst<73>me
<trademark>Windows</trademark>, vous devez les enregistrer comme des
fichiers <trademark>Unix</trademark> si votre <20>diteur supporte cette
option sinon vous devez les convertir avec <command>dos2unix</command>
avant d'essayer de les utiliser. De la m<>me mani<6E>re, si vous copiez un
fichier de configuration depuis votre disque dur
<trademark>Windows</trademark> vers une disquette, vous devez lancer
<command>dos2unix</command> sur la copie avant de l'utiliser avec
Shorewall.</para>
<simplelist>
<member><ulink url="http://www.simtel.net/pub/pd/51438.html">Version
Windows de dos2unix</ulink></member>
<member><ulink
url="http://www.megaloman.com/~hany/software/hd2u/">Version Linux de
dos2unix</ulink></member>
</simplelist>
</caution>
</section>
<section>
<title>Conventions</title>
<para>Les points o<> des modifications s'imposent sont indiqu<71>s par
<inlinegraphic fileref="images/BD21298_.gif" format="GIF" />.</para>
<para>Les notes de configuration qui sont propres <20> LEAF/Bering sont
marqu<71>es avec <inlinegraphic fileref="images/leaflogo.gif"
format="GIF" />.</para>
</section>
</section>
<section>
<title>PPTP/ADSL</title>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Si vous <20>tes <20>quip<69> d'un modem
<acronym><acronym>ADSL</acronym></acronym> et que vous utilisez
<acronym>PPTP</acronym> pour communiquer avec un serveur <20> travers ce
modem, vous devez faire les changements <ulink
url="PPTP.htm#PPTP_ADSL">suivants</ulink> en plus de ceux d<>crits
ci-dessous. <acronym><acronym>ADSL</acronym></acronym> avec
<acronym><acronym>PPTP</acronym></acronym> est r<>pandu en Europe,
notamment en Autriche.</para>
</section>
<section>
<title>Les Concepts de Shorewall</title>
<para>Les fichiers de configuration pour Shorewall sont situ<74>s dans le
r<>pertoire /etc/shorewall -- pour de simples param<61>trages, vous n'aurez <20>
faire qu'avec quelques-uns d'entre eux comme d<>crit dans ce guide.</para>
<warning>
<para><emphasis role="bold">Note aux utilisateurs de Debian et de
Ubuntu</emphasis></para>
<para>Si vous vous servez du .deb pour installer, vous vous rendrez
compte que votre r<>pertoire <filename
class="directory">/etc/shorewall</filename> est vide. Ceci est voulu.
Les squelettes des fichiers de configuration se trouvent sur votre
syst<73>me dans le r<>pertoire <filename
class="directory">/usr/share/doc/shorewall/default-config</filename>.
Copiez simplement les fichiers dont vous avez besoin depuis ce
r<>pertoire dans <filename class="directory">/etc/shorewall</filename>,
puis modifiez ces copies.</para>
<para>Remarquez que vous devez copier<filename>
/usr/share/doc/shorewall/default-config/shorewall.conf</filename> et
<filename>/usr/share/doc/shorewall/default-config/modules</filename>
dans <filename
class="directory"><filename>/etc/shorewall</filename></filename> m<>me si
vous ne modifiez pas ces fichiers.</para>
</warning>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Apr<EFBFBD>s avoir install<6C> Shorewall, vous pourrez trouver les exemples de
la mani<6E>re suivante:<orderedlist>
<listitem>
<para>Si vous avez install<6C> en utilisant un <acronym>RPM</acronym>,
les exemples seront dans le sous-r<>pertoire <filename
class="directory">Samples/three-interfaces/</filename> du r<>pertoire
de la documentation de Shorewall. Si vous ne savez pas o<> se trouve
le r<>pertoire de la documentation de Shorewall, vous pouvez trouver
les exemples en utilisant cette commande:</para>
<programlisting>~# rpm -ql shorewall | fgrep three-interfaces
/usr/share/doc/packages/shorewall/Samples/three-interfaces
/usr/share/doc/packages/shorewall/Samples/three-interfaces/interfaces
/usr/share/doc/packages/shorewall/Samples/three-interfaces/masq
/usr/share/doc/packages/shorewall/Samples/three-interfaces/policy
/usr/share/doc/packages/shorewall/Samples/three-interfaces/routestopped
/usr/share/doc/packages/shorewall/Samples/three-interfaces/rules
/usr/share/doc/packages/shorewall/Samples/three-interfaces/zones
~#</programlisting>
</listitem>
<listitem>
<para>Si vous avez install<6C> depuis le tarball, les exemples sont
dans le r<>pertoire <filename>Samples/three-interfaces</filename> du
tarball.</para>
</listitem>
<listitem>
<para>Si vous avez install<6C> en utilisant un .deb, les exemples sont
dans
<filename>/usr/share/doc/shorewall/examples/three-interfaces</filename>.</para>
</listitem>
</orderedlist></para>
<para>Au fur et <20> mesure de la pr<70>sentation de chaque fichier, je vous
sugg<67>re de jeter un oeil <20> ceux physiquement pr<70>sents sur votre syst<73>me --
chacun des fichiers contient des instructions de configuration d<>taill<6C>es
et des entr<74>es par d<>faut.</para>
<para>Shorewall voit le r<>seau o<> il fonctionne, comme <20>tant compos<6F> d'un
ensemble de zones. Dans une configuration avec trois interfaces, les noms
des zones suivants sont utilis<69>s:</para>
<programlisting>#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
dmz ipv4</programlisting>
<para>Les zones de Shorewall sont d<>finies dans le fichier <ulink
url="Documentation.htm#Zones"><filename
class="directory">/etc/shorewall/</filename><filename>zones</filename></ulink>.</para>
<para>Remarquez que Shorewall reconna<6E>t le syst<73>me de firewall comme sa
propre zone. Quand le fichier <filename>/etc/shorewall/zones</filename>
est trait<69>, le nom de la zone firewall est stock<63> dans la variable
d'environnement <emphasis>$FW</emphasis> qui peut <20>tre utilis<69>e depuis
l'ensemble des autres fichiers de configuration de Shorewall, pour faire
r<>f<EFBFBD>rence au firewall lui-m<>me.</para>
<para>Les r<>gles <20> propos du trafic <20> autoriser et <20> interdire sont
exprim<69>es en utilisant le terme de zones.</para>
<itemizedlist>
<listitem>
<para>Vous exprimez votre politique par d<>faut pour les connexions
d'une zone vers une autre zone dans le fichier <ulink
url="Documentation.htm#Policy"><filename
class="directory">/etc/shorewall/</filename><filename>policy</filename></ulink>.</para>
</listitem>
<listitem>
<para>Vous d<>finissez les exceptions <20> ces politiques pas d<>faut dans
le fichier <ulink url="Documentation.htm#Rules"><filename
class="directory">/etc/shorewall/</filename><filename>rules</filename></ulink>.</para>
</listitem>
</itemizedlist>
<para>Pour chaque connexion demandant <20> entrer dans le firewall, la
requ<71>te est en premier lieu v<>rifi<66>e par rapport au contenu du fichier
<filename>/etc/shorewall/rules</filename>. Si aucune r<>gle dans ce fichier
ne correspond <20> la demande de connexion, alors la premi<6D>re politique dans
le fichier <filename>/etc/shorewall/policy</filename> qui y correspond
sera appliqu<71>e. S'il y a une <ulink
url="shorewall_extension_scripts.htm">action commune</ulink> d<>finie pour
cette politique dans <filename>/etc/shorewall/actions</filename> ou dans
<filename>/usr/share/shorewall/actions.std</filename> cette action commune
sera ex<65>cut<75>e avant que la politique ne soit appliqu<71>e. Le but de l'action
commune est double:</para>
<itemizedlist>
<listitem>
<para>Elle ignore (DROP) ou rejete (REJECT) silencieusement le traffic
courant qui n'est pas dangeureux qui sans cela encombrerait votre
fichier journal - les messages de broadcast, par exemple.</para>
</listitem>
<listitem>
<para>Elle garantit que le traffic n<>cessaire <20> un fonctionnement
normal est autoris<69> <20> traverser le firewall &mdash; ICMP
<emphasis>fragmentation-needed</emphasis> par exemple</para>
</listitem>
</itemizedlist>
<para>Le fichier /etc/shorewall/policy inclus dans l'archive d'exemple
(three-interface) contient les politiques suivantes:</para>
<programlisting>#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT
net all DROP info
all all REJECT info</programlisting>
<important>
<para>Dans le fichier d'exemple (three-interface), la ligne suivante est
incluse mais elle est comment<6E>e. Si vous voulez que votre firewall
puisse avoir un acc<63>s complet aux serveurs sur internet, d<>-commentez la
ligne.</para>
<programlisting>#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW net ACCEPT</programlisting>
</important>
<para>Les politiques pr<70>c<EFBFBD>dentes vont: <itemizedlist>
<listitem>
<para>Autoriser (ACCEPT) toutes les demandes de connexion depuis
votre r<>seau local vers internet</para>
</listitem>
<listitem>
<para>Ignorer (DROP) toutes les demandes de connexion depuis
internet vers votre firewall ou votre r<>seau local</para>
</listitem>
<listitem>
<para>Autoriser (ACCEPT) toutes les demandes de connexion de votre
firewall vers internet (si vous avez d<>-comment<6E> la politique
additionnelle)</para>
</listitem>
<listitem>
<para>Rejeter (REJECT) toutes les autres requ<71>tes de
connexion.</para>
</listitem>
</itemizedlist></para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Maintenant, <20>ditez votre propre fichier <filename><filename
class="directory">/etc/shorewall/</filename><filename>policy</filename></filename>
et faites-y les changements que vous d<>sirez.</para>
</section>
<section>
<title>Les Interfaces R<>seau</title>
<figure>
<title>DMZ</title>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="images/dmz1.png" format="PNG" />
</imageobject>
</mediaobject>
</figure>
<para>Le firewall poss<73>de trois interfaces r<>seau. Lorsque la connexion
internet passe par un <quote>modem</quote> c<>ble ou<acronym><acronym> ADSL
</acronym></acronym><emphasis><emphasis>l'Interface
Externe</emphasis></emphasis> sera l'adaptateur ethernet qui est connect<63>
<20> ce <quote>Modem</quote> (par exemple <filename
class="devicefile">eth0</filename>). Par contre, si vous vous connectez
avec <acronym>PPPoE</acronym> (Point-to-Point Protocol over Ethernet) ou
avec <acronym><acronym>PPTP</acronym></acronym> (Point-to-Point Tunneling
Protocol), l'interface externe sera une interface ppp (par exemple
<filename class="devicefile"><filename
class="devicefile">ppp0</filename></filename>). Si vous vous connectez
avec un simple modem <acronym><acronym>RTC</acronym></acronym>, votre
interface externe sera aussi <filename class="devicefile"><filename
class="devicefile">ppp0</filename></filename>. Si vous vous connectez en
utilisant l'<acronym><acronym>ISDN</acronym></acronym>, votre interface
externe sera <filename class="devicefile"><filename
class="devicefile">ippp0</filename></filename>.</para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para><emphasis role="bold">Si votre interface vers l'ext<78>rieur est
<filename class="devicefile">ppp0</filename> ou <filename
class="devicefile">ippp0</filename> alors vous mettrez CLAMPMSS=yes dans
le fichier
<filename>/etc/shorewall/shorewall.conf</filename></emphasis>.</para>
<para>Votre <emphasis>Interface locale</emphasis> sera un adaptateur
ethernet (<filename class="devicefile">eth0</filename>, <filename
class="devicefile">eth1</filename> or <filename
class="devicefile">eth2</filename>) et sera connect<63> <20> un hub ou <20> un
switch. Vos ordinateurs locaux seront connect<63>s <20> ce m<>me hub ou switch
(note : si vous n'avez qu'un seul ordinateur en local, vous pouvez le
connecter directement au firewall par un c<>ble crois<69>).</para>
<para>Votre <emphasis>interface <acronym>DMZ</acronym></emphasis> sera
aussi un adaptateur ethernet (<filename
class="devicefile">eth0</filename>, <filename
class="devicefile">eth1</filename> or <filename
class="devicefile">eth2</filename>) et sera connect<63>e <20> un hub ou <20> un
switch. Vos ordinateurs appartenant <20> la <acronym>DMZ</acronym> seront
connect<63>s <20> ce m<>me hub ou switch (note : si vous n'avez qu'un seul
ordinateur dans la <acronym>DMZ</acronym>, vous pouvez le connecter
directement au firewall par un c<>ble crois<69>).</para>
<warning>
<para><emphasis role="bold">Ne connectez pas les interfaces interne et
externe sur le m<>me hub ou le m<>me switch, sauf <20> des fins de
test</emphasis>. Vous pouvez tester en utilisant ce type de
configuration si vous sp<73>cifiez l'option <emphasis
role="bold">arp_filter</emphasis> ou l'option <emphasis
role="bold">arp_ignore</emphasis> dans le fichier <filename
class="directory">/etc/shorewall/</filename><filename>interfaces, et
ce</filename> pour toutes les interfaces connect<63>es au hub/switch
commun. <emphasis role="bold">Il est tr<74>s fortement d<>conseill<6C>
d'utiliser une telle configuration avec un firewall en
production</emphasis>.</para>
</warning>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Le fichier de configuration d'exemple pour le firewall <20> trois
interfaces suppose que votre interface externe est <filename
class="devicefile"><filename
class="devicefile">eth0</filename></filename>, que l'interface locale est
<filename class="devicefile">eth1</filename> et que la
<acronym>DMZ</acronym> est sur l'interface <filename
class="devicefile"><filename
class="devicefile">eth2</filename></filename>. Si votre configuration est
diff<66>rente, vous devrez modifier le fichier<filename>
/etc/shorewall/interfaces</filename> en cons<6E>quence. Tant que vous y <20>tes,
vous pourriez parcourir la liste des options qui sont sp<73>cifi<66>es pour les
interfaces. Quelques astuces:<tip>
<para>Si votre interface vers l'ext<78>rieur est <filename
class="devicefile">ppp0</filename> ou <filename
class="devicefile">ippp0</filename>, vous pouvez remplacer le
<quote>detect</quote> dans la seconde colonne par un <quote>-</quote>
(sans guillemets).</para>
</tip><tip>
<para>Si votre interface vers l'ext<78>rieur est <filename
class="devicefile">ppp0</filename> or <filename
class="devicefile">ippp0</filename> ou si vous avez une adresse
<acronym>IP</acronym> statique, vous pouvez enlever
<quote>dhcp</quote> dans la liste des options .</para>
</tip></para>
</section>
<section>
<title>Adresses IP</title>
<para>Avant d'aller plus loin, nous devons dire quelques mots au sujet des
adresses IP. Normalement, votre Fournisseur d' Acc<63>s Internet
(<acronym>FAI</acronym>) ne vous allouera qu'une seule adresse IP. Cette
adresse peut vous <20>tre allou<6F>e par <acronym>DHCP</acronym> (Dynamic Host
Configuration Protocol), lors de l'<27>tablissement de votre connexion (modem
standard) ou bien lorsque vous <20>tablissez un autre type de connexion
<acronym>PPP</acronym> (<acronym>PPPoA</acronym>,
<acronym>PPPoE</acronym>, etc.). Dans certains cas , votre fournisseur
peut vous allouer une adresse statique IP. Dans ce cas vous devez
configurer l'interface externe de votre firewall afin d'utiliser cette
adresse de mani<6E>re permanente.</para>
<para>Quelle que soit la fa<66>on dont votre adresse externe vous est
attribu<62>e, elle va <20>tre partag<61>e par tous vos syst<73>mes lors de l'acc<63>s <20>
internet. Vous devrez assigner vos propres adresses au machines de votre
r<>seau local (votre interface interne sur le firewall ainsi que les autres
ordinateurs). La RFC 1918 r<>serve des plages d'adresses IP pour
l'utilisation dans les r<>seau priv<69>s:</para>
<programlisting>10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255</programlisting>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Avant de lancer Shorewall, <emphasis role="bold">il faut regarder
l'adresse IP de votre interface externe, et, si elle est dans l'une des
plages pr<70>c<EFBFBD>dentes, vous devez enlever l'option "norfc1918" dans la ligne
concernant l'interface externe dans le fichier
<filename>/etc/shorewall/interfaces</filename></emphasis>.</para>
<para>Vous devrez allouer vos adresses depuis le m<>me sous-r<>seau
(subnet). Pour ce faire, nous pouvons consid<69>rer un sous-r<>seau comme
<20>tant une plage d'adresses <varname>allant de x.y.z.0 <20>
x.y.z.255</varname>. Un tel sous-r<>seau aura un masque (subnet mask)
<systemitem class="netmask">de 255.255.255.0</systemitem>. L'adresse
<varname>x.y.z.0</varname> est r<>serv<72>e comme l'adresse de sous-r<>seau
<emphasis>(Subnet Address</emphasis>) et l'adresse
<varname>x.y.z.255</varname> est r<>serv<72>e en tant qu'adresse de diffusion
(<emphasis>broadcast</emphasis>). Dans Shorewall, un tel sous-r<>seau est
d<>crit en utilisant <ulink url="shorewall_setup_guide_fr.htm#Subnets">la
notation CIDR (Classless InterDomain Routing)</ulink> qui consiste en
l'adresse du sous-r<>seau suivie par<varname> /</varname>24. Le
<quote>24</quote> indiquant le nombre cons<6E>cutif de bits <20>
<quote>1</quote> dans la partie gauche du masque de sous-r<>seau.</para>
<table>
<title>Un exemple de sous-r<>seau (sub-network) :</title>
<tgroup cols="2">
<colspec align="left" />
<tbody>
<row>
<entry>Etendue:</entry>
<entry><systemitem class="ipaddress">10.10.10.0</systemitem> -
<systemitem class="ipaddress">10.10.10.255</systemitem></entry>
</row>
<row>
<entry>Adresse de sous-r<>seau:</entry>
<entry><systemitem
class="ipaddress">10.10.10.0</systemitem></entry>
</row>
<row>
<entry>Adresse de diffusion:</entry>
<entry><systemitem
class="ipaddress">10.10.10.255</systemitem></entry>
</row>
<row>
<entry>Notation CIDR:</entry>
<entry><systemitem
class="ipaddress">10.10.10.0/24</systemitem></entry>
</row>
</tbody>
</tgroup>
</table>
<para>La convention veut que l'on affecte <20> l'interface interne du
firewall la premi<6D>re adresse utilisable du sous-r<>seau (<systemitem
class="ipaddress">10.10.10.1</systemitem> dans l'exemple pr<70>c<EFBFBD>dent) ou
bien la derni<6E>re adresse utilisable (<systemitem
class="ipaddress">10.10.10.254</systemitem>).</para>
<para>L'un des objectifs de la gestion en sous-r<>seaux est de permettre <20>
tous les ordinateurs du sous-r<>seau de savoir avec quels autres
ordinateurs ils peuvent communiquer directement. Pour communiquer avec des
syst<73>mes en dehors du sous-r<>seau auquel ils appartiennent, les
ordinateurs doivent envoyer leurs paquets par l'interm<72>diaire d'une
passerelle (gateway).</para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Vos ordinateurs locaux (computer 1 et computer 2 dans le diagramme)
doivent <20>tre configur<75>s avec leur passerelle par d<>faut (default gateway)
pointant sur l'adresse <acronym>IP</acronym> de l'interface interne du
firewall. Les ordinateurs de votre <acronym>DMZ</acronym> (DMZ Computer 1
et DMZ computer 2) devraient <20>tre configur<75>s avec leur passerelle par
d<>faut (default gateway) pointant sur l'adresse <acronym>IP</acronym> de
l'interface <acronym>DMZ</acronym> du firewall.</para>
<para>Cette br<62>ve pr<70>sentation ne fait qu'effleurer la question des
sous-r<>seaux et du routage. Si vous voulez en apprendre plus sur
l'adressage <acronym>IP</acronym> et le routage, je recommande <quote>IP
Fundamentals: What Everyone Needs to Know about Addressing &amp;
Routing</quote>, Thomas A. Maufer, Prentice-Hall, 1999, ISBN 0-13-975483-0
(<ulink
url="http://www.phptr.com/browse/product.asp?product_id={58D4F6D4-54C5-48BA-8EDD-86EBD7A42AF6}">lien</ulink>).</para>
<para>Le reste de ce guide suppose que vous avez configur<75> votre r<>seau
comme montr<74> ci-dessous :</para>
<figure>
<title>DMZ</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/dmz2.png" />
</imageobject>
<caption>
<para>La passerelle par d<>faut pour la DMZ sera <systemitem
class="ipaddress">10.10.11.254</systemitem> et la passerelle par
d<>faut pour les ordinateurs locaux sera <systemitem
class="ipaddress">10.10.10.254</systemitem>.</para>
<warning>
<para>Votre <acronym>FAI</acronym> pourrait allouer une adresse
<emphasis role="bold">RFC 1918</emphasis> <20> votre interface
externe. Si cette adresse est le sous-r<>seau <systemitem
class="ipaddress">10.10.10.0/24</systemitem> alors <emphasis
role="bold">vous aurez besoin d'un sous-r<>seau RFC 1918 DIFF<46>RENT
pour votre r<>seau local</emphasis>.</para>
</warning>
</caption>
</mediaobject>
</figure>
</section>
<section>
<title>IP Masquerading (SNAT)</title>
<para>Les adresses r<>serv<72>es par la RFC 1918 sont parfois d<>sign<67>es comme
non-routables car les routeurs centraux d'internet (backbone) ne font pas
suivre les paquets qui ont une adresse de destination appartenant <20> la
RFC-1918. Lorsqu'un de vos syst<73>mes en local (supposons Computer 1) envoie
une demande de connexion <20> un serveur internet, le firewall doit effectuer
une traduction d'adresse r<>seau ou <emphasis>Network Address Translation
(</emphasis><acronym><acronym>NAT</acronym></acronym>). Le firewall
r<><72>crit l'adresse source dans le paquet et la remplace par l'adresse de
l'interface externe du firewall; en d'autres termes, le firewall fait
croire que c'est lui m<>me qui initie la connexion. Ceci est n<>cessaire
afin que l'h<>te de destination soit capable de renvoyer les paquets au
firewall (souvenez vous que les paquets qui ont pour adresse de
destination une adresse r<>serv<72>e par la RFC 1918 ne peuvent pas <20>tre
rout<75>s <20> travers internet, donc l'h<>te internet ne peut adresser sa
r<>ponse <20> l'ordinateur 1). Lorsque le firewall re<72>oit le paquet de
r<>ponse, il r<><72>crit l'adresse de destination <20> <systemitem
class="ipaddress">10.10.10.1</systemitem> et fait passer le paquet vers
l'ordinateur Computer 1.</para>
<para>Sur les syst<73>mes Linux, ce proc<6F>d<EFBFBD> est souvent appel<65> <emphasis>IP
Masquerading</emphasis> mais vous verrez aussi le terme de traduction
d'adresses source ou <emphasis>Source Network Address
Translation</emphasis> (<acronym>SNAT</acronym>). Shorewall suit la
convention utilis<69>e avec Netfilter:<itemizedlist>
<listitem>
<para><emphasis>Masquerade</emphasis> d<>signe le cas ou vous laissez
votre firewall d<>tecter automatiquement l'adresse de votre interface
externe.</para>
</listitem>
<listitem>
<para><emphasis><acronym>SNAT</acronym></emphasis> d<>signe le cas o<>
vous sp<73>cifiez explicitement l'adresse source des paquets sortant de
votre r<>seau local.</para>
</listitem>
</itemizedlist>Sous Shorewall, autant le
<emphasis>Masquerading</emphasis> que la
<emphasis><acronym>SNAT</acronym></emphasis> sont configur<75>s avec des
entr<74>es dans le fichier <filename>/etc/shorewall/masq</filename>. Vous
utiliserez normalement le Masquerading si votre adresse
<acronym>IP</acronym> externe est dynamique, et la <acronym>SNAT</acronym>
si votre adresse <acronym>IP</acronym> externe est statique.</para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Si votre interface externe est <filename
class="devicefile">eth0</filename>, si votre interface locale est
<filename class="devicefile">eth1</filename> et que votre interface pour
la <acronym>DMZ</acronym> est <filename
class="devicefile">eth2</filename>, vous n'avez pas besoin de modifier le
fichier fourni avec l'exemple. Dans le cas contraire, <20>ditez <filename
class="directory">/etc/shorewall/</filename><filename>masq</filename> et
changez-le en cons<6E>quence.</para>
<para>Si, malgr<67> les avertissements, vous utilisez ce guide et que vous
voulez faire du NAT un-<2D>-un (one-to-one NAT) ou du Proxy ARP pour votre
DMZ, enlevez l'entr<74>e pour <filename class="devicefile">eth2</filename> de
<filename><filename
class="directory">/etc/shorewall/</filename><filename>masq</filename></filename>.</para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Si votre adresse externe <acronym>IP</acronym> est statique, vous
pouvez la mettre dans la troisi<73>me colonne dans <filename
class="directory">/etc/shorewall/</filename><filename>masq</filename> si
vous le d<>sirez. De toutes fa<66>ons votre firewall fonctionnera bien si vous
laissez cette colonne vide. Le fait de mettre votre adresse
<acronym>IP</acronym> statique dans la troisi<73>me colonne permet un
traitement des paquets sortants un peu plus efficace.</para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Si vous utilisez un paquetage Debian, v<>rifiez dans votre fichier de
configuration <filename>shorewall.conf</filename> que la valeur suivante
est convenablement param<61>tr<74>e, sinon faites les changements
n<>cessaires:<itemizedlist spacing="compact">
<listitem>
<para><varname>IP_FORWARDING=On</varname></para>
</listitem>
</itemizedlist></para>
</section>
<section id="DNAT">
<title>Transfert de ports (DNAT)</title>
<para>Un de nos objectifs est de faire tourner un ou plusieurs serveurs
sur nos ordinateurs dans la DMZ. Puisque ces ordinateurs ont une adresse
RFC-1918, il n'est pas possible pour les clients sur internet de s'y
connecter directement. Il faudra plut<75>t <20> que ces clients adressent leurs
demandes de connexion au firewall qui r<><72>crira l'adresse de votre serveur
comme adresse de destination, puis lui fera passer le paquet. Lorsque
votre serveur retournera sa r<>ponse, le firewall appliquera
automatiquement une r<>gle <acronym><acronym>SNAT</acronym></acronym> pour
r<><72>crire l'adresse source dans la r<>ponse.</para>
<para>Ce proc<6F>d<EFBFBD> est appel<65> transfert de port (<emphasis>Port
Forwarding)</emphasis> ou traduction d'adresses r<>seau destination ou
<emphasis>Destination Network Address Translation</emphasis>
(<acronym><acronym>DNAT</acronym></acronym>). Vous configurez le transfert
de port en utilisant des r<>gles <acronym><acronym>DNAT</acronym></acronym>
dans le fichier <filename>/etc/shorewall/rules</filename>.</para>
<para>La forme g<>n<EFBFBD>rale d'une simple r<>gle de transfert de port dans
<filename>/etc/shorewall/rules</filename> est:<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
DNAT net dmz:<emphasis>&lt;server local IP address&gt;</emphasis>[:<emphasis>&lt;server port&gt;</emphasis>] <emphasis>&lt;protocol&gt;</emphasis> <emphasis>&lt;port&gt;</emphasis></programlisting>
Si vous ne sp<73>cifiez pas <emphasis><varname>&lt;server
port&gt;</varname></emphasis>, il est suppos<6F> <20>tre le m<>me que
<emphasis><varname>&lt;port&gt;</varname></emphasis>.</para>
<important>
<para>Assurez-vous d'ajouter vos r<>gles apr<70>s la ligne contenant
<emphasis role="bold">SECTION NEW.</emphasis></para>
</important>
<example>
<title>Vous faites tourner un serveur Web sur l'ordinateur Computer 2 de
votre <acronym>DMZ</acronym> et vous voulez faire suivre <20> ce syst<73>me
les paquets entrant en TCP sur le port 80</title>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
Web/DNAT net dmz:10.10.11.2
Web/ACCEPT loc dmz:10.10.11.2</programlisting>
<para><itemizedlist>
<listitem>
<para>L'entr<74>e 1 fait suivre le port 80 depuis internet vers la
<acronym>DMZ</acronym>.</para>
</listitem>
<listitem>
<para>L'entr<74>e 2 autorise les connexions depuis le r<>seau
local.</para>
</listitem>
</itemizedlist>Plusieurs points importants sont <20> garder en m<>moire
:<itemizedlist>
<listitem>
<para>Lorsque vous vous connectez <20> votre serveur <20> partir de
votre r<>seau local, vous devez utiliser l'adresse IP interne du
serveur (<systemitem
class="ipaddress">10.10.11.2</systemitem>).</para>
</listitem>
<listitem>
<para>Quelques Fournisseurs d'Acc<63>s Internet
(<acronym>FAI</acronym>) bloquent les requ<71>tes de connexion
entrantes sur le port 80. Si vous avez des probl<62>mes pour vous
connecter <20> votre serveur web, essayez la r<>gle suivante et
connectez vous sur le port 5000 (c.a.d., connectez vous <20>
<literal>http://w.x.y.z:5000 ou w.x.y.z</literal> est votre IP
externe).<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S) SOURCE
# PORT(S)
DNAT net dmz:10.10.11.2:80 tcp 80 5000</programlisting></para>
</listitem>
<listitem>
<para>Si vous voulez avoir la possibilit<69> de vous connecter <20>
votre serveur depuis le r<>seau local en utilisant votre adresse
externe, et si vous avez une adresse IP externe statique (fixe),
vous pouvez remplacer la r<>gle loc-&gt;dmz pr<70>c<EFBFBD>dente par
:<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S) SOURCE ORIGINAL
# PORT(S) DEST
DNAT loc dmz:10.10.11.2 tcp 80 - <emphasis>&lt;external IP&gt;</emphasis></programlisting>Si
vous avez une IP dynamique, vous devez vous assurer que votre
interface externe est en route avant de lancer Shorewall et vous
devez suivre les <20>tapes suivantes (en supposant que votre
interface externe est <filename
class="devicefile">eth0</filename>):<orderedlist>
<listitem>
<para>Ins<EFBFBD>rez ce qui suit dans /etc/shorewall/params:</para>
<para><command>ETH0_IP=$(find_interface_address
eth0)</command></para>
</listitem>
<listitem>
<para>Votre r<>gle <literal>loc-&gt;dmz</literal> deviendra:
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S) SOURCE ORIGINAL
# PORT(S) DEST
DNAT loc dmz:10.10.11.2 tcp 80 - $ETH0_IP</programlisting></para>
</listitem>
</orderedlist></para>
</listitem>
<listitem>
<para>Si vous voulez acc<63>der <20> votre serveur depuis la DMZ en
utilisant votre adresse IP externe, regardez la <ulink
url="FAQ_fr.html#faq2a">FAQ 2a</ulink>.</para>
</listitem>
</itemizedlist></para>
</example>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Maintenant, modifiez <filename>/etc/shorewall/rules</filename> pour
ajouter les r<>gles <acronym>DNAT</acronym> dont vous avez besoin.</para>
<important>
<para>Quand vous testez des r<>gles <acronym>DNAT</acronym> telles que
celles pr<70>sent<6E>es plus haut, <emphasis role="bold">vous devez les tester
depuis un client A L'EXT<58>RIEUR DE VOTRE FIREWALL</emphasis> (depuis la
zone <quote>net</quote>). Vous ne pouvez pas tester ces r<>gles de
l'int<6E>rieur !</para>
<para>Pour des astuces en cas de probl<62>me avec la
<acronym>DNAT</acronym>, <ulink url="FAQ_fr.html#faq1a">allez lire les
FAQ 1a et 1b</ulink>.</para>
</important>
</section>
<section>
<title>Service de Noms de Domaines (DNS)</title>
<para>Normalement, quand vous vous connectez <20> votre fournisseur d'acc<63>s
(<acronym>FAI</acronym>), en m<>me temps que vous obtenez votre adresse IP,
votre <quote>resolver</quote> pour le Service des Noms de Domaines ou
<emphasis>Domain Name Service</emphasis>
(<acronym><acronym>DNS</acronym></acronym>) pour le firewall est configur<75>
automatiquement (c.a.d., le fichier <filename>/etc/resolv.conf</filename>
est mis <20> jour). Il arrive que votre fournisseur d'acc<63>s vous donne une
paire d'adresse <acronym><acronym>IP</acronym></acronym> pour les serveurs
<acronym><acronym>DNS</acronym></acronym> afin que vous configuriez
manuellement vos serveurs de noms primaire et secondaire. Quelle que soit
la mani<6E>re dont le <acronym>DNS</acronym> est configur<75> sur votre
firewall, il est de votre responsabilit<69> de configurer le
<quote>resolver</quote> sur chacun de vos syst<73>mes internes. Vous pouvez
proc<6F>der d'une de ces deux fa<66>ons :<itemizedlist spacing="compact">
<listitem>
<para>Vous pouvez configurer votre syst<73>me interne pour utiliser les
serveurs de noms de votre fournisseur d'acc<63>s. Si votre fournisseur
vous donne les adresses de ses serveurs ou si ces adresses sont
disponibles sur son site web, vous pouvez les utiliser pour
configurer vos syst<73>mes internes. Si cette information n' est pas
disponible, regardez dans <filename>/etc/resolv.conf</filename> sur
votre firewall -- les noms des serveurs sont donn<6E>s dans
l'enregistrement "<command>nameserver</command>" de ce
fichier.</para>
</listitem>
<listitem>
<para><anchor id="cachingdns" />Vous pouvez configurer un cache DNS
(<emphasis>Caching Name Server)</emphasis> sur votre firewall.
<trademark>Red Hat</trademark> fournit un
<acronym><acronym>RPM</acronym></acronym> pour serveur cache DNS (ce
<acronym>RPM</acronym> <20> aussi besoin aussi du paquetage<acronym>
RPM</acronym> <command>bind</command>) et pour les utilisateurs de
Bering, il y a le paquetage <command>dnscache.lrp</command>. Si vous
adoptez cette approche, vous configurez vos syst<73>mes internes pour
utiliser le firewall lui m<>me comme <20>tant le seul serveur de noms
primaire. Vous utilisez l'adresse <acronym>IP</acronym> interne du
firewall (<systemitem class="ipaddress">10.10.10.254</systemitem>
dans l'exemple pr<70>c<EFBFBD>dent) pour adresse du serveur de nom. Pour
permettre <20> vos syst<73>mes locaux d'acc<63>der <20> votre serveur cache DNS,
vous devez ouvrir le port 53 (<28> la fois <acronym>UDP</acronym> and
<acronym>TCP</acronym>) depuis le r<>seau local vers le firewall;
vous ferez ceci en ajoutant les r<>gles suivantes dans <filename
class="directory">/etc/shorewall/</filename><filename>rules</filename>.</para>
</listitem>
</itemizedlist></para>
<para>Si vous faites tourner le serveur de noms sur le firewall:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
DNS/ACCEPT loc $FW
DNS/ACCEPT dmz $FW </programlisting>
<para>Si vous faites tourner le serveur de noms sur l'ordinateur 1 de la
<acronym>DMZ</acronym>:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
DNS/ACCEPT loc dmz:10.10.11.1
DNS/ACCEPT $FW dmz:10.10.11.1 </programlisting>
<para>Dans la r<>gle ci-dessus, <quote>DNS/ACCEPT</quote> est un exemple
d'utilisation d'une macro pr<70>d<EFBFBD>finie. Shorewall comprend un certain nombre
de macros pr<70>d<EFBFBD>finies et vous pouvez <ulink url="Macros.html">ajouter les
v<>tres</ulink>. Vous pouvez trouver une liste des macros comprises dans
votre version de Shorewall en utilisant la commande <command>ls
<filename>/usr/share/shorewall/macro.*</filename></command> ou bien la
commande <command>shorewall show macros</command> si vous utilisez une
version 3.0.3 ou ult<6C>rieure de Shorewall.</para>
<para>Vous n'<27>tes pas oblig<69> d'utiliser des macros pr<70>d<EFBFBD>finies et vous
pouvez codez vos r<>gles vous-m<>me dans le fichier
<filename>/etc/shorewall/rules</filename>. Le premier exemple vu plus haut
(serveur de noms sur le firewall) aurait pu <20>tre cod<6F> comme suit:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
ACCEPT loc $FW tcp 53
ACCEPT loc $FW udp 53
ACCEPT dmz $FW tcp 53
ACCEPT dmz $FW udp 53 </programlisting>
<para>Au cas ou Shorewall n'inclue pas de macro pr<70>-d<>finie qui vous
convienne, vous pouvez d<>finir une macro vous-m<>me ou bien coder
directement les r<>gles appropri<72>es. Si vous ne savez pas quel port(s) et
protocole(s) une application particuli<6C>re utilise, vous pouvez regarder
<ulink url="ports.htm">ici</ulink>.</para>
</section>
<section id="Open">
<title>Autres Connexions</title>
<para>Les fichiers exemples inclus dans l'archive (three-interface)
contiennent la r<>gle suivante :<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
DNS/ACCEPT $FW net </programlisting>Cette r<>gle autorise l'acc<63>s
<acronym>DNS</acronym> <20> partir de votre firewall. Elle peut <20>tre enlev<65>e
si vous avez d<>-comment<6E> la ligne dans <filename
class="directory">/etc/shorewall/</filename><filename>policy</filename>
autorisant toutes les connexions depuis le firewall vers internet.</para>
<para>L'exemple inclue aussi: <programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
SSH/ACCEPT loc $FW
SSH/ACCEPT loc dmz </programlisting>Ces r<>gles autorisent un
serveur <acronym>SSH</acronym> sur votre firewall et sur chacun des
syst<73>mes de votre <acronym>DMZ</acronym> et permettent de s'y connecter
depuis vos syst<73>mes locaux (zone <quote>loc</quote>).</para>
<para>Si vous d<>sirez autoriser d'autres connexions entre vos syst<73>mes, la
syntaxe g<>n<EFBFBD>rale d'une macro pr<70>-d<>finie est:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
&lt;<emphasis>macro</emphasis>&gt;/ACCEPT <emphasis>&lt;source zone&gt; &lt;destination zone&gt;</emphasis></programlisting>
<para>La syntaxe g<>n<EFBFBD>rale lorsqu'on n'utilise pas de macro pr<70>-d<>finie
est:<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
ACCEPT <emphasis>&lt;source zone&gt; &lt;destination zone&gt; &lt;protocol&gt; &lt;port&gt; </emphasis></programlisting></para>
<example>
<title>Vous voulez rendre votre serveur DNS sur le firewall accessible
depuis internet</title>
<para>En utilisant une macro pr<70>-d<>finie:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
DNS/ACCEPT net $FW</programlisting>
<para>En n'utilisant pas de macro pr<70>-d<>finie:</para>
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
ACCEPT net $FW tcp 53
ACCEPT net $FW udp 53 </programlisting>
<para>Ces deux r<>gles viennent <20>videmment s'ajouter <20> celles pr<70>sent<6E>es
plus haut dans <quote><link linkend="cachingdns">Vous pouvez configurer
un cache DNS sur votre firewall</link></quote>.</para>
</example>
<para>Si vous ne savez pas quel port(s) et protocole(s) une application
particuli<6C>re utilise, vous pouvez regarder <ulink
url="ports.htm">ici</ulink>.</para>
<important>
<para>Je ne recommande pas d'autoriser <command>telnet</command> vers/de
internet parce qu'il utilise du texte en clair (m<>me pour le login !).
Si vous voulez un acc<63>s shell <20> votre firewall, utilisez <acronym>SSH
:</acronym><programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
SSH/ACCEPT net $FW</programlisting></para>
</important>
<para><inlinegraphic fileref="images/leaflogo.gif" format="GIF" /> Les
utilisateurs de Bering pourront ajouter les deux r<>gles suivantes pour
<20>tre compatible avec la configuration du firewall de Jacques (Jacques's
Shorewall configuration).<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
ACCEPT loc $FW udp 53
ACCEPT net $FW tcp 80 </programlisting><itemizedlist>
<listitem>
<para>L'entr<74>e 1 autorise l'utilisation du Cache DNS.</para>
</listitem>
<listitem>
<para>L'entr<74>e 2 autorise le <quote>weblet</quote> <20>
fonctionner.</para>
</listitem>
</itemizedlist><inlinegraphic fileref="images/BD21298_.gif"
format="GIF" /></para>
<para>Maintenant, <20>ditez votre fichier de configuration <filename
class="directory">/etc/shorewall/</filename><filename>rules</filename>
pour ajouter, modifier ou supprimer d'autres connexions suivant vos
besoins.</para>
</section>
<section>
<title>Quelques Points <20> Garder en M<>moire</title>
<itemizedlist>
<listitem>
<para><emphasis role="bold">Vous ne pouvez pas tester votre firewall
depuis l'int<6E>rieur de votre r<>seau</emphasis>. Envoyer des requ<71>tes <20>
l'adresse IP externe de votre firewall ne signifie pas qu'elle seront
associ<63>es <20> votre interface externe ou <20> la zone <quote>net</quote>.
Tout trafic g<>n<EFBFBD>r<EFBFBD> par le r<>seau local sera associ<63> <20> l'interface
locale et sera trait<69> comme du trafic du r<>seau local vers le firewall
(loc-&gt;fw).</para>
</listitem>
<listitem>
<para><emphasis role="bold">Les adresses IP sont des propri<72>t<EFBFBD>s des
syst<73>mes, pas des interfaces</emphasis>. C'est une erreur de croire
que votre firewall est capable de faire suivre
(<emphasis>forward</emphasis>) des paquets simplement parce que vous
pouvez faire un <command>ping</command> sur l'adresse IP de toutes les
interfaces du firewall depuis le r<>seau local. La seule conclusion que
vous puissiez tirer dans ce cas est que le lien entre le r<>seau local
et le firewall fonctionne et que vous avez probablement la bonne
adresse de passerelle par d<>faut sur votre syst<73>me.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Toutes les adresses IP configur<75>es sur le
firewall sont dans la zone $FW (fw)</emphasis>. Si 192.168.1.254 est
l'adresse IP de votre interface interne, alors vous pouvez <20>crire
<quote><emphasis role="bold">$FW:192.168.1.254</emphasis></quote> dans
une r<>gle mais vous ne devez pas <20>crire <quote><emphasis
role="bold">loc:192.168.1.254</emphasis></quote>. C'est aussi une
absurdit<69> d'ajouter 192.168.1.254 <20> la zone <emphasis
role="bold">loc</emphasis> en utilisant une entr<74>e dans
<filename>/etc/shorewall/hosts</filename>.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Les paquets de retour (reply) ne suivent
PAS automatiquement le chemin inverse de la requ<71>te
d'origine</emphasis>. Tous les paquets sont rout<75>s en se r<>f<EFBFBD>rant <20> la
table de routage respective de chaque h<>te <20> chaque <20>tape du trajet.
Ce probl<62>me se produit en g<>n<EFBFBD>ral lorsque on installe un firewall
Shorewall en parall<6C>le <20> une passerelle existante et qu'on essaye
d'utiliser des r<>gles <acronym>DNAT</acronym> dans Shorewall sans
changer la passerelle par d<>faut sur les syst<73>mes recevant les
requ<71>tes transf<73>r<EFBFBD>es (forwarded). Les requ<71>tes passent dans le
firewall Shorewall o<> l'adresse de destination IP est r<><72>crite, mais
la r<>ponse revient par l'ancienne passerelle qui, elle, ne modifiera
pas le paquet.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Shorewall lui-m<>me n'a aucune notion du
dedans et du dehors</emphasis>. Ces concepts d<>pendent de la fa<66>on
dont Shorewall est configur<75>.</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>D<EFBFBD>marrer et Arr<72>ter Votre Firewall</title>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>La <ulink url="Install_fr.html">proc<EFBFBD>dure d'installation</ulink>
configure votre syst<73>me pour lancer Shorewall d<>s le boot du syst<73>me, mais
le lancement est d<>sactiv<69>, de fa<66>on <20> ce que votre syst<73>me ne tente pas
de lancer Shorewall avant que la configuration ne soit termin<69>e. Une fois
que vous en avez fini avec la configuration du firewall, vous devez <20>diter
/etc/shorewall/shorewall.conf et y mettre STARTUP_ENABLED=Yes.<important>
<para>Les utilisateurs des paquetages .deb doivent <20>diter <filename
class="directory">/etc/default/</filename><filename>shorewall</filename>
et mettre <varname>startup=1</varname>.</para>
</important></para>
<para>Le firewall est activ<69> en utilisant la commande
<quote><command>shorewall start</command></quote> et arr<72>t<EFBFBD> avec la
commande <quote><command>shorewall stop</command></quote>. Lorsque le
firewall est arr<72>t<EFBFBD>, le routage est autoris<69> sur les h<>tes qui poss<73>dent
une entr<74>e dans <filename class="directory"><ulink
url="Documentation.htm#Routestopped">/etc/shorewall/routestopped</ulink></filename>.
Un firewall qui tourne peut <20>tre relanc<6E> en utilisant la commande
<quote><command>shorewall restart</command></quote>. Si vous voulez
enlever toute trace de Shorewall sur votre configuration de Netfilter,
utilisez <quote><emphasis role="bold">shorewall
clear</emphasis></quote></para>
<para><inlinegraphic fileref="images/BD21298_.gif" format="GIF" /></para>
<para>Les fichiers de l'exemple Firewall <20> Trois Interfaces
(three-interface) supposent que vous voulez autoriser le routage depuis ou
vers <filename class="devicefile">eth1</filename> (votre r<>seau local) et
<filename class="devicefile">eth2</filename> (votre DMZ) lorsque Shorewall
est arr<72>t<EFBFBD>. Si ces interfaces ne sont pas connect<63>es <20> votre r<>seau local
ou <20> votre DMZ, ou bien que vous voulez permettre l'acc<63>s depuis ou vers
d'autres h<>tes, modifiez <filename
class="directory">/etc/shorewall/</filename><filename><ulink
url="Documentation.htm#Routestopped">routestopped</ulink></filename> en
cons<6E>quence. <warning>
<para>Si vous <20>tes connect<63> <20> votre firewall depuis internet,
n'essayez pas d'ex<65>cuter une commande <quote><command>shorewall
stop</command></quote> tant que vous n'avez pas ajout<75> une entr<74>e dans
<filename><filename
class="directory">/etc/shorewall/</filename><filename>routestopped</filename></filename>
pour l'adresse IP <20> partir de laquelle vous <20>tes connect<63> . De la m<>me
mani<6E>re, je vous d<>conseille d'utiliser <quote><command>shorewall
restart</command></quote>; il est plus int<6E>ressant de cr<63>er <ulink
url="configuration_file_basics.htm#Configs">une configuration
alternative</ulink> et de la tester en utilisant la commande
<quote><ulink url="starting_and_stopping_shorewall.htm">shorewall
try</ulink></quote></para>
</warning></para>
</section>
<section>
<title>Si cela ne marche pas</title>
<itemizedlist>
<listitem>
<para>V<EFBFBD>rifiez <20> nouveau chacun des points rep<65>r<EFBFBD>s par un fl<66>che
rouge.</para>
</listitem>
<listitem>
<para>V<EFBFBD>rifiez vos <ulink
url="shorewall_logging.html">journaux</ulink>.</para>
</listitem>
<listitem>
<para>V<EFBFBD>rifiez le <ulink url="troubleshoot.htm">Troubleshooting
Guide</ulink>.</para>
</listitem>
<listitem>
<para>V<EFBFBD>rifiez la <ulink url="FAQ_fr.html">FAQ</ulink>.</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>Autres Lectures Recommand<6E>es</title>
<para>Je vous recommande vivement de lire la <ulink
url="configuration_file_basics.htm">page des Fonctionnalit<69>s G<>n<EFBFBD>rales des
Fichiers de Configuration</ulink> -- elle contient des astuces sur des
possibilit<69>s de Shorewall qui peuvent rendre plus ais<69>e l'administration
de votre firewall Shorewall.</para>
</section>
</article>