mirror of
https://gitlab.com/shorewall/code.git
synced 2024-11-30 19:43:45 +01:00
c2ccd7fd3d
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@800 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
2516 lines
98 KiB
HTML
Executable File
2516 lines
98 KiB
HTML
Executable File
<!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'équipe Shorewall, pour ce firewall
|
|
formidable et l'aide personnelle que m'a donné </font><font size="2">Tom
|
|
Eastep.</font><br>
|
|
J'espère que cette traduction vous aidera à utiliser efficacement ce
|
|
firewall.<br>
|
|
Toutefois, si ce manuel comporte des lacunes, des incohérences ou afin
|
|
d'améliorer sa compréhension, <br>
|
|
n'hésitez pas à 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é</a><br>
|
|
<a href="#NonRouted">5.2 Non-routé</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êter le firewall</a></p>
|
|
<h2><a name="Introduction"></a>1.0 Introduction</h2>
|
|
<p>Ce guide est destiné aux utilisateurs qui configurent Shorewall dans
|
|
un environnement ou un ensemble d'adresses IP publiques doivent être
|
|
prises en compte ou à ceux qui souhaitent en savoir plus à 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 élevé, le guide vous donnera
|
|
les
|
|
indications générales à 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ère de prendre en considé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é
|
|
(sur RedHat, le package s'appelle <i>iproute</i>)<i>. </i>Vous pouvez
|
|
voir si le package est installé grâce au programme <b>ip</b> sur votre
|
|
système firewall. En tant que root, vous pouvez utiliser la commande
|
|
'which' pour vérifier que le programme est pré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 à changer
|
|
sont
|
|
précédé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
|
|
éditez vos fichiers
|
|
de configuration sous un système d'exploitation Windows, vous devez
|
|
sauvegarder ceux-ci en tant que fichiers formatés Unix si votre éditeur
|
|
le permet ou utiliser la commande dos2unix avant de les utiliser avec
|
|
Shorewall. Idem si vous transférez vos fichiers par l'intermé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épertoire /etc/shorewall -- pour la plus par des paramé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éés durant <a
|
|
href="Install.htm">La procédure d'installation de
|
|
Shorewall</a>.</p>
|
|
<p>Comme chaque fichier est abordé, je vous suggère de regarder celui
|
|
de votre système -- chaque fichier contient des instructions détaillées
|
|
de configuration et d'autres des entrées par défaut.</p>
|
|
<p>Shorewall voit le réseau ou il opère comme composé d'un ensemble de <i>zones.</i>
|
|
Dans la configuration par défaut, les zones suivantes sont utilisé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é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ît aussi le système firewall comme sa propre zone -
|
|
par défaut, le firewall lui-même est connu sous le nom <b>fw</b>
|
|
cela peut être modifié 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é.<br>
|
|
</p>
|
|
<p>Mise à par <b>fw</b>, Shorewall n'attache aucune importance au nom
|
|
des zones. Les Zones sont entièrement ce que VOUS en faites. Cela veut
|
|
dire que vous ne devez pas vous attendre à ce que Shorewall fasse
|
|
quelque chose de spé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 à autoriser ou à refuser sous
|
|
exprimé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 à 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és du noyau (kernel) <a
|
|
href="http://www.netfilter.org/">Netfilter</a>. Netfilter implé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é comme une <i>
|
|
inspection déclarée </i>de paquets. Les propriétés de <span
|
|
style="font-style: italic;">déclaration</span> permettent au firewall
|
|
d'être définie en terme de <i>connexions</i> plutô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é en terme de zone client et
|
|
de zone serveur.</li>
|
|
</ol>
|
|
<p>Si les connexions d'un certain type sont autorisés de la zone A au
|
|
firewall et sont aussi autorisés du firewall à la zone B cela <font
|
|
color="#ff6633"><b><u>NE VEUT PAS dire que ces connections sont
|
|
autorisés de la zone A à la zone B</u></b></font>. Cela veut plutôt
|
|
dire que vous avez un proxy qui tourne sur le firewall qui accepte les
|
|
connections de la zone A et qui ensuite établit ces propres connections
|
|
du firewall à la zone B.</p>
|
|
<p>Pour chaque requête de connexion sur le firewall, la requête est
|
|
d'abord évalué à travers le fichier /etc/shorewall/rules file. Si
|
|
aucune
|
|
règle dans ce fichier ne correspond, la connexion interroge ensuite la
|
|
première police dans /etc/shorewall/policy qui correspond à la
|
|
requête et l'applique. Si cette police est REJECT ou DROP, la
|
|
requête est a nouveau évaluée à 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écé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è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ère un message au
|
|
niveau <i>info</i>. Quant la requête est rejeté, 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, é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éma
|
|
ci-dessous. Bien qu'il ne puisse correspondre à votre propre réseau, il
|
|
peut être utilisé pour illustrer les aspects importants de la
|
|
configuration de Shorewall.</p>
|
|
<p align="left">Sur ce schéma:</p>
|
|
<ul>
|
|
<li>La zone DMZ est composée des systèmes DMZ 1 et DMZ 2. Une DMZ est
|
|
utilisée pour isoler vos serveurs accessibles depuis Internet de vos
|
|
systèmes locaux. Ainsi si un de ces serveurs est compromis, vous avez
|
|
encore votre firewall entre le système compromis et vos systèmes locaux.</li>
|
|
<li>La zone Local est composée des systèmes Local 1, Local 2 et Local
|
|
3. </li>
|
|
<li>Tous les systèmes du FAI vers l'exté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çon la plus simple pour définir les zones est
|
|
d'associer le nom de la zone (définie précé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é ci-dessus à trois interfaces. Si
|
|
la connexion se fait à travers un câble ou un "modem" DSL , l'<i>Interface</i><i>
|
|
Externe</i> sera l'adaptateur qui est branché 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 à travers un modem classique, votre Interface
|
|
Externe sera é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 être un adaptateur
|
|
Ethernet (eth0, eth1 or eth2) et doit être connecté à un hub ou
|
|
un
|
|
switch. Vos ordinateurs locaux doivent être connectés au même
|
|
switch (note: Si vous avez une machine unique, vous pouvez connecter le
|
|
firewall directement à l'ordinateur en utilisant un câble <span
|
|
style="font-style: italic;">croisé</span>).</p>
|
|
<p align="left">Votre <i>Interface </i><i>DMZ </i> doit aussi
|
|
être un adaptateur Ethernet (eth0, eth1 or eth2) et doit être connecté
|
|
à un hub ou un switch. Vos ordinateurs DMZ doivent être
|
|
connectés au même switch (note: Si vous avez une machine DMZ unique,
|
|
vous pouvez connecter le firewall directement à l'ordinateur en
|
|
utilisant un câble <span style="font-style: italic;">croisé</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è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écé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éfinissez les interfaces du réseau sur votre firewall et associez
|
|
chaque interface avec une zone. Si vous avez une zone qui est
|
|
interfacée
|
|
avec plus d'une interface, incluez simplement une entrée pour chaque
|
|
interface et répé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é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 êtes déjà familier avec l'adressage IP et le
|
|
routage, vous pouvez aller <a href="#Options">à 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é sur
|
|
32-bit. La notation w.x.y.z se réfère à une adresse dont le byte
|
|
d'ordre
|
|
supérieur est "w", le suivant à pour valeur "x", etc. Si nous prenons
|
|
l'adresse 192.0.2.14 et l'exprimons en hexadé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 étaient utilisés diffé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 était uniquement déterminé par la
|
|
valeur du byte de l'ordre supérieur, ainsi vous pouviez regarder une
|
|
adresse IP et déterminer immé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éro de réseau</span>; le reste de
|
|
l'adresse est le <i>numéro d'hôte</i>. Par exemple, dans la Classe C
|
|
l'adresse 192.0.2.14, le numéro hexadécimal du réseau est C00002 et le
|
|
numéro hexadé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ès limité
|
|
(rapidement, les grandes sociétés et les universités s'étaient assigné
|
|
leur propre réseau de classe A!). Aprè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>
|
|
évolua; cette technique est consignée par le <i>Classless Inter Domain
|
|
Routing</i> (CIDR). Aujourd'hui, tous les systèmes avec lesquels vous
|
|
travaillerez comprennent probablement la notation CIDR. Le réseau
|
|
basé sur les Classes est du domaine du passé .</p>
|
|
<p align="left">Un sous-réseau (aussi appelé <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ère adresse dans le jeu est un multiple de
|
|
la taille du jeu.</p>
|
|
</li>
|
|
<li>
|
|
<p align="left">La première adresse du sous-réseau est réservée et
|
|
se réfère à l'<i>adresse du sous-réseau.</i></p>
|
|
</li>
|
|
<li>
|
|
<p align="left">La dernière adresse du sous-réseau est réservé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 être assignées aux hôtes). La
|
|
première
|
|
et la dernière adresse du sous-réseau sont respectivement utilisées
|
|
pour
|
|
l'adresse du sous-réseau et de l'adresse broadcast du sous-réseau. En
|
|
consé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é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
|
|
à
|
|
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 écrit avec un slash ("/") -- vous
|
|
pouvez souvent entendre un sous-réseau de taille 64 qui fait référence
|
|
à
|
|
un sous-réseau "slash 26" et un de taille 8 faisant référence à un
|
|
"slash 29".</p>
|
|
<p align="left">Le masque de sous-réseau (aussi référencé par son <i>netmask) </i>est
|
|
simplement un nombre de 32-bit avec le premier bit "VLSM" à un et
|
|
les autres à zéro. Par exemple, pour un sous-réseau de taille 64, le
|
|
masque de sous-réseau débute par 26 bits à 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été 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écédemment, la propriété du masque de
|
|
sous-réseau est trè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és qui doivent être
|
|
mentionné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 être
|
|
écrite <b>a.b.c.d/32</b> et l'ensemble des adresses possibles est
|
|
é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é 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é avec une adresse ip <b>a.b.c.d</b>
|
|
et
|
|
avec le masque de réseau qui correspond à la variable VLSM <b>/v</b>.</p>
|
|
<p align="left">Exemple: 192.0.2.65/29</p>
|
|
<p align="left"> L'interface est configuré 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érique <i>texas</i> est le tunnel GRE vers un
|
|
site peer à Dallas, la zone Texas.<br>
|
|
<br>
|
|
Les trois premières routes sont des <span style="font-style: italic;">routes
|
|
hôte </span>puisqu'elles indiquent comment aller vers un hôte unique.
|
|
Dans la sortie de 'netstat' cela peut-ê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 à un sous-réseau. La dernière route est la <span
|
|
style="font-style: italic;">route par défaut</span> est la passerelle
|
|
(gateway) mentionnée est appelé <i>passerelle par défaut (</i><i>default
|
|
gateway</i>).</p>
|
|
<p align="left">Quant le noyau essaye d'envoyer un paquet à 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é avec la valeur du
|
|
'Genmask' dans l'entrée de la table.</p>
|
|
</li>
|
|
<li>
|
|
<p align="left">Le résultat est comparé avec la valeur de la
|
|
destination 'Destination' dans l'entré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é au gateway à travers l'interface nommée dans la
|
|
colonne 'Iface'.</p>
|
|
</li>
|
|
<li>
|
|
<p align="left">Sinon, le paquet est directement envoyé à A à
|
|
travers l'interface nommée dans la colonne 'iface'.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p align="left">Autrement, les étapes précédentes sont répétées sur
|
|
l'entrée suivante de la table.</p>
|
|
</li>
|
|
</ul>
|
|
<p align="left">Puisque la route par défaut correspond à toutes les
|
|
adresses IP (<b>A</b> donne 0.0.0.0 = 0.0.0.0), les paquets qui ne
|
|
correspondent à aucune des autres entrées de la table de routage sont
|
|
envoyés au <i>gateway</i> <span style="font-style: italic;">par défaut</span>
|
|
qui généralement est un routeur vers le FAI.</p>
|
|
<p align="left">Voici un exemple. Supposez que vous souhaitez router un
|
|
paquet à 192.168.1.5. Cette adresse ne correspond à 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 à la l'entré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é à travers
|
|
eth2.</p>
|
|
</div>
|
|
<p align="left">Un des points qui doit être souligné -- tous les
|
|
paquets sont envoyé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étique qui leur permet de suivre la
|
|
route emprunté par les paquets envoyés. Ce n'est pas le cas; La réponse
|
|
peut prendre un chemin totalement différent de celui de la requête du
|
|
client -- les routes requête/réponse sont totalement indé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 à travers Ethernet, les
|
|
adresses IP ne sont pas utilisées. Bien que l'adressage Ethernet soit
|
|
basé sur les adresses <i>Media Access Control</i> (MAC). Chaque
|
|
périphérique Ethernet à sa propre adresse MAC qui est contenu
|
|
dans
|
|
une PROM lors de la fabrication. Vous pouvez obtenir l'adresse MAC
|
|
grâce
|
|
à 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é sur 6 bytes (48 bits). Une carte MAC est généralement aussi
|
|
imprimé 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é 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 échange , 192.168.1.254 (MAC 2:0:8:e3:4c:48)
|
|
veut connaître l'adresse MAC du périphérique avec l'adresse IP
|
|
192.168.1.19. Le système ayant cette adresse IP répond que l'adresse
|
|
MAC
|
|
du périphé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'échange
|
|
ARP chaque fois qu'un paquet est envoyé, le systè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ème (également sur les systè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' à la translation de résolution de noms
|
|
IP->DNS. Si je n'utilise pas cette option, la marque de question
|
|
aurait été remplacé par le FQDN correspondant à chaque adresse IP.
|
|
Notez
|
|
que la dernière information dans la table d'enregistrement est celle
|
|
que
|
|
nous voyons en utilisant précédemment tcpdump.</p>
|
|
<h3 align="left"><a name="RFC1918"></a>4.5 RFC 1918</h3>
|
|
<p align="left">Les adresses IP sont alloués par l'autorité <i> <a
|
|
href="http://www.iana.org/">Internet Assigned Number Authority</a> </i>(IANA)
|
|
qui délégue des allocations géographiques basés sur le <i>Regional
|
|
Internet Registries</i> (RIRs). Par exemple, les allocations pour les
|
|
Etats-Unis sont déléguées à <i><a href="http://www.arin.net/">American
|
|
Registry for Internet Numbers</a> </i>(ARIN). Ces RIRs peuvent
|
|
déléguer à des bureaux nationaux. La plus part d'entre nous ne traite
|
|
pas avec autorités mais obtienne plutôt leur adresse IP par leur FAI.</p>
|
|
<p align="left">Dans la réalité, généralement on ne peut se permettre
|
|
autant d'adresses IP Publiques que de périphériques à assigner si bien
|
|
que nous utiliseront des adresses IP <span style="font-style: italic;">Privées</span>.
|
|
RFC 1918 réserve plusieurs plages d'adresse IP à 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ées par la RFC 1918 sont parfois
|
|
appelé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éhensible car tout le monde peut choisir ces adresses
|
|
pour
|
|
un usage privé.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Quant on choisit des adresses de ces plages, il y a
|
|
deux choses à garder en mémoire:</p>
|
|
</div>
|
|
<div align="left">
|
|
<ul>
|
|
<li>
|
|
<p align="left">Comme l'espace des adresses IPv4 s'épuise, de plus
|
|
en plus d'organisation (comprenant les FAI) commencent à 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és par votre FAI ou une autre organisation avec laquelle
|
|
vous
|
|
souhaiter établir une liaison VPN. </p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">C'est pourquoi c'est une bonne idée de vérifier avec
|
|
votre FAI s'il n'utilise pas (ou ne prévoie pas d'utiliser) des
|
|
adresses
|
|
privé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 à
|
|
dire du nombre d'entité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ères:<br>
|
|
</p>
|
|
</div>
|
|
<div align="left">
|
|
<ol>
|
|
<li>
|
|
<p align="left"><b>Routé - </b>Le trafic vers chacune de vos
|
|
adresses sera routé à travers une unique <i>adresse passerelle</i>.
|
|
Cela sera géné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é - </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 étudierons
|
|
chaque cas séparément.<br>
|
|
</p>
|
|
<p align="left">Avant de commencer, il y a une chose que vous devez
|
|
vé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ôler les paramètres
|
|
suivants; si ce n'est pas juste, appliquer les changements
|
|
nécessaires:<br>
|
|
</p>
|
|
<ul>
|
|
<li>NAT_ENABLED=Yes (Shorewall versions antérieures à 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ès FAI vous a
|
|
assigné le sous-réseau 192.0.2.64/28 routé à 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é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é 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éfaut
|
|
pour les hôtes dans la DMZ pourra être configuré à 192.0.2.66 et la
|
|
passerelle par défaut pour les hôtes du réseau local pourra ê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ôt qu'un /28,
|
|
l'utilisation de 6 adresses IP parmi les 256 peut être justifié par la
|
|
simplicité du paramétrage.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Le lecteur astucieux aura remarqué 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 à 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ête ARP "qui-a
|
|
192.0.2.65" et aucune interface sur le segment Ethernet DMZ à
|
|
cette adresse IP. Assez bizarrement, le firewall répondra à la
|
|
requête avec l'adresse MAC de sa propre <u>Interface DMZ!!</u> DMZ 1
|
|
peut alors envoyer des trames Ethernet frames adressées à cette
|
|
adresse MAC et les trames seront reçues (correctement) par le
|
|
firewall/routeur.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">C'est plutôt une possibilité inattendue d'ARP sur la
|
|
partie du Noyau Linux qui pousse cet avertissement très tôt dans ce
|
|
manuel à propos de la connexion de plusieurs interfaces
|
|
firewall/routeur
|
|
au même hub ou switch. Quant une requête ARP destiné à une des
|
|
adresses firewall/routeur est envoyé par un autre système connecté au
|
|
hub/switch, toutes les interfaces du firewall qui se connectent au
|
|
hub/switch peuvent répondre! C'est alors une course à la réponse qui
|
|
"est-là" qui atteindra en premier l'émetteur.</p>
|
|
</div>
|
|
<div align="left">
|
|
<h3 align="left"><a name="NonRouted"></a>5.2 Non-routé</h3>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Avec la situation précédente mais non-routé, vous
|
|
pouvez configurer votre réseau exactement comme décrit ci-dessus avec
|
|
une condition supplémentaire; spé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é dans
|
|
le précédent exemple (même si la configuration est routé). </p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left"><b>Pour le besoin de cette section, admettons que notre
|
|
FAI nous a assigné 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é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és qui peuvent être
|
|
utilisées pour règler ce problè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é <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é <i>One-to-one NAT</i>. </p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Souvent une combinaison de ces techniques est utilisée.
|
|
Chacune d'entre elle sera détaillé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é en
|
|
utilisant les adresses RFC 1918. Quant un hôte A sur ce segment interne
|
|
initialise une connexion à l'hôte <b>B</b> sur Internet, le
|
|
firewall/routeur réécrit les entêtes IP dans la requête pour utiliser
|
|
une de vos adresses publiques IP en tant qu'adresse source. Quant B
|
|
répond et que la réponse est reçu par le firewall, le firewall change
|
|
l'adresse destination par celle RFC 1918 de <b>A</b> et renvoi la
|
|
réponse à 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 à la fois comme
|
|
adresse externe du firewall et l'adresse source des requêtes Internet
|
|
envoyé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 été assigné 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ème dans la zone locale pourra être configuré
|
|
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é 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é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é, il est impossible pour les
|
|
hôtes sur Internet d'initialiser une connexion avec un des systèmes
|
|
puisque ces systèmes n'ont pas d'adresses publiques IP. DNAT fournit
|
|
une
|
|
méthode pour autoriser des connexions sélectionné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ème "Local 3". Vous pouvez autoriser les
|
|
connexions d'Internet à son serveur en ajoutant l'entré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éder au serveur de votre fille, elle peut se connecter à l'adresse
|
|
http://192.0.2.176 (l'adresse IP externe
|
|
de votre firewall) et le firewall réécrira l'adresse IP à 192.168.201.4
|
|
(le système de votre fille) et enverra la requête. Quant le serveur de
|
|
votre fille répond, le firewall réécrira la source de réponse avec
|
|
192.0.2.176 et retournera la réponse à <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 à 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ère votre firewall est
|
|
assigné à une de vos adresses publiques (<b>A)</b>, a le même masque de
|
|
réseau <b>(M) </b>que l'interface externe du firewall. </p>
|
|
</li>
|
|
<li>
|
|
<p align="left">Le firewall répond à ARP "qui a" demandé <b>A.</b>
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p align="left">Quant <b>H</b> délivre une requê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 à <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é les adresses IP 192.0.2.177
|
|
au système DMZ 1 et 192.0.2.178 à DMZ 2. Notez que nous avons juste
|
|
assigné une adresse arbitraire RFC 1918 et un masque de sous-réseau à
|
|
l'interface DMZ de notre firewall. Cette adresse et le masque ne sont
|
|
pas pertinentes - vérifiez juste que celle-ci n'écrase pas un autre
|
|
sous-réseau déjà 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 à travers eth2 à 192.0.2.177 et
|
|
192.0.2.178.<br>
|
|
</p>
|
|
<p>Les interfaces ethernet de DMZ 1 et DMZ 2 pourront être
|
|
configurées pour avoir les adresses IP apparentes mais devront avoir la
|
|
même passerelle par défaut que le firewall lui-même -- nommé
|
|
192.0.2.254. En d'autres termes, elles pourront être configurées juste
|
|
comme elles devraient être si elles étaient parallèles au firewall
|
|
plutôt que derriè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) à
|
|
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 à sa place ici. Les FAIs
|
|
configure(nt) typiquement leur routeur avec un timeout de cache ARP
|
|
élevé. Si vous déplacer un système parallèle à votre firewall derrière
|
|
le Proxy ARP du firewall, cela peut mettre des HEURES avant que le
|
|
systè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èle qu'un paquet ARP <br>
|
|
<br>
|
|
"gratuitous" peut entraîner le routeur de votre FAI à rafraîchir son
|
|
cache(section 4.7). Une "gratuitous" ARP est simplement une requête
|
|
d'un
|
|
hôte demandant l'adresse MAC de sa propre adresse IP; éventuellement
|
|
pour vérifier que l'adresse IP n'est pas dupliquée,...<br>
|
|
<br>
|
|
si l'hôte envoyant la commande "gratuitous" ARP vient juste de changer
|
|
son adresse IP..., ce paquet entraîne tous les autres hôtes...qui ont
|
|
une entrée dans son cache pour l'ancienne adresse matériel de mettre à
|
|
jour é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érable à Internet derriè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è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é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ée ARP pour 192.0.2.177.
|
|
Sur
|
|
le firewall, lancez tcpdump de cette faç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 ê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ête echo est différente de l'adresse de
|
|
destination dans la réponse echo!! Dans le cas ou
|
|
0:4:e2:20:20:33 était l'adresse MAC de l'interface NIC eth0 du firewall
|
|
tandis que 0:c0:a8:50:b2:57 é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ô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èmes
|
|
RFC 1918 puis établissez une à 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écédent du serveur web de votre
|
|
fille tournant sur le systè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é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é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é d'allouer à
|
|
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é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ée active, votre fille a sa propre
|
|
adresse IP et les deux autres systè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 établie par l'entrée ci-dessus, ce n'est pas
|
|
né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 à sa place ici. FAIs
|
|
configure(nt) typiquement leur routeur avec un timeout de cache ARP
|
|
élevé. Si vous déplacer un système parallèle à votre firewall derrière
|
|
le Proxy ARP du firewall, cela peut mettre des HEURES avant que le
|
|
systè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èle qu'un paquet ARP <br>
|
|
<br>
|
|
"gratuitous" peut entraîner le routeur de votre FAI à rafraîchir son
|
|
cache(section 4.7). Une "gratuitous" ARP est simplement une requête
|
|
d'un
|
|
hôte demandant l'adresse MAC de sa propre adresse IP; éventuellement
|
|
pour vérifier que l'adresse IP n'est pas dupliquée,...<br>
|
|
<br>
|
|
"si l'hôte envoyant la "gratuitous" ARP vient juste de changer son
|
|
adresse IP..., ce paquet entraîne tous les autres hôtes...qui ont une
|
|
entrée dans son cache pour l'ancienne adresse matériel de mettre à jour
|
|
é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érable à Internet derriè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è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é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ée ARP pour 192.0.2.177.
|
|
Sur
|
|
le firewall, lancez tcpdump de cette faç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 ê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ête echo est différente de l'adresse de
|
|
destination dans la réponse echo!! Dans le cas ou
|
|
0:4:e2:20:20:33 était l'adresse MAC de l'interface NIC eth0 du firewall
|
|
tandis que 0:c0:a8:50:b2:57 é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ô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èmes locaux
|
|
(Local 1-3) peuvent accéder à tous les serveurs sur Internet et la DMZ
|
|
ne peut accéder à aucun autre hôte (incluant le firewall). Avec les
|
|
exceptions des règles <a href="#DNAT">règles NAT</a> qui entraîne la
|
|
translation d'adresses et permet aux requêtes de connexion translatées
|
|
de passer à travers le firewall, la façon d'autoriser des
|
|
requêtes
|
|
à 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ées dans cette section, elle ne sont pas
|
|
affiché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é 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é 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èmes DMZ depuis le réseau local -- Je recommande
|
|
SSH
|
|
qui, grâce à son utilitaire scp peut aussi faire de la diffusion
|
|
et de la mise à 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écédente reflète ma préférence
|
|
personnelle pour l'utilisation de Proxy ARP associé à mes serveurs de
|
|
la
|
|
DMZ et SNAT/NAT pour mes systèmes locaux. Je préfère utiliser NAT
|
|
seulement dans le cas ou un système qui fait partie d'un sous-réseau
|
|
RFC
|
|
1918 à 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-être une bonne
|
|
idée de parcourir le fichier <a href="Documentation.htm#Conf">/etc/shorewall/shorewall.conf</a>
|
|
afin de voir si autre chose pourrait être intéressant. Vous pouvez
|
|
aussi
|
|
regarder aux autres fichiers de configuration que vous n'avez pas
|
|
touché
|
|
pour un aperçu des autres possibilités de Shorewall.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Dans le cas ou vous n'auriez pas validé les étapes,
|
|
ci-dessous se trouve un jeu final des fichiers de configuration pour
|
|
notre réseau exemple. Uniquement ceux qui auraient étés modifiés de la
|
|
configuration originale sont montrés.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">/etc/shorewall/interfaces (Les "options" seront
|
|
spé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émarré 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é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è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é 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é 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'êtes pas
|
|
intéressé par les vues BIND 9, vous pouvez <a
|
|
href="#StartingAndStopping">allez à 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èmes DMZ s'appellent www.foobar.net et
|
|
mail.foobar.net, les trois systèmes locaux "winken.foobar.net,
|
|
blinken.foobar.net et nod.foobar.net. Vous voulez que le firewall soit
|
|
connu à l'exté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 à
|
|
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ésente sur vos systè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 à la requê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ésente pour le monde extérieur<br>#<br>view "external" {<br> match-clients { any; };<br> #<br> # Si nous pouvons répondre à la requé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é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é 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édure
|
|
d'installation</a> configure votre système pour que Shorewall démarre
|
|
au
|
|
boot du système.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left">Le firewall est démarré en utilisant la commande
|
|
"shorewall start" et arrêté avec "shorewall stop". Quand le firewall
|
|
est
|
|
arrêté, le routage est actif sur les hôtes qui ont une entrée dans le
|
|
fichier <a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
|
|
Le firewall actif peut-être relancé grâce à 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èmes qui doivent pouvoir se connecter au
|
|
firewall quant il est arrêté.</p>
|
|
</div>
|
|
<div align="left">
|
|
<p align="left"><b>ATTENTION: </b>Si vous êtes connecté à votre
|
|
firewall depuis Internet, ne pas exécutez la commande "shorewall
|
|
stop" tant que vous n'avez pas une entré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éfé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>
|