shorewall_code/STABLE/documentation/two-interface_fr.html
teastep dbfc838988 Shorewall 1.4.8
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@789 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
2003-11-17 21:06:32 +00:00

1340 lines
42 KiB
HTML
Executable File

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE"
content="text/html; charset=iso-8859-1">
<title>Two-Interface Firewall</title>
<meta name="GENERATOR" content="OpenOffice.org 1.0.1 (Linux)">
<meta name="CREATED" content="20030121;19181000">
<meta name="CHANGED" content="20030121;20290700">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Theme" content="none">
<meta http-equiv="Content-Language" content="en-us">
</head>
<body lang="fr-FR">
<h1 style="text-align: center;">Basic Two-Interface Firewall</h1>
<p align="left"><br>
<small><i><u>Notes du traducteur</u> :<br>
Je ne pr&eacute;tends pas &ecirc;tre un vrai traducteur dans le sens ou
mon travail n&#8217;est pas des plus pr&eacute;cis (loin de l&agrave;...). Je
ne me suis pas attach&eacute; &agrave; une traduction exacte du texte,
mais plut&ocirc;t
&agrave; en faire une version fran&ccedil;aise intelligible par tous
(et
par moi). Les termes techniques sont la plupart du temps
conserv&eacute;s sous leur forme originale et mis entre
parenth&egrave;ses car vous pouvez les retrouver dans le reste des
documentations ainsi que dans les fichiers de configuration.
N&#8217;h&eacute;sitez pas &agrave; me contacter afin d&#8217;am&eacute;liorer ce
document <a href="mailto:vetsel.patrice@wanadoo.fr">VETSEL Patrice</a>
(merci &agrave; JMM pour sa relecture et ses commentaires pertinents,
ainsi qu'&agrave; Tom EASTEP pour son formidable outil et sa
disponibilit&eacute;)</i></small><i>.<br>
<br>
</i></p>
<p align="left">Mettre en place un syst&egrave;me Linux en tant que
firewall pour un petit r&eacute;seau est une chose assez simple, si
vous comprenez les bases et suivez la documentation.</p>
<p>Ce guide ne veut pas vous apprendre tous les rouages de Shorewall.
Il
se focalise sur ce qui est n&eacute;cessaire pour configurer Shorewall,
dans son utilisation la plus courante :</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Un syst&egrave;me Linux
utilis&eacute; en tant que firewall/routeur pour un petit r&eacute;seau
local. </p>
</li>
<li>
<p style="margin-bottom: 0cm;">Une seule adresse IP publique. </p>
</li>
<li>
<p>Une connexion Internet par le biais d'un modem c&acirc;ble,
ADSL, ISDN, "Frame Relay", RTC ... </p>
</li>
</ul>
<p align="left">Voici un sch&eacute;ma d'une installation typique.</p>
<p align="center"><img src="images/basics.png" name="Image1"
align="bottom" width="444" height="635" border="0"> </p>
<p><b>Si vous faites tourner Shorewall sous Mandrake 9.0 ou plus
r&eacute;cent, vous pouvez facilement r&eacute;aliser la configuration
ci-dessus en utilisant l'applet Mandrake "Internet Connection Sharing".
Depuis le "Mandrake Control Center", s&eacute;lectionnez "Network &amp;
Internet" et "Connection Sharing". Vous ne devriez pas avoir besoin de
vous r&eacute;f&eacute;rer &agrave;
ce guide.</b></p>
<p>Ce guide suppose que vous avez le paquet iproute/iproute2
d'install&eacute;.<i> </i>Vous pouvez voir si le paquet est
install&eacute; en v&eacute;rifiant la pr&eacute;sence du programme ip
sur votre syst&egrave;me de firewall.
Sous root, utilisez la commande 'which' pour rechercher le programme :</p>
<pre> [root@gateway root]# which ip<br> /sbin/ip<br> [root@gateway root]#</pre>
<p>Je vous recommande dans un premier temps de parcourir tout le guide
pour vous familiariser avec ce qui va se passer, et de revenir au
d&eacute;but en effectuant le changements dans votre configuration. Les
points o&ugrave;, les changements dans la configuration sont
recommand&eacute;es, sont signal&eacute;s par une <img
src="images/BD21298_.gif" name="Image2" align="bottom" width="13"
height="13" border="0"> .</p>
<p><img src="images/j0213519.gif" name="Image3" align="bottom"
width="60" height="60" border="0"> &nbsp;&nbsp;&nbsp; Si vous
&eacute;ditez vos fichiers de configuration
sur un syst&egrave;me Windows, vous devez les sauver comme des fichiers
Unix si votre &eacute;diteur offre cette option sinon vous devez les
faire
passer par dos2unix avant d'essayer de les utiliser. De la m&ecirc;me
mani&egrave;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.</p>
<ul>
<li>
<p style="margin-bottom: 0cm;"><a
href="http://www.simtel.net/pub/pd/51438.html">Windows Version of
dos2unix</a> </p>
</li>
<li>
<p><a href="http://www.megaloman.com/%7Ehany/software/hd2u/">Linux
Version of dos2unix</a> </p>
</li>
</ul>
<h2 align="left">Les Concepts de Shorewall</h2>
<p><img src="images/BD21298_.gif" name="Image4" align="bottom"
width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp; Les fichiers de
configuration pour Shorewall sont dans le r&eacute;pertoire
/etc/shorewall -- pour de simples configurations, vous n'aurez
seulement &agrave; faire qu'avec quelques fichiers comme d&eacute;crit
dans ce guide. Apr&egrave;s avoir <a href="Install.htm">install&eacute;
Shorewall</a>,
t&eacute;l&eacute; chargez<b> le <a
href="http://www1.shorewall.net/pub/shorewall/Samples/">two-interface
sample</a>, un-tarez le (tar -zxvf two-interfaces.tgz) et copiez les
fichiers vers /etc/shorewall (ces fichiers remplaceront les fichiers de
m&ecirc;me nom).</b></p>
<p>Parall&egrave;lement &agrave; la pr&eacute;sentation de chacun des
fichiers, je vous sugg&egrave;re de regarder le fichier qui se trouve
r&eacute;ellement sur votre syst&egrave;me -- tous les fichiers
contiennent des instructions de configuration d&eacute;taill&eacute;es
et des valeurs par d&eacute;faut.</p>
<p>Shorewall voit le r&eacute;seau o&ugrave; il tourne, comme un
ensemble de <i>zones.</i> Dans une configuration avec deux interfaces,
les noms des zones suivantes sont utilis&eacute;s:</p>
<a name="AutoNumber2"></a>
<table border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td>
<p><u><b>Nom</b></u></p>
</td>
<td>
<p><u><b>Description</b></u></p>
</td>
</tr>
<tr>
<td>
<p><b>net</b></p>
</td>
<td>
<p><b>Internet</b></p>
</td>
</tr>
<tr>
<td>
<p><b>loc</b></p>
</td>
<td>
<p><b>Votre r&eacute;seau local</b></p>
</td>
</tr>
</tbody>
</table>
<p>Les zones sont d&eacute;finies dans le fichier<a
href="Documentation.htm#Zones">/etc/shorewall/zones</a> .</p>
<p>Shorewall reconna&icirc;t aussi le syst&egrave;me de firewall comme
sa propre zone - par d&eacute;faut, le firewall est connu comme<b> fw.</b></p>
<p>Les r&egrave;gles &agrave; propos de quel trafic autoriser, et de
quel trafic interdire sont exprim&eacute;es en terme de zones.</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Vous exprimez votre politique par
d&eacute;faut pour les connexions d'une zone vers une autre zone dans
le fichier<a href="Documentation.htm#Policy"> /etc/shorewall/policy </a>.
</p>
</li>
<li>
<p>Vous d&eacute;finissez les exceptions &agrave; ces politiques
pas d&eacute;faut dans le fichier <a href="Documentation.htm#Rules">/etc/shorewall/rules
</a>. </p>
</li>
</ul>
<p>Pour chaque connexion demandant &agrave; entrer dans le firewall, la
requ&ecirc;te est en premier lieu compar&eacute;e par rapport au
fichier /etc/shorewall/rules. Si aucune r&egrave;gle dans ce fichier ne
correspond &agrave; la demande
de connexion alors la premi&egrave;re politique dans le fichier
/etc/shorewall/policy qui y correspond sera appliqu&eacute;e. Si cette
politique est REJECT ou
DROP&nbsp; la requ&ecirc;te est dans un premier temps compar&eacute;e
par
rapport aux r&egrave;gles contenues dans /etc/shorewall/common.</p>
<p>Le fichier /etc/shorewall/policy inclue dans l'archive d'exemple
(two-interface) a les politiques suivantes:</p>
<a name="AutoNumber3"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>Source Zone</b></u></p>
</td>
<td>
<p><u><b>Destination Zone</b></u></p>
</td>
<td>
<p><u><b>Policy</b></u></p>
</td>
<td>
<p><u><b>Log Level</b></u></p>
</td>
<td>
<p><u><b>Limit:Burst</b></u></p>
</td>
</tr>
<tr>
<td>
<p>loc</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td>
<p>net</p>
</td>
<td>
<p>all</p>
</td>
<td>
<p>DROP</p>
</td>
<td>
<p>info</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td>
<p>all</p>
</td>
<td>
<p>all</p>
</td>
<td>
<p>REJECT</p>
</td>
<td>
<p>info</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<blockquote>Dans le fichier d'exemple (two-interface), la ligne
suivante
est inclue mais elle est comment&eacute;e. Si vous voulez que votre
firewall
puisse avoir un acc&egrave;s complet aux serveurs sur Internet,
d&eacute;commentez la ligne.</blockquote>
<a name="AutoNumber31"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>Source Zone</b></u></p>
</td>
<td>
<p><u><b>Destination Zone</b></u></p>
</td>
<td>
<p><u><b>Policy</b></u></p>
</td>
<td>
<p><u><b>Log Level</b></u></p>
</td>
<td>
<p><u><b>Limit:Burst</b></u></p>
</td>
</tr>
<tr>
<td>
<p>fw</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p>Ces politiques vont:</p>
<ol>
<li>
<p style="margin-bottom: 0cm;">permettre toutes les demandes de
connexion depuis votre r&eacute;seau local vers l'Internet </p>
</li>
<li>
<p style="margin-bottom: 0cm;">drop (ou ignorer) toutes les
demandes de connexion depuis l'Internet vers votre firewall ou votre
r&eacute;seau local. </p>
</li>
<li>
<p style="margin-bottom: 0cm;">Facultativement&nbsp;accepter toutes
les demandes de connexion de votre firewall vers l'Internet (si vous
avez
d&eacute; comment&eacute; la politique additionnelle) </p>
</li>
<li>
<p>reject (rejeter) toutes les autres demandes de connexion. </p>
</li>
</ol>
<p><img src="images/BD21298_.gif" name="Image5" align="bottom"
width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp; A ce point,
&eacute;ditez votre fichier /etc/shorewall/policy et faite les
changements que vous d&eacute;sirez.</p>
<h2 align="left">Network Interfaces</h2>
<p align="center"><img src="images/basics.png" name="Image6"
align="bottom" width="444" height="635" border="0"> </p>
<p align="left">Le firewall a deux interfaces de r&eacute;seau. Lorsque
la connexion Internet passe par le c&acirc;ble ou par un ROUTEUR (pas
un simple modem) ADSL (non USB), l'interface vers l'ext&eacute;rieur (<i>External
Interface)</i> sera l'adaptateur sur lequel est connect&eacute; le
routeur
(e.g., <b>eth0</b>)&nbsp; <u>&agrave; moins que</u> vous ne vous
connectiez
par <i><u>P</u>oint-to-<u>P</u>oint<u>P</u>rotocol over<u>E</u>thernet</i>
(PPPoE) ou par <i><u>P</u>oint-to-<u>P</u>oint<u>T</u>unneling<u>P</u>rotocol</i>(PPTP),
dans ce cas l'interface ext&eacute;rieure sera une interface de type
ppp (e.g., <b>ppp0</b>). Si vous vous connectez par un simple modem
(RTC), votre interface ext&eacute;rieure sera aussi <b>ppp0</b>. Si
votre connexion passe par Num&eacute;ris (ISDN), votre interface
ext&eacute;rieure sera<b>ippp0.</b></p>
<p align="left"><img src="images/BD21298_1.gif" name="Image7"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Si votre interface vers l'ext&eacute;rieur est<b>ppp0</b> ou <b>ippp0</b>&nbsp;
alors vous mettrez CLAMPMSS=yes dans <a href="Documentation.htm#Conf">/etc/shorewall/shorewall.conf.</a></p>
<p align="left">Votre <i>Internal Interface</i> (interface vers votre
r&eacute;seau local -&gt; LAN) sera un adaptateur Ethernet (eth1 ou
eth0) et sera connect&eacute;e &agrave; un hub ou switch (ou un PC avec
un c&acirc;ble crois&eacute;).
Vos autres ordinateurs seront connect&eacute;s &agrave; ce m&ecirc;me
hub/switch</p>
<p align="left"><b><u><img src="images/j0213519.gif" name="Image8"
align="bottom" width="60" height="60" border="0"> </u></b>Ne
connectez pas l'interface interne et externe sur le m&ecirc;me hub ou
switch (m&ecirc;me pour tester). Cela ne fonctionnera pas et ne croyez
pas que ce soit shorewall qui ne marche pas.</p>
<p align="left"><img src="images/BD21298_.gif" name="Image9"
align="left" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp; Le
fichier de configuration d'exemple pour deux interfaces suppose que
votre interface externe est <b>eth0</b>et que l'interne est
<b>eth1</b>. Si votre configuration est diff&eacute;rente, vous devrez
modifier
le fichier <a href="Documentation.htm#Interfaces">/etc/shorewall/interfaces</a>
en cons&eacute;quence. Tant que vous y &ecirc;tes, vous pourriez
parcourir
la liste des options qui sont sp&eacute;cifi&eacute;es pour les
interfaces.
Quelques trucs:</p>
<ul>
<li>
<p align="left">Si votre interface vers l'ext&eacute;rieur est <b>ppp0</b>
ou <b>ippp0</b>, vous pouvez remplacer le "detect" dans la seconde
colonne par un "-". </p>
</li>
<li>
<p align="left">Si votre interface vers l'ext&eacute;rieur est&nbsp;<b>ppp0</b>
ou <b>ippp0</b> ou si vous avez une adresse IP statique, vous pouvez
enlever "dhcp" dans la liste des options. </p>
</li>
</ul>
<h2 align="left">Adresses IP</h2>
<p align="left">Avant d'aller plus loin, nous devons dire quelques mots
au sujet de Internet Protocol (IP) <i>addresses</i>. Normalement,
votre fournisseur Internet (ISP) vous assignera une seule adresse IP
(single <i>Public</i>IP address). Cette adresse peut &ecirc;tre
assign&eacute;e par le Dynamic<i> Host Configuration Protocol</i>(DHCP)
ou lors de l'&eacute;tablissement de
votre connexion lorsque vous vous connectez (modem standard) ou
&eacute;tablissez votre connexion PPP. Dans de rares cas , votre
provider peut vous assigner une adresse statique<i> (static</i>IP
address); cela signifie que vous devez configurer l'interface externe
de votre firewall afin d'utiliser cette adresse de mani&egrave;re
permanente. Votre adresse externe assign&eacute;e, elle va &ecirc;tre
partag&eacute;e par tous vos syst&egrave;mes lors de l'acc&egrave;s
&agrave; Internet. Vous devrez assigner vos propres adresses dans votre
r&eacute;seau
local (votre interface interne sur le firewall &nbsp;ainsi que les
autres
ordinateurs). La RFC 1918 r&eacute;serve plusieurs plages d'IP (<i>Private</i>IP
address ranges) &agrave; cette fin :</p>
<pre style="text-align: left;"> 10.0.0.0 - 10.255.255.255an<br> 172.16.0.0 - 172.31.255.255<br> 192.168.0.0 - 192.168.255.255</pre>
<p align="left"><img src="images/BD21298_.gif" name="Image10"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Avant de lancer Shorewall, vous devriez regarder l'adresse IP de votre
interface externe, et si elle est dans les plages
pr&eacute;c&eacute;dentes, vous devriez enlever l'option 'norfc1918'
dans la ligne concernant l'interface externe dans le fichier
/etc/shorewall/interfaces.</p>
<p align="left">Vous devrez assigner vos adresses depuis le m&ecirc;me
sous-r&eacute;seau (<i>sub-network/subnet)</i>. Pour ce faire, nous
pouvons consid&eacute;rer un sous-r&eacute;seau dans une plage
d'adresses x.y.z.0 - x.y.z.255. Chaque sous-r&eacute;seau aura un
masque (<i>Subnet Mask) </i>de 255.255.255.0.
L'adresse x.y.z.0 est r&eacute;serv&eacute;e comme l'adresse de
sous-r&eacute;seau
(<i>Subnet Address) </i>et x.y.z.255 est r&eacute;serv&eacute;e en
tant qu'adresse
de broadcast (<i>Subnet Broadcast</i> <i>Address)</i>. Dans Shorewall,
un
sous-r&eacute;seau est d&eacute;crit en utilisant <a
href="shorewall_setup_guide.htm#Subnets"><i>la notation Classless
InterDomain Routing </i>(CIDR)</a> qui consiste en l'adresse du
sous-r&eacute;seau suivie par "/24". Le "24" se r&eacute;f&egrave;re au
nombre cons&eacute;cutif de bits marquant "1" dans la partie gauche du
masque de sous-r&eacute;seau.</p>
<p align="left">Un exemple de sous-r&eacute;seau (sub-network) :</p>
<a name="AutoNumber1"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><b>Plage:</b></p>
</td>
<td>
<p>10.10.10.0 - 10.10.10.255</p>
</td>
</tr>
<tr>
<td>
<p><b>Subnet Address:</b></p>
</td>
<td>
<p>10.10.10.0</p>
</td>
</tr>
<tr>
<td>
<p><b>Broadcast Address:</b></p>
</td>
<td>
<p>10.10.10.255</p>
</td>
</tr>
<tr>
<td>
<p><b>CIDR&nbsp;Notation:</b></p>
</td>
<td>
<p>10.10.10.0/24</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left">Il est de mise d'assigner l'interface interne (LAN)
&agrave; la premi&egrave;re adresse utilisable du sous-r&eacute;seau
(10.10.10.1
dans l'exemple pr&eacute;c&eacute;dent) ou la derni&egrave;re adresse
utilisable (10.10.10.254).</p>
<p align="left">L'un des buts d'un sous-r&eacute;seau est de permettre
&agrave; tous les ordinateurs dans le sous-r&eacute;seau de savoir avec
quels autres ordinateurs ils peuvent communiquer directement. Pour
communiquer avec des syst&egrave;mes en dehors du sous-r&eacute;seau,
les ordinateurs envoient des paquets &agrave; travers le gateway
(routeur).</p>
<p align="left"><img src="images/BD21298_1.gif" name="Image11"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Vos ordinateurs en local (ordinateur 1 et ordinateur 2 dans le
diagramme) devraient &ecirc;tre configur&eacute;s avec leur passerelle
par d&eacute;faut<i> (default gateway</i>) pointant sur l'adresse IP de
l'interface
interne du firewall.</p>
<p align="left">The foregoing short discussion barely scratches the
surface regarding subnetting and routing. If you are interested in
learning more
about IP addressing and routing, I highly recommend <i>"IP
Fundamentals:
What Everyone Needs to Know about Addressing &amp; Routing",</i> Thomas
A.
Maufer, Prentice-Hall, 1999, ISBN 0-13-975483-0.</p>
<p align="left">Le reste de ce guide assumera que vous avez
configur&eacute; votre r&eacute;seau comme montr&eacute; ci-dessous :</p>
<p align="center"><img src="images/basics1.png" name="Image12"
align="bottom" width="444" height="635" border="0"> </p>
<p align="left">La passerelle par d&eacute;faut pour les ordinateurs 1
et 2 devrait &ecirc;tre 10.10.10.254.</p>
<h2 align="left">IP Masquerading (SNAT)</h2>
<p align="left">Les adresses r&eacute;serv&eacute;es par la RFC 1918
sont parfois d&eacute;sign&eacute;es comme <i>non-routables</i> car
les routeurs Internet (backbone) ne font pas circuler les paquets qui
ont une adresse
de destination appartenant &agrave; la RFC-1918. Lorsqu'un de vos
syst&egrave;mes en local (supposons l'ordinateur1) demande une
connexion &agrave; un serveur par Internet, le firewall doit appliquer
un NAT<i> (Network Address Translation)</i>. Le firewall r&eacute;
&eacute;crit l'adresse source dans le paquet, et l'a remplace par
l'adresse de l'interface externe du firewall; en d'autres mots, le
firewall fait croire que c'est lui m&ecirc;me qui initie la connexion.
Ceci est n&eacute;cessaire afin que l'h&ocirc;te de destination soit
capable de renvoyer les paquets au firewall (souvenez vous que les
paquets qui ont pour adresse de destination, une adresse
r&eacute;serv&eacute;e par la RFC 1918 ne pourront pas &ecirc;tre
rout&eacute;s &agrave; travers Internet,
donc l'h&ocirc;te Internet ne pourra adresser sa r&eacute;ponse
&agrave;
l'ordinateur 1). Lorsque le firewall re&ccedil;oit le paquet de
r&eacute;ponse,
il remet l'adresse de destination &agrave; 10.10.10.1 et fait passer le
paquet
vers l'ordinateur 1. </p>
<p align="left">Sur les syst&egrave;mes Linux, ce proc&eacute;d&eacute;
est souvent appel&eacute; de l'<i>IP Masquerading</i> mais vous verrez
aussi
le terme de <i>Source Network Address Translation </i>(SNAT)
utilis&eacute;. Shorewall suit la convention utilis&eacute;e avec
Netfilter:</p>
<ul>
<li>
<p align="left"><i>Masquerade</i> d&eacute;signe le cas ou vous
laissez votre firewall d&eacute;tecter automatiquement l'adresse de
l'interface
externe. </p>
</li>
<li>
<p align="left"><i>SNAT</i> d&eacute;signe le cas o&ugrave; vous
sp&eacute;cifiez explicitement l'adresse source des paquets sortant de
votre r&eacute;seau local. </p>
</li>
</ul>
<p align="left">Sous Shorewall, autant le Masquerading que le SNAT sont
configur&eacute; avec des entr&eacute;s dans le fichier
/etc/shorewall/masq. Vous utiliserez normalement le Masquerading si
votre adresse IP externe est dynamique, et SNAT si elle est statique.</p>
<p align="left"><img src="images/BD21298_.gif" name="Image13"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Si votre interface externe du firewall est <b>eth0</b>, vous n'avez
pas besoin de modifier le fichier fourni avec l'exemple. Dans le cas
contraire, &eacute;ditez /etc/shorewall/masq et changez la
premi&egrave;re colonne par le nom de votre interface externe, et la
seconde colonne par
le nom de votre interface interne.</p>
<p align="left"><img src="images/BD21298_.gif" name="Image14"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Si votre IP externe est statique, vous pouvez la mettre dans la
troisi&egrave;me colonne dans /etc/shorewall/masq si vous le
d&eacute;sirez, de toutes fa&ccedil;ons votre firewall fonctionnera
bien si vous laissez
cette colonne vide. Le fait de mettre votre IP statique dans la
troisi&egrave;me colonne permet un traitement des paquets sortant un
peu plus efficace.<br>
<br>
<img src="images/BD21298_.gif" name="Image15" align="bottom" width="13"
height="13" border="0"> &nbsp;&nbsp;&nbsp; Si vous utilisez les
paquets Debian, v&eacute;rifiez que votre fichier de configuration
shorewall.conf contient bien les valeurs suivantes, si elles n'y sont
pas faite les changements n&eacute;cessaires:</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">NAT_ENABLED=Yes </p>
</li>
<li>
<p>IP_FORWARDING=On</p>
</li>
</ul>
<h2 align="left">Port Forwarding (DNAT)</h2>
<p align="left">Un de nos buts est de , peut &ecirc;tre, faire tourner
un ou plusieurs serveurs sur nos ordinateurs locaux. Parce que ces
ordinateurs on une adresse RFC-1918, il n' est pas possible pour les
clients sur Internet de se connecter directement &agrave; eux. Il est
n&eacute;cessaire &agrave; ces clients d'adresser leurs demandes de
connexion au firewall qui r&eacute; &eacute;crit l'adresse de
destination de votre serveur, et fait passer le paquet &agrave;
celui-ci. Lorsque votre serveur r&eacute;pond, le firewall applique
automatiquement un SNAT pour r&eacute; &eacute;crire l'adresse
source dans la r&eacute;ponse.</p>
<p align="left">Ce proc&eacute;d&eacute; est appel&eacute;<i> Port
Forwarding</i> ou <i>Destination Network Address Translation</i>(DNAT).
Vous configurez
le port forwarding en utilisant les r&egrave;gles DNAT dans le fichier
/etc/shorewall/rules.</p>
<p>La forme g&eacute;n&eacute;rale d'une simple r&egrave;gle de port
forwarding dans /etc/shorewall/rules est:</p>
<a name="AutoNumber4"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>DNAT</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>loc:<i>&lt;server local ip address&gt; </i>[:<i>&lt;server
port&gt;</i>]</p>
</td>
<td>
<p><i>&lt;protocol&gt;</i></p>
</td>
<td>
<p><i>&lt;port&gt;</i></p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p>Exemple - vous faites tourner un serveur Web sur l'ordinateur 2 et
vous voulez faire passer les requ&ecirc;tes TCP sur le port 80 &agrave;
ce syst&egrave;me :</p>
<a name="AutoNumber41"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>DNAT</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>loc:10.10.10.2</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>80</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p>Deux points importants &agrave; garder en m&eacute;moire :</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Vous devez tester la r&egrave;gle
pr&eacute;c&eacute;dente depuis un client &agrave; l'ext&eacute;rieur
de votre r&eacute;seau local (c.a.d., ne pas tester depuis un
navigateur tournant sur l'ordinateur 1
ou 2 ou sur le firewall). Si vous voulez avoir la possibilit&eacute;
d'acc&eacute;der &agrave; votre serveur web en utilisant l'adresse IP
externe de votre firewall, regardez <a href="FAQ.htm#faq2">Shorewall
FAQ #2</a>. </p>
</li>
<li>
<p>Quelques fournisseurs Internet (Provider/ISP) bloquent les
requ&ecirc;tes entrantes de connexion sur le port 80. Si vous avez des
probl&egrave;mes &agrave; vous connecter &agrave; votre serveur web,
essayez la r&egrave;gle suivante et connectez vous sur le port 5000. </p>
</li>
</ul>
<a name="AutoNumber42"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>DNAT</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>loc:10.10.10.2:80</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>5000</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p><img src="images/BD21298_.gif" name="Image16" align="bottom"
width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp; A ce point,
modifiez /etc/shorewall/rules pour ajouter les r&egrave;gles DNAT dont
vous avez besoin.</p>
<h2 align="left">Domain Name Server (DNS)</h2>
<p align="left">Normalement, quand vous vous connectez &agrave; votre
fournisseur (ISP), une partie consiste &agrave; obtenir votre adresse
IP, votre DNS
pour le firewall (<i>Domain Name Service) </i>est configur&eacute;
automatiquement (c.a.d.,le fichier /etc/resolv.conf a &eacute;t&eacute;
&eacute;crit). Il arrive que votre provider vous donne une paire
d'adresse IP pour les DNS<i> (name servers)</i> afin que vous
configuriez manuellement votre serveur
de nom primaire et secondaire. La mani&egrave;re dont le DNS est
configur&eacute; sur votre firewall est de <u>votre</u>
responsabilit&eacute;. Vous pouvez proc&eacute;der d'une de ses deux
fa&ccedil;ons :</p>
<ul>
<li>
<p align="left">Vous pouvez configurer votre syst&egrave;me interne
pour utiliser les noms de serveurs de votre provider. Si votre
fournisseur
vous donne les adresses de leurs serveurs ou si ces adresses sont
disponibles sur leur site web, vous pouvez configurer votre
syst&egrave;me interne
afin de les utiliser. Si cette information n' est pas disponible,
regardez
dans /etc/resolv.conf sur votre firewall -- les noms des serveurs sont
donn&eacute;s dans l'enregistrement "nameserver" dans ce fichier. </p>
</li>
<li>
<p align="left"><img src="images/BD21298_.gif" name="Image17"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Vous pouvez configurer un cache dns<i> (Caching Name Server) </i>sur
votre firewall.<i> </i>Red Hat a un RPM pour mettre en
cache un serveur de nom (le RPM requis aussi le RPM 'bind') et pour les
utilisateurs de Bering, il y a dnscache.lrp. Si vous adoptez cette
approche,
vous configurez votre syst&egrave;me interne pour utiliser le firewall
lui m&ecirc;me comme &eacute;tant le seul serveur de nom primaire. Vous
pouvez utiliser l'adresse IP interne du firewall (10.10.10.254 dans
l'exemple)
pour l'adresse de serveur de nom. Pour permettre &agrave; vos
syst&egrave;mes
locaux de discuter avec votre serveur cache de nom, vous devez ouvrir
le
port 53 (UDP ET&nbsp; TCP) sur le firewall vers le r&eacute;seau local;
vous ferez ceci en ajoutant les r&egrave;gles suivantes dans
/etc/shorewall/rules. </p>
</li>
</ul>
<a name="AutoNumber43"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>loc</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>53</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>loc</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>udp</p>
</td>
<td>
<p>53</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<h2 align="left">Autres Connexions</h2>
<p align="left">Les fichiers exemples inclus dans l'archive
(two-interface) contiennent les r&egrave;gles suivantes :</p>
<a name="AutoNumber44"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>53</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>udp</p>
</td>
<td>
<p>53</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left">Ces r&egrave;gles autorisent l'acc&egrave;s DNS
&agrave;
partir de votre firewall et peuvent &ecirc;tre enlev&eacute;es si vous
avez
d&eacute; comment&eacute; la ligne dans /etc/shorewall/policy
autorisant
toutes les connexions depuis le firewall vers Internet.</p>
<p align="left">Les exemples contiennent aussi :</p>
<a name="AutoNumber45"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>loc</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>22</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left">Cette r&egrave;gle vous autorise &agrave; faire tourner
un serveur SSH sur votre firewall et &agrave; vous y connecter depuis
votre
r&eacute;seau local.</p>
<p align="left">Si vous voulez permettre d'autres connexions entre
votre
firewall et d'autres syst&egrave;mes, la forme g&eacute;n&eacute;rale
est
:</p>
<a name="AutoNumber46"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p><i>&lt;source zone&gt;</i></p>
</td>
<td>
<p><i>&lt;destination zone&gt;</i></p>
</td>
<td>
<p><i>&lt;protocol&gt;</i></p>
</td>
<td>
<p><i>&lt;port&gt;</i></p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left">Exemple - Vous voulez faire tourner un serveur Web sur
votre firewall :</p>
<a name="AutoNumber47"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>80</p>
</td>
<td>
<p>#Permet l'acc&egrave;s Web</p>
</td>
<td>
<p>depuis Internet</p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>loc</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>80</p>
</td>
<td>
<p>#Permet l'acc&egrave;s Web</p>
<br>
</td>
<td>
<p>depuis Internet</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left">Ces deux r&egrave;gles bien s&ucirc;r viennent
s'ajouter
aux r&egrave;gles d&eacute;crites pr&eacute;c&eacute;demment dans "Vous
pouvez configurer un cache dns<i> (Caching Name Server) </i>sur votre
firewall"</p>
<p align="left">Si vous ne savez pas quel port et quel protocole une
application particuli&egrave;re utilise, regardez <a href="ports.htm">ici</a>.</p>
<p align="left"><b>Important: </b>Je ne vous recommande pas de
permettre
le telnet depuis ou vers Internet car il utilise du texte en clair
(m&ecirc;me pour le login et le mot de passe!). Si vous voulez un
acc&egrave;s au shell sur votre firewall depuis Internet, utilisez SSH :</p>
<a name="AutoNumber48"></a>
<dl>
<dd>
<table border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<p><u><b>ACTION</b></u></p>
</td>
<td>
<p><u><b>SOURCE</b></u></p>
</td>
<td>
<p><u><b>DESTINATION</b></u></p>
</td>
<td>
<p><u><b>PROTOCOL</b></u></p>
</td>
<td>
<p><u><b>PORT</b></u></p>
</td>
<td>
<p><u><b>SOURCE PORT</b></u></p>
</td>
<td>
<p><u><b>ORIGINAL ADDRESS</b></u></p>
</td>
</tr>
<tr>
<td>
<p>ACCEPT</p>
</td>
<td>
<p>net</p>
</td>
<td>
<p>fw</p>
</td>
<td>
<p>tcp</p>
</td>
<td>
<p>22</p>
</td>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p align="left"><img src="images/BD21298_.gif" name="Image18"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Maintenant &eacute;ditez votre fichier /etc/shorewall/rules pour
ajouter ou supprimer les connexions voulues.</p>
<h2 align="left">Lancer et Arr&ecirc;ter votre Firewall</h2>
<p align="left"><img src="images/BD21298_2.gif" name="Image19"
alt="Arrow" align="bottom" width="13" height="13" border="0">
&nbsp;&nbsp;&nbsp; La&nbsp; <a href="Install.htm">proc&eacute;dure
d'installation</a> configure votre syst&egrave;me pour lancer Shorewall
au boot du syst&egrave;me, mais pour les d&eacute;butants sous
Shorewall version 1.3.9, le lancement est d&eacute;sactiv&eacute; tant
que la configuration n' est pas finie.
Une fois la configuration de votre firewall achev&eacute;e, vous pouvez
permettre le lancement de Shorewall en enlevant le fichier
/etc/shorewall/startup_disabled.</p>
<p align="left"><font color="#ff0000"><b>IMPORTANT</b>: Les
utilisateurs
des paquets .deb doivent &eacute;diter /etc/default/shorewall et mettre
'startup=1'.</font></p>
<p align="left">Le firewall est lanc&eacute; en utilisant la commande
"shorewall start" et stopp&eacute; avec "shorewall stop". Lorsque le
firewall est stopp&eacute;, le routage est permis sur les h&ocirc;tes
qui sont dans le fichier<a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
Un firewall fonctionnant peut &ecirc;tre relanc&eacute; en utilisant la
commande "shorewall restart". Si vous voulez enlever toutes les traces
de Shorewall dans votre configuration de Netfilter, utilisez "shorewall
clear".</p>
<p align="left"><img src="images/BD21298_.gif" name="Image20"
align="bottom" width="13" height="13" border="0"> &nbsp;&nbsp;&nbsp;
Les exemples (two-interface) supposent que vous voulez permettre le
routage depuis ou vers <b>eth1 </b>(le r&eacute;seau local)
lorsque Shorewall est stopp&eacute;. Si votre r&eacute;seau local n'
est
pas connect&eacute; &agrave; <b>eth1</b> ou si vous voulez permettre
l'acc&egrave;s
depuis ou vers d'autres h&ocirc;tes, changez
/etc/shorewall/routestopped
en cons&eacute;quence.</p>
<p align="left"><b>ATTENTION: </b>Si vous &ecirc;tes connect&eacute;
&agrave; votre firewall depuis Internet, n'essayez pas la commande
"shorewall stop" tant que vous n'avez pas ajout&eacute; une
entr&eacute;e pour votre adresse IP depuis laquelle vous &ecirc;tes
connect&eacute; dans<a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
De plus, je ne vous recommande pas d'utiliser "shorewall restart"; il
est mieux de cr&eacute;er une <a
href="configuration_file_basics.htm#Configs"><i>configuration
alternative</i></a> et de l'essayer en utilisant la commande<a
href="starting_and_stopping_shorewall.htm">"shorewall try".</a></p>
<p align="left"><font size="2">Last updated 12/20/2002 - <a
href="support.htm">Tom Eastep</a></font></p>
<p align="left"><a href="copyright.htm"><font size="2">Copyright 2002
Thomas M. Eastep</font></a></p>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>