forked from extern/shorewall_code
c3c29ff5a3
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@1036 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
462 lines
17 KiB
XML
Executable File
462 lines
17 KiB
XML
Executable File
<?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>Standalone Firewall</title>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Tom</firstname>
|
|
|
|
<surname>Eastep</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
|
|
dcument 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 (écluse) pour
|
|
un petit réseau est une chose assez simple, si vous comprenez les bases et
|
|
suivez la documentation.</para>
|
|
|
|
<para>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</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Une seule adresse IP externe</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Une connexion passant par un modem câble, ADSL, ISDN, Frame
|
|
Relay, rtc...</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<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
|
|
one-interface sample</ulink>, un-tarez le (tar -zxvf one-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 une unique
|
|
interface, une seule zone est définie :</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>
|
|
</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 lui-même est connu en tant que fw.</para>
|
|
|
|
<para>Les règles concernant le trafic à autoriser ou à interdire sont
|
|
exprimées en utilisant les termes de zones.</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>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>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>Interface Externe</title>
|
|
|
|
<para>Le firewall possède une seule interface réseau. Lorsque la connexion
|
|
Internet passe par un modem câble ou par un routeur ADSL (pas un simple
|
|
modem), l'External Interface (interface externe) sera l'adaptateur
|
|
ethernet (<emphasis role="bold">eth0</emphasis>) qui y est connecté à
|
|
moins que vous vous connectiez par Point-to-Point Protocol over Ethernet
|
|
(PPPoE) ou Point-to-Point TunnelingProtocol(PPTP) dans ce cas
|
|
l'interface externe sera <emphasis role="bold">ppp0</emphasis>. Si
|
|
vous vous connectez par un simple modem (RTC), votre interface externe
|
|
sera aussi <emphasis role="bold">ppp0</emphasis>. Si vous vous connectez
|
|
en utilisant l'ISDN (numéris), votre interface externe sera <emphasis
|
|
role="bold">ippp0</emphasis>.</para>
|
|
|
|
<para><inlinegraphic fileref="images/BD21298_.gif" /> L'exemple de
|
|
configuration de Shorewall pour une interface suppose que votre interface
|
|
externe est <emphasis role="bold">eth0</emphasis>. Si votre configuration
|
|
est différente, vous devrez modifier le fichier d'exemple
|
|
/etc/shorewall/interfaces en conséquence. Puisque vous y êtes, vous
|
|
pourriez parcourir la liste d'options qui sont spécifiées pour
|
|
l'interface. Quelques astuces :</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Si votre interface externe 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 externe est <emphasis role="bold">ppp0</emphasis>
|
|
ou <emphasis role="bold">ippp0</emphasis> ou bien si vous avez une
|
|
adresse IP statique, vous pouvez enlever le "dhcp" de la liste
|
|
d'option.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Adresse IP</title>
|
|
|
|
<para>La RFC 1918 définie plusieurs plage d'adresses IP privée
|
|
(PrivateIP) pour l'utilisation dans des réseaux privés :</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>Ces adresses sont parfois désignées comme étant non-routables car
|
|
les routeurs sur les backbones Internet ne font pas passer les paquets
|
|
dont les adresses de destinations sont définies dans la RFC 1918. Dans
|
|
certains cas, les fournisseurs (provider ou ISP) utilisent ces adresses et
|
|
utilisent le Network Address Translation afin de récrire les entêtes des
|
|
paquets lorsqu'ils les font circuler depuis ou vers l'Internet.</para>
|
|
|
|
<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>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Permettre d'autres connexions</title>
|
|
|
|
<para>Si vous désirez autoriser d'autres connexions depuis
|
|
l'Internet vers votre firewall, le format général est :<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><emphasis><protocol></emphasis></entry><entry><emphasis><port></emphasis></entry><entry></entry><entry></entry></row></tbody></tgroup></table></para>
|
|
|
|
<para>Exemple - Vous voulez faire tourner un serveur Web et un serveur
|
|
POP3 sur votre système de 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>net</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>110</entry>
|
|
|
|
<entry></entry>
|
|
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Si vous ne savez pas quel port ou protocole une application
|
|
particulière utilise, regardez <ulink url="ports.htm">ici</ulink>.
|
|
<emphasis role="bold">Important:</emphasis> 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" /> A ce point, é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><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> |