forked from extern/shorewall_code
3342 lines
109 KiB
XML
3342 lines
109 KiB
XML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||
|
<article id="IPIP">
|
||
|
<articleinfo>
|
||
|
<title>Guide de Configuration de Shorewall</title>
|
||
|
|
||
|
<authorgroup>
|
||
|
<author>
|
||
|
<firstname>Tom</firstname>
|
||
|
|
||
|
<surname>Eastep</surname>
|
||
|
</author>
|
||
|
|
||
|
<author>
|
||
|
<firstname>Fabien</firstname>
|
||
|
|
||
|
<surname>Demassieux</surname>
|
||
|
</author>
|
||
|
</authorgroup>
|
||
|
|
||
|
<pubdate>2003-12-30</pubdate>
|
||
|
|
||
|
<copyright>
|
||
|
<year>2001-2003</year>
|
||
|
|
||
|
<holder>Thomas M. Eastep</holder>
|
||
|
</copyright>
|
||
|
|
||
|
<legalnotice>
|
||
|
<para>Permission is granted to copy, distribute and/or modify this
|
||
|
document under the terms of the GNU Free Documentation License, Version
|
||
|
1.2 or any later version published by the Free Software Foundation; with
|
||
|
no Invariant Sections, with no Front-Cover, and with no Back-Cover
|
||
|
Texts. A copy of the license is included in the section entitled "<ulink
|
||
|
url="GnuCopyright.htm">GNU Free Documentation License</ulink>".</para>
|
||
|
</legalnotice>
|
||
|
</articleinfo>
|
||
|
|
||
|
<note>
|
||
|
<para><emphasis role="underline">Notes du traducteur :</emphasis></para>
|
||
|
|
||
|
<para>Je remercie l'équipe Shorewall, pour ce firewall formidable et
|
||
|
l'aide personnelle que m'a donné Tom Eastep.</para>
|
||
|
|
||
|
<para>J'espère que cette traduction vous aidera à utiliser
|
||
|
efficacement ce firewall.</para>
|
||
|
|
||
|
<para>Toutefois, si ce manuel comporte des lacunes, des incohérences ou
|
||
|
afin d'améliorer sa compréhension, n'hésitez pas à me contacter
|
||
|
<ulink url="mailto:fd03x@wanadoo.fr">fabien demassieux</ulink></para>
|
||
|
</note>
|
||
|
|
||
|
<section id="Documentation">
|
||
|
<title>Introduction</title>
|
||
|
|
||
|
<para>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 Simple
|
||
|
Adresse. 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.</para>
|
||
|
|
||
|
<caution>
|
||
|
<para>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.</para>
|
||
|
</caution>
|
||
|
|
||
|
<para>Shorewall nécessite que le package iproute/iproute2 soit installé
|
||
|
(sur RedHat, le package s'appelle <emphasis>iproute</emphasis>). Vous
|
||
|
pouvez voir si le package est installé grâce au programme <emphasis
|
||
|
role="bold">ip</emphasis> sur votre système firewall. En tant que root,
|
||
|
vous pouvez utiliser la commande 'which' pour vérifier que le
|
||
|
programme est présent:</para>
|
||
|
|
||
|
<programlisting> [root@gateway root]# which ip
|
||
|
/sbin/ip
|
||
|
[root@gateway root]#
|
||
|
</programlisting>
|
||
|
|
||
|
<para>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 <inlinegraphic fileref="images/BD21298_.gif" /></para>
|
||
|
|
||
|
<caution>
|
||
|
<para>Si vous éditez vos fichiers de configuration sur un système
|
||
|
Windows, vous devez les sauver comme des fichiers Unix si votre éditeur
|
||
|
supporte cette option sinon vous devez les faire passer par dos2unix
|
||
|
avant d'essayer de les utiliser. De la même manière, si vous copiez
|
||
|
un fichier de configuration depuis votre disque dur Windows vers une
|
||
|
disquette, vous devez lancer dos2unix sur la copie avant de
|
||
|
l'utiliser avec Shorewall.</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para><ulink url="http://www.simtel.net/pub/pd/51438.html">Windows
|
||
|
Version of dos2unix</ulink></para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para><ulink url="http://www.megaloman.com/%7Ehany/software/hd2u/">Linux
|
||
|
Version of dos2unix</ulink></para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
</caution>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Les Concepts de Shorewall</title>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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 La procédure
|
||
|
d'installation de Shorewall.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Shorewall voit le réseau ou il opère comme composé d'un ensemble
|
||
|
de zones. Dans la configuration par défaut, les zones suivantes sont
|
||
|
utilisées:</para>
|
||
|
|
||
|
<table>
|
||
|
<title>Les Zones</title>
|
||
|
|
||
|
<tgroup cols="2">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry align="left"><emphasis role="bold">Nom</emphasis></entry>
|
||
|
|
||
|
<entry align="left" role="underline"><emphasis role="bold">Description</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>L'internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>Votre Réseau locale</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>Zone Démilitarisée</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>Les Zones sont définies dans le fichier <ulink
|
||
|
url="Documentation.htm#Zones">/etc/shorewall/zones</ulink>.</para>
|
||
|
|
||
|
<para>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 <emphasis
|
||
|
role="bold">fw</emphasis> cela peut être modifié dans le fichier<ulink
|
||
|
url="Documentation.htm#Config"> /etc/shorewall/shorewall.conf</ulink> .
|
||
|
Dans ce guide, le nom par défaut (<emphasis role="bold">fw</emphasis>)
|
||
|
sera utilisé.</para>
|
||
|
|
||
|
<para>Mise à par <emphasis role="bold">fw</emphasis>, 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".</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Editez le fichier
|
||
|
/etc/shorewall/zones et faites tout changement qui s'impose.</para>
|
||
|
|
||
|
<para>Les Règles qui concernent le trafic à autoriser ou à refuser sous
|
||
|
exprimés en terme de Zones.</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>Vous désignez les Polices par défaut entre une zone et une autre
|
||
|
dans le fichier <ulink url="Documentation.htm#Policy">/etc/shorewall/policy</ulink>.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Vous définissez les exceptions à ces Polices par défaut dans le
|
||
|
fichier <ulink url="Documentation.htm#Rules">/etc/shorewall/rules</ulink>.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>Shorewall est construit sur les possibilités du noyau (kernel)
|
||
|
<ulink url="http://www.netfilter.org">Netfilter</ulink>. Netfilter
|
||
|
implémente une <ulink
|
||
|
url="http://www.cs.princeton.edu/~jns/security/iptables/iptables_conntrack.html">fonction
|
||
|
de tracking</ulink> qui autorise ce qui est souvent désigné comme
|
||
|
une  inspection déclarée de paquets. Les propriétés de déclaration
|
||
|
permettent au firewall d'être définie en terme de connexions plutôt
|
||
|
qu'en terme de paquet. Avec Shorewall, vous:</para>
|
||
|
|
||
|
<orderedlist>
|
||
|
<listitem>
|
||
|
<para>Identifiez la zone source.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Identifiez la zone destination.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
</orderedlist>
|
||
|
|
||
|
<para>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 
|
||
|
<emphasis role="bold">NE VEUT PAS dire que ces connections sont autorisés
|
||
|
de la zone A à la zone B</emphasis>. 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.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Le fichier de défaut /etc/shorewall/policy a les polices suivantes:</para>
|
||
|
|
||
|
<table>
|
||
|
<title>/etc/shorewall/policy</title>
|
||
|
|
||
|
<tgroup cols="5">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">SOURCE ZONE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">DESTINATION ZONE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">POLICY</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">LOG LEVEL</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">LIMIT:BURST</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>all</entry>
|
||
|
|
||
|
<entry>DROP</entry>
|
||
|
|
||
|
<entry>info</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>all</entry>
|
||
|
|
||
|
<entry>all</entry>
|
||
|
|
||
|
<entry>REJECT</entry>
|
||
|
|
||
|
<entry>info</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>La police précédente:</para>
|
||
|
|
||
|
<orderedlist>
|
||
|
<listitem>
|
||
|
<para>Permet toutes les connexions de votre réseau local vers Internet</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Drop (ignore) toutes les connexions d'Internet vers le
|
||
|
firewall ou votre réseau local et génère un message au niveau info
|
||
|
(ici se trouve la description des niveaux de log).</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Rejette toutes les autres connexions et génère un message au
|
||
|
niveau info. 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.</para>
|
||
|
</listitem>
|
||
|
</orderedlist>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Maintenant, éditez
|
||
|
votre /etc/shorewall/policy et apportez tous les changements que vous
|
||
|
souhaitez.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Interfaces Réseau</title>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Sur ce schéma:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>La zone Local est composée des systèmes Local 1, Local 2 et
|
||
|
Local 3.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Tous les systèmes du FAI vers l'extérieur et qui englobe la
|
||
|
Zone Internet.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<graphic align="center" fileref="images/dmz3.png" />
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>C'est fait dans le fichier <ulink
|
||
|
url="Documentation.htm#Interfaces">/etc/shorewall/interfaces</ulink>.</para>
|
||
|
|
||
|
<para>Le firewall illustré ci-dessus à trois interfaces. Si la connexion
|
||
|
se fait à travers un câble ou un "modem" DSL , l'Interface
|
||
|
Externe sera l'adaptateur qui est branché au "Modem" (e.g.,
|
||
|
<emphasis role="bold">eth0</emphasis>) tant que vous ne vous
|
||
|
n'utilisez pas le Point-to-Point Protocol over Ethernet (PPPoE) ou le
|
||
|
Point-to-PointTunnelingProtocol(PPTP) dans ce cas l'Interface Externe
|
||
|
sera de type ppp (e.g., <emphasis role="bold">ppp0</emphasis>). Si vous
|
||
|
vous connectez à travers un modem classique, votre Interface Externe sera
|
||
|
également <emphasis role="bold">ppp0</emphasis>. Si vous utilisez ISDN,
|
||
|
votre Interface Externe sera <emphasis role="bold">ippp0</emphasis>.</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Si votre Interface
|
||
|
Externe est  ppp0 ou ippp0 alors vous pouvez fixer CLAMPMSS=yes
|
||
|
dans /etc/shorewall/shorewall.conf.</para>
|
||
|
|
||
|
<para>Votre Interface Locale doit être un adaptateur Ethernet  (<emphasis
|
||
|
role="bold">eth0</emphasis>, <emphasis role="bold">eth1</emphasis> or
|
||
|
<emphasis role="bold">eth2</emphasis>) 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 croisé).</para>
|
||
|
|
||
|
<para>Votre Interface DMZ  doit aussi être un adaptateur Ethernet (<emphasis
|
||
|
role="bold">eth0</emphasis>, <emphasis role="bold">eth1</emphasis> or
|
||
|
<emphasis role="bold">eth2</emphasis>) 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 croisé).</para>
|
||
|
|
||
|
<caution>
|
||
|
<para>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.</para>
|
||
|
</caution>
|
||
|
|
||
|
<para>Pour le besoin de ce Guide, nous décidons que:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>L'interface externe est <emphasis role="bold">eth0</emphasis>.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>L'interface locale est <emphasis role="bold">eth1</emphasis>.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>L'interface DMZ est <emphasis role="bold">eth2</emphasis>.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>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 <ulink url="Documentation.htm#Interfaces">/etc/shorewall/interfaces
|
||
|
</ulink>file, ce fichier doit contenir:</para>
|
||
|
|
||
|
<table>
|
||
|
<title>/etc/shorewall/interfaces</title>
|
||
|
|
||
|
<tgroup cols="4">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">ZONE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">INTERFACE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">BROADCAST</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">OPTIONS</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry>rfc1918</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>eth1</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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.</para>
|
||
|
|
||
|
<para>Exemple:</para>
|
||
|
|
||
|
<table>
|
||
|
<title>/etc/shorewall/interfaces</title>
|
||
|
|
||
|
<tgroup cols="4">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">ZONE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">INTERFACE</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">BROADCAST</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">OPTIONS</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry>rfc1918</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>eth1</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry>dhcp</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Vous pouvez définir
|
||
|
des zones plus compliquées en utilisant le fichier <ulink
|
||
|
url="Documentation.htm#Hosts">/etc/shorewall/hosts</ulink> mais dans la
|
||
|
plus part des cas, ce n'est pas nécessaire.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Adressage, Sous-réseaux et Routage</title>
|
||
|
|
||
|
<para>Normalement, votre FAI vous assigne des adresses Publiques. 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.</para>
|
||
|
|
||
|
<para>Si vous êtes déjà familier avec l'adressage IP et le routage,
|
||
|
vous pouvez aller à la prochaine section.</para>
|
||
|
|
||
|
<para>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  "<emphasis>IP Fundamentals: What Everyone Needs
|
||
|
to Know about Addressing & Routing</emphasis>", Thomas A. Maufer,
|
||
|
Prentice-Hall, 1999, ISBN 0-13-975483-0.</para>
|
||
|
|
||
|
<section>
|
||
|
<title>Adressage IP</title>
|
||
|
|
||
|
<para>L'adressage IP version 4 (IPv4) 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:</para>
|
||
|
|
||
|
<para><programlisting> C0.00.02.0E</programlisting>ou
|
||
|
l'exprimons comme un entier de 32-bit</para>
|
||
|
|
||
|
<para><programlisting> C000020E</programlisting></para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Sous -réseaux</title>
|
||
|
|
||
|
<para>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):</para>
|
||
|
|
||
|
<simplelist>
|
||
|
<member>Classe A - masque réseau 255.0.0.0, taille = 2 ** 24</member>
|
||
|
|
||
|
<member>Classe B - masque réseau 255.255.0.0, taille = 2 ** 16</member>
|
||
|
|
||
|
<member>Classe C - masque réseau 255.255.255.0, taille = 256</member>
|
||
|
</simplelist>
|
||
|
|
||
|
<para>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 masque réseau. Le masque
|
||
|
réseau est un nombre qui se termine logiquement avec une adresse qui
|
||
|
isole le <emphasis>numéro de réseau</emphasis>; le reste de
|
||
|
l'adresse est le <emphasis>numéro d'hôte</emphasis>. 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.</para>
|
||
|
|
||
|
<para>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 sous-adressage de ces réseaux en plus petits
|
||
|
sous-réseaux  évolua; cette technique est consignée par le
|
||
|
Classless Inter Domain Routing (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é .</para>
|
||
|
|
||
|
<para>Un sous-réseau (aussi appelé subnetwork et subnet) est un ensemble
|
||
|
d'adresses IP tel que:</para>
|
||
|
|
||
|
<orderedlist>
|
||
|
<listitem>
|
||
|
<para>Le nombre d'adresses dans le jeu est un multiple de 2; et</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>La première adresse dans le jeu est un multiple de la taille
|
||
|
du jeu.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>La première adresse du sous-réseau est réservée et se réfère à
|
||
|
<emphasis>l'adresse du sous-réseau</emphasis>.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>La dernière adresse du sous-réseau est réservée comme
|
||
|
<emphasis>adresse broadcast du sous-réseau</emphasis>.</para>
|
||
|
</listitem>
|
||
|
</orderedlist>
|
||
|
|
||
|
<table>
|
||
|
<title>Logarithme Naturel</title>
|
||
|
|
||
|
<tgroup cols="3">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">n</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">log2 n</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">(32 - log2 n)</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>8</entry>
|
||
|
|
||
|
<entry>3</entry>
|
||
|
|
||
|
<entry>29</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>16</entry>
|
||
|
|
||
|
<entry>4</entry>
|
||
|
|
||
|
<entry>28</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>32</entry>
|
||
|
|
||
|
<entry>5</entry>
|
||
|
|
||
|
<entry>27</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>64</entry>
|
||
|
|
||
|
<entry>6</entry>
|
||
|
|
||
|
<entry>26</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>128</entry>
|
||
|
|
||
|
<entry>7</entry>
|
||
|
|
||
|
<entry>25</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>256</entry>
|
||
|
|
||
|
<entry>8</entry>
|
||
|
|
||
|
<entry>24</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>512</entry>
|
||
|
|
||
|
<entry>9</entry>
|
||
|
|
||
|
<entry>23</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>1024</entry>
|
||
|
|
||
|
<entry>10</entry>
|
||
|
|
||
|
<entry>22</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>2048</entry>
|
||
|
|
||
|
<entry>11</entry>
|
||
|
|
||
|
<entry>21</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>4096</entry>
|
||
|
|
||
|
<entry>12</entry>
|
||
|
|
||
|
<entry>20</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>8192</entry>
|
||
|
|
||
|
<entry>13</entry>
|
||
|
|
||
|
<entry>19</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>16384</entry>
|
||
|
|
||
|
<entry>14</entry>
|
||
|
|
||
|
<entry>18</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>32768</entry>
|
||
|
|
||
|
<entry>15</entry>
|
||
|
|
||
|
<entry>17</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>65536</entry>
|
||
|
|
||
|
<entry>16</entry>
|
||
|
|
||
|
<entry>16</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>Vous pourrez voir que la table ci-dessus contient aussi une
|
||
|
colonne (32 - log2<emphasis role="bold"> n</emphasis>). Ce nombre est la
|
||
|
<emphasis>Variable de Longueur  du Masque de Sous-réseau</emphasis>
|
||
|
(VLSM Variable Length Subnet Mask) pour un réseau de taille n. De la
|
||
|
table ci-dessus, nous pouvons dériver celle-ci, ce qui est plus facile à
|
||
|
utiliser.</para>
|
||
|
|
||
|
<table>
|
||
|
<title>VLSM</title>
|
||
|
|
||
|
<tgroup cols="3">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Taille du sous-réseau</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">VLSM</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">Masque sous-réseau</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>8</entry>
|
||
|
|
||
|
<entry>/29</entry>
|
||
|
|
||
|
<entry>255.255.255.248</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>16</entry>
|
||
|
|
||
|
<entry>/28</entry>
|
||
|
|
||
|
<entry>255.255.255.240</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>32</entry>
|
||
|
|
||
|
<entry>/27</entry>
|
||
|
|
||
|
<entry>255.255.255.224</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>64</entry>
|
||
|
|
||
|
<entry>/26</entry>
|
||
|
|
||
|
<entry>255.255.255.192</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>128</entry>
|
||
|
|
||
|
<entry>/25</entry>
|
||
|
|
||
|
<entry>255.255.255.128</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>256</entry>
|
||
|
|
||
|
<entry>/24</entry>
|
||
|
|
||
|
<entry>255.255.255.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>512</entry>
|
||
|
|
||
|
<entry>/23</entry>
|
||
|
|
||
|
<entry>255.255.254.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>1024</entry>
|
||
|
|
||
|
<entry>/22</entry>
|
||
|
|
||
|
<entry>255.255.252.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>2048</entry>
|
||
|
|
||
|
<entry>/21</entry>
|
||
|
|
||
|
<entry>255.255.248.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>4096</entry>
|
||
|
|
||
|
<entry>/20</entry>
|
||
|
|
||
|
<entry>255.255.240.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>8192</entry>
|
||
|
|
||
|
<entry>/19</entry>
|
||
|
|
||
|
<entry>255.255.224.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>16384</entry>
|
||
|
|
||
|
<entry>/18</entry>
|
||
|
|
||
|
<entry>255.255.192.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>32768</entry>
|
||
|
|
||
|
<entry>/17</entry>
|
||
|
|
||
|
<entry>255.255.128.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>65536</entry>
|
||
|
|
||
|
<entry>/16</entry>
|
||
|
|
||
|
<entry>255.255.0.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>2 ** 24</entry>
|
||
|
|
||
|
<entry>/8</entry>
|
||
|
|
||
|
<entry>255.0.0.0</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>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".</para>
|
||
|
|
||
|
<para>Le masque de sous-réseau (aussi référencé par son
|
||
|
netmask) 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:<programlisting> 11111111111111111111111111000000 = FFFFFFC0 = FF.FF.FF.C0 = 255.255.255.192</programlisting>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. Pour un
|
||
|
sous-réseau dont l'adresse est a.b.c.d et dont la VLSM est /v, nous
|
||
|
notons le sous-réseau par "a.b.c.d/v" en utilisant la Notation
|
||
|
CIDR. </para>
|
||
|
|
||
|
<para>Exemple:</para>
|
||
|
|
||
|
<table>
|
||
|
<title>Un exemple de sous-réseau (sub-network) :</title>
|
||
|
|
||
|
<tgroup cols="2">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Sous-réseau:</emphasis></entry>
|
||
|
|
||
|
<entry>10.10.10.0 - 10.10.10.127</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Adresse Sous-réseau:</emphasis></entry>
|
||
|
|
||
|
<entry>10.10.10.0</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Adresse Broadcast:</emphasis></entry>
|
||
|
|
||
|
<entry>10.10.10.127</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Notation CIDR:</emphasis></entry>
|
||
|
|
||
|
<entry>10.10.10.0/25</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<table>
|
||
|
<title>/32 et /0</title>
|
||
|
|
||
|
<tgroup cols="4">
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry><emphasis role="bold">Taille du sous-réseau</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">Longueur VLSM</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">Masque sous-réseau</emphasis></entry>
|
||
|
|
||
|
<entry><emphasis role="bold">Notation CIDR</emphasis></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>1</entry>
|
||
|
|
||
|
<entry>32</entry>
|
||
|
|
||
|
<entry>255.255.255.255</entry>
|
||
|
|
||
|
<entry>a.b.c.d/32</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>32</entry>
|
||
|
|
||
|
<entry>0</entry>
|
||
|
|
||
|
<entry>0.0.0.0</entry>
|
||
|
|
||
|
<entry>0.0.0.0/0</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
|
||
|
<para>Ainsi, chaque adresse <emphasis role="bold">a.b.c.d</emphasis>
|
||
|
peut aussi être écrite <emphasis role="bold">a.b.c.d/32</emphasis> et
|
||
|
l'ensemble des adresses possibles est écrit <emphasis role="bold">0.0.0.0/0</emphasis>.</para>
|
||
|
|
||
|
<para>Plus loin dans ce manuel, vous verrez la notation <emphasis
|
||
|
role="bold">a.b.c.d/v</emphasis> 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 <emphasis role="bold">a.b.c.d</emphasis>
|
||
|
et avec le masque de réseau qui correspond à la variable VLSM /<emphasis
|
||
|
role="bold">v</emphasis>.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Routage</title>
|
||
|
|
||
|
<para>L'un des buts des sous-réseaux est la base du routage.
|
||
|
Ci-dessous se trouve la table de routage de mon firewall:</para>
|
||
|
|
||
|
<programlisting> [root@gateway root]# netstat -nr
|
||
|
Kernel IP routing table
|
||
|
Destination Gateway Genmask Flags MSS Window irtt Iface
|
||
|
192.168.9.1 0.0.0.0 255.255.255.255 UH 40 0 0 texas
|
||
|
206.124.146.177 0.0.0.0 255.255.255.255 UH 40 0 0 eth1
|
||
|
206.124.146.180 0.0.0.0 255.255.255.255 UH 40 0 0 eth3
|
||
|
192.168.3.0 0.0.0.0 255.255.255.0 U 40 0 0 eth3
|
||
|
192.168.2.0 0.0.0.0 255.255.255.0 U 40 0 0 eth1
|
||
|
192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth2
|
||
|
206.124.146.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0
|
||
|
192.168.9.0 192.0.2.223 255.255.255.0 UG 40 0 0 texas
|
||
|
127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
|
||
|
0.0.0.0 206.124.146.254 0.0.0.0 UG 40 0 0 eth0
|
||
|
[root@gateway root]#</programlisting>
|
||
|
|
||
|
<para>Le périphérique <emphasis>texas</emphasis> est le tunnel GRE vers
|
||
|
un site peer à Dallas, la zone Texas.</para>
|
||
|
|
||
|
<para>Les trois premières routes sont des routes hôte 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 <emphasis>la route par défaut</emphasis> est la
|
||
|
passerelle (gateway) mentionnée est appelé <emphasis>passerelle par
|
||
|
défaut (default gateway).</emphasis></para>
|
||
|
|
||
|
<para>Quant le noyau essaye d'envoyer un paquet à une adresse IP A,
|
||
|
il commence au début de la table de routage et :</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>A est logiquement terminé avec la valeur du 'Genmask'
|
||
|
dans l'entrée de la table.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Le résultat est comparé avec la valeur de la destination
|
||
|
'Destination' dans l'entrée de la table.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Si le résultat et la valeur de la 
|
||
|
'Destination' sont identiques, alors:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>Si la colonne 'Gateway' est n'est pas nulle,
|
||
|
le paquet est envoyé au gateway à travers l'interface nommée
|
||
|
dans la colonne 'Iface'.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Sinon, le paquet est directement envoyé à A à travers
|
||
|
l'interface nommée dans la colonne 'iface'.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Autrement, les étapes précédentes sont répétées sur
|
||
|
l'entrée suivante de la table.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>Puisque la route par défaut correspond à toutes les adresses IP (<emphasis
|
||
|
role="bold">A </emphasis>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 gateway par défaut qui généralement est un routeur vers le
|
||
|
FAI.</para>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<para><programlisting> 192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth2</programlisting></para>
|
||
|
|
||
|
<para>Donc le paquet vers 192.168.1.5 est directement envoyé à travers
|
||
|
eth2.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Protocole de Résolution d'Adresse (ARP)</title>
|
||
|
|
||
|
<para>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 <emphasis>Media Access Control</emphasis> (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':</para>
|
||
|
|
||
|
<programlisting> [root@gateway root]# ip addr show eth0
|
||
|
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb qlen 100
|
||
|
link/ether 02:00:08:e3:fa:55 brd ff:ff:ff:ff:ff:ff
|
||
|
inet 206.124.146.176/24 brd 206.124.146.255 scope global eth0
|
||
|
inet 206.124.146.178/24 brd 206.124.146.255 scope global secondary eth0
|
||
|
inet 206.124.146.179/24 brd 206.124.146.255 scope global secondary eth0
|
||
|
[root@gateway root]#
|
||
|
</programlisting>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>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 <emphasis>Address Resolution Protocol</emphasis> (ARP).
|
||
|
Voici ARP en action:</para>
|
||
|
|
||
|
<programlisting> [root@gateway root]# tcpdump -nei eth2 arp
|
||
|
tcpdump: listening on eth2
|
||
|
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
|
||
|
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
|
||
|
|
||
|
2 paquets received by filter
|
||
|
0 paquets dropped by kernel
|
||
|
[root@gateway root]#</programlisting>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Afin de rendre disponible les informations d'échange ARP
|
||
|
chaque fois qu'un paquet est envoyé, le système maintient un
|
||
|
<emphasis>cache ARP</emphasis> 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':</para>
|
||
|
|
||
|
<programlisting> [root@gateway root]# arp -na
|
||
|
? (206.124.146.177) at 00:A0:C9:15:39:78 [ether] on eth1
|
||
|
? (192.168.1.3) at 00:A0:CC:63:66:89 [ether] on eth2
|
||
|
? (192.168.1.5) at 00:A0:CC:DB:31:C4 [ether] on eth2
|
||
|
? (206.124.146.254) at 00:03:6C:8A:18:38 [ether] on eth0
|
||
|
? (192.168.1.19) at 00:06:25:AA:8A:F0 [ether] on eth2
|
||
|
</programlisting>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>RFC 1918</title>
|
||
|
|
||
|
<para>Les adresses IP sont alloués par l'autorité <ulink
|
||
|
url="http://www.iana.org/">Internet Assigned Number Authority</ulink>
|
||
|
(IANA) qui délégue des allocations géographiques basés sur le Regional
|
||
|
Internet Registries (RIRs). Par exemple, les allocations pour les
|
||
|
Etats-Unis sont déléguées à <ulink url="http://www.arin.net/">American
|
||
|
Registry for Internet Numbers</ulink> (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.</para>
|
||
|
|
||
|
<para>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 Privées. RFC 1918 réserve plusieurs
|
||
|
plages d'adresse IP à cet usage:</para>
|
||
|
|
||
|
<programlisting> 10.0.0.0 - 10.255.255.255
|
||
|
172.16.0.0 - 172.31.255.255
|
||
|
192.168.0.0 - 192.168.255.255</programlisting>
|
||
|
|
||
|
<para>Les adresses réservées par la RFC 1918 sont parfois appelées
|
||
|
non-routable 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é.</para>
|
||
|
|
||
|
<para>Quant on choisit des adresses de ces plages, il y a deux choses à
|
||
|
garder en mémoire:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>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.0</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Configurer votre Réseau</title>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>Routé - Le trafic vers chacune de vos adresses sera routé à
|
||
|
travers une unique adresse passerelle. 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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Non-routé - Votre FAI vous enverra directement le trafic de
|
||
|
chaque adresse directement.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>Dans les paragraphes qui suivent, nous étudierons chaque cas
|
||
|
séparément.</para>
|
||
|
|
||
|
<para>Avant de commencer, il y a une chose que vous devez vérifier:</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>NAT_ENABLED=Yes (Shorewall versions antérieures à 1.4.6)</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>IP_FORWARDING=On</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<section>
|
||
|
<title>Routage</title>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<graphic align="center" fileref="images/dmz4.png" />
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<programlisting> Kernel IP routing table
|
||
|
Destination Gateway Genmask Flags MSS Window irtt Iface
|
||
|
192.0.2.64 0.0.0.0 255.255.255.248 U 40 0 0 eth0
|
||
|
0.0.0.0 192.0.2.66 0.0.0.0 UG 40 0 0 eth0</programlisting>
|
||
|
|
||
|
<para>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 <emphasis role="underline">Interface
|
||
|
DMZ!!</emphasis> 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.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Non-routé</title>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>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é).</para>
|
||
|
|
||
|
<para><emphasis role="bold">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.</emphasis></para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>Translation d'Adresses Réseau Source : Source Network
|
||
|
Address Translation (SNAT).</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Translation d'Adresses Réseau Destination : Destination
|
||
|
Network Address Translation (DNAT) aussi nommé Port Forwarding.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Proxy ARP.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Translation d''Adresses Réseau : Network Address
|
||
|
Translation (NAT) aussi appelé One-to-one NAT.</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>Souvent une combinaison de ces techniques est utilisée. Chacune
|
||
|
d'entre elle sera détaillée dans la section suivante.</para>
|
||
|
|
||
|
<section>
|
||
|
<title>SNAT</title>
|
||
|
|
||
|
<para>Avec SNAT, un segment interne LAN est configuré en utilisant les
|
||
|
adresses RFC 1918. Quant un hôte <emphasis role="bold">A</emphasis>
|
||
|
sur ce segment interne initialise une connexion à l'hôte <emphasis
|
||
|
role="bold">B</emphasis> 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 <emphasis role="bold">B</emphasis>
|
||
|
répond et que la réponse est reçu par le firewall, le firewall change
|
||
|
l'adresse destination par celle RFC 1918 de <emphasis role="bold">A</emphasis>
|
||
|
et renvoi la réponse à <emphasis role="bold">A.</emphasis></para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<graphic align="center" fileref="images/dmz5.png" />
|
||
|
|
||
|
<para>La zone locale a été assigné au sous-réseau 192.168.201.0/29
|
||
|
(netmask 255.255.255.248).</para>
|
||
|
|
||
|
<simplelist>
|
||
|
<member><inlinegraphic fileref="images/BD21298_.gif" /> 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).</member>
|
||
|
|
||
|
<member><inlinegraphic fileref="images/BD21298_.gif" /> SNAT est
|
||
|
configuré dans Shorewall avec le fichier <ulink
|
||
|
url="Documentation.htm#Masq">/etc/shorewall/masq</ulink>.</member>
|
||
|
</simplelist>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="3">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>SOUS-RESEAU</entry>
|
||
|
|
||
|
<entry>ADDRESSE</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.168.201.0/29</entry>
|
||
|
|
||
|
<entry>192.0.2.176</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>DNAT</title>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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 <ulink
|
||
|
url="Documentation.htm#Rules">/etc/shorewall/rules</ulink>:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="7">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>SOURCE PORT(S)</entry>
|
||
|
|
||
|
<entry>ORIGINAL DEST</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>DNAT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>loc:192.168.201.4</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>www</entry>
|
||
|
|
||
|
<entry>-</entry>
|
||
|
|
||
|
<entry>192.0.2.176</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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 à <emphasis role="bold">A</emphasis>.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Proxy ARP</title>
|
||
|
|
||
|
<para>Le principe du proxy ARP est:</para>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>Un hôte <emphasis role="bold">H</emphasis> derrière votre
|
||
|
firewall est assigné à une de vos adresses publiques (<emphasis
|
||
|
role="bold">A</emphasis>), a le même masque de réseau (<emphasis
|
||
|
role="bold">M</emphasis>) que l'interface externe du firewall.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Le firewall répond à ARP "qui a" demandé <emphasis
|
||
|
role="bold">A</emphasis>.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>Quant <emphasis role="bold">H</emphasis> délivre une requête
|
||
|
ARP "qui a" pour une adresse du sous -réseau définit
|
||
|
par  A et <emphasis role="bold">M</emphasis>, le firewall
|
||
|
répondra (avec l'adresse MAC si le firewall s'interface à
|
||
|
<emphasis>H</emphasis>).</para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
|
||
|
<para>Supposons que nous décidons d'utiliser Proxy ARP sur DMZ de
|
||
|
notre exemple réseau.</para>
|
||
|
|
||
|
<graphic align="center" fileref="images/dmz6.png" />
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>La configuration de Proxy ARP est faite dans le fichier <ulink
|
||
|
url="ProxyARP.htm">/etc/shorewall/proxyarp</ulink>.</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="4">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ADDRESS</entry>
|
||
|
|
||
|
<entry>EXTERNAL</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>HAVE ROUTE</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>192.0.2.177</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>192.0.2.178</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<note>
|
||
|
<para><emphasis role="bold">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.</emphasis></para>
|
||
|
</note>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<orderedlist>
|
||
|
<listitem>
|
||
|
<para>(Courtoisement de Bradey Honsinger) Une lecture de
|
||
|
Stevens' TCP/IP Illustrated, Vol 1 révèle qu'un paquet ARP</para>
|
||
|
|
||
|
<para>"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,...</para>
|
||
|
|
||
|
<para>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."</para>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<para><programlisting> arping -U -I <net if> <newly proxied IP>
|
||
|
arping -U -I eth0 66.58.99.83 # for example</programlisting>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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
</orderedlist>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<para><programlisting> tcpdump -nei eth0 icmp</programlisting></para>
|
||
|
|
||
|
<para>Maintenant depuis 192.0.2.177, utilisez ping vers la passerelle
|
||
|
du FAI  (que nous supposons être 192.0.2.254):</para>
|
||
|
|
||
|
<para><programlisting> ping 192.0.2.254</programlisting></para>
|
||
|
|
||
|
<para>Nous pouvons maintenant observer le résultat de tcpdump:</para>
|
||
|
|
||
|
<para><programlisting> 13:35:12.159321 0:4:e2:20:20:33 0:0:77:95:dd:19 ip 98: 192.0.2.177 > 192.0.2.254: icmp: echo request (DF)
|
||
|
13:35:12.207615 0:0:77:95:dd:19 0:c0:a8:50:b2:57 ip 98: 192.0.2.254 > 192.0.2.177 : icmp: echo reply</programlisting>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.</para>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>One-to-one NAT</title>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<graphic align="center" fileref="images/dmz6.png" />
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="3">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>SOUS-RESEAU</entry>
|
||
|
|
||
|
<entry>ADDRESSE</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.168.201.0/29</entry>
|
||
|
|
||
|
<entry>192.0.2.176</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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<ulink url="NAT.htm">/etc/shorewall/nat</ulink>.</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="5">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>EXTERNAL</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>INTERNAL</entry>
|
||
|
|
||
|
<entry>ALL INTERFACES</entry>
|
||
|
|
||
|
<entry>LOCAL</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>192.0.2.179</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.168.201.4</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> 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:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="7">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>SOURCE PORT(S)</entry>
|
||
|
|
||
|
<entry>ORIGINAL DEST</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>loc:192.168.201.4</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>www</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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 One-on-one
|
||
|
NAT 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:</para>
|
||
|
|
||
|
<orderedlist>
|
||
|
<listitem>
|
||
|
<para>(Courtoisement de Bradey Honsinger) Une lecture de
|
||
|
Stevens' TCP/IP Illustrated, Vol 1 révèle qu'un paquet ARP</para>
|
||
|
|
||
|
<para>"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,...</para>
|
||
|
|
||
|
<para>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."</para>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<para><programlisting> arping -U -I <net if> <newly proxied IP>
|
||
|
arping -U -I eth0 66.58.99.83 # for example</programlisting>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.</para>
|
||
|
</listitem>
|
||
|
|
||
|
<listitem>
|
||
|
<para>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.</para>
|
||
|
</listitem>
|
||
|
</orderedlist>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<para><programlisting> tcpdump -nei eth0 icmp</programlisting></para>
|
||
|
|
||
|
<para>Maintenant depuis 192.0.2.177, utilisez ping vers la passerelle
|
||
|
du FAI  (que nous supposons être 192.0.2.254):</para>
|
||
|
|
||
|
<para><programlisting> ping 192.0.2.254</programlisting></para>
|
||
|
|
||
|
<para>Nous pouvons maintenant observer le résultat de tcpdump:</para>
|
||
|
|
||
|
<para><programlisting> 13:35:12.159321 <emphasis
|
||
|
role="underline">0:4:e2:20:20:33</emphasis> 0:0:77:95:dd:19 ip 98: 192.0.2.177 > 192.0.2.254: icmp: echo request (DF)
|
||
|
13:35:12.207615 0:0:77:95:dd:19 <emphasis role="underline">0:c0:a8:50:b2:57</emphasis> ip 98: 192.0.2.254 > 192.0.2.177 : icmp: echo reply</programlisting>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.</para>
|
||
|
</section>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Règles</title>
|
||
|
|
||
|
<para>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 règles NAT 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.</para>
|
||
|
|
||
|
<note>
|
||
|
<para>Puisque les colonnes SOURCE PORT et ORIG. DEST. ne sont pas
|
||
|
utilisées dans cette section, elle ne sont pas affichées.</para>
|
||
|
</note>
|
||
|
|
||
|
<para>Vous souhaiter certainement autoriser ping entre vos zones:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="5">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="6">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>COMMENTS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>pop3</entry>
|
||
|
|
||
|
<entry># Pop3 depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>pop3</entry>
|
||
|
|
||
|
<entry># Pop3 depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mails vers Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>http</entry>
|
||
|
|
||
|
<entry># WWW depuis le Net</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>https</entry>
|
||
|
|
||
|
<entry># HTTP sécurisé depuis le Net</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>htp</entry>
|
||
|
|
||
|
<entry>https</entry>
|
||
|
|
||
|
<entry># HTTP sécurisé depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>Si vous utilisez un serveur DNS publique sur 192.0.2.177, vous
|
||
|
devez ajouter les règles suivantes:</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="6">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>COMMENTS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS vers Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS vers Internet</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="6">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>COMMENTS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>ssh</entry>
|
||
|
|
||
|
<entry># SSH vers la DMZ</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>ssh</entry>
|
||
|
|
||
|
<entry># SSH vers le firewall</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>D'autres petites choses</title>
|
||
|
|
||
|
<para>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. </para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Si vous ne
|
||
|
l'avez pas fait, ce peut-être une bonne idée de parcourir le fichier
|
||
|
<ulink url="Documentation.htm#Config">/etc/shorewall/shorewall.conf</ulink>
|
||
|
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.</para>
|
||
|
|
||
|
<para>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. /etc/shorewall/interfaces (Les "options"
|
||
|
seront spécifiques aux sites).</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="4">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ZONE</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>BROADCAST</entry>
|
||
|
|
||
|
<entry>OPTIONS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry>norfc1918,routefilter</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>eth1</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>detect</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Si vous remplacez 'detect' par les valeurs des adresses
|
||
|
broadcoast dans les entrées suivantes, vous pouvez activer Shorewall
|
||
|
avant les interfaces réseau.</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="4">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ZONE</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>BROADCAST</entry>
|
||
|
|
||
|
<entry>OPTIONS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.0.2.255</entry>
|
||
|
|
||
|
<entry>norfc1918,routefilter</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>eth1</entry>
|
||
|
|
||
|
<entry>192.168.201.7</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>192.168.202.7</entry>
|
||
|
|
||
|
<entry></entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>/etc/shorewall/masq - Sous-réseau Local</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="3">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>SOUS-RESEAU</entry>
|
||
|
|
||
|
<entry>ADDRESSE</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.168.201.0/29</entry>
|
||
|
|
||
|
<entry>192.0.2.176</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>/etc/shorewall/proxyarp - DMZ</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="4">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ADDRESS</entry>
|
||
|
|
||
|
<entry>EXTERNAL</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>HAVE ROUTE</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>192.0.2.177</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>192.0.2.178</entry>
|
||
|
|
||
|
<entry>eth2</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>/etc/shorewall/nat- Le système de ma fille</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="5">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>EXTERNAL</entry>
|
||
|
|
||
|
<entry>INTERFACE</entry>
|
||
|
|
||
|
<entry>INTERNAL</entry>
|
||
|
|
||
|
<entry>ALL INTERFACES</entry>
|
||
|
|
||
|
<entry>LOCAL</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>192.0.2.179</entry>
|
||
|
|
||
|
<entry>eth0</entry>
|
||
|
|
||
|
<entry>192.168.201.4</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
|
||
|
<entry>No</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>/etc/shorewall/rules</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="6">
|
||
|
<thead>
|
||
|
<row>
|
||
|
<entry>ACTION</entry>
|
||
|
|
||
|
<entry>SOURCE</entry>
|
||
|
|
||
|
<entry>DESTINATION</entry>
|
||
|
|
||
|
<entry>PROTOCOL</entry>
|
||
|
|
||
|
<entry>PORT(S)</entry>
|
||
|
|
||
|
<entry>COMMENTS</entry>
|
||
|
</row>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>pop3</entry>
|
||
|
|
||
|
<entry># Pop3 depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>pop3</entry>
|
||
|
|
||
|
<entry># Pop3 depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mail depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.178</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>smtp</entry>
|
||
|
|
||
|
<entry># Mails vers Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>http</entry>
|
||
|
|
||
|
<entry># WWW depuis le Net</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>https</entry>
|
||
|
|
||
|
<entry># HTTP sécurisé depuis le Net</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>htp</entry>
|
||
|
|
||
|
<entry>https</entry>
|
||
|
|
||
|
<entry># HTTP sécurisé depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis le firewall</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS depuis le Réseau Local</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>udp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># UDP DNS vers Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz:192.0.2.177</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>domain</entry>
|
||
|
|
||
|
<entry># TCP DNS vers Internet</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
|
||
|
<entry>Ping</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>net</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
|
||
|
<entry>"</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
|
||
|
<entry>"</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>icmp</entry>
|
||
|
|
||
|
<entry>echo-request</entry>
|
||
|
|
||
|
<entry>"</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>dmz</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>ssh</entry>
|
||
|
|
||
|
<entry># SSH vers la DMZ</entry>
|
||
|
</row>
|
||
|
|
||
|
<row>
|
||
|
<entry>ACCEPT</entry>
|
||
|
|
||
|
<entry>loc</entry>
|
||
|
|
||
|
<entry>fw</entry>
|
||
|
|
||
|
<entry>tcp</entry>
|
||
|
|
||
|
<entry>ssh</entry>
|
||
|
|
||
|
<entry># SSH vers le firewall</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
</section>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>DNS</title>
|
||
|
|
||
|
<para>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 (Views). Si vous n'êtes pas intéressé par les vues
|
||
|
BIND 9, vous pouvez allez à la section suivante.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>Le fichier  /etc/named.conf devrait ressembler à cela:</para>
|
||
|
|
||
|
<programlisting>options {
|
||
|
directory "/var/named";
|
||
|
listen-on { 127.0.0.1 ; 192.0.2.177; };
|
||
|
};
|
||
|
|
||
|
logging {
|
||
|
channel xfer-log {
|
||
|
file "/var/log/named/bind-xfer.log";
|
||
|
print-category yes;
|
||
|
print-severity yes;
|
||
|
print-time yes;
|
||
|
severity info;
|
||
|
};
|
||
|
|
||
|
category xfer-in { xfer-log; };
|
||
|
category xfer-out { xfer-log; };
|
||
|
category notify { xfer-log; };
|
||
|
};
|
||
|
#
|
||
|
# Ceci est la vue présente sur vos systèmes internes.
|
||
|
#
|
||
|
view "internal" {
|
||
|
#
|
||
|
# Les clients suivants peuvent voir le serveur
|
||
|
#
|
||
|
match-clients { 192.168.201.0/29;
|
||
|
192.168.202.0/29;
|
||
|
127.0.0.0/8;
|
||
|
192.0.2.176/32;
|
||
|
192.0.2.178/32;
|
||
|
192.0.2.179/32;
|
||
|
192.0.2.180/32; };
|
||
|
#
|
||
|
# Si le serveur ne peut répondre à la requête, il utilisera des serveurs externes
|
||
|
#
|
||
|
#
|
||
|
recursion yes;
|
||
|
|
||
|
zone "." in {
|
||
|
type hint;
|
||
|
file "int/root.cache";
|
||
|
};
|
||
|
|
||
|
zone "foobar.net" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "int/db.foobar";
|
||
|
};
|
||
|
|
||
|
zone "0.0.127.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "int/db.127.0.0";
|
||
|
};
|
||
|
|
||
|
zone "201.168.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "int/db.192.168.201";
|
||
|
};
|
||
|
|
||
|
zone "202.168.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "int/db.192.168.202";
|
||
|
};
|
||
|
|
||
|
zone "176.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "db.192.0.2.176";
|
||
|
};
|
||
|
|
||
|
zone "177.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "db.192.0.2.177";
|
||
|
};
|
||
|
|
||
|
zone "178.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "db.192.0.2.178";
|
||
|
};
|
||
|
|
||
|
zone "179.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify no;
|
||
|
allow-update { none; };
|
||
|
file "db.206.124.146.179";
|
||
|
};
|
||
|
|
||
|
};
|
||
|
#
|
||
|
# Ceci est la vue qui sera présente pour le monde extérieur
|
||
|
#
|
||
|
view "external" {
|
||
|
match-clients { any; };
|
||
|
#
|
||
|
# Si nous pouvons répondre à la requéte, nous le disons
|
||
|
#
|
||
|
recursion no;
|
||
|
|
||
|
zone "foobar.net" in {
|
||
|
type master;
|
||
|
notify yes;
|
||
|
allow-update {none; };
|
||
|
allow-transfer { <secondary NS IP>; };
|
||
|
file "ext/db.foobar";
|
||
|
};
|
||
|
|
||
|
zone "176.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify yes;
|
||
|
allow-update { none; };
|
||
|
allow-transfer { <secondary NS IP>; };
|
||
|
file "db.192.0.2.176";
|
||
|
};
|
||
|
|
||
|
zone "177.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify yes;
|
||
|
allow-update { none; };
|
||
|
allow-transfer { <secondary NS IP>; };
|
||
|
file "db.192.0.2.177";
|
||
|
};
|
||
|
|
||
|
zone "178.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify yes;
|
||
|
allow-update { none; };
|
||
|
allow-transfer { <secondary NS IP>; };
|
||
|
file "db.192.0.2.178";
|
||
|
};
|
||
|
|
||
|
zone "179.2.0.192.in-addr.arpa" in {
|
||
|
type master;
|
||
|
notify yes;
|
||
|
allow-update { none; };
|
||
|
allow-transfer { <secondary NS IP>; };
|
||
|
file "db.192.0.2.179";
|
||
|
};
|
||
|
};</programlisting>
|
||
|
|
||
|
<para>Voici les fichiers de /var/named (ceux qui ne sont pas présents font
|
||
|
partis de votre distribution BIND).</para>
|
||
|
|
||
|
<para>db.192.0.2.176 - Zone inverse de l'interface externe du firewall</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.0.2.176/32
|
||
|
; Filename: db.192.0.2.176
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2001102303 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
@ 604800 IN NS <name of secondary ns>.
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
176.2.0.192.in-addr.arpa. 86400 IN PTR firewall.foobar.net.</programlisting>
|
||
|
|
||
|
<para>db.192.0.2.177 - Zone inverse pour le serveur www/DNS server</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.0.2.177/32
|
||
|
; Filename: db.192.0.2.177
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2001102303 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
@ 604800 IN NS <name of secondary ns>.
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
177.2.0.192.in-addr.arpa. 86400 IN PTR www.foobar.net.</programlisting>
|
||
|
|
||
|
<para>db.192.0.2.178 - Zone inverse du serveur mail</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.0.2.178/32
|
||
|
; Filename: db.192.0.2.178
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2001102303 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
@ 604800 IN NS <name of secondary ns>.
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
178.2.0.192.in-addr.arpa. 86400 IN PTR mail.foobar.net.<optional></optional></programlisting>
|
||
|
|
||
|
<para>db.192.0.2.179 - Zone inverse du serveur web publique de votre fille</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.0.2.179/32
|
||
|
; Filename: db.192.0.2.179
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2001102303 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
@ 604800 IN NS <name of secondary ns>.
|
||
|
;
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
179.2.0.192.in-addr.arpa. 86400 IN PTR nod.foobar.net.</programlisting>
|
||
|
|
||
|
<para>int/db.127.0.0 - Zone inverse pour localhost</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 127.0.0.0/8
|
||
|
; Filename: db.127.0.0
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2001092901 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
1 86400 IN PTR localhost.foobar.net.</programlisting>
|
||
|
|
||
|
<para>int/db.192.168.201 - Zone inverse pour le réseau local. cela
|
||
|
n'est montré qu'aux clients internes</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.168.201.0/29
|
||
|
; Filename: db.192.168.201
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net netadmin.foobar.net. (
|
||
|
2002032501 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
1 86400 IN PTR gateway.foobar.net.
|
||
|
2 86400 IN PTR winken.foobar.net.
|
||
|
3 86400 IN PTR blinken.foobar.net.
|
||
|
4 86400 IN PTR nod.foobar.net.</programlisting>
|
||
|
|
||
|
<para>int/db.192.168.202 - Zone inverse de l'interface DMZ du firewall</para>
|
||
|
|
||
|
<programlisting>; ############################################################
|
||
|
; Start of Authority (Inverse Address Arpa) for 192.168.202.0/29
|
||
|
; Filename: db.192.168.202
|
||
|
; ############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net netadmin.foobar.net. (
|
||
|
2002032501 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ) ; minimum (1 day)
|
||
|
|
||
|
; ############################################################
|
||
|
; Specify Name Servers for all Reverse Lookups (IN-ADDR.ARPA)
|
||
|
; ############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
|
||
|
; ############################################################
|
||
|
; Iverse Address Arpa Records (PTR's)
|
||
|
; ############################################################
|
||
|
1 86400 IN PTR dmz.foobar.net.</programlisting>
|
||
|
|
||
|
<para>int/db.foobar - Forward zone pour l'utilisation des clients
|
||
|
internes.</para>
|
||
|
|
||
|
<programlisting>;##############################################################
|
||
|
; Start of Authority for foobar.net.
|
||
|
; Filename: db.foobar
|
||
|
;##############################################################
|
||
|
@ 604800 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2002071501 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ); minimum (1 day)
|
||
|
;############################################################
|
||
|
; foobar.net Nameserver Records (NS)
|
||
|
;############################################################
|
||
|
@ 604800 IN NS ns1.foobar.net.
|
||
|
|
||
|
;############################################################
|
||
|
; Foobar.net Office Records (ADDRESS)
|
||
|
;############################################################
|
||
|
localhost 86400 IN A 127.0.0.1
|
||
|
|
||
|
firewall 86400 IN A 192.0.2.176
|
||
|
www 86400 IN A 192.0.2.177
|
||
|
ns1 86400 IN A 192.0.2.177
|
||
|
www 86400 IN A 192.0.2.177
|
||
|
|
||
|
gateway 86400 IN A 192.168.201.1
|
||
|
winken 86400 IN A 192.168.201.2
|
||
|
blinken 86400 IN A 192.168.201.3
|
||
|
nod 86400 IN A 192.168.201.4</programlisting>
|
||
|
|
||
|
<para>ext/db.foobar - Forward zone pour les clients externes</para>
|
||
|
|
||
|
<programlisting>;##############################################################
|
||
|
; Start of Authority for foobar.net.
|
||
|
; Filename: db.foobar
|
||
|
;##############################################################
|
||
|
@ 86400 IN SOA ns1.foobar.net. netadmin.foobar.net. (
|
||
|
2002052901 ; serial
|
||
|
10800 ; refresh (3 hour)
|
||
|
3600 ; retry (1 hour)
|
||
|
604800 ; expire (7 days)
|
||
|
86400 ); minimum (1 day)
|
||
|
;############################################################
|
||
|
; Foobar.net Nameserver Records (NS)
|
||
|
;############################################################
|
||
|
@ 86400 IN NS ns1.foobar.net.
|
||
|
@ 86400 IN NS <secondary NS>.
|
||
|
;############################################################
|
||
|
; Foobar.net Foobar Wa Office Records (ADDRESS)
|
||
|
;############################################################
|
||
|
localhost 86400 IN A 127.0.0.1
|
||
|
;
|
||
|
; The firewall itself
|
||
|
;
|
||
|
firewall 86400 IN A 192.0.2.176
|
||
|
;
|
||
|
; The DMZ
|
||
|
;
|
||
|
ns1 86400 IN A 192.0.2.177
|
||
|
www 86400 IN A 192.0.2.177
|
||
|
mail 86400 IN A 192.0.2.178
|
||
|
;
|
||
|
; The Local Network
|
||
|
;
|
||
|
nod 86400 IN A 192.0.2.179
|
||
|
|
||
|
;############################################################
|
||
|
; Current Aliases for foobar.net (CNAME)
|
||
|
;############################################################
|
||
|
|
||
|
;############################################################
|
||
|
; foobar.net MX Records (MAIL EXCHANGER)
|
||
|
;############################################################
|
||
|
foobar.net. 86400 IN A 192.0.2.177
|
||
|
86400 IN MX 0 mail.foobar.net.
|
||
|
86400 IN MX 1 <backup MX>.</programlisting>
|
||
|
</section>
|
||
|
|
||
|
<section>
|
||
|
<title>Démarrer et Stopper le firewall</title>
|
||
|
|
||
|
<para>La <ulink url="Install.htm">procédure d'installation</ulink>
|
||
|
configure votre système pour que Shorewall démarre au boot du système.</para>
|
||
|
|
||
|
<para>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 <ulink url="Documentation.htm#Routestopped">/etc/shorewall/routestopped</ulink>.
|
||
|
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".</para>
|
||
|
|
||
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Editez le fichier
|
||
|
<ulink url="Documentation.htm#Routestopped">/etc/shorewall/routestopped</ulink>
|
||
|
file et ajouter les systèmes qui doivent pouvoir se connecter au firewall
|
||
|
quant il est arrêté.</para>
|
||
|
|
||
|
<para>ATTENTION: 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 <ulink url="Documentation.htm#Routestopped">/etc/shorewall/routestopped</ulink>.
|
||
|
Egalement, je ne recommande pas d'utiliser "shorewall
|
||
|
restart"; il est préférable d'utiliser <ulink
|
||
|
url="starting_and_stopping_shorewall.htm"><emphasis>une configuration
|
||
|
alternative</emphasis></ulink>  et la tester avec la commande "<ulink
|
||
|
url="starting_and_stopping_shorewall.htm">shorewall try</ulink>".</para>
|
||
|
</section>
|
||
|
</article>
|