mirror of
https://gitlab.com/shorewall/code.git
synced 2024-11-27 18:13:13 +01:00
a44e4a46f8
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@1143 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
1410 lines
47 KiB
XML
1410 lines
47 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>Three-Interface Firewall</title>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Tom</firstname>
|
|
|
|
<surname>Eastep</surname>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<pubdate>2003-12-20</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> Je ne
|
|
prétends pas être un vrai traducteur dans le sens ou mon travail n'est
|
|
pas des plus précis (loin de là...). Je ne me suis pas attaché à une
|
|
traduction exacte du texte, mais plutôt à en faire une version française
|
|
intelligible par tous (et par moi). Les termes techniques sont la plupart
|
|
du temps conservés sous leur forme originale et mis entre parenthèses car
|
|
vous pouvez les retrouver dans le reste des documentations ainsi que dans
|
|
les fichiers de configuration. N'hésitez pas à me contacter afin
|
|
d?améliorer ce document <ulink url="mailto:vetsel.patrice@wanadoo.fr">VETSEL
|
|
Patrice</ulink> (merci à JMM pour sa relecture et ses commentaires
|
|
pertinents, ainsi qu'à Tom EASTEP pour son formidable outil et sa
|
|
disponibilité).</para>
|
|
</note>
|
|
|
|
<section id="Documentation">
|
|
<title>Introduction</title>
|
|
|
|
<para>Mettre en place un système Linux en tant que firewall pour un petit
|
|
réseau contenant une DMZ est une chose assez simple, si vous comprenez les
|
|
bases et suivez la documentation. Ce guide ne veut pas vous apprendre tous
|
|
les rouages de Shorewall. Il se focalise sur ce qui est nécessaire pour
|
|
configurer Shorewall, dans son utilisation la plus courante :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Un système Linux utilisé en tant que firewall/routeur pour un
|
|
petit réseau local.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Une seule adresse IP publique.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Une DMZ connectée sur une interface Ethernet séparée.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Une connexion Internet par le biais d'un modem câble, ADSL,
|
|
ISDN, "Frame Relay", RTC ...</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Voici un schéma d'une installation typique.</para>
|
|
|
|
<graphic align="center" fileref="images/dmz1.png" />
|
|
|
|
<para>Ce guide suppose que vous avez le paquet iproute/iproute2
|
|
d'installé. Vous pouvez voir si le paquet est installé en vérifiant la
|
|
présence du programme ip sur votre système de firewall. Sous root,
|
|
utilisez la commande 'which' pour rechercher le programme :</para>
|
|
|
|
<programlisting> [root@gateway root]# which ip
|
|
/sbin/ip
|
|
[root@gateway root]#
|
|
</programlisting>
|
|
|
|
<para>Je vous recommande dans un premier temps de parcourir tout le guide
|
|
pour vous familiariser avec ce qu'il va se passer, et de revenir au
|
|
début en effectuant le changements dans votre configuration. Les points,
|
|
où les changements dans la configuration sont recommandées, sont signalés
|
|
par une <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 pour Shorewall sont situés dans le répertoire /etc/shorewall
|
|
-- pour de simples paramétrages, vous n'avez à faire qu'avec
|
|
quelques un d'entre eux comme décris dans ce guide. Après avoir <ulink
|
|
url="Install.htm">installé Shorewall</ulink>, <emphasis role="bold">téléchargez
|
|
<ulink url="http://www1.shorewall.net/pub/shorewall/Samples/">le
|
|
two-interface sample</ulink>, un-tarez le (tar -zxvf two-interface.tgz) et
|
|
copiez les fichiers vers /etc/shorewall (Ils remplaceront les fichiers de
|
|
même nom déjà existant dans /etc/shorewall installés lors de
|
|
l'installation de Shorewall)</emphasis>.</para>
|
|
|
|
<para>Parallèlement à la description, je vous suggère de jeter un oeil à
|
|
ceux physiquement présents sur votre système -- chacun des fichiers
|
|
contient des instructions de configuration détaillées et des entrées par
|
|
défaut.</para>
|
|
|
|
<para>Shorewall voit le réseau où il tourne comme composé par un ensemble
|
|
de zones. Dans les fichiers de configuration fournis pour trois
|
|
interfaces, trois zones sont définies :</para>
|
|
|
|
<table>
|
|
<title>Zones</title>
|
|
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry align="left"><emphasis role="bold">ZONE</emphasis></entry>
|
|
|
|
<entry align="left" role="underline"><emphasis role="bold">Description</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>net</entry>
|
|
|
|
<entry>Internet</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>loc</entry>
|
|
|
|
<entry>Votre réseau local</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>dmz</entry>
|
|
|
|
<entry>Zone Demilitarisée</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Les zones de Shorewall sont définies dans /etc/shorewall/zones.</para>
|
|
|
|
<para>Shorewall reconnaît aussi le système de firewall comme sa propre
|
|
zone - par défaut, le firewall est connu comme fw. Les règles à propos de
|
|
quel trafic autoriser, et de quel trafic interdire sont exprimées en terme
|
|
de zones.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Vous exprimez votre politique par défaut pour les connexions
|
|
d'une zone vers une autre zone dans le fichier <ulink
|
|
url="Documentation.htm#Policy">/etc/shorewall/policy</ulink> .</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Vous définissez les exceptions à ces politiques pas défaut dans
|
|
le fichier <ulink url="Documentation.htm#Rules">/etc/shorewall/rules</ulink>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Pour chacune des demandes de connexion entrantes dans le firewall,
|
|
les demandes sont en premier lieu comparées par rapport au fichier
|
|
/etc/shorewall/rules. Si aucune des règles dans ce fichier ne
|
|
correspondent, alors la première politique dans /etc/shorewall/policy qui
|
|
y correspond est appliquée. Si cette politique est REJECT ou DROP la
|
|
requête est alors comparée par rapport aux règles contenues dans
|
|
/etc/shorewall/common (l'archive d'exemple vous fournit ce
|
|
fichier).</para>
|
|
|
|
<para>Le fichier /etc/shorewall/policy d'exemple contenu dans
|
|
l'archive three-interface sample a les politiques 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>Dans l'archive three-interface, la ligne suivante est existante
|
|
mais elle est commentée. Si vous souhaitez que votre système de firewall
|
|
puisse avoir un accès complet aux serveurs sur Internet, décommentez la.</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>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Ces politiques vont :</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>permettre toutes demandes de connexion depuis le firewall vers
|
|
l'Internet</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>drop (ignorer) toutes les demandes de connexion depuis
|
|
l'Internet vers votre firewall</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Facultativement accepter toutes les demandes de connexion de
|
|
votre firewall vers l'Internet (si vous avez dé commenté la
|
|
politique additionnelle)</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>rejeter toutes les autres requêtes de connexion (Shorewall à
|
|
besoin de cette politique).</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" />A ce point, éditez
|
|
votre /etc/shorewall/policy et faites y les changements que vous désirez.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Les Interfaces Réseau</title>
|
|
|
|
<graphic align="center" fileref="images/dmz1.png" />
|
|
|
|
<para>Le firewall a trois interfaces de réseau. Lorsque la connexion
|
|
Internet passe par le câble ou par un ROUTEUR (pas un simple modem) ADSL
|
|
(non USB), l'interface vers l'extérieur (External Interface) sera
|
|
l'adaptateur sur lequel est connecté le routeur (e.g., eth0) à moins
|
|
que vous ne vous connectiez par Point-to-PointProtocol overEthernet
|
|
(PPPoE) ou par Point-to-PointTunneling Protocol (PPTP), dans ce cas
|
|
l'interface extérieure sera une interface de type ppp (e.g., ppp0). Si
|
|
vous vous connectez par un simple modem (RTC), votre interface extérieure
|
|
sera aussi ppp0. Si votre connexion passe par Numéris (ISDN), votre
|
|
interface extérieure sera ippp0.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" />Si votre interface
|
|
vers l'extérieur est ppp0 ou ippp0 alors vous mettrez CLAMPMSS=yes
|
|
dans <ulink url="Documentation.htm#Config">/etc/shorewall/shorewall.conf</ulink>.</para>
|
|
|
|
<para>Votre<emphasis> Interface locale</emphasis> sera un adaptateur
|
|
Ethernet (<emphasis role="bold">eth0</emphasis>, <emphasis role="bold">eth1</emphasis>
|
|
ou <emphasis role="bold">eth2</emphasis>) et sera connecté à un hub ou un
|
|
switch. Vos ordinateurs locaux seront connectés à ce même switch (note :
|
|
si vous n'avez qu'un seul ordinateur en local, vous pouvez le
|
|
connecter directement au firewall par un câble croisé).</para>
|
|
|
|
<para>Votre <emphasis>interface DMZ</emphasis> sera aussi un adaptateur
|
|
Ethernet (<emphasis role="bold">eth0</emphasis>, <emphasis role="bold">eth1</emphasis>
|
|
ou <emphasis role="bold">eth2</emphasis>) et sera connecté à un hub ou un
|
|
switch. Vos ordinateurs appartenant à la DMZ seront connectés à ce même
|
|
switch (note : si vous n'avez qu'un seul ordinateur dans la DMZ,
|
|
vous pouvez le connecter directement au firewall par un câble croisé).</para>
|
|
|
|
<caution>
|
|
<para>Ne connectez pas l'interface interne et externe sur le même
|
|
hub ou switch (même pour tester). Cela ne fonctionnera pas et ne croyez
|
|
pas que ce soit shorewall qui ne marche pas.</para>
|
|
</caution>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" />L'exemple de
|
|
configuration de Shorewall pour trois interfaces suppose que
|
|
l'interface externe est eth0, l'interface locale est eth1 et que
|
|
la DMZ est sur l'interface eth2. Si votre configuration diffère, vous
|
|
devrez modifier le fichier d'exemple /etc/shorewall/interfaces en
|
|
conséquence. Tant que vous y êtes, vous pourriez parcourir la liste des
|
|
options qui sont spécifiées pour les interfaces. Quelques trucs :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Si votre interface vers l'extérieur est <emphasis
|
|
role="bold">ppp0</emphasis> ou <emphasis role="bold">ippp0</emphasis>,
|
|
vous pouvez remplacer le "detect" dans la seconde colonne par
|
|
un "-".</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Si votre interface vers l'extérieur est <emphasis
|
|
role="bold">ppp0</emphasis> ou <emphasis role="bold">ippp0</emphasis>
|
|
ou si vous avez une adresse IP statique, vous pouvez enlever
|
|
"dhcp" dans la liste des options.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Adresses IP</title>
|
|
|
|
<para>Avant d'aller plus loin, nous devons dire quelques mots au sujet
|
|
du Protocole d'adresse Internet (IP). Normalement, votre fournisseur
|
|
Internet (ISP) vous assignera une seule adresse IP (single Public IP
|
|
address). Cette adresse peut être assignée par le Dynamic Host
|
|
Configuration Protocol (DHCP) ou lors de l'établissement de votre
|
|
connexion lorsque vous vous connectez (modem standard) ou établissez votre
|
|
connexion PPP. Dans de rares cas , votre provider peu vous assigner une
|
|
adresse statique (staticIP address); cela signifie que vous configurez
|
|
votre interface externe sur votre firewall afin d'utiliser cette
|
|
adresse de manière permanente. Une fois votre adresse externe assignée,
|
|
elle va être partagée par tout vos systèmes lors de l'accès à
|
|
Internet. Vous devrez assigner vos propres adresses à votre réseau local
|
|
(votre interface interne sur le firewall ainsi que les autres
|
|
ordinateurs). La RFC 1918 réserve plusieurs plages d'IP (Private IP
|
|
address ranges) à cette fin :</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><inlinegraphic fileref="images/BD21298_.gif" /> Avant de lancer
|
|
Shorewall, vous devriez regarder l'adresse de votre interface externe
|
|
et si elle est comprise dans une des plages précédentes, vous devriez
|
|
enlever l'option 'norfc1918' dans le fichier
|
|
/etc/shorewall/interfaces.</para>
|
|
|
|
<para>Vous devrez assigner les adresses locales à un sous-réseau
|
|
(sub-network ou subnet) et les adresse pour la DMZ à un autre sous-réseau.
|
|
Pour ce faire, nous pouvons considérer qu'un sous-réseau consiste en
|
|
une plage d'adresse x.y.z.0 à x.y.z.255. Chacun des sous-réseaux
|
|
possèdera une masque (Subnet Mask) de 255.255.255.0. L'adresse x.y.z.0
|
|
est réservée comme l'adresse du sous-réseau (Subnet Address) et
|
|
x.y.z.255 est réservée en tant qu'adresse de broadcast du sous-réseau
|
|
(Subnet Broadcast Address). Sous Shorewall, un sous-réseau est
|
|
décrit/désigné en utilisant <ulink url="shorewall_setup_guide.htm#Subnets">la
|
|
notation Classless InterDomain Routing (CIDR)</ulink> qui consiste en
|
|
l'adresse du sous-réseau suivie par "/24". Le "24" se
|
|
réfère au nombre de bits "1" consécutifs dans la partie gauche du
|
|
masque de sous-réseau.</para>
|
|
|
|
<table>
|
|
<title>Un exemple de sous-réseau (sub-network) :</title>
|
|
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">Plage:</emphasis></entry>
|
|
|
|
<entry>10.10.10.0 - 10.10.10.255</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><emphasis role="bold">Subnet Address:</emphasis></entry>
|
|
|
|
<entry>10.10.10.0</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><emphasis role="bold">Broadcast Address:</emphasis></entry>
|
|
|
|
<entry>10.10.10.255</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><emphasis role="bold">CIDR Notation:</emphasis></entry>
|
|
|
|
<entry>10.10.10.0/24</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Il est de convention d'assigner à l'interface interne la
|
|
première adresse utilisable dans le sous-réseau (10.10.10.1 dans
|
|
l'exemple précédent) ou la dernière utilisable (10.10.10.254).
|
|
L'un des buts d'un sous-réseau est de permettre à tous les
|
|
ordinateurs dans le sous-réseau de savoir avec quels autres ordinateurs
|
|
ils peuvent communiquer directement. Pour communiquer avec des systèmes en
|
|
dehors du sous-réseau, les ordinateurs envoient des paquets à travers le
|
|
gateway (routeur).</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Vos ordinateurs
|
|
locaux (ordinateur local 1 et 2) devraient être configurés avec leur
|
|
passerelle par défaut (default gateway)pointant sur l'adresse IP de
|
|
l'interface interne du firewall, et les ordinateurs de la DMZ
|
|
devraient être configurés avec leur passerelle par défaut (default
|
|
gateway) pointant sur l'adresse IP de l'interface DMZ du firewall.</para>
|
|
|
|
<para>Cette courte description ne fait que survoler les concepts de
|
|
routage et de sous-réseau. Si vous vous voulez en apprendre plus sur
|
|
l'adressage IP et le routage, je vous recommande chaudement "IP
|
|
Fundamentals: What Everyone Needs to Know about Addressing &
|
|
Routing", Thomas A. Maufer, Prentice-Hall, 1999, ISBN 0-13-975483-0.</para>
|
|
|
|
<para>Pour rappel, ce guide supposera que vous avez configuré votre réseau
|
|
comme montrer ci-dessous :</para>
|
|
|
|
<graphic align="center" fileref="images/dmz2.png" />
|
|
|
|
<para>La passerelle par défaut (default gateway) pour les ordinateurs de
|
|
la DMZ sera 10.10.11.254 et le passerelle par défaut pour les ordinateurs
|
|
en local sera 10.10.10.254.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>IP Masquerading (SNAT)</title>
|
|
|
|
<para>Les adresses réservées par la RFC 1918 sont parfois désignées comme
|
|
non-routables car les routeurs Internet (backbone) ne font pas circuler
|
|
les paquets qui ont une adresse de destination appartenant à la RFC-1918.
|
|
Lorsqu'un de vos systèmes en local (supposons l'ordinateur1)
|
|
demande une connexion à un serveur par Internet, le firewall doit
|
|
appliquer un NAT (Network Address Translation). Le firewall ré é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ême qui initie la connexion. Ceci est
|
|
nécessaire afin que l'hô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éservée par la RFC 1918 ne pourront pas être
|
|
routés à travers Internet, donc l'hôte Internet ne pourra adresser sa
|
|
réponse à l'ordinateur 1). Lorsque le firewall reçoit le paquet de
|
|
réponse, il remet l'adresse de destination à 10.10.10.1 et fait passer
|
|
le paquet vers l'ordinateur 1.</para>
|
|
|
|
<para>Sur les systèmes Linux, ce procédé est souvent appelé de l'IP
|
|
Masquerading mais vous verrez aussi le terme de Source Network Address
|
|
Translation (SNAT) utilisé. Shorewall suit la convention utilisée avec
|
|
Netfilter :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Masquerade</emphasis> désigne le cas ou vous laissez
|
|
votre firewall détecter automatiquement l'adresse de
|
|
l'interface externe.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>SNAT</emphasis> désigne le cas où vous spécifiez
|
|
explicitement l'adresse source des paquets sortant de votre réseau
|
|
local.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Sous Shorewall, autant le Masquerading que le SNAT sont configuré
|
|
avec des entrés dans le fichier <ulink url="Documentation.htm#Masq">/etc/shorewall/masq</ulink>.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Si votre interface
|
|
externe est <emphasis role="bold">eth0</emphasis>, votre interface locale
|
|
<emphasis role="bold">eth1</emphasis> et votre interface pour la DMZ
|
|
<emphasis role="bold">eth2</emphasis> vous n'avez pas besoin de
|
|
modifier le fichier fourni avec l'exemple. Dans le cas contraire,
|
|
éditez /etc/shorewall/masq et changez le en conséquence.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Si votre IP externe
|
|
est statique, vous pouvez la mettre dans la troisième colonne dans
|
|
/etc/shorewall/masq si vous le désirez, de toutes façons votre firewall
|
|
fonctionnera bien si vous laissez cette colonne vide. Le fait de mettre
|
|
votre IP statique dans la troisième colonne permet un traitement des
|
|
paquets sortant un peu plus efficace.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" />Si vous utilisez les
|
|
paquets Debian, vérifiez que votre fichier de configuration shorewall.conf
|
|
contient bien les valeurs suivantes, si elles n'y sont pas faite les
|
|
changements nécessaires:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>NAT_ENABLED=Yes</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>IP_FORWARDING=On</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Port Forwarding (DNAT)</title>
|
|
|
|
<para>Un de nos buts est de, peut être, faire tourner un ou plusieurs
|
|
serveurs sur nos ordinateurs dans la DMZ. que ces ordinateurs on une
|
|
adresse RFC-1918, il n'est pas possible pour les clients sur Internet
|
|
de se connecter directement à eux. Il est nécessaire à ces clients
|
|
d'adresser leurs demandes de connexion au firewall qui ré écrit
|
|
l'adresse de destination de votre serveur, et fait passer le paquet à
|
|
celui-ci. Lorsque votre serveur répond, le firewall applique
|
|
automatiquement un SNAT pour ré écrire l'adresse source dans la
|
|
réponse. Ce procédé est appelé Port Forwarding ou Destination Network
|
|
Address Translation(DNAT). Vous configurez le port forwarding en utilisant
|
|
les règles DNAT dans le fichier /etc/shorewall/rules. La forme générale
|
|
d'une simple règle de port forwarding dans /etc/shorewall/rules est :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DNAT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>dmz:<emphasis><server local ip address>
|
|
[:<server port>]</emphasis></entry>
|
|
|
|
<entry><emphasis><protocol></emphasis></entry>
|
|
|
|
<entry><emphasis><port></emphasis></entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Si vous ne spécifiez pas le <server port>, il est supposé
|
|
être le même que <emphasis><port></emphasis>.</para>
|
|
|
|
<para>Exemple - vous faites tourner un serveur Web dans votre DMZ (2) et
|
|
vous voulez faire passer les paquets entrant en TCP sur le port 80 à ce
|
|
système :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DNAT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>dmz:10.10.11.2</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>80</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>dmz:10.10.11.2</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>80</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Deux points importants à garder en mémoire :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Lorsque vous vous connectez à votre serveur à partir de votre
|
|
réseau local, vous devez utiliser l'adresse IP interne du serveur
|
|
(10.10.11.2).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Quelques fournisseurs Internet (Provider/ISP) bloquent les
|
|
requêtes de connexion entrantes sur le port 80. Si vous avez des
|
|
problèmes pour vous connecter à votre serveur web, essayez la règle
|
|
suivante et connectez vous sur le port 5000 (c.a.d., connectez vous à
|
|
http://w.x.y.z:5000 où w.x.y.z est votre IP externe).</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DNAT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>dmz:10.10.11.2:80</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>5000</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Si vous voulez avoir la possibilité de vous connecter à votre
|
|
serveur depuis le réseau local en utilisant votre adresse externe, et si
|
|
vous avez une adresse IP externe statique (fixe), vous pouvez remplacer la
|
|
règle loc->dmz précédente par :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DNAT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>dmz:10.10.11.2:80</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>5000</entry>
|
|
|
|
<entry>-</entry>
|
|
|
|
<entry><emphasis><external IP></emphasis></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Si vous avez une IP dynamique, alors vous devez vous assurer que
|
|
votre interface externe est en route avant de lancer Shorewall et vous
|
|
devez suivre les étapes suivantes (en supposant que votre interface
|
|
externe est eth0) :</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Insérez ce qui suit dans /etc/shorewall/params :</para>
|
|
|
|
<programlisting>ETH0_IP=`find_interface_address eth0`</programlisting>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Faites votre règle loc->dmz :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DNAT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>dmz:10.10.11.2:80</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>5000</entry>
|
|
|
|
<entry>-</entry>
|
|
|
|
<entry>$ETH0_IP</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Si vous voulez accéder à votre serveur dans la DMZ en utilisant
|
|
votre adresse IP externe, regardez <ulink url="FAQ.htm#faq2a">FAQ 2a</ulink>.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> A ce point, ajoutez
|
|
les règles DNAT et ACCEPT pour vos serveurs.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Domain Name Server (DNS)</title>
|
|
|
|
<para>Normalement, quand vous vous connectez à votre fournisseur (ISP),
|
|
une partie consiste à obtenir votre adresse IP, votre DNS pour le firewall
|
|
(Domain Name Service) est configuré automatiquement (c.a.d., le fichier
|
|
/etc/resolv.conf a été écrit). Il arrive que votre provider vous donne une
|
|
paire d'adresse IP pour les DNS (name servers) afin que vous
|
|
configuriez manuellement votre serveur de nom primaire et secondaire. La
|
|
manière dont le DNS est configuré sur votre firewall est de votre
|
|
responsabilité. Vous pouvez procéder d'une de ses deux façons :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Vous pouvez configurer votre systè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è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és dans l'enregistrement "nameserver" dans ce fichier.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Vous pouvez
|
|
installer/configurer un cache dns (Caching Name Server) sur votre
|
|
firewall ou dans la DMZ. 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ème interne pour utiliser le
|
|
firewall lui même comme é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 si vous
|
|
décidez de faire tourner le serveur de nom sur votre firewall. Pour
|
|
permettre à vos systèmes locaux de discuter avec votre serveur cache
|
|
de nom, vous devez ouvrir le port 53 (UDP ET  TCP) sur le
|
|
firewall vers le réseau local; vous ferez ceci en ajoutant les règles
|
|
suivantes dans /etc/shorewall/rules.</para>
|
|
|
|
<para>Si vous faites tourner le serveur de nom sur le firewall :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>udp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>dmz</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>udp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>dmz</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Le serveur de nom tourne sur l'ordinateur 1 de la DMZ</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>dmz:10.10.11.1</entry>
|
|
|
|
<entry>udp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>dmz:10.10.11.1</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>dmz</entry>
|
|
|
|
<entry>dmz:10.10.11.1</entry>
|
|
|
|
<entry>udp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>dmz</entry>
|
|
|
|
<entry>dmz:10.10.11.1</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Autres connexions</title>
|
|
|
|
<para>L'exemple pour trois interfaces contient les règles suivantes :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>udp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>53</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Ces règles permettent l'accès DNS depuis votre firewall et
|
|
peuvent être enlevées si vous avez décommenté la ligne dans
|
|
/etc/shorewall/policy autorisant toutes les connexions depuis votre
|
|
firewall et vers Internet.</para>
|
|
|
|
<para>L'exemple contient aussi :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>22</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>dmz</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>22</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Cette règle permet de faire fonctionner une serveur SSH sur le
|
|
firewall et sur tous les systèmes de la DMZ et d'y autoriser la
|
|
connexion à partir de votre réseau local.</para>
|
|
|
|
<para>Si vous désirez permettre d'autres connexions entre vos
|
|
systèmes, la forme générale est :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry><emphasis><source zone></emphasis></entry>
|
|
|
|
<entry><emphasis><destination zone></emphasis></entry>
|
|
|
|
<entry><emphasis><protocol></emphasis></entry>
|
|
|
|
<entry><emphasis><port></emphasis></entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Exemple - Vous voulez faire tourner un serveur Web sur votre
|
|
firewall :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>loc</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>80</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>80</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Ces deux règles seront, bien sur, ajoutées aux règles décrites dans
|
|
"Vous pouvez installer/configurer un cache dns (Caching Name Server)
|
|
sur votre firewall ou dans la DMZ".</para>
|
|
|
|
<para>Si vous ne savez pas quel port ou protocole une application
|
|
particulière utilise, regardez <ulink url="ports.htm">ici</ulink>.</para>
|
|
|
|
<para>Important: Je ne vous recommande pas d'autoriser le telnet
|
|
depuis ou vers l'Internet car il utilise du texte en clair (même pour
|
|
le login et le mot de passe !). Si vous voulez avoir un accès au shell de
|
|
votre firewall depuis Internet, utilisez SSH :</para>
|
|
|
|
<table>
|
|
<title>/etc/shorewall/rules</title>
|
|
|
|
<tgroup cols="7">
|
|
<tbody>
|
|
<row>
|
|
<entry><emphasis role="bold">ACTION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">DESTINATION</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PROTOCOL</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">SOURCE PORT</emphasis></entry>
|
|
|
|
<entry><emphasis role="bold">ORIGINAL DEST</emphasis></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>ACCEPT</entry>
|
|
|
|
<entry>net</entry>
|
|
|
|
<entry>fw</entry>
|
|
|
|
<entry>tcp</entry>
|
|
|
|
<entry>22</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> Et maintenant,
|
|
éditez /etc/shorewall/rules pour rajouter les autres connexions désirées.</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Lancer et Arrêter son Firewall</title>
|
|
|
|
<para>La <ulink url="Install.htm">procédure d'installation</ulink>
|
|
configure votre système pour lancer Shorewall au boot du système, mais au
|
|
début avec la version 1.3.9 de Shorewall le lancement est désactivé,
|
|
n'essayer pas de lancer Shorewall avec que la configuration soit
|
|
finie. Une fois que vous en aurez fini avec la configuration du firewall,
|
|
vous pouvez permettre le lancement de Shorewall en supprimant le fichier
|
|
/etc/shorewall/startup_disabled.</para>
|
|
|
|
<para><emphasis role="bold">IMPORTANT: Les utilisateurs des paquets .deb
|
|
doivent éditer /etc/default/shorewall et mettre 'startup=1'.</emphasis></para>
|
|
|
|
<para>Le firewall est activé en utilisant la commande "shorewall
|
|
start" et arrêté avec "shorewall stop". Lorsque le firewall
|
|
est stoppé, le routage est autorisé sur les hôtes qui possèdent une entrée
|
|
dans <ulink url="Documentation.htm#Routestopped">/etc/shorewall/routestopped</ulink>.
|
|
Un firewall qui tourne peut être relancé en utilisant la commande
|
|
"shorewall restart". Si vous voulez enlever toutes traces de
|
|
Shorewall sur votre configuration de Netfilter, utilisez "shorewall
|
|
clear".</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> L'exemple pour
|
|
trois interfaces suppose que vous voulez permettre le routage depuis/vers
|
|
<emphasis role="bold">eth1</emphasis> (votre réseau local) et <emphasis
|
|
role="bold">eth2</emphasis>(DMZ) lorsque Shorewall est arrêté. Si ces deux
|
|
interfaces ne sont pas connectées à votre réseau local et votre DMZ, ou si
|
|
vous voulez permettre un ensemble d'hôtes différents, modifiez
|
|
/etc/shorewall/routestopped en conséquence.</para>
|
|
|
|
<para><emphasis role="bold">ATTENTION:</emphasis> Si vous êtes connecté à
|
|
votre firewall depuis Internet, n'essayez pas une commande
|
|
"shorewall stop" tant que vous n'avez pas ajouté une entrée
|
|
pour votre adresse IP (celle à partir de laquelle vous êtes connectée)
|
|
dans<ulink url="Documentation.htm#Routestopped">
|
|
/etc/shorewall/routestopped</ulink>. De la même manière, je ne vous
|
|
recommande pas d'utiliser "shorewall restart"; il est plus
|
|
intéressant de créer <ulink url="configuration_file_basics.htm#Configs">une
|
|
configuration alternative</ulink> et de la tester en utilisant la commande
|
|
"<ulink url="starting_and_stopping_shorewall.htm">shorewall try</ulink>".</para>
|
|
</section>
|
|
</article> |