shorewall_code/STABLE/documentation/shorewall_setup_guide_fr.htm

2525 lines
98 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252">
<title>Shorewall Setup Guide</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0"
style="border-collapse: collapse;" bordercolor="#111111" width="100%"
id="AutoNumber1" bgcolor="#3366ff" height="90">
<tbody>
<tr>
<td width="100%">
<h1 align="center"><font color="#ffffff">Guide de Configuration
de Shorewall<br>
</font></h1>
</td>
</tr>
</tbody>
</table>
<br>
Note du traducteur : <br>
Je remercie <font size="2">l'<27>quipe Shorewall,&nbsp; pour ce firewall
formidable et l'aide personnelle que m'a donn<6E> </font><font size="2">Tom
Eastep.</font><br>
J'esp<73>re que cette traduction vous aidera <20> utiliser efficacement ce
firewall.<br>
Toutefois, si ce manuel comporte des lacunes, des incoh<6F>rences ou afin
d'am<61>liorer sa compr<70>hension, <br>
n'h<>sitez pas <20> me contacter <a href="mailto:fd03x@wanadoo.fr">fabien
demassieux</a>
<p><a href="#Introduction">1.0 Introduction</a><br>
<a href="#Concepts">2.0 Concepts de </a><a
href="file:///home/fab/Traduction/shorewall_setup_guide.htm#Concepts">Shorewall</a><br>
<a href="#Interfaces">3.0 Interfaces R<>seaux</a><br>
<a href="#Addressing">4.0 Adresses, Sous/R<>seaux et Routage</a></p>
<blockquote>
<p><a href="#Addresses">4.1 Adresses IP</a><br>
<a href="#Subnets">4.2 Sous-r<>seaux</a><br>
<a href="#Routing">4.3 Routage</a><br>
<a href="#ARP">4.4 Protocole de R<>solution d'Adresses (ARP)</a><br>
<a href="#RFC1918">4.5 RFC 1918</a></p>
</blockquote>
<p><a href="#Options">5.0 Configurer votre R<>seau</a></p>
<blockquote>
<p><a href="#Routed">5.1 Rout<75></a><br>
<a href="#NonRouted">5.2 Non-rout<75></a></p>
<blockquote>
<p><a href="#SNAT">5.2.1 SNAT</a><br>
<a href="#DNAT">5.2.2 DNAT</a><br>
<a href="#ProxyARP">5.2.3 Proxy ARP</a><br>
<a href="#NAT">5.2.4 Static NAT</a></p>
</blockquote>
<p><a href="#Rules">5.3 R<>gles</a><br>
<a href="#OddsAndEnds">5.4 D'autres petites choses<br>
</a></p>
</blockquote>
<p><a href="#DNS">6.0 DNS</a><br>
<a href="#StartingAndStopping">7.0 D<>marrer et Arr<72>ter le firewall</a></p>
<h2><a name="Introduction"></a>1.0 Introduction</h2>
<p>Ce guide est destin<69> aux utilisateurs qui configurent Shorewall dans
un environnement ou un ensemble d'adresses IP publiques doivent <20>tre
prises en compte ou <20> ceux qui souhaitent en savoir plus <20> propos de
Shorewall que ce que contient le guide pour une utilisation <a
href="http://shorewall.net/standalone_fr.html">Simple Adresse</a>.
Parce que le champ d'utilisation est si <20>lev<65>, le guide vous donnera
les
indications g<>n<EFBFBD>rales <20> suivre et vous renseignera sur d'autres
ressources si n<>cessaire.</p>
<p><img style="border: 0px solid ; width: 60px; height: 60px;"
src="images/j0213519.gif" title="" alt=""> &nbsp;&nbsp;&nbsp; Si vous
utilisez LEAF
Bering, votre configuration Shorewall n'est PAS&nbsp; ce que je publie
-- Je sugg<67>re de prendre en consid<69>ration l'installation de Shorewall
LPR disponible sur le site de shorewall.net avant de poursuivre.</p>
<p>Shorewall n<>cessite que le package iproute/iproute2 soit install<6C>
(sur RedHat, le package s'appelle <i>iproute</i>)<i>. </i>Vous pouvez
voir si le package est install<6C> gr<67>ce au programme <b>ip</b> sur votre
syst<EFBFBD>me firewall. En tant que root, vous pouvez utiliser la commande
'which' pour v<>rifier que le programme est pr<70>sent:</p>
<pre> [root@gateway root]# which ip<br> /sbin/ip<br> [root@gateway root]#</pre>
<p>Je vous recommande de parcourir en premier le guide pour vous
familiariser avec ce que cela implique puis de le reprendre afin de
modifier votre configuration. Les Points de configuration <20> changer
sont
pr<EFBFBD>c<EFBFBD>d<EFBFBD>s du symbole <img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_.gif" title="" alt=""> .</p>
<p><img style="border: 0px solid ; width: 60px; height: 60px;"
src="images/j0213519.gif" title="" alt=""> &nbsp;&nbsp;&nbsp; Si vous
<EFBFBD>ditez vos fichiers
de configuration sous un syst<73>me d'exploitation Windows, vous devez
sauvegarder ceux-ci en tant que fichiers format<61>s Unix si votre <20>diteur
le permet ou utiliser la commande dos2unix avant de les utiliser avec
Shorewall. Idem si vous transf<73>rez vos fichiers par l'interm<72>diaire du
lecteur de disquette de Windows.</p>
<ul>
<li><a href="http://www.simtel.net/pub/pd/51438.html">Version Windows
de dos2unix</a></li>
<li><a href="http://www.megaloman.com/%7Ehany/software/hd2u/">Version
Linux de dos2unix</a></li>
</ul>
<h2 align="left"><a name="Concepts"></a>2.0 Concepts de Shorewall <br>
</h2>
<p>Les fichiers de configuration de Shorewall se trouvent dans le
r<EFBFBD>pertoire /etc/shorewall -- pour la plus par des param<61>trages, vous
avez juste besoin de quelques-uns d'entre eux comme cela est d<>crit
dans
le&nbsp; manuel. Des squelettes de fichiers sont cr<63><72>s durant <a
href="Install.htm">La proc<6F>dure d'installation de
Shorewall</a>.</p>
<p>Comme chaque fichier est abord<72>, je vous sugg<67>re de regarder celui
de votre syst<73>me -- chaque fichier contient des instructions d<>taill<6C>es
de configuration et d'autres des entr<74>es par d<>faut.</p>
<p>Shorewall voit le r<>seau ou il op<6F>re comme compos<6F> d'un ensemble de <i>zones.</i>
Dans la configuration par d<>faut, les zones suivantes sont utilis<69>es:</p>
<table border="0" style="border-collapse: collapse;" cellpadding="3"
cellspacing="0" id="AutoNumber2">
<tbody>
<tr>
<td><u><b>Nom</b></u></td>
<td><u><b>Description</b></u></td>
</tr>
<tr>
<td><b>net</b></td>
<td><b>L'Internet</b></td>
</tr>
<tr>
<td><b>loc</b></td>
<td><b>Votre r<>seau local<br>
</b></td>
</tr>
<tr>
<td><b>dmz</b></td>
<td><b>Zone D<>militaris<69>e<br>
</b></td>
</tr>
</tbody>
</table>
<p>Les<span style="font-style: italic;"> Zones</span> sont d<>finies
dans
le fichier <a href="Documentation.htm#Zones">
/etc/shorewall/zones</a>.</p>
<p>Shorewall reconna<6E>t aussi le syst<73>me firewall comme sa propre zone -
par d<>faut, le firewall lui-m<>me est connu sous le nom <b>fw</b>
cela peut <20>tre modifi<66> dans le fichier <a
href="Documentation.htm#Configs">/etc/shorewall/shorewall.conf</a>
. Dans ce guide, le nom par d<>faut (<b>fw</b>) sera utilis<69>.<br>
</p>
<p>Mise <20> par <b>fw</b>, Shorewall n'attache aucune importance au nom
des zones. Les Zones sont enti<74>rement ce que VOUS en faites. Cela veut
dire que vous ne devez pas vous attendre <20> ce que Shorewall fasse
quelque chose de sp<73>cial "car il s'agit de la zone Internet" ou "car
c'est la zone DMZ".</p>
<p><img style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_.gif" title="" alt=""> &nbsp;&nbsp;&nbsp; Editez
le fichier
/etc/shorewall/zones et faites tout changement qui s'impose.</p>
<p>Les R<>gles qui concernent le trafic <20> autoriser ou <20> refuser sous
exprim<EFBFBD>s en terme de Zones.</p>
<ul>
<li>Vous d<>signez les Polices par d<>faut entre une zone et une autre
dans le fichier<a href="Documentation.htm#Policy">
/etc/shorewall/policy</a>.</li>
<li>Vous d<>finissez les exceptions <20> ces Polices par d<>faut dans le
fichier <a href="Documentation.htm#Rules">/etc/shorewall/rules</a>.</li>
</ul>
<p> Shorewall est construit sur les possibilit<69>s du noyau (kernel) <a
href="http://www.netfilter.org/">Netfilter</a>. Netfilter impl<70>mente
une <a
href="http://www.cs.princeton.edu/%7Ejns/security/iptables/iptables_conntrack.html">fonction
de tracking</a> qui autorise ce qui est souvent d<>sign<67> comme une&nbsp;<i>
inspection d<>clar<61>e </i>de paquets. Les propri<72>t<EFBFBD>s de <span
style="font-style: italic;">d<>claration</span> permettent au firewall
d'<27>tre d<>finie en terme de <i>connexions</i> plut<75>t qu'en terme de
paquet. Avec Shorewall, vous:</p>
<ol>
<li> Identifiez la zone source.</li>
<li> Identifiez la zone destination.</li>
<li> Si la POLICE de la zone client vers la zone client est ce que
vous souhaitez pour cette paire client/serveur, vous n'avez besoin de
rien de plus.</li>
<li>Si la POLICE n'est pas ce que vous souhaitez, alors vous devez
ajouter une r<>gle. Cette r<>gle est exprim<69> en terme de zone client et
de zone serveur.</li>
</ol>
<p>Si les connexions d'un certain type sont autoris<69>s de la zone A au
firewall et sont aussi autoris<69>s du firewall <20> la zone B cela&nbsp; <font
color="#ff6633"><b><u>NE VEUT PAS dire que ces connections sont
autoris<EFBFBD>s de la zone A <20> la zone B</u></b></font>. Cela veut plut<75>t
dire que vous avez un proxy qui tourne sur le firewall qui accepte les
connections de la zone A et qui ensuite <20>tablit ces propres connections
du firewall <20>&nbsp; la zone B.</p>
<p>Pour chaque requ<71>te de connexion sur le firewall, la requ<71>te est
d'abord <20>valu<6C> <20> travers le fichier /etc/shorewall/rules file. Si
aucune
r<EFBFBD>gle dans ce fichier ne correspond, la connexion interroge ensuite la
premi<EFBFBD>re police dans /etc/shorewall/policy qui correspond <20> la
requ<EFBFBD>te et l'applique. Si cette police est REJECT ou DROP, la
requ<EFBFBD>te est a nouveau <20>valu<6C>e <20> travers les r<>gles du fichier
/etc/shorewall/common.def.</p>
<p>Le fichier de d<>faut /etc/shorewall/policy a les polices suivantes:</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber3">
<tbody>
<tr>
<td><u><b>Zone Source<br>
</b></u></td>
<td><u><b>Zone Destination<br>
</b></u></td>
<td><u><b>Police</b></u></td>
<td><u><b>Niveau de Log</b></u></td>
<td><u><b>Limit:Burst</b></u></td>
</tr>
<tr>
<td>loc</td>
<td>net</td>
<td>ACCEPT</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>net</td>
<td>all</td>
<td>DROP</td>
<td>info</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>all</td>
<td>all</td>
<td>REJECT</td>
<td>info</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
<p>La police pr<70>c<EFBFBD>dente:</p>
<ol>
<li>Permet toutes les connexions de votre r<>seau local vers Internet,</li>
<li>Drop (ignore) toutes les connexions d'Internet vers le firewall
ou votre r<>seau local et g<>n<EFBFBD>re un message au niveau <i>info</i> (<a
href="shorewall_logging.html">ici</a> se trouve la
description des niveaux de log).</li>
<li>Rejette toutes les autres connexions et g<>n<EFBFBD>re un message au
niveau <i>info</i>. Quant la requ<71>te est rejet<65>, le firewall retourne
un RST (si le protocole est TCP) ou un ICMP port-unreachable paquet
pour
les autres protocoles.</li>
</ol>
<p><img style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_.gif" title="" alt=""> &nbsp;&nbsp;&nbsp;
Maintenant, <20>ditez votre
/etc/shorewall/policy et apportez tous les changements que vous
souhaitez.</p>
<h2 align="left"><a name="Interfaces"></a>3.0 Interfaces R<>seau</h2>
<p align="left">Pour le reste de ce guide, nous utiliserons le sch<63>ma
ci-dessous. Bien qu'il ne puisse correspondre <20> votre propre r<>seau, il
peut <20>tre utilis<69> pour illustrer les aspects importants de la
configuration de Shorewall.</p>
<p align="left">Sur ce sch<63>ma:</p>
<ul>
<li>La zone DMZ est compos<6F>e des syst<73>mes DMZ 1 et DMZ 2. Une DMZ est
utilis<EFBFBD>e pour isoler vos serveurs accessibles depuis Internet de vos
syst<EFBFBD>mes locaux. Ainsi si un de ces serveurs est compromis, vous avez
encore votre firewall entre le syst<73>me compromis et vos syst<73>mes locaux.</li>
<li>La zone Local est compos<6F>e des syst<73>mes Local 1, Local 2 et Local
3. </li>
<li>Tous les syst<73>mes du FAI vers l'ext<78>rieur et qui <br>
</li>
<li>englobe la Zone Internet. </li>
</ul>
<p align="center"> <img
style="border: 0px solid ; width: 692px; height: 635px;"
src="images/dmz3.png" title="" alt=""> </p>
<p align="left">La fa<66>on la plus simple pour d<>finir les zones est
d'associer le nom de la zone (d<>finie pr<70>c<EFBFBD>demment dans&nbsp;
/etc/shorewall/zones) avec une interface r<>seau. <br>
C'est fait dans le fichier <a href="Documentation.htm#Interfaces">/etc/shorewall/interfaces</a>.</p>
<p align="left">Le firewall illustr<74> ci-dessus <20> trois interfaces. Si
la connexion se fait <20> travers un c<>ble ou un "modem" DSL , l'<i>Interface</i><i>
Externe</i> sera l'adaptateur qui est branch<63> au "Modem" (e.g., <b>eth0</b>)&nbsp;<u>tant</u>
que vous ne vous n'utilisez pas le <i><u>P</u>oint-to-<u>P</u>oint <u>P</u>rotocol
over <u>E</u>thernet</i> (PPPoE) ou le <i><u>P</u>oint-to-<u>P</u>oint<u>T</u>unneling<u>P</u>rotocol</i>(PPTP)
dans ce cas l'Interface Externe sera de type ppp (e.g., <b>ppp0</b>).
Si vous vous connectez <20> travers un modem classique, votre Interface
Externe sera <20>galement <b>ppp0</b>. Si vous utilisez ISDN, votre
Interface Externe sera <b>ippp0.</b></p>
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_1.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; Si votre Interface Externe est&nbsp; <b>ppp0</b> ou
<b>ippp0</b>
alors vous pouvez fixer CLAMPMSS=yes dans <a
href="Documentation.htm#Conf">
/etc/shorewall/shorewall.conf.</a></p>
<p align="left">Votre <i>Interface</i> <span
style="font-style: italic;">Locale</span> doit <20>tre un adaptateur
Ethernet&nbsp; (eth0, eth1 or eth2) et doit <20>tre connect<63> <20> un hub ou
un
switch. Vos ordinateurs locaux doivent <20>tre&nbsp; connect<63>s au m<>me
switch (note: Si vous avez une machine unique, vous pouvez connecter le
firewall directement <20> l'ordinateur en utilisant un c<>ble <span
style="font-style: italic;">crois<69></span>).</p>
<p align="left">Votre <i>Interface </i><i>DMZ&nbsp;</i> doit aussi
<EFBFBD>tre un adaptateur Ethernet (eth0, eth1 or eth2) et doit <20>tre connect<63>
<EFBFBD> un hub ou un switch. Vos ordinateurs DMZ doivent <20>tre&nbsp;
connect<EFBFBD>s au m<>me switch (note: Si vous avez une machine DMZ unique,
vous pouvez connecter le firewall directement <20> l'ordinateur en
utilisant un c<>ble <span style="font-style: italic;">crois<EFBFBD></span>).</p>
<p align="left"><u><b> <img
style="border: 0px solid ; width: 60px; height: 60px;"
src="images/j0213519.gif" title="" alt=""> </b></u>Ne
pas connecter plus d'une interface au m<>me hub ou switch (sauf pour
tester). Cela ne fonctionne pas comme vous pourriez vous y attendre et
vous terminerez confus en croyant que le r<>seau ne fonctionne pas
enti<EFBFBD>rement.<br>
</p>
<p align="left">Pour le besoin de ce Guide, nous d<>cidons que:</p>
<ul>
<li>
<p align="left">L'interface externe est <b>eth0</b>.</p>
</li>
<li>
<p align="left">L'interface locale est <b>eth1</b>.</p>
</li>
<li>
<p align="left">L'interface DMZ est <b>eth2</b>.</p>
</li>
</ul>
<p align="left">La configuration par d<>faut de Shorewall ne d<>finit pas
le contenu de chaque zone. Pour d<>finir la pr<70>c<EFBFBD>dente configuration en
utilisant le fichier <br>
/etc/shorewall/interfaces file, ce fichier doit contenir:</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber4">
<tbody>
<tr>
<td><u><b>Zone</b></u></td>
<td><u><b>Interface</b></u></td>
<td><u><b>Broadcast</b></u></td>
<td><u><b>Options</b></u></td>
</tr>
<tr>
<td>net</td>
<td>eth0</td>
<td>detect</td>
<td>norfc1918</td>
</tr>
<tr>
<td>loc</td>
<td>eth1</td>
<td>detect</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>dmz</td>
<td>eth2</td>
<td>detect</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; Editer le fichier /etc/shorewall/interfaces et
d<EFBFBD>finissez les interfaces du r<>seau sur votre firewall et associez
chaque interface avec une zone. Si vous avez une zone qui est
interfac<EFBFBD>e
avec plus d'une interface, incluez simplement une entr<74>e pour chaque
interface et r<>p<EFBFBD>ter le nom de&nbsp; zone autant de fois que n<>cessaire.</p>
<p align="left">Exemple:</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber4">
<tbody>
<tr>
<td><u><b>Zone</b></u></td>
<td><u><b>Interface</b></u></td>
<td><u><b>Broadcast</b></u></td>
<td><u><b>Options</b></u></td>
</tr>
<tr>
<td>net</td>
<td>eth0</td>
<td>detect</td>
<td>norfc1918</td>
</tr>
<tr>
<td>loc</td>
<td>eth1</td>
<td>detect</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>loc</td>
<td>eth2</td>
<td>detect</td>
<td>dhcp</td>
</tr>
</tbody>
</table>
</blockquote>
<div align="left">
<p align="left">Si vous avez plus d'une interface pour une zone, vous
voudrez probablement une police qui permet le trafic intra-zone:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber3">
<tbody>
<tr>
<td><u><b>Source Zone</b></u></td>
<td><u><b>Destination Zone</b></u></td>
<td><u><b>Policy</b></u></td>
<td><u><b>Log Level</b></u></td>
<td><u><b>Limit:Burst</b></u></td>
</tr>
<tr>
<td>loc</td>
<td>loc</td>
<td>ACCEPT</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; Vous pouvez d<>finir des zones plus compliqu<71>es en
utilisant le fichier <a href="Documentation.htm#Hosts">/etc/shorewall/hosts</a>
mais dans la plus part des cas, ce n'est pas n<>cessaire.</p>
<h2 align="left"><a name="Addressing"></a>4.0 Adressage, Sous-r<>seaux
et Routage</h2>
<p align="left">Normalement, votre FAI vous assigne des adresses<i>
Publiques</i>. Vous pouvez configurer l'interface externe du firewall
en utilisant l'une de ces adresses permanentes et vous pouvez d<>cider
comment utiliser le reste de vos adresses.</p>
<p align="left">Si vous <20>tes d<>j<EFBFBD> familier avec l'adressage IP et le
routage, vous pouvez aller <a href="#Options"><EFBFBD> la prochaine section</a>.</p>
<p align="left">La discussion suivante aborde tout juste les concepts
d'adressage et de routage. Si vous souhaitez approfondir vos
connaissances sur ce sujet, je vous recommande vivement l'ouvrage&nbsp;
<i>"IP
Fundamentals: What Everyone Needs to Know about Addressing &amp;
Routing",</i> Thomas A. Maufer, Prentice-Hall, 1999, ISBN 0-13-975483-0.</p>
<h3 align="left"><a name="Addresses"></a>4.1 Adressage IP<br>
</h3>
<p align="left">L'adressage IP version 4 (<i>IPv4) </i>est cod<6F> sur
32-bit. La notation w.x.y.z se r<>f<EFBFBD>re <20> une adresse dont le byte
d'ordre
sup<EFBFBD>rieur est "w", le suivant <20> pour valeur "x", etc. Si nous prenons
l'adresse 192.0.2.14 et l'exprimons en hexad<61>cimal, nous obtenons:</p>
<blockquote>
<p align="left">C0.00.02.0E</p>
</blockquote>
<p align="left">ou l'exprimons comme un entier de 32-bit</p>
<blockquote>
<p align="left">C000020E</p>
</blockquote>
<h3 align="left"><a name="Subnets"></a>4.2 Sous -r<>seaux<br>
</h3>
<p align="left">Vous entendrez toujours les termes "r<>seaux de Class
A", "r<>seaux de Class B" et "r<>seaux de Class C". Au d<>but de
l'existence de l'IP, les r<>seaux ne comportez que trois tailles (il y
avait aussi le r<>seau de Class D mais il <20>taient utilis<69>s diff<66>remment):</p>
<blockquote>
<p align="left">Classe A - masque r<>seau 255.0.0.0, taille = 2 ** 24</p>
<p align="left">Classe B - masque r<>seau 255.255.0.0, taille = 2 ** 16</p>
<p align="left">Classe C - masque r<>seau 255.255.255.0, taille = 256</p>
</blockquote>
<p align="left">La taille d'un r<>seau <20>tait uniquement d<>termin<69> par la
valeur du byte de l'ordre sup<75>rieur, ainsi vous pouviez regarder une
adresse IP et d<>terminer imm<6D>diatement le <span
style="font-style: italic;">masque r<>seau</span>. Le masque r<>seau est
un nombre qui se termine logiquement avec une adresse qui isole le <span
style="font-style: italic;">num<75>ro de r<>seau</span>; le reste de
l'adresse est le <i>num<EFBFBD>ro d'h<>te</i>. Par exemple, dans la Classe C
l'adresse 192.0.2.14, le num<75>ro hexad<61>cimal du r<>seau est C00002 et le
num<EFBFBD>ro hexad<61>cimal d'h<>te est 0E.</p>
<p align="left">Comme l'Internet se d<>veloppait, il semblait clair que
la classification en adressage 32-bit allait devenir tr<74>s limit<69>
(rapidement, les grandes soci<63>t<EFBFBD>s et les universit<69>s s'<27>taient assign<67>
leur propre r<>seau de classe A!). Apr<70>s quelques faux d<>parts, la
technique courante du <span style="font-style: italic;">sous-adressage
</span>de
ces r<>seaux en plus petits <span style="font-style: italic;">sous-r<>seaux</span>&nbsp;
<EFBFBD>volua; cette technique est consign<67>e par le <i>Classless Inter Domain
Routing</i> (CIDR). Aujourd'hui, tous les syst<73>mes avec lesquels vous
travaillerez&nbsp; comprennent probablement la notation CIDR. Le r<>seau
bas<EFBFBD> sur les Classes est du domaine du pass<73> .</p>
<p align="left">Un sous-r<>seau (aussi appel<65> <i>subnetwork </i>et <i>subnet)</i>
est un ensemble d'adresses IP tel que:</p>
<ol>
<li>
<p align="left">Le nombre d'adresses dans le jeu est un multiple de
2; et</p>
</li>
<li>
<p align="left">La premi<6D>re adresse dans le jeu est un multiple de
la taille du jeu.</p>
</li>
<li>
<p align="left">La premi<6D>re adresse du sous-r<>seau est r<>serv<72>e et
se r<>f<EFBFBD>re <20> l'<i>adresse du sous-r<>seau.</i></p>
</li>
<li>
<p align="left">La derni<6E>re adresse du sous-r<>seau est r<>serv<72>e
comme <i>adresse broadcast du sous-r<>seau.</i></p>
</li>
</ol>
<p align="left">Comme vous pouvez voir dans cette d<>finition, dans
chacun des sous-r<>seau de taille <b>n</b> il y a (<b>n</b> - 2)
adresses
utilisables (adresses qui peuvent <20>tre assign<67>es aux h<>tes). La
premi<EFBFBD>re
et la derni<6E>re adresse du sous-r<>seau sont respectivement utilis<69>es
pour
l'adresse du sous-r<>seau et de l'adresse broadcast du sous-r<>seau. En
cons<EFBFBD>quence, les petits r<>seaux sont plus gaspilleur d'adresses IP que
les grands.</p>
<p align="left">Comme <b>n</b> est un multiple de deux, nous pouvons
facilement calculer le <span style="font-style: italic;">Logarithme
Naturel</span>&nbsp; (<b>log2</b>) de <b>n</b>. Pour les sous-r<>seaux
les plus communs, la taille et son logarithme naturel sont donn<6E>s dans
la table suivante:</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber5">
<tbody>
<tr>
<td><u><b>n</b></u></td>
<td><u><b>log2 n</b></u></td>
<td><u><b>(32 - log2 n)</b></u></td>
</tr>
<tr>
<td>8</td>
<td>3</td>
<td>29</td>
</tr>
<tr>
<td>16</td>
<td>4</td>
<td>28</td>
</tr>
<tr>
<td>32</td>
<td>5</td>
<td>27</td>
</tr>
<tr>
<td>64</td>
<td>6</td>
<td>26</td>
</tr>
<tr>
<td>128</td>
<td>7</td>
<td>25</td>
</tr>
<tr>
<td>256</td>
<td>8</td>
<td>24</td>
</tr>
<tr>
<td>512</td>
<td>9</td>
<td>23</td>
</tr>
<tr>
<td>1024</td>
<td>10</td>
<td>22</td>
</tr>
<tr>
<td>2048</td>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>4096</td>
<td>12</td>
<td>20</td>
</tr>
<tr>
<td>8192</td>
<td>13</td>
<td>19</td>
</tr>
<tr>
<td>16384</td>
<td>14</td>
<td>18</td>
</tr>
<tr>
<td>32768</td>
<td>15</td>
<td>17</td>
</tr>
<tr>
<td>65536</td>
<td>16</td>
<td>16</td>
</tr>
</tbody>
</table>
</blockquote>
<p align="left">Vous pourrez voir que la table ci-dessus contient aussi
une colonne (32 - log2 <b>n</b>). Ce nombre est la <span
style="font-style: italic;">Variable de Longueur&nbsp; du Masque de
Sous-r<>seau </span>(VLSM <i>Variable Length Subnet Mask) </i>pour
un r<>seau de taille <span style="font-weight: bold;">n</span>. De la
table ci-dessus, nous pouvons d<>river celle-ci, ce qui est plus facile
<EFBFBD>
utiliser.</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber5">
<tbody>
<tr>
<td><u><b>Taille du sous-r<>seau<br>
</b></u></td>
<td><u><b>VLSM</b></u></td>
<td><u><b>Masque sous-r<>seau<br>
</b></u></td>
</tr>
<tr>
<td>8</td>
<td>/29</td>
<td>255.255.255.248</td>
</tr>
<tr>
<td>16</td>
<td>/28</td>
<td>255.255.255.240</td>
</tr>
<tr>
<td>32</td>
<td>/27</td>
<td>255.255.255.224</td>
</tr>
<tr>
<td>64</td>
<td>/26</td>
<td>255.255.255.192</td>
</tr>
<tr>
<td>128</td>
<td>/25</td>
<td>255.255.255.128</td>
</tr>
<tr>
<td>256</td>
<td>/24</td>
<td>255.255.255.0</td>
</tr>
<tr>
<td>512</td>
<td>/23</td>
<td>255.255.254.0</td>
</tr>
<tr>
<td>1024</td>
<td>/22</td>
<td>255.255.252.0</td>
</tr>
<tr>
<td>2048</td>
<td>/21</td>
<td>255.255.248.0</td>
</tr>
<tr>
<td>4096</td>
<td>/20</td>
<td>255.255.240.0</td>
</tr>
<tr>
<td>8192</td>
<td>/19</td>
<td>255.255.224.0</td>
</tr>
<tr>
<td>16384</td>
<td>/18</td>
<td>255.255.192.0</td>
</tr>
<tr>
<td>32768</td>
<td>/17</td>
<td>255.255.128.0</td>
</tr>
<tr>
<td>65536</td>
<td>/16</td>
<td>255.255.0.0</td>
</tr>
<tr>
<td>2 ** 24</td>
<td>/8</td>
<td>255.0.0.0</td>
</tr>
</tbody>
</table>
</blockquote>
<p align="left">Notez que le VLSM est <20>crit avec un slash ("/") -- vous
pouvez souvent entendre un sous-r<>seau de taille 64 qui fait r<>f<EFBFBD>rence
<EFBFBD>
un sous-r<>seau "slash 26" et un de taille 8 faisant r<>f<EFBFBD>rence <20> un
"slash 29".</p>
<p align="left">Le masque de sous-r<>seau (aussi r<>f<EFBFBD>renc<6E> par son <i>netmask)&nbsp;</i>est
simplement un nombre de 32-bit avec le premier bit "VLSM" <20> un et
les autres <20> z<>ro. Par exemple, pour un sous-r<>seau de taille 64, le
masque de sous-r<>seau d<>bute par 26 bits <20> un:</p>
<blockquote>
<p align="left">11111111111111111111111111000000 = FFFFFFC0 =
FF.FF.FF.C0 = 255.255.255.192</p>
</blockquote>
<p align="left">Le masque de sous-r<>seau a la propri<72>t<EFBFBD> suivante: si
vous terminez logiquement le masque de sous-r<>seau avec une adresse
dans
le sous-r<>seau, le r<>sultat est l'adresse du sous-r<>seau. Attention, si
vous terminez logiquement le masque de sous-r<>seau avec une adresse en
dehors du sous-r<>seau, le r<>sultat n'est PAS l'adresse du sous-r<>seau.
Comme nous l'avons vu pr<70>c<EFBFBD>demment, la propri<72>t<EFBFBD> du masque de
sous-r<>seau est tr<74>s importante dans le routage.</p>
<p align="left">Pour un sous-r<>seau dont l'adresse est <b>a.b.c.d</b>
et dont la VLSM est <b>/v</b>, nous notons le sous-r<>seau par "<b>a.b.c.d/v</b>"
en utilisant la <span style="font-style: italic;">Notation</span> <i>CIDR</i>.&nbsp;</p>
<p align="left">Exemple:</p>
<blockquote>
<table border="2" style="border-collapse: collapse;" id="AutoNumber1"
cellpadding="2">
<tbody>
<tr>
<td><b>Sous-r<>seau:</b></td>
<td>10.10.10.0 - 10.10.10.127</td>
</tr>
<tr>
<td><b>Taille Sous-r<>seau</b><b>:</b></td>
<td>128</td>
</tr>
<tr>
<td><b>Adresse Sous-r<>seau</b><b>:</b></td>
<td>10.10.10.</td>
</tr>
<tr>
<td><b>Adresse Broadcast:</b></td>
<td>10.10.10.127</td>
</tr>
<tr>
<td><b>Notation </b><b>CIDR: <br>
</b></td>
<td>10.10.10.0/25</td>
</tr>
</tbody>
</table>
</blockquote>
<p align="left">Il y a deux sous-r<>seaux d<>riv<69>s qui doivent <20>tre
mentionn<EFBFBD>s; A savoir, le sous-r<>seau avec un membre et le sous-r<>seau
avec 2 ** 32 membres.</p>
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber5">
<tbody>
<tr>
<td><u><b>Taille du Sous-r<>seau<br>
</b></u></td>
<td><u><b>Longueur VLSM<br>
</b></u></td>
<td><u><b>Masque Sous-r<>seau</b></u></td>
<td><u><b>Notation CIDR</b></u></td>
</tr>
<tr>
<td>1</td>
<td>32</td>
<td>255.255.255.255</td>
<td>a.b.c.d/32</td>
</tr>
<tr>
<td>2 ** 32</td>
<td>0</td>
<td>0.0.0.0</td>
<td>0.0.0.0/0</td>
</tr>
</tbody>
</table>
</blockquote>
<p align="left">Ainsi, chaque adresse <b>a.b.c.d </b>peut aussi <20>tre
<EFBFBD>crite <b>a.b.c.d/32</b> et l'ensemble des adresses possibles est
<EFBFBD>crit <b>0.0.0.0/0</b>.</p>
<p align="left">Plus loin dans ce manuel, vous verrez la notation <b>a.b.c.d/v</b>
utilis<EFBFBD> pour d<>crire la configuration IP d'une interface r<>seau
(l'utilitaire 'ip' utilise aussi cette syntaxe). cela veut simplement
dire que l'interface est configur<75> avec une adresse ip <b>a.b.c.d</b>
et
avec le masque de r<>seau qui correspond <20> la variable VLSM <b>/v</b>.</p>
<p align="left">Exemple: 192.0.2.65/29</p>
<p align="left">&nbsp;&nbsp;&nbsp; L'interface est configur<75> avec
l'adresse IP 192.0.2.65 et le masque de r<>seau 255.255.255.248.<br>
</p>
<p align="left">A partir de Shorewall version 1.4.6, /sbin/shorewall
supporte la commande <b>ipcalc</b> qui calcule automatiquement
l'information du [sous]-r<>seau.<br>
</p>
<p align="left">Exemple 1:<br>
</p>
<blockquote>
<pre><b><font color="#009900">ipcalc 10.10.10.0/25<br></font></b> CIDR=10.10.10.0/25<br> NETMASK=255.255.255.128<br> NETWORK=10.10.10.0<br> BROADCAST=10.10.10.127<br></pre>
</blockquote>
Exemple 2
<blockquote>
<pre><b><font color="#009900">ipcalc 10.10.10.0 255.255.255.128</font></b><br> CIDR=10.10.10.0/25<br> NETMASK=255.255.255.128<br> NETWORK=10.10.10.0<br> BROADCAST=10.10.10.127<br></pre>
</blockquote>
<h3 align="left"><a name="Routing"></a>4.3 Routage</h3>
<p align="left">L'un des buts des sous-r<>seaux est la base du routage.
Ci-dessous se trouve la table de routage de mon firewall:</p>
<div align="left">
<blockquote>
<pre>[root@gateway root]# netstat -nr<br>Kernel IP routing table<br>Destination Gateway Genmask Flags MSS Window irtt Iface<br>192.168.9.1 0.0.0.0 255.255.255.255 UH 40 0 0 texas<br>206.124.146.177 0.0.0.0 255.255.255.255 UH 40 0 0 eth1<br>206.124.146.180 0.0.0.0 255.255.255.255 UH 40 0 0 eth3<br>192.168.3.0 0.0.0.0 255.255.255.0 U 40 0 0 eth3<br>192.168.2.0 0.0.0.0 255.255.255.0 U 40 0 0 eth1<br>192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth2<br>206.124.146.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0<br>192.168.9.0 192.0.2.223 255.255.255.0 UG 40 0 0 texas<br>127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo<br>0.0.0.0 206.124.146.254 0.0.0.0 UG 40 0 0 eth0<br>[root@gateway root]#</pre>
</blockquote>
</div>
<p align="left">Le p<>riph<70>rique <i>texas</i> est le tunnel GRE vers un
site peer <20> Dallas, la zone Texas.<br>
<br>
Les trois premi<6D>res routes sont des <span style="font-style: italic;">routes
h<EFBFBD>te </span>puisqu'elles indiquent comment aller vers un h<>te unique.
Dans la sortie de 'netstat' cela peut-<2D>tre vu par le "Genmask" (Masque
sous-r<>seau) de 255.255.255.255 et le "H"&nbsp; dans la colonne
"Flags".
Les autres sont des routes 'net' car elles indiquent au noyau comment
router des paquets <20> un sous-r<>seau. La derni<6E>re route est la <span
style="font-style: italic;">route par d<>faut</span> est la passerelle
(gateway) mentionn<6E>e est appel<65> <i>passerelle par d<>faut (</i><i>default
gateway</i>).</p>
<p align="left">Quant le noyau essaye d'envoyer un paquet <20> une adresse
IP A, il commence au d<>but de la table de routage et :</p>
<ul>
<li>
<p align="left">A est logiquement termin<69> avec la valeur du
'Genmask' dans l'entr<74>e de la table.</p>
</li>
<li>
<p align="left">Le r<>sultat est compar<61> avec la valeur de la
destination 'Destination' dans l'entr<74>e de la table.</p>
</li>
<li>
<p align="left">Si le r<>sultat et la valeur de la&nbsp;
'Destination' sont identiques, alors:</p>
<ul>
<li>
<p align="left">Si la colonne 'Gateway' est n'est pas nulle, le
paquet est envoy<6F> au gateway <20> travers l'interface nomm<6D>e dans la
colonne 'Iface'.</p>
</li>
<li>
<p align="left">Sinon, le paquet est directement envoy<6F> <20> A <20>
travers l'interface nomm<6D>e dans la colonne 'iface'.</p>
</li>
</ul>
</li>
<li>
<p align="left">Autrement, les <20>tapes pr<70>c<EFBFBD>dentes sont r<>p<EFBFBD>t<EFBFBD>es sur
l'entr<74>e suivante de la table.</p>
</li>
</ul>
<p align="left">Puisque la route par d<>faut correspond <20> toutes les
adresses IP (<b>A</b> donne 0.0.0.0 = 0.0.0.0), les paquets qui ne
correspondent <20> aucune des autres entr<74>es de la table de routage sont
envoy<EFBFBD>s au <i>gateway</i> <span style="font-style: italic;">par d<>faut</span>
qui g<>n<EFBFBD>ralement est un routeur vers le FAI.</p>
<p align="left">Voici un exemple. Supposez que vous souhaitez router un
paquet <20> 192.168.1.5. Cette adresse ne correspond <20> aucune route d'h<>te
dans la table mais si nous terminons logiquement cette adresse avec
255.255.255.0, le r<>sultat est 192.168.1.0 qui correspond <20> la l'entr<74>e
dans la table:</p>
<div align="left">
<blockquote>
<pre>192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth2</pre>
</blockquote>
<p>Donc le paquet vers 192.168.1.5 est directement envoy<6F> <20> travers
eth2.</p>
</div>
<p align="left">Un des points qui doit <20>tre soulign<67> -- tous les
paquets sont envoy<6F>s en utilisant la table de routage et les r<>ponses
ne
sont pas exclues de ce principe. Il semble y avoir&nbsp; une croyance
de la part des ceux qui croient que les paquets r<>ponses sont comme les
saumons et contiennent un code g<>n<EFBFBD>tique qui leur permet de suivre la
route emprunt<6E> par les paquets envoy<6F>s. Ce n'est pas le cas; La r<>ponse
peut prendre un chemin totalement diff<66>rent de celui de la requ<71>te du
client -- les routes requ<71>te/r<>ponse sont totalement ind<6E>pendantes.</p>
<h3 align="left"><a name="ARP"></a>4.4 Protocole de R<>solution
d'Adresse (ARP)</h3>
<p align="left">Quant on envoie des paquets <20> travers Ethernet, les
adresses IP ne sont pas utilis<69>es. Bien que l'adressage Ethernet soit
bas<EFBFBD> sur les adresses <i>Media Access Control</i> (MAC). Chaque
p<EFBFBD>riph<EFBFBD>rique Ethernet <20> sa propre adresse&nbsp; MAC qui est contenu
dans
une PROM lors de la fabrication. Vous pouvez obtenir l'adresse MAC
gr<EFBFBD>ce
<EFBFBD> l'utilitaire 'ip':</p>
<blockquote>
<div align="left">
<pre>[root@gateway root]# ip addr show eth0<br>2: eth0: &lt;BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc htb qlen 100<br>link/ether <u>02:00:08:e3:fa:55</u> brd ff:ff:ff:ff:ff:ff<br>inet 206.124.146.176/24 brd 206.124.146.255 scope global eth0<br>inet 206.124.146.178/24 brd 206.124.146.255 scope global secondary eth0<br>inet 206.124.146.179/24 brd 206.124.146.255 scope global secondary eth0<br>[root@gateway root]#</pre>
</div>
</blockquote>
<div align="left">
<p align="left">Comme vous pouvez le constater ci-dessus, l'adresse MAC
cod<EFBFBD> sur 6 bytes (48 bits). Une carte MAC est g<>n<EFBFBD>ralement aussi
imprim<EFBFBD> sur la carte elle-m<>me. </p>
</div>
<div align="left">
<p align="left">Parce que IP utilise les adresses IP et Ethernet les
adresses MAC, un m<>canisme est n<>cessaire pour transcrire une adresse
IP
en adresse MAC; C'est ce dont est charg<72> le protocole de r<>solution
d'adresse <i>Address Resolution Protocol</i> (ARP). Voici ARP en
action:</p>
</div>
<div align="left">
<blockquote>
<div align="left">
<pre>[root@gateway root]# tcpdump -nei eth2 arp<br>tcpdump: listening on eth2<br>09:56:49.766757 2:0:8:e3:4c:48 0:6:25:aa:8a:f0 arp 42: arp who-has 192.168.1.19 tell 192.168.1.254<br>09:56:49.769372 0:6:25:aa:8a:f0 2:0:8:e3:4c:48 arp 60: arp reply 192.168.1.19 is-at 0:6:25:aa:8a:f0<br><br>2 paquets received by filter<br>0 paquets dropped by kernel<br>[root@gateway root]#<br></pre>
</div>
</blockquote>
</div>
<p align="left">Dans cet <20>change , 192.168.1.254 (MAC 2:0:8:e3:4c:48)
veut conna<6E>tre l'adresse MAC du p<>riph<70>rique avec l'adresse IP
192.168.1.19. Le syst<73>me ayant cette adresse IP r<>pond que l'adresse
MAC
du p<>riph<70>rique avec l'adresse IP 192.168.1.19 est 0:6:25:aa:8a:f0.</p>
<p align="left">Afin de rendre disponible les informations d'<27>change
ARP chaque fois qu'un paquet est envoy<6F>, le syst<73>me maintient un <span
style="font-style: italic;">cache</span> <i>ARP&nbsp; </i>des
correspondances IP&lt;-&gt;MAC. Vous pouvez voir le cache ARP sur votre
syst<EFBFBD>me (<28>galement sur les syst<73>mes Windows) en utilisant la commande
'arp':</p>
<blockquote>
<div align="left">
<pre>[root@gateway root]# arp -na<br>? (206.124.146.177) at 00:A0:C9:15:39:78 [ether] on eth1<br>? (192.168.1.3) at 00:A0:CC:63:66:89 [ether] on eth2<br>? (192.168.1.5) at 00:A0:CC:DB:31:C4 [ether] on eth2<br>? (206.124.146.254) at 00:03:6C:8A:18:38 [ether] on eth0<br>? (192.168.1.19) at 00:06:25:AA:8A:F0 [ether] on eth2</pre>
</div>
</blockquote>
<p align="left">Les d<>tails de r<>ponse sont le r<>sultat de
l'utilisation de l'option 'n' (Windows 'arp' n'accepte pas cette
option)
qui force le programme 'arp' <20> la translation de r<>solution de noms
IP-&gt;DNS. Si je n'utilise pas cette option, la marque de question
aurait <20>t<EFBFBD> remplac<61> par le FQDN correspondant <20> chaque adresse IP.
Notez
que la derni<6E>re information dans la table d'enregistrement est celle
que
nous voyons en utilisant pr<70>c<EFBFBD>demment tcpdump.</p>
<h3 align="left"><a name="RFC1918"></a>4.5 RFC 1918</h3>
<p align="left">Les adresses IP sont allou<6F>s par l'autorit<69> <i> <a
href="http://www.iana.org/">Internet Assigned Number Authority</a> </i>(IANA)
qui d<>l<EFBFBD>gue des allocations g<>ographiques bas<61>s sur le <i>Regional
Internet Registries</i> (RIRs). Par exemple, les allocations pour les
Etats-Unis sont d<>l<EFBFBD>gu<67>es <20> <i><a href="http://www.arin.net/">American
Registry for Internet Numbers</a> </i>(ARIN). Ces&nbsp; RIRs peuvent
d<EFBFBD>l<EFBFBD>guer <20> des bureaux nationaux. La plus part d'entre nous ne traite
pas avec autorit<69>s mais obtienne plut<75>t leur adresse IP par leur FAI.</p>
<p align="left">Dans la r<>alit<69>, g<>n<EFBFBD>ralement on ne peut se permettre
autant d'adresses IP Publiques que de p<>riph<70>riques <20> assigner si bien
que nous utiliseront des adresses IP <span style="font-style: italic;">Priv<EFBFBD>es</span>.
RFC 1918 r<>serve plusieurs plages d'adresse IP <20> cet usage:</p>
<div align="left">
<pre> 10.0.0.0 - 10.255.255.255<br> 172.16.0.0 - 172.31.255.255<br> 192.168.0.0 - 192.168.255.255</pre>
</div>
<div align="left">
<p align="left">Les adresses r<>serv<72>es par la RFC 1918 sont parfois
appel<EFBFBD>es <i>non-routable</i> car le routeur passerelle Internet ne
renvoit pas les paquets qui ont une adresse de destination RFC-1918.
cela est compr<70>hensible car tout le monde peut choisir ces adresses
pour
un usage priv<69>.</p>
</div>
<div align="left">
<p align="left">Quant on choisit des adresses de ces plages, il y a
deux choses <20> garder en m<>moire:</p>
</div>
<div align="left">
<ul>
<li>
<p align="left">Comme l'espace des adresses IPv4 s'<27>puise, de plus
en plus d'organisation (comprenant les FAI) commencent <20> utiliser les
adresses RFC 1918 dans leur infrastructures. </p>
</li>
<li>
<p align="left">Vous ne voulez pas utiliser des adresses IP qui
sont utilis<69>s par votre FAI ou une autre organisation avec laquelle
vous
souhaiter <20>tablir une liaison VPN. </p>
</li>
</ul>
</div>
<div align="left">
<p align="left">C'est pourquoi c'est une bonne id<69>e de v<>rifier avec
votre FAI s'il n'utilise pas (ou ne pr<70>voie pas d'utiliser) des
adresses
priv<EFBFBD>es avant de d<>cider les adresses que vous allez utiliser.</p>
</div>
<div align="left">
<h2 align="left"><a name="Options"></a>5.0 Configurer votre R<>seau<br>
</h2>
</div>
<div align="left">
<p align="left">Le choix de configuration de votre r<>seau d<>pend
d'abord du nombre d'adresses Public IP dont vous avez besoin, c'est <20>
dire du nombre d'entit<69>s adressables que vous avez sur votre r<>seau. En
fonction du nombre d'adresses que vous avez, votre FAI peut servir ce
jeu d'adresses de deux mani<6E>res:<br>
</p>
</div>
<div align="left">
<ol>
<li>
<p align="left"><b>Rout<EFBFBD> - </b>Le trafic vers chacune de vos
adresses sera rout<75> <20> travers une unique <i>adresse passerelle</i>.
Cela sera g<>n<EFBFBD>ralement fait si votre FAI vous assigne un sous-r<>seau
complet (/29 ou plus). Dans ce cas, vous assignerez l'adresse
passerelle comme adresse IP de l'interface externe de votre
firewall/router. </p>
</li>
<li>
<p align="left"><b>Non-rout<75> - </b>Votre FAI vous enverra
directement le trafic de chaque adresse directement. </p>
</li>
</ol>
</div>
<div align="left">
<p align="left">Dans les paragraphes qui suivent, nous <20>tudierons
chaque cas s<>par<61>ment.<br>
</p>
<p align="left">Avant de commencer, il y a une chose que vous devez
v<EFBFBD>rifier:</p>
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_.gif" alt="" title=""> &nbsp;&nbsp;&nbsp; Si vous
utilisez le package Debian, v<>rifier
svp votre fichier shorewall.conf afin de contr<74>ler les param<61>tres
suivants; si ce n'est pas juste, appliquer les&nbsp; changements
n<EFBFBD>cessaires:<br>
</p>
<ul>
<li>NAT_ENABLED=Yes (Shorewall versions ant<6E>rieures <20> 1.4.6)</li>
<li>IP_FORWARDING=On<br>
</li>
</ul>
</div>
<div align="left">
<h3 align="left"><a name="Routed"></a>5.1 Routage</h3>
</div>
<div align="left">
<p align="left">Supposons que votre fournisseur d'acc<63>s FAI vous a
assign<EFBFBD> le sous-r<>seau 192.0.2.64/28 rout<75> <20> travers 192.0.2.65. cela
veut dire que vous avez les adresses IP&nbsp; 192.0.2.64 - 192.0.2.79
et que l'adresse externe de votre firewall est 192.0.2.65. Votre FAI
vous a aussi dit que vous pouvez utiliser le masque de r<>seau
255.255.255.0 (ainsi votre /28 est une partie de /24). Avec ces
adresses
IP, vous pouvez scinder votre r<>seau /28 en deux /29 et configurer
votre
r<EFBFBD>seau comme l'indique le diagramme suivant.</p>
</div>
<div align="left">
<p align="center"> <img
style="border: 0px solid ; width: 726px; height: 635px;"
src="images/dmz4.png" title="" alt=""> </p>
</div>
<div align="left">
<p align="left">Ici, la zone d<>militaris<69> DMZ comprend le sous-r<>seau
192.0.2.64/29 et le r<>seau Local 192.0.2.72/29. La passerelle par
d<EFBFBD>faut
pour les h<>tes dans la DMZ pourra <20>tre configur<75> <20> 192.0.2.66 et la
passerelle par d<>faut pour les h<>tes du r<>seau local pourra <20>tre
192.0.2.73.</p>
</div>
<div align="left">
<p align="left">Notez que cet arrangement est plus gourmand en adresses
publiques puisqu'il utilise 192.0.2.64 et 192.0.2.72 pour les adresses
du sous-r<>seau, 192.0.2.71 et 192.0.2.79 pour les adresses
broadcast du r<>seau, de m<>me que 192.0.2.66 et 168.0.2.73 pour les
adresses internes que le firewall/routeur. N<>anmoins, cela montre
comment nous pouvons faire avec un r<>seau /24 plut<75>t qu'un /28,
l'utilisation de 6 adresses IP parmi les 256 peut <20>tre justifi<66> par la
simplicit<EFBFBD> du param<61>trage.</p>
</div>
<div align="left">
<p align="left">Le lecteur astucieux aura remarqu<71> que l'interface
externe du firewall/Routeur est actuellement inclus dans le sous-r<>seau
DMZ (192.0.2.64/29). Que se passe-t-il si DMZ 1 (192.0.2.67) essaye de
communiquer avec 192.0.2.65? La table de routage sur DMZ 1 peut
ressembler <20> cela:</p>
</div>
<div align="left">
<blockquote>
<pre>Kernel IP routing table<br>Destination Gateway Genmask Flags MSS Window irtt Iface<br>192.0.2.64 0.0.0.0 255.255.255.248 U 40 0 0 eth0<br>0.0.0.0 192.0.2.66 0.0.0.0 UG 40 0 0 eth0</pre>
</blockquote>
</div>
<div align="left">
<p align="left">Cela indique que DMZ 1 enverra une requ<71>te ARP "qui-a
192.0.2.65" et aucune interface sur le segment Ethernet DMZ&nbsp; <20>
cette adresse IP. Assez bizarrement, le firewall r<>pondra <20> la
requ<EFBFBD>te avec l'adresse MAC de sa propre <u>Interface DMZ!!</u> DMZ 1
peut alors envoyer des trames Ethernet frames adress<73>es <20> cette
adresse MAC et les trames seront re<72>ues (correctement) par le
firewall/routeur.</p>
</div>
<div align="left">
<p align="left">C'est plut<75>t une possibilit<69> inattendue d'ARP sur la
partie du Noyau Linux qui pousse cet avertissement tr<74>s t<>t dans ce
manuel <20> propos de la connexion de plusieurs interfaces
firewall/routeur
au m<>me hub ou switch. Quant une requ<71>te ARP destin<69> <20> une des
adresses firewall/routeur est envoy<6F> par un autre syst<73>me connect<63> au
hub/switch, toutes les interfaces du firewall qui se connectent au
hub/switch peuvent r<>pondre! C'est alors une course <20> la r<>ponse qui
"est-l<>" qui atteindra en premier l'<27>metteur.</p>
</div>
<div align="left">
<h3 align="left"><a name="NonRouted"></a>5.2 Non-rout<75></h3>
</div>
<div align="left">
<p align="left">Avec la situation pr<70>c<EFBFBD>dente mais non-rout<75>, vous
pouvez configurer votre r<>seau exactement comme d<>crit ci-dessus avec
une condition suppl<70>mentaire; sp<73>cifiez simplement l'option "proxyarp"
sur les trois interfaces du firewall dans le fichier
/etc/shorewall/interfaces.</p>
</div>
<div align="left">
<p align="left">La plus part d'entre nous n'a pas le luxe d'avoir assez
d'adresses publiques IP pour configurer notre r<>seau comme montr<74> dans
le pr<70>c<EFBFBD>dent exemple (m<>me&nbsp; si la configuration est rout<75>). </p>
</div>
<div align="left">
<p align="left"><b>Pour le besoin de cette section, admettons que notre
FAI nous a assign<67> les adresses IP 192.0.2.176-180 et nous a dit
d'utiliser le masque de r<>seau 255.255.255.0 et la passerelle par
d<EFBFBD>faut
192.0.2.254.</b></p>
</div>
<div align="left">
<p align="left">Clairement, ce jeu d'adresses ne comprend pas de
sous-r<>seau et n'a pas suffisamment d'adresses pour toutes les
interfaces de notre r<>seau. Il y a quatre possibilit<69>s qui peuvent <20>tre
utilis<EFBFBD>es pour r<>gler ce probl<62>me.</p>
</div>
<div align="left">
<ul>
<li>
<p align="left">Translation d'Adresses R<>seau Source <i>: Source
Network Address Translation </i>(SNAT). </p>
</li>
<li>
<p align="left">Translation d'Adresses R<>seau Destination <i>:
Destination Network Address Translation </i>(DNAT) aussi nomm<6D> <i>Port
Forwarding.</i> </p>
</li>
<li>
<p align="left"><i>Proxy ARP.</i> </p>
</li>
<li>
<p align="left">Translation d''Adresses R<>seau : <i>Network
Address Translation</i> (NAT) aussi appel<65> <i>Static NAT</i>. </p>
</li>
</ul>
</div>
<div align="left">
<p align="left">Souvent une combinaison de ces techniques est utilis<69>e.
Chacune d'entre elle sera d<>taill<6C>e dans la section suivante.</p>
</div>
<div align="left">
<h4 align="left"><a name="SNAT"></a>&nbsp;5.2.1 SNAT</h4>
</div>
<div align="left">
<p align="left">Avec SNAT, un segment interne LAN est configur<75> en
utilisant les adresses RFC 1918. Quant un h<>te A sur ce segment interne
initialise une connexion <20> l'h<>te <b>B</b> sur Internet, le
firewall/routeur r<><72>crit les ent<6E>tes IP dans la requ<71>te pour utiliser
une de vos adresses publiques IP en tant qu'adresse source. Quant B
r<EFBFBD>pond et que la r<>ponse est re<72>u par le firewall, le firewall change
l'adresse destination par celle RFC 1918 de <b>A</b> et renvoi la
r<EFBFBD>ponse <20> A<b>.</b></p>
</div>
<div align="left">
<p align="left">Supposons que vous d<>cidiez d'utiliser SNAT sur votre
zone locale et utilisiez l'adresse publique 192.0.2.176 <20> la fois comme
adresse externe du firewall et l'adresse source des requ<71>tes Internet
envoy<EFBFBD>es depuis cette zone.</p>
</div>
<div align="left">
<h2 align="center"> <img
style="border: 0px solid ; width: 745px; height: 635px;"
src="images/dmz5.png" title="" alt=""> </h2>
</div>
<div align="left">La zone locale a <20>t<EFBFBD> assign<67> au sous-r<>seau
192.168.201.0/29 (netmask 255.255.255.248).</div>
<div align="left"> &nbsp;</div>
<div align="left"> <img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; Le syst<73>me dans la zone locale pourra <20>tre configur<75>
avec la passerelle par d<>faut 192.168.201.1 (L'adresse IP de
l'interface local du firewall).</div>
<div align="left"> &nbsp;</div>
<div align="left"> <img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; SNAT est configur<75> dans Shorewall avec le
fichier&nbsp; <a href="Documentation.htm#Masq">/etc/shorewall/masq</a>.</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber6">
<tbody>
<tr>
<td width="33%"><u><b>INTERFACE</b></u></td>
<td width="33%"><u><b>SOUS-RESEAU</b></u></td>
<td width="34%"><u><b>ADDRESSE</b></u></td>
</tr>
<tr>
<td width="33%">eth0</td>
<td width="33%">192.168.201.0/29</td>
<td width="34%">192.0.2.176</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Cet exemple utilise la technique normale pour assigner
la m<>me adresse publique IP pour l'interface externe du firewall et
pour
SNAT. Si vous souhaitez utiliser une adresse IP diff<66>rente, vous pouvez
soit utiliser les outils de configuration r<>seau de votre distribution
pour ajouter cette adresse IP ou vous pouvez mettre la variable
ADD_SNAT_ALIASES=Yes dans /etc/shorewall/shorewall.conf si bien que
Shorewall ajoutera l'adresse pour vous.</p>
</div>
<div align="left">
<h4 align="left"><a name="DNAT"></a>5.2.2 DNAT</h4>
</div>
<div align="left">
<p align="left">Quant SNAT est utilis<69>, il est impossible pour les
h<EFBFBD>tes sur Internet d'initialiser une connexion avec un des syst<73>mes
puisque ces syst<73>mes n'ont pas d'adresses publiques IP. DNAT fournit
une
m<EFBFBD>thode pour autoriser des connexions s<>lectionn<6E>s depuis Internet.</p>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">&nbsp;&nbsp;&nbsp;&nbsp;
Supposons que votre fille souhaite h<>berger un
server web sur son syst<73>me "Local 3". Vous pouvez autoriser les
connexions d'Internet <20> son serveur en ajoutant l'entr<74>e suivante dans
le fichier <a href="Documentation.htm#Rules">/etc/shorewall/rules</a>:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>SOURCE PORT</b></u></td>
<td><u><b>ORIGINAL DESTINATION</b></u></td>
</tr>
<tr>
<td>DNAT</td>
<td>net</td>
<td>loc:192.168.201.4</td>
<td>tcp</td>
<td>www</td>
<td>-</td>
<td>192.0.2.176</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Si une des amies de votre fille avec une adresse A veut
acc<EFBFBD>der au serveur de votre fille, elle peut se connecter <20> l'adresse
http://192.0.2.176 (l'adresse IP externe
de votre firewall) et le firewall r<><72>crira l'adresse IP <20> 192.168.201.4
(le syst<73>me de votre fille) et enverra la requ<71>te. Quant le serveur de
votre fille r<>pond, le firewall r<><72>crira la source de r<>ponse avec
192.0.2.176 et retournera la r<>ponse <20> <b>A.</b></p>
</div>
<div align="left">
<p align="left">Cet exemple l'adresse externe IP du firewall pour DNAT.
Vous pouvez utiliser une autre de vos adresses IP publiques, mais
Shorewall n'ajoutera pas pour vous cette adresse <20> l'interface externe
du firewall.</p>
</div>
<div align="left">
<h4 align="left"><a name="ProxyARP"></a>5.2.3 Proxy ARP</h4>
</div>
<div align="left">
<p align="left">Le principe du proxy ARP est:</p>
</div>
<div align="left">
<ul>
<li>
<p align="left">Un h<>te <b>H </b>derri<EFBFBD>re votre firewall est
assign<EFBFBD> <20> une de vos adresses publiques (<b>A)</b>, a le m<>me masque de
r<EFBFBD>seau <b>(M) </b>que l'interface externe du firewall. </p>
</li>
<li>
<p align="left">Le firewall r<>pond <20> ARP "qui a" demand<6E> <b>A.</b>
</p>
</li>
<li>
<p align="left">Quant <b>H</b> d<>livre une requ<71>te ARP "qui a"
pour
une adresse du sous -r<>seau d<>finit par&nbsp; <b>A</b> et <b>M</b>,
le
firewall r<>pondra (avec l'adresse MAC si le firewall s'interface <20> <b>H</b>).</p>
</li>
</ul>
</div>
<div align="left">
<p align="left">Supposons que nous d<>cidons d'utiliser Proxy ARP sur
DMZ de notre exemple r<>seau.</p>
</div>
<div align="left">
<p align="center"> <img
style="border: 0px solid ; width: 745px; height: 635px;"
src="images/dmz6.png" title="" alt=""> </p>
</div>
<div align="left">Ici, nous avons assign<67> les adresses IP 192.0.2.177
au syst<73>me DMZ 1 et 192.0.2.178 <20> DMZ 2. Notez que nous avons juste
assign<EFBFBD> une adresse arbitraire RFC 1918 et un masque de sous-r<>seau <20>
l'interface DMZ de notre firewall. Cette adresse et le masque ne sont
pas pertinentes - v<>rifiez juste que celle-ci n'<27>crase pas un autre
sous-r<>seau d<>j<EFBFBD> d<>finit.</div>
<div align="left"> &nbsp;</div>
<div align="left"> <img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">
&nbsp;&nbsp;&nbsp; La configuration de Proxy ARP est faite dans le
fichier <a href="Documentation.htm#ProxyArp">/etc/shorewall/proxyarp</a>.</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" id="AutoNumber8"
style="border-collapse: collapse;">
<tbody>
<tr>
<td><u><b>ADDRESS</b></u></td>
<td><u><b>INTERFACE</b></u></td>
<td><u><b>EXTERNAL</b></u></td>
<td><u><b>HAVE ROUTE</b></u></td>
</tr>
<tr>
<td>192.0.2.177</td>
<td>eth2</td>
<td>eth0</td>
<td>No</td>
</tr>
<tr>
<td>192.0.2.178</td>
<td>eth2</td>
<td>eth0</td>
<td>No</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Parce que la&nbsp; variable HAVE ROUTE contient No,
Shorewall ajoutera les routes d'h<>te <20> travers eth2 <20> 192.0.2.177 et
192.0.2.178.<br>
</p>
<p>Les interfaces ethernet de DMZ 1 et DMZ 2&nbsp; pourront <20>tre
configur<EFBFBD>es pour avoir les adresses IP apparentes mais devront avoir la
m<EFBFBD>me passerelle par d<>faut que le firewall lui-m<>me -- nomm<6D>
192.0.2.254. En d'autres termes, elles pourront <20>tre configur<75>es juste
comme elles devraient <20>tre si elles <20>taient parall<6C>les au firewall
plut<EFBFBD>t que derri<72>re lui.<br>
</p>
<p><font color="#ff0000"><b>NOTE: Ne pas ajouter le(s) adresse(s) ARP
(192.0.2.177 et 192.0.2.178 dans l'exemple ci-dessus)&nbsp; <20>
l'interface externe (eth0 dans cet exemple) du firewall.</b></font><br>
</p>
<div align="left"> </div>
</div>
<div align="left"> </div>
<div align="left">
<div align="left">
<p align="left">Un mot de mise en garde <20> sa place ici. Les FAIs
configure(nt) typiquement leur routeur avec un timeout de cache ARP
<EFBFBD>lev<EFBFBD>. Si vous d<>placer un syst<73>me parall<6C>le <20> votre firewall derri<72>re
le Proxy ARP du firewall, cela peut mettre des HEURES avant que le
syst<EFBFBD>me puisse communiquer avec Internet. Il y a deux choses que vous
pouvez essayer de faire:<br>
</p>
<ol>
<li>(Courtoisement de Bradey Honsinger) Une lecture de Stevens' <i>TCP/IP
Illustrated, Vol 1</i> r<>v<EFBFBD>le qu'un paquet ARP <br>
<br>
"gratuitous" peut entra<72>ner le routeur de votre FAI <20> rafra<72>chir son
cache(section 4.7). Une "gratuitous" ARP est simplement une requ<71>te
d'un
h<EFBFBD>te demandant l'adresse MAC de sa propre adresse IP; <20>ventuellement
pour v<>rifier que l'adresse IP n'est pas dupliqu<71>e,...<br>
<br>
si l'h<>te envoyant la commande "gratuitous" ARP vient juste de changer
son adresse IP..., ce paquet entra<72>ne tous les autres h<>tes...qui ont
une entr<74>e dans son cache pour l'ancienne adresse mat<61>riel de mettre <20>
jour <20>galement ses caches ARP."<br>
<br>
Ce qui est exactement, bien s<>r, ce que vous souhaitez faire lorsque
vous basculez un h<>te vuln<6C>rable <20> Internet derri<72>re Shorewall
utilisant
proxy ARP (ou static NAT). Heureusement, des packages r<>cents (Redhat)
iputils incluent "arping", avec l'option "-U" qui fait cela:<br>
<br>
&nbsp;&nbsp;&nbsp; <font color="#009900"><b>arping -U -I &lt;net
if&gt; &lt;newly proxied IP&gt;</b></font><br>
&nbsp;&nbsp;&nbsp; <font color="#009900"><b>arping -U -I eth0
66.58.99.83 # for example</b></font><br>
<br>
Stevens continue en mentionnant que tous les syst<73>mes r<>pondent
correctement au gratuitous ARPs,&nbsp; et&nbsp; "googling" pour "arping
-U" semble aller dans ce sens.<br>
<br>
</li>
<li>Vous pouvez appeler votre FAI et dire de purger l'ancienne entr<74>e
du cache ARP mais la plupart ne veulent ou ne peuvent le faire.</li>
</ol>
Vous pouvez v<>rifier si le cache ARP de votre FAI est ancien en
utilisant ping et tcpdump. Supposez que vous pensez que la
passerelle&nbsp; routeur a une ancienne entr<74>e ARP pour 192.0.2.177.
Sur
le firewall, lancez tcpdump de cette fa<66>on:</div>
<div align="left">
<pre> <font color="#009900"><b>tcpdump -nei eth0 icmp</b></font></pre>
</div>
<div align="left">
<p align="left">Maintenant depuis 192.0.2.177, utilisez ping vers la
passerelle du FAI&nbsp; (que nous supposons <20>tre 192.0.2.254):</p>
</div>
<div align="left">
<pre> <b><font color="#009900">ping 192.0.2.254</font></b></pre>
</div>
</div>
<div align="left">
<p align="left">Nous pouvons maintenant observer le r<>sultat de tcpdump:</p>
</div>
<div align="left">
<pre> 13:35:12.159321 <u>0:4:e2:20:20:33</u> 0:0:77:95:dd:19 ip 98: 192.0.2.177 &gt; 192.0.2.254: icmp: echo request (DF)<br> 13:35:12.207615 0:0:77:95:dd:19 <u>0:c0:a8:50:b2:57</u> ip 98: 192.0.2.254 &gt; 192.0.2.177 : icmp: echo reply</pre>
</div>
<div align="left">
<p align="left">Notez que l'adresse source&nbsp; MAC dans la
requ<EFBFBD>te&nbsp; echo&nbsp; est diff<66>rente de&nbsp; l'adresse de
destination dans&nbsp; la r<>ponse&nbsp; echo!! Dans le cas ou
0:4:e2:20:20:33 <20>tait l'adresse MAC de l'interface NIC eth0 du firewall
tandis que 0:c0:a8:50:b2:57 <20>tait l'adresse MAC de DMZ 1. En
d'autre&nbsp; termes, le cache ARP de la passerelle associe encore
192.0.2.177 avec la NIC de DMZ 1 plut<75>t qu'avec eth0 du firewall.</p>
</div>
<div align="left">
<h4 align="left"><a name="NAT"></a>5.2.4 Static NAT</h4>
</div>
<div align="left">
<p align="left">Avec static NAT, vous assignez les adresses syst<73>mes
RFC 1918 puis <20>tablissez une <20> une l'assignation entre ces adresses et
les adresses publiques. Pour les occurrences des connexions sortantes
SNAT (Source Network Address Translation) et pour les occurrences
des connexions entrantes DNAT (Destination Network Address
Translation). Voyons avec l'exemple pr<70>c<EFBFBD>dent du serveur web de votre
fille tournant sur le syst<73>me Local 3.</p>
</div>
<div align="left">
<p align="center"><img
style="border: 0px solid ; width: 745px; height: 635px;"
src="images/dmz5.png" title="" alt=""> </p>
</div>
<div align="left">
<p align="left">Rappel du param<61>trage, le r<>seau local utilise SNAT et
partage l'IP externe du firewall (192.0.2.176) pour les connexions
sortantes. cela est obtenu avec l'entr<74>e suivante dans le fichier
/etc/shorewall/masq:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber6">
<tbody>
<tr>
<td width="33%"><u><b>INTERFACE</b></u></td>
<td width="33%"><u><b>SOUS-RESEAU</b></u></td>
<td width="34%"><u><b>ADDRESSE</b></u></td>
</tr>
<tr>
<td width="33%">eth0</td>
<td width="33%">192.168.201.0/29</td>
<td width="34%">192.0.2.176</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_1.gif" title="" alt="">&nbsp;&nbsp;&nbsp;
Supposons maintenant que vous avez d<>cid<69> d'allouer <20>
votre fille sa propre adresse IP (192.0.2.179) pour l'ensemble des
connexions entrantes et sortantes. Vous devrez faire cela en
ajoutant une entr<74>e dans le fichier <a href="Documentation.htm#NAT">/etc/shorewall/nat</a>.</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellspacing="0" cellpadding="2" id="AutoNumber9"
style="border-collapse: collapse;">
<tbody>
<tr>
<td>EXTERNAL</td>
<td>INTERFACE</td>
<td>INTERNAL</td>
<td>ALL INTERFACES </td>
<td>LOCAL</td>
</tr>
<tr>
<td>192.0.2.179</td>
<td>eth0</td>
<td>192.168.201.4</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Avec cette entr<74>e active, votre fille a sa propre
adresse IP et les deux autres syst<73>mes locaux partagent l'adresse IP du
firewall.</p>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_1.gif" title="" alt="">&nbsp;&nbsp;&nbsp; Une fois
que la relation entre 192.0.2.179
et192.168.201.4 est <20>tablie par l'entr<74>e ci-dessus, ce n'est pas
n<EFBFBD>cessaire d'utiliser une r<>gle DNAT pour le serveur web de votre fille
-- vous devez simplement utiliser une r<>gle ACCEPT:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>SOURCE PORT</b></u></td>
<td><u><b>ORIGINAL DESTINATION</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>loc:192.168.201.4</td>
<td>tcp</td>
<td>www</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<div align="left">
<div align="left">
<p align="left">Un mot de mise en garde <20> sa place ici. FAIs
configure(nt) typiquement leur routeur avec un timeout de cache ARP
<EFBFBD>lev<EFBFBD>. Si vous d<>placer un syst<73>me parall<6C>le <20> votre firewall derri<72>re
le Proxy ARP du firewall, cela peut mettre des HEURES avant que le
syst<EFBFBD>me puisse communiquer avec Internet. Il y a deux choses que vous
pouvez essayer de faire:<br>
</p>
<ol>
<li>(Courtoisement de Bradey Honsinger) Une lecture de Stevens' <i>TCP/IP
Illustrated, Vol 1</i> r<>v<EFBFBD>le qu'un paquet ARP <br>
<br>
"gratuitous" peut entra<72>ner le routeur de votre FAI <20> rafra<72>chir son
cache(section 4.7). Une "gratuitous" ARP est simplement une requ<71>te
d'un
h<EFBFBD>te demandant l'adresse MAC de sa propre adresse IP; <20>ventuellement
pour v<>rifier que l'adresse IP n'est pas dupliqu<71>e,...<br>
<br>
"si l'h<>te envoyant la "gratuitous" ARP vient juste de changer son
adresse IP..., ce paquet entra<72>ne tous les autres h<>tes...qui ont une
entr<EFBFBD>e dans son cache pour l'ancienne adresse mat<61>riel de mettre <20> jour
<EFBFBD>galement ses caches ARP."<br>
<br>
Ce qui est exactement, bien s<>r, ce que vous souhaitez faire lorsque
vous basculez un h<>te vuln<6C>rable <20> Internet derri<72>re Shorewall
utilisant
proxy ARP (ou static NAT). Heureusement, les versions r<>centes des
packages Redhat's iputils incluent "arping", avec l'option "-U" qui
fait
cela:<br>
<br>
&nbsp;&nbsp;&nbsp; <font color="#009900"><b>arping -U -I &lt;net
if&gt; &lt;newly proxied IP&gt;</b></font><br>
&nbsp;&nbsp;&nbsp; <font color="#009900"><b>arping -U -I eth0
66.58.99.83 # for example</b></font><br>
<br>
Stevens continue en mentionnant que tous les syst<73>mes r<>pondent
correctement au gratuitous ARPs,&nbsp; et&nbsp; "googling" pour "arping
-U" semble aller dans ce sens.<br>
<br>
</li>
<li>Vous pouvez appeler votre FAI et dire de purger l'ancienne entr<74>e
du cache ARP mais la plupart ne veulent ou ne peuvent le faire.</li>
</ol>
Vous pouvez v<>rifier si le cache ARP de votre FAI est ancien en
utilisant ping et tcpdump. Supposez que vous pensez que la
passerelle&nbsp; routeur a une ancienne entr<74>e ARP pour 192.0.2.177.
Sur
le firewall, lancez tcpdump de cette fa<66>on:</div>
<div align="left">
<pre> <font color="#009900"><b>tcpdump -nei eth0 icmp</b></font></pre>
</div>
<div align="left">
<p align="left">Maintenant depuis 192.0.2.177, utilisez ping vers la
passerelle du FAI&nbsp; (que nous supposons <20>tre 192.0.2.254):</p>
</div>
<div align="left">
<pre> <b><font color="#009900">ping 192.0.2.254</font></b></pre>
</div>
</div>
<div align="left">
<p align="left">Nous pouvons maintenant observer le r<>sultat de tcpdump:</p>
</div>
<div align="left">
<pre> 13:35:12.159321 <u>0:4:e2:20:20:33</u> 0:0:77:95:dd:19 ip 98: 192.0.2.177 &gt; 192.0.2.254: icmp: echo request (DF)<br> 13:35:12.207615 0:0:77:95:dd:19 <u>0:c0:a8:50:b2:57</u> ip 98: 192.0.2.254 &gt; 192.0.2.177 : icmp: echo reply</pre>
</div>
<div align="left">
<p align="left">Notez que l'adresse source&nbsp; MAC dans la
requ<EFBFBD>te&nbsp; echo&nbsp; est diff<66>rente de&nbsp; l'adresse de
destination dans&nbsp; la r<>ponse&nbsp; echo!! Dans le cas ou
0:4:e2:20:20:33 <20>tait l'adresse MAC de l'interface NIC eth0 du firewall
tandis que 0:c0:a8:50:b2:57 <20>tait l'adresse MAC de DMZ 1. En
d'autre&nbsp; termes, le cache ARP de la passerelle associe encore
192.0.2.177 avec la NIC de DMZ 1 plut<75>t qu'avec eth0 du firewall.</p>
</div>
<h3 align="left"><a name="Rules"></a>5.3 R<>gles</h3>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_1.gif" title="" alt="">&nbsp;&nbsp;&nbsp; Avec les
polices par d<>faut, vos syst<73>mes locaux
(Local 1-3) peuvent acc<63>der <20> tous les serveurs sur Internet et la DMZ
ne peut acc<63>der <20> aucun autre h<>te (incluant le firewall). Avec les
exceptions des r<>gles <a href="#DNAT">r<EFBFBD>gles NAT</a> qui entra<72>ne la
translation d'adresses et permet aux requ<71>tes de connexion translat<61>es
de passer&nbsp; <20> travers le firewall, la fa<66>on d'autoriser des
requ<EFBFBD>tes
<EFBFBD> travers le firewall est d'utiliser des r<>gles ACCEPT.<br>
</p>
</div>
<div align="left">
<p align="left"><b>NOTE: Puisque les colonnes SOURCE PORT et ORIG.
DEST. ne sont pas utilis<69>es dans cette section, elle ne sont pas
affich<EFBFBD>es.</b></p>
</div>
<div align="left">
<p align="left">Vous souhaiter certainement autoriser ping entre vos
zones:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz</td>
<td>icmp</td>
<td>echo-request</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>loc</td>
<td>icmp</td>
<td>echo-request</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz</td>
<td>loc</td>
<td>icmp</td>
<td>echo-request</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz</td>
<td>icmp</td>
<td>echo-request</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">En supposant que vous avez des serveurs mail et pop3
actifs sur DMZ 2 et un serveur Web sur DMZ 1. Les r<>gles dont vous avez
besoin sont:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>COMMENTS</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis Internet<br>
</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>pop3</td>
<td># Pop3 depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>pop3</td>
<td># Pop3 depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.178</td>
<td>net</td>
<td>tcp</td>
<td>smtp</td>
<td># Mails vers Internet<br>
</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>http</td>
<td># WWW depuis le Net<br>
</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>https</td>
<td># HTTP s<>curis<69> depuis le Net</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>https</td>
<td># HTTP s<>curis<69> depuis le R<>seau Local</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Si vous utilisez un serveur DNS publique sur
192.0.2.177, vous devez ajouter les r<>gles suivantes:</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>COMMENTS</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis le R<>seau local<br>
</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis le R<>seau local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.177</td>
<td>net</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS vers Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.177</td>
<td>net</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS vers Internet</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">Vous souhaitez probablement communiquer entre votre
firewall et les syst<73>mes DMZ depuis le r<>seau local -- Je recommande
SSH
qui, gr<67>ce <20> son utilitaire scp&nbsp; peut aussi faire de la diffusion
et de la mise <20> jour de logiciels.</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>COMMENTS</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz</td>
<td>tcp</td>
<td>ssh</td>
<td># SSH vers la DMZ</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>fw</td>
<td>tcp</td>
<td>ssh</td>
<td># SSH vers le firewall</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<h3 align="left"><a name="OddsAndEnds"></a>5.4 D'autres petites choses<br>
</h3>
</div>
<div align="left">
<p align="left">La discussion pr<70>c<EFBFBD>dente refl<66>te ma pr<70>f<EFBFBD>rence
personnelle pour l'utilisation de Proxy ARP associ<63> <20> mes serveurs de
la
DMZ et SNAT/NAT pour mes syst<73>mes locaux. Je pr<70>f<EFBFBD>re utiliser NAT
seulement dans le cas ou un syst<73>me qui fait partie d'un sous-r<>seau
RFC
1918 <20> besoin d'avoir sa propre adresse IP.&nbsp;</p>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">&nbsp;&nbsp;&nbsp; Si vous
ne l'avez pas fait, ce peut-<2D>tre une bonne
id<EFBFBD>e de parcourir le fichier <a href="Documentation.htm#Conf">/etc/shorewall/shorewall.conf</a>
afin de voir si autre chose pourrait <20>tre int<6E>ressant. Vous pouvez
aussi
regarder aux autres fichiers de configuration que vous n'avez pas
touch<EFBFBD>
pour un aper<65>u des autres possibilit<69>s de Shorewall.</p>
</div>
<div align="left">
<p align="left">Dans le cas ou vous n'auriez pas valid<69> les <20>tapes,
ci-dessous se trouve un jeu final des fichiers de configuration pour
notre r<>seau exemple. Uniquement ceux qui auraient <20>t<EFBFBD>s modifi<66>s de la
configuration originale sont montr<74>s.</p>
</div>
<div align="left">
<p align="left">/etc/shorewall/interfaces (Les "options" seront
sp<EFBFBD>cifiques aux sites).</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="0" cellspacing="0"
style="border-collapse: collapse;" id="AutoNumber4">
<tbody>
<tr>
<td><u><b>Zone</b></u></td>
<td><u><b>Interface</b></u></td>
<td><u><b>Broadcast</b></u></td>
<td><u><b>Options</b></u></td>
</tr>
<tr>
<td>net</td>
<td>eth0</td>
<td>detect</td>
<td>norfc1918,routefilter </td>
</tr>
<tr>
<td>loc</td>
<td>eth1</td>
<td>detect</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>dmz</td>
<td>eth2</td>
<td>detect</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">La configuration d<>crit n<>cessite que votre r<>seau soit
d<EFBFBD>marr<EFBFBD> avant que Shorewall&nbsp; puisse&nbsp; se lancer. Cela ouvre un
lapse de temps durant lequel vous n'avez pas de protection firewall.<br>
Si vous remplacez 'detect' par les valeurs des adresses broadcoast dans
les entr<74>es suivantes, vous pouvez activer Shorewall avant les
interfaces r<>seau.<br>
</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="0" cellspacing="0"
style="border-collapse: collapse;" id="AutoNumber4">
<tbody>
<tr>
<td><u><b>Zone</b></u></td>
<td><u><b>Interface</b></u></td>
<td><u><b>Broadcast</b></u></td>
<td><u><b>Options</b></u></td>
</tr>
<tr>
<td>net</td>
<td>eth0</td>
<td>192.0.2.255</td>
<td>norfc1918,routefilter </td>
</tr>
<tr>
<td>loc</td>
<td>eth1</td>
<td>192.168.201.7</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>dmz</td>
<td>eth2</td>
<td>192.168.202.7</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">/etc/shorewall/masq - Sous-r<>seau Local<br>
</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber6">
<tbody>
<tr>
<td width="33%"><u><b>INTERFACE</b></u></td>
<td width="33%"><u><b>SOUS-RESEAU</b></u></td>
<td width="34%"><u><b>ADDRESS</b></u></td>
</tr>
<tr>
<td width="33%">eth0</td>
<td width="33%">192.168.201.0/29</td>
<td width="34%">192.0.2.176</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">/etc/shorewall/proxyarp - DMZ</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" id="AutoNumber8"
style="border-collapse: collapse;">
<tbody>
<tr>
<td><u><b>ADDRESS</b></u></td>
<td><u><b>INTERFACE</b></u></td>
<td><u><b>EXTERNAL</b></u></td>
<td><u><b>HAVE ROUTE</b></u></td>
</tr>
<tr>
<td>192.0.2.177</td>
<td>eth2</td>
<td>eth0</td>
<td>No</td>
</tr>
<tr>
<td>192.0.2.178</td>
<td>eth2</td>
<td>eth0</td>
<td>No</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">/etc/shorewall/nat- Le syst<73>me de ma fille<br>
</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" id="AutoNumber9"
style="border-collapse: collapse;">
<tbody>
<tr>
<td>EXTERNAL</td>
<td>INTERFACE</td>
<td>INTERNAL</td>
<td>ALL INTERFACES </td>
<td>LOCAL</td>
</tr>
<tr>
<td>192.0.2.179</td>
<td>eth0</td>
<td>192.168.201.4</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<p align="left">/etc/shorewall/rules</p>
</div>
<div align="left">
<blockquote>
<table border="1" cellpadding="2" style="border-collapse: collapse;"
id="AutoNumber7">
<tbody>
<tr>
<td><u><b>ACTION</b></u></td>
<td><u><b>SOURCE</b></u></td>
<td><u><b>DESTINATION</b></u></td>
<td><u><b>PROTOCOL</b></u></td>
<td><u><b>PORT</b></u></td>
<td><u><b>COMMENTS</b></u></td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>pop3</td>
<td># Pop3 depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis le R<>seau Local<br>
</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>pop3</td>
<td># Pop3 depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.178</td>
<td>net</td>
<td>tcp</td>
<td>smtp</td>
<td># Mail vers Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>http</td>
<td># WWW depuis le Net</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>https</td>
<td># HTTP s<>curis<69> depuis le Net</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.178</td>
<td>tcp</td>
<td>https</td>
<td># HTTP s<>curis<69> depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>fw</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis le firewall</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.177</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz:192.0.2.177</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS depuis le R<>seau Local</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.177</td>
<td>net</td>
<td>udp</td>
<td>domain</td>
<td># UDP DNS vers Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz:192.0.2.177</td>
<td>net</td>
<td>tcp</td>
<td>domain</td>
<td># TCP DNS vers Internet</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>dmz</td>
<td>icmp</td>
<td>echo-request</td>
<td># Ping</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>net</td>
<td>loc</td>
<td>icmp</td>
<td>echo-request</td>
<td>#&nbsp; "</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>dmz</td>
<td>loc</td>
<td>icmp</td>
<td>echo-request</td>
<td># "</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz</td>
<td>icmp</td>
<td>echo-request</td>
<td># "</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>dmz</td>
<td>tcp</td>
<td>ssh</td>
<td># SSH vers DMZ</td>
</tr>
<tr>
<td>ACCEPT</td>
<td>loc</td>
<td>fw</td>
<td>tcp</td>
<td>ssh</td>
<td># SSH vers le firewall</td>
</tr>
</tbody>
</table>
</blockquote>
</div>
<div align="left">
<h2 align="left"><a name="DNS"></a>6.0 DNS</h2>
</div>
<div align="left">
<p align="left">En donnant une collection d'adresses RFC 1918 et
publiques dans la configuration, cela justifie d'avoir des serveurs DNS
interne et externe. Vous pouvez combiner les deux dans un unique
serveur BIND 9 utilisant les vues (<i>Views). </i>Si vous n'<27>tes pas
int<EFBFBD>ress<EFBFBD> par les vues BIND 9, vous pouvez <a
href="#StartingAndStopping">allez <20> la section suivante</a>.</p>
</div>
<div align="left">
<p align="left">Supposons que votre domain est foobar.net et vous
voulez que les deux syst<73>mes DMZ s'appellent www.foobar.net et
mail.foobar.net, les trois syst<73>mes locaux&nbsp; "winken.foobar.net,
blinken.foobar.net et nod.foobar.net. Vous voulez que le firewall soit
connu <20> l'ext<78>rieur sous le nom firewall.foobar.net, son interface vers
le r<>seau local gateway.foobar.net et son interface vers la DMZ
dmz.foobar.net. Mettons le serveur DNS sur 192.0.2.177 qui sera aussi
connu sous le nom ns1.foobar.net.</p>
</div>
<div align="left">
<p align="left">Le fichier&nbsp; /etc/named.conf devrait ressembler <20>
cela:</p>
</div>
<div align="left">
<blockquote>
<div align="left">
<pre>options {<br> directory "/var/named";<br> listen-on { 127.0.0.1 ; 192.0.2.177; };<br>};<br><br>logging {<br> channel xfer-log {<br> file "/var/log/named/bind-xfer.log";<br> print-category yes;<br> print-severity yes;<br> print-time yes;<br> severity info;<br> };<br> category xfer-in { xfer-log; };<br> category xfer-out { xfer-log; };<br> category notify { xfer-log; };<br>};</pre>
</div>
<div align="left">
<pre>#<br># Ceci est la vue pr<70>sente sur vos syst<73>mes internes.<br>#<br><br>view "internal" {<br> #<br> # Les clients suivants peuvent voir le serveur<br> #<br> match-clients { 192.168.201.0/29;<br> 192.168.202.0/29;<br> 127.0.0.0/8;<br> 192.0.2.176/32; <br> 192.0.2.178/32;<br> 192.0.2.179/32;<br> 192.0.2.180/32; };<br> #<br> # Si le serveur ne peut r<>pondre <20> la requ<71>te, il utilisera des serveurs externes<br> # <br> #<br> recursion yes;<br><br> zone "." in {<br> type hint;<br> file "int/root.cache";<br> };<br><br> zone "foobar.net" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "int/db.foobar";<br> };<br><br> zone "0.0.127.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "int/db.127.0.0"; <br> };<br><br> zone "201.168.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "int/db.192.168.201";<br> };<br><br> zone "202.168.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "int/db.192.168.202";<br> };<br><br> zone "176.2.0.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "db.192.0.2.176";<br> };<br> (or status NAT for that matter)<br> zone "177.2.0.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "db.192.0.2.177";<br> };<br><br> zone "178.2.0.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "db.192.0.2.178";<br> };<br><br> zone "179.2.0.192.in-addr.arpa" in {<br> type master;<br> notify no;<br> allow-update { none; };<br> file "db.206.124.146.179";<br> };<br><br>};<br>#<br># Ceci est la vue qui sera pr<70>sente pour le monde ext<78>rieur<br>#<br>view "external" {<br> match-clients { any; };<br> #<br> # Si nous pouvons r<>pondre <20> la requ<71>te, nous le disons<br> #<br> recursion no;<br><br> zone "foobar.net" in {<br> type master;<br> notify yes;<br> allow-update {none; };<br> allow-transfer { <i>&lt;secondary NS IP&gt;</i>; };<br> file "ext/db.foobar";<br> };<br><br> zone "176.2.0.192.in-addr.arpa" in {<br> type master;<br> notify yes;<br> allow-update { none; };<br> allow-transfer { <i>&lt;secondary NS IP&gt;</i>; };<br> file "db.192.0.2.176";<br> };<br><br> zone "177.2.0.192.in-addr.arpa" in {<br> type master;<br> notify yes;<br> allow-update { none; };<br> allow-transfer { <i>&lt;secondary NS IP&gt;</i>; };<br> file "db.192.0.2.177";<br> };<br><br> zone "178.2.0.192.in-addr.arpa" in {<br> type master;<br> notify yes;<br> allow-update { none; };<br> allow-transfer { <i>&lt;secondary NS IP&gt;</i>; };<br> file "db.192.0.2.178";<br> };<br><br> zone "179.2.0.192.in-addr.arpa" in {<br> type master;<br> notify yes;<br> allow-update { none; };<br> allow-transfer { <i>&lt;secondary NS IP&gt;</i>; };<br> file "db.192.0.2.179";<br> };<br>};</pre>
</div>
</blockquote>
</div>
<div align="left">
<p align="left">Voici les fichiers de /var/named (ceux qui ne sont pas
pr<EFBFBD>sents font partis de votre distribution BIND).</p>
<p align="left">db.192.0.2.176 - Zone inverse de l'interface externe du
firewall</p>
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.0.2.176/32<br>; Filename: db.192.0.2.176<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2001102303 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br>;<br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br>@ 604800 IN NS <i>&lt;name of secondary ns&gt;</i>.<br>;<br>; ############################################################<br>; Iverse Address Arpa Records (PTR's) <br>; ############################################################<br>176.2.0.192.in-addr.arpa. 86400 IN PTR firewall.foobar.net.<br></pre>
</blockquote>
</div>
<div align="left">
<div align="left"> db.192.0.2.177 - Zone inverse pour le serveur
www/DNS
server
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.0.2.177/32<br>; Filename: db.192.0.2.177<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2001102303 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br>;<br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br>@ 604800 IN NS <i>&lt;name of secondary ns&gt;</i>.<br>;<br>; ############################################################<br>; Iverse Address Arpa Records (PTR's) <br>; ############################################################<br>177.2.0.192.in-addr.arpa. 86400 IN PTR www.foobar.net.<br></pre>
</blockquote>
</div>
</div>
<div align="left">
<div align="left"> db.192.0.2.178 - Zone inverse du serveur mail
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.0.2.178/32<br>; Filename: db.192.0.2.178<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2001102303 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br>;<br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br>@ 604800 IN NS <i>&lt;name of secondary ns&gt;</i>.<br>;<br>; ############################################################<br>; Iverse Address Arpa Records (PTR's) <br>; ############################################################<br>178.2.0.192.in-addr.arpa. 86400 IN PTR mail.foobar.net.<br></pre>
</blockquote>
</div>
</div>
<div align="left">
<div align="left"> db.192.0.2.179 - Zone inverse du serveur web
publique
de votre fille
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.0.2.179/32<br>; Filename: db.192.0.2.179<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2001102303 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br>;<br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br>@ 604800 IN NS <i>&lt;name of secondary ns&gt;</i>.<br>;<br>; ############################################################<br>; Iverse Address Arpa Records (PTR's) <br>; ############################################################<br>179.2.0.192.in-addr.arpa. 86400 IN PTR nod.foobar.net.<br></pre>
</blockquote>
</div>
</div>
<div align="left">
<p align="left">int/db.127.0.0 - Zone inverse pour localhost</p>
</div>
<div align="left">
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 127.0.0.0/8<br>; Filename: db.127.0.0<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2001092901 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br><br>; ############################################################<br>; Iverse Address Arpa Records (PTR's)<br>; ############################################################<br>1 86400 IN PTR localhost.foobar.net.</pre>
</blockquote>
</div>
<div align="left">
<p align="left">int/db.192.168.201 - Zone inverse pour le r<>seau local.
cela n'est montr<74> qu'aux clients internes<br>
</p>
</div>
<div align="left">
<blockquote>
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.168.201.0/29<br>; Filename: db.192.168.201<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net netadmin.foobar.net. (<br> 2002032501 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br><br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br><br>; ############################################################<br>; Iverse Address Arpa Records (PTR's)<br>; ############################################################<br>1 86400 IN PTR gateway.foobar.net.<br>2 86400 IN PTR winken.foobar.net.<br>3 86400 IN PTR blinken.foobar.net.<br>4 86400 IN PTR nod.foobar.net.</pre>
</blockquote>
</div>
<div align="left">
<p align="left">int/db.192.168.202 - Zone inverse de l'interface DMZ du
firewall</p>
</div>
<div align="left">
<blockquote>
<div align="left">
<pre>; ############################################################<br>; Start of Authority (Inverse Address Arpa) for 192.168.202.0/29<br>; Filename: db.192.168.202<br>; ############################################################<br>@ 604800 IN SOA ns1.foobar.net netadmin.foobar.net. (<br> 2002032501 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ) ; minimum (1 day)<br><br>; ############################################################<br>; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)<br>; ############################################################<br>@ 604800 IN NS ns1.foobar.net.<br><br>; ############################################################<br>; Iverse Address Arpa Records (PTR's)<br>; ############################################################<br>1 86400 IN PTR dmz.foobar.net.</pre>
</div>
</blockquote>
</div>
<div align="left">
<p align="left">int/db.foobar - Forward zone pour l'utilisation des
clients internes.</p>
</div>
<div align="left">
<blockquote>
<pre>;##############################################################<br>; Start of Authority for foobar.net.<br>; Filename: db.foobar<br>;##############################################################<br>@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2002071501 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ); minimum (1 day)<br>;############################################################<br>; foobar.net Nameserver Records (NS)<br>;############################################################<br>@ 604800 IN NS ns1.foobar.net.<br><br>;############################################################<br>; Foobar.net Office Records (ADDRESS)<br>;############################################################<br>localhost 86400 IN A 127.0.0.1<br><br>firewall 86400 IN A 192.0.2.176<br>www 86400 IN A 192.0.2.177<br>ns1 86400 IN A 192.0.2.177<br>www 86400 IN A 192.0.2.177<br><br>gateway 86400 IN A 192.168.201.1<br>winken 86400 IN A 192.168.201.2<br>blinken 86400 IN A 192.168.201.3<br>nod 86400 IN A 192.168.201.4</pre>
</blockquote>
</div>
<div align="left">
<p align="left">ext/db.foobar - Forward zone pour les clients externes<br>
</p>
</div>
<div align="left">
<blockquote>
<div align="left">
<pre>;##############################################################<br>; Start of Authority for foobar.net.<br>; Filename: db.foobar<br>;##############################################################<br>@ 86400 IN SOA ns1.foobar.net. netadmin.foobar.net. (<br> 2002052901 ; serial<br> 10800 ; refresh (3 hour)<br> 3600 ; retry (1 hour)<br> 604800 ; expire (7 days)<br> 86400 ); minimum (1 day)<br>;############################################################<br>; Foobar.net Nameserver Records (NS)<br>;############################################################<br>@ 86400 IN NS ns1.foobar.net.<br>@ 86400 IN NS <i>&lt;secondary NS&gt;</i>.<br>;############################################################<br>; Foobar.net Foobar Wa Office Records (ADDRESS)<br>;############################################################<br>localhost 86400 IN A 127.0.0.1<br>;<br>; The firewall itself<br>;<br>firewall 86400 IN A 192.0.2.176<br>;<br>; The DMZ<br>;<br>ns1 86400 IN A 192.0.2.177<br>www 86400 IN A 192.0.2.177<br>mail 86400 IN A 192.0.2.178<br>;<br>; The Local Network<br>;<br>nod 86400 IN A 192.0.2.179<br><br>;############################################################<br>; Current Aliases for foobar.net (CNAME)<br>;############################################################<br><br>;############################################################<br>; foobar.net MX Records (MAIL EXCHANGER)<br>;############################################################<br>foobar.net. 86400 IN A 192.0.2.177<br> 86400 IN MX 0 mail.foobar.net.<br> 86400 IN MX 1 <i>&lt;backup MX&gt;</i>.</pre>
</div>
</blockquote>
</div>
<div align="left">
<h2 align="left"><a name="StartingAndStopping"></a>7.0 D<>marrer et
Stopper le firewall</h2>
</div>
<div align="left">
<p align="left">La <a href="Install.htm">proc<EFBFBD>dure
d'installation</a> configure votre syst<73>me pour que Shorewall d<>marre
au
boot du syst<73>me.</p>
</div>
<div align="left">
<p align="left">Le firewall est d<>marr<72> en utilisant la commande
"shorewall start" et arr<72>t<EFBFBD> avec "shorewall stop". Quand le firewall
est
arr<EFBFBD>t<EFBFBD>, le routage est actif sur les h<>tes qui ont une entr<74>e dans le
fichier <a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
Le firewall actif peut-<2D>tre relanc<6E> gr<67>ce <20> la commande "shorewall
restart". Si vous voulez retirer toute trace de Shorewall de votre
configuration Netfilter, utilisez "shorewall clear".</p>
</div>
<div align="left">
<p align="left"><img
style="border: 0px solid ; width: 13px; height: 13px;"
src="images/BD21298_2.gif" title="" alt="">&nbsp;&nbsp;&nbsp; Editez
le fichier&nbsp; /etc/shorewall/routestopped
file et ajouter les syst<73>mes qui doivent pouvoir se connecter au
firewall quant il est arr<72>t<EFBFBD>.</p>
</div>
<div align="left">
<p align="left"><b>ATTENTION: </b>Si vous <20>tes connect<63> <20> votre
firewall depuis Internet, ne pas ex<65>cutez la commande&nbsp; "shorewall
stop" tant que vous n'avez pas une entr<74>e active pour l'adresse IP de
votre h<>te dans le fichier <a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
Egalement, je ne recommande pas d'utiliser "shorewall restart"; il est
pr<EFBFBD>f<EFBFBD>rable d'utiliser une <i><a
href="starting_and_stopping_shorewall.htm">configuration
alternative</a></i>&nbsp; et la tester avec la commande <a
href="starting_and_stopping_shorewall.htm">"shorewall try"</a>.</p>
</div>
<p align="left"><font size="2">Last updated 8/26/2003 - Fabien
Demassieux and <a href="support.htm">Tom Eastep</a></font></p>
<p align="left"><a href="copyright.htm"><font size="2">Copyright 2002,
2003 Fabien Demassieux and Thomas M. Eastep</font></a><br>
</p>
<br>
<br>
</body>
</html>