mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-16 11:20:53 +01:00
2516 lines
98 KiB
HTML
2516 lines
98 KiB
HTML
|
<!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>
|
|||
|
<h1 style="text-align: center;">Guide de Configuration de Shorewall<br>
|
|||
|
</h1>
|
|||
|
Note du traducteur : <br>
|
|||
|
Je remercie <font size="2">l'<27>quipe Shorewall, 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="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 One-to-one 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=""> Si vous
|
|||
|
utilisez LEAF
|
|||
|
Bering, votre configuration Shorewall n'est PAS 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=""> 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 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=""> 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 <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 destination 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 <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> 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> </td>
|
|||
|
<td> </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td>net</td>
|
|||
|
<td>all</td>
|
|||
|
<td>DROP</td>
|
|||
|
<td>info</td>
|
|||
|
<td> </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td>all</td>
|
|||
|
<td>all</td>
|
|||
|
<td>REJECT</td>
|
|||
|
<td>info</td>
|
|||
|
<td> </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="">
|
|||
|
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
|
|||
|
/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>) <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="">
|
|||
|
Si votre Interface Externe est <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 (eth0, eth1 or eth2) et doit <20>tre connect<63> <20> un hub ou
|
|||
|
un
|
|||
|
switch. Vos ordinateurs locaux doivent <20>tre 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 </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
|
|||
|
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> </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td>dmz</td>
|
|||
|
<td>eth2</td>
|
|||
|
<td>detect</td>
|
|||
|
<td> </td>
|
|||
|
</tr>
|
|||
|
</tbody>
|
|||
|
</table>
|
|||
|
</blockquote>
|
|||
|
<p align="left"><img
|
|||
|
style="border: 0px solid ; width: 13px; height: 13px;"
|
|||
|
src="images/BD21298_2.gif" title="" alt="">
|
|||
|
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 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> </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> </td>
|
|||
|
<td> </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="">
|
|||
|
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
|
|||
|
<i>"IP
|
|||
|
Fundamentals: What Everyone Needs to Know about Addressing &
|
|||
|
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>
|
|||
|
<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 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> (<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 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) </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>. </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"> 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" 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
|
|||
|
'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 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 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: <BROADCAST,MULTICAST,UP> 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 </i>des
|
|||
|
correspondances IP<->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->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 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=""> 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 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 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 <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 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>One-to-one 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> 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"> </div>
|
|||
|
<div align="left"> <img
|
|||
|
style="border: 0px solid ; width: 13px; height: 13px;"
|
|||
|
src="images/BD21298_2.gif" title="" alt="">
|
|||
|
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"> </div>
|
|||
|
<div align="left"> <img
|
|||
|
style="border: 0px solid ; width: 13px; height: 13px;"
|
|||
|
src="images/BD21298_2.gif" title="" alt="">
|
|||
|
SNAT est configur<75> dans Shorewall avec le
|
|||
|
fichier <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="">
|
|||
|
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 <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"> </div>
|
|||
|
<div align="left"> <img
|
|||
|
style="border: 0px solid ; width: 13px; height: 13px;"
|
|||
|
src="images/BD21298_2.gif" title="" alt="">
|
|||
|
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 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 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) <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 one-to-one NAT). Heureusement, des packages r<>cents
|
|||
|
(Redhat)
|
|||
|
iputils incluent "arping", avec l'option "-U" qui fait cela:<br>
|
|||
|
<br>
|
|||
|
<font color="#009900"><b>arping -U -I <net
|
|||
|
if> <newly proxied IP></b></font><br>
|
|||
|
<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, et "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 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 (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 > 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 > 192.0.2.177 : icmp: echo reply</pre>
|
|||
|
</div>
|
|||
|
<div align="left">
|
|||
|
<p align="left">Notez que l'adresse source MAC dans la
|
|||
|
requ<EFBFBD>te echo est diff<66>rente de l'adresse de
|
|||
|
destination dans la r<>ponse 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 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 One-to-one NAT</h4>
|
|||
|
</div>
|
|||
|
<div align="left">
|
|||
|
<p align="left">Avec one-to-one NAT, vous assignez les adresses
|
|||
|
syst<EFBFBD>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="">
|
|||
|
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=""> 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> </td>
|
|||
|
<td> </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 one-to-one NAT). Heureusement, les versions r<>centes des
|
|||
|
packages Redhat's iputils incluent "arping", avec l'option "-U" qui
|
|||
|
fait
|
|||
|
cela:<br>
|
|||
|
<br>
|
|||
|
<font color="#009900"><b>arping -U -I <net
|
|||
|
if> <newly proxied IP></b></font><br>
|
|||
|
<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, et "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 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 (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 > 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 > 192.0.2.177 : icmp: echo reply</pre>
|
|||
|
</div>
|
|||
|
<div align="left">
|
|||
|
<p align="left">Notez que l'adresse source MAC dans la
|
|||
|
requ<EFBFBD>te echo est diff<66>rente de l'adresse de
|
|||
|
destination dans la r<>ponse 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 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=""> 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 <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 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. </p>
|
|||
|
</div>
|
|||
|
<div align="left">
|
|||
|
<p align="left"><img
|
|||
|
style="border: 0px solid ; width: 13px; height: 13px;"
|
|||
|
src="images/BD21298_2.gif" title="" alt=""> 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> </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td>dmz</td>
|
|||
|
<td>eth2</td>
|
|||
|
<td>detect</td>
|
|||
|
<td> </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 puisse 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> </td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td>dmz</td>
|
|||
|
<td>eth2</td>
|
|||
|
<td>192.168.202.7</td>
|
|||
|
<td> </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># "</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 "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 /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><secondary NS IP></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><secondary NS IP></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><secondary NS IP></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><secondary NS IP></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><secondary NS IP></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><name of secondary ns></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><name of secondary ns></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><name of secondary ns></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><name of secondary ns></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><secondary NS></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><backup MX></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=""> Editez
|
|||
|
le fichier /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 "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> 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 11/13/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>
|