mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-04 21:41:15 +01:00
16906234c8
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@535 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
470 lines
16 KiB
HTML
Executable File
470 lines
16 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
|
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|
|
|
<meta http-equiv="Content-Type"
|
|
content="text/html; charset=windows-1252">
|
|
<title>Standalone Firewall</title>
|
|
</head>
|
|
<body>
|
|
|
|
<table border="0" cellpadding="0" cellspacing="0"
|
|
style="border-collapse: collapse;" bordercolor="#111111" width="100%"
|
|
id="AutoNumber6" bgcolor="#400169" height="90">
|
|
<tbody>
|
|
<tr>
|
|
<td width="100%">
|
|
<h1 align="center"><font color="#ffffff">Standalone Firewall</font></h1>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2 align="center">Version 2.0.1 Française</h2>
|
|
|
|
<p align="left"><small><i><u>Notes du traducteur</u> :<br>
|
|
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 <a
|
|
href="mailto:vetsel.patrice@wanadoo.fr">VETSEL Patrice</a> (merci à JMM pour
|
|
sa relecture et ses commentaires pertinents, ainsi qu'à Tom EASTEP pour son
|
|
formidable outil et sa disponibilité)</i><i>.</i></small></p>
|
|
|
|
<p align="left">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.</p>
|
|
|
|
<p>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 :</p>
|
|
|
|
<ul>
|
|
<li>Un système Linux</li>
|
|
<li>Une seule adresse IP externe</li>
|
|
<li>Une connexion passant par un modem câble, ADSL, ISDN, Frame Relay,
|
|
rtc...</li>
|
|
|
|
</ul>
|
|
|
|
<p>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 :</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 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 <img
|
|
border="0" src="images/BD21298_.gif" width="13" height="13">
|
|
.</p>
|
|
|
|
<p><img border="0" src="images/j0213519.gif" width="60" height="60">
|
|
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.</p>
|
|
|
|
<ul>
|
|
<li><a href="http://www.simtel.net/pub/pd/51438.html">Windows Version
|
|
of dos2unix</a></li>
|
|
<li><a href="http://www.megaloman.com/%7Ehany/software/hd2u/">Linux Version
|
|
of dos2unix</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 align="left">Les Concepts de Shorewall</h2>
|
|
|
|
<p> <img border="0" src="images/BD21298_.gif" width="13" height="13"
|
|
alt="">
|
|
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 <a
|
|
href="Install.htm">installé Shorewall</a>, <b>téléchargez le <a
|
|
href="http://france.shorewall.net/pub/shorewall/LATEST.samples/one-interface.tgz">one-interface
|
|
sample</a>, 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)</b>.</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>Shorewall voit le réseau où il tourne comme composé par un ensemble de
|
|
<i>zones.</i> Dans les fichiers de configuration fournis pour une unique
|
|
interface, une seule zone est définie :</p>
|
|
|
|
<table border="0" style="border-collapse: collapse;" cellpadding="3"
|
|
cellspacing="0" id="AutoNumber2">
|
|
<tbody>
|
|
<tr>
|
|
<td><u><b>Name</b></u></td>
|
|
<td><u><b>Description</b></u></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>net</b></td>
|
|
<td><b>The Internet</b></td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>Les zones de Shorewall sont définies dans <a
|
|
href="Documentation.htm#Zones"> /etc/shorewall/zones</a>.</p>
|
|
|
|
<p>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 <b>fw</b>.</p>
|
|
|
|
<p>Les règles concernant le trafic à autoriser ou à interdire sont exprimées
|
|
en utilisant les termes de zones.</p>
|
|
|
|
<ul>
|
|
<li>Vous exprimez les politiques par défaut pour les connexions d'une zone
|
|
à une autre dans le fichier<a href="Documentation.htm#Policy"> /etc/shorewall/policy
|
|
</a>.</li>
|
|
<li>Vous définissez les exceptions à ces règles de politiques par défaut
|
|
dans le fichier <a href="Documentation.htm#Rules">/etc/shorewall/rules</a>.</li>
|
|
|
|
</ul>
|
|
|
|
<p>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).</p>
|
|
|
|
<p>Le fichier /etc/shorewall/policy d'exemple contenu dans l'archive one-interface
|
|
a les politiques suivantes :</p>
|
|
|
|
<blockquote>
|
|
<table border="1" cellpadding="2" style="border-collapse: collapse;"
|
|
id="AutoNumber3">
|
|
<tbody>
|
|
<tr>
|
|
<td><u><b>SOURCE ZONE</b></u></td>
|
|
<td><u><b>DESTINATION ZONE</b></u></td>
|
|
<td><u><b>POLICY</b></u></td>
|
|
<td><u><b>LOG LEVEL</b></u></td>
|
|
<td><u><b>LIMIT:BURST</b></u></td>
|
|
</tr>
|
|
<tr>
|
|
<td>fw</td>
|
|
<td>net</td>
|
|
<td>ACCEPT</td>
|
|
<td> <br>
|
|
</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>net</td>
|
|
<td>all<br>
|
|
</td>
|
|
<td>DROP</td>
|
|
<td>info</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>all</td>
|
|
<td>all</td>
|
|
<td>REJECT</td>
|
|
<td>info</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</blockquote>
|
|
|
|
<pre> </pre>
|
|
Ces politiques vont :
|
|
<ol>
|
|
<li>permettre toutes demandes de connexion depuis le firewall vers l'Internet</li>
|
|
<li>drop (ignorer) toutes les demandes de connexion depuis l'Internet vers
|
|
votre firewall</li>
|
|
<li>rejeter toutes les autres requêtes de connexion (Shorewall à besoin
|
|
de cette politique).</li>
|
|
|
|
</ol>
|
|
|
|
<p>A ce point, éditez votre /etc/shorewall/policy et faites y les changements
|
|
que vous désirez.</p>
|
|
|
|
<h2 align="left">Interface Externe</h2>
|
|
|
|
<p align="left">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'<i>External Interface</i> (interface externe) sera l'adaptateur
|
|
ethernet (<b>eth0</b>) qui y est connecté <u>à moins que</u> vous 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 <i><u>P</u>oint-to-<u>P</u>oint <u>T</u>unneling<u>P</u>rotocol</i>(PPTP)
|
|
dans ce cas l'interface externe sera <b>ppp0</b>. Si vous vous connectez
|
|
par un simple modem (RTC), votre interface externe sera aussi <b>ppp0</b>.
|
|
Si vous vous connectez en utilisant l'ISDN (numéris), votre interface externe
|
|
sera<b> ippp0.</b></p>
|
|
|
|
<p align="left"><img border="0" src="images/BD21298_3.gif" width="13"
|
|
height="13">
|
|
L'exemple de configuration de Shorewall pour une interface suppose que votre
|
|
interface externe est <b>eth0</b>. 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 :</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p align="left">Si votre interface externe 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 externe est <b>ppp0</b> ou <b>ippp0</b>
|
|
ou bien si vous avez une adresse IP statique, vous pouvez enlever le "dhcp"
|
|
de la liste d'option. </p>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<div align="left">
|
|
<h2 align="left">Adresse IP</h2>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left">La RFC 1918 définie plusieurs plage d'adresses IP privée
|
|
(<i>Private</i>IP) pour l'utilisation dans des réseaux privés :</p>
|
|
|
|
<div align="left">
|
|
<pre> 10.0.0.0 - 10.255.255.255<br> 172.16.0.0 - 172.31.255.255<br> 192.168.0.0 - 192.168.255.255</pre>
|
|
</div>
|
|
|
|
<p align="left">Ces adresses sont parfois désignées comme étant <i>non-routables</i>
|
|
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 <i>Network Address Translation </i>afin de récrire les entêtes des paquets
|
|
lorsqu'ils les font circuler depuis ou vers l'Internet.</p>
|
|
|
|
<p align="left"><img border="0" src="images/BD21298_.gif" align="left"
|
|
width="13" height="13">
|
|
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.</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<h2 align="left">Permettre d'autres connexions</h2>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left">Si vous désirez autoriser d'autres connexions depuis l'Internet
|
|
vers votre firewall, le format général est :</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<blockquote>
|
|
<table border="1" cellpadding="2" style="border-collapse: collapse;"
|
|
id="AutoNumber4">
|
|
<tbody>
|
|
<tr>
|
|
<td><u><b>ACTION</b></u></td>
|
|
<td><u><b>SOURCE</b></u></td>
|
|
<td><u><b>DESTINATION</b></u></td>
|
|
<td><u><b>PROTOCOL</b></u></td>
|
|
<td><u><b>PORT</b></u></td>
|
|
<td><u><b>SOURCE PORT</b></u></td>
|
|
<td><u><b>ORIGINAL ADDRESS</b></u></td>
|
|
</tr>
|
|
<tr>
|
|
<td>ACCEPT</td>
|
|
<td>net</td>
|
|
<td>fw</td>
|
|
<td><i><protocol></i></td>
|
|
<td><i><port></i></td>
|
|
<td> <br>
|
|
</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left">Exemple - Vous voulez faire tourner un serveur Web et un
|
|
serveur POP3 sur votre système de firewall :</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<blockquote>
|
|
<table border="1" cellpadding="2" style="border-collapse: collapse;"
|
|
id="AutoNumber5">
|
|
<tbody>
|
|
<tr>
|
|
<td><u><b>ACTION</b></u></td>
|
|
<td><u><b>SOURCE</b></u></td>
|
|
<td><u><b>DESTINATION</b></u></td>
|
|
<td><u><b>PROTOCOL</b></u></td>
|
|
<td><u><b>PORT</b></u></td>
|
|
<td><u><b>SOURCE PORT</b></u></td>
|
|
<td><u><b>ORIGINAL ADDRESS</b></u></td>
|
|
</tr>
|
|
<tr>
|
|
<td>ACCEPT</td>
|
|
<td>net</td>
|
|
<td>fw</td>
|
|
<td>tcp</td>
|
|
<td>80</td>
|
|
<td> <br>
|
|
</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>ACCEPT</td>
|
|
<td>net</td>
|
|
<td>fw</td>
|
|
<td>tcp</td>
|
|
<td>110</td>
|
|
<td> <br>
|
|
</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left">Si vous ne savez pas quel port ou protocole une application
|
|
particulière utilise, regardez <a href="ports.htm">ici</a>.</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left"><b>Important: </b>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 :</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<blockquote>
|
|
<table border="1" cellpadding="2" style="border-collapse: collapse;"
|
|
id="AutoNumber4">
|
|
<tbody>
|
|
<tr>
|
|
<td><u><b>ACTION</b></u></td>
|
|
<td><u><b>SOURCE</b></u></td>
|
|
<td><u><b>DESTINATION</b></u></td>
|
|
<td><u><b>PROTOCOL</b></u></td>
|
|
<td><u><b>PORT</b></u></td>
|
|
<td><u><b>SOURCE PORT</b></u></td>
|
|
<td><u><b>ORIGINAL ADDRESS</b></u></td>
|
|
</tr>
|
|
<tr>
|
|
<td>ACCEPT</td>
|
|
<td>net</td>
|
|
<td>fw</td>
|
|
<td>tcp</td>
|
|
<td>22</td>
|
|
<td> <br>
|
|
</td>
|
|
<td> <br>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<pre> ACCEPT net fw tcp 22</pre>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left"><img border="0" src="images/BD21298_3.gif" width="13"
|
|
height="13">
|
|
A ce point, éditez /etc/shorewall/rules pour rajouter les autres connexions
|
|
désirées.</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<h2 align="left">Lancer et Arrêter son Firewall</h2>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left"> <img border="0" src="images/BD21298_2.gif" width="13"
|
|
height="13" alt="Arrow">
|
|
La <a href="Install.htm">procédure d'installation </a> 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.<br>
|
|
</p>
|
|
|
|
<p align="left"><font color="#ff0000"><b>IMPORTANT</b>: Les utilisateurs
|
|
des paquets .deb doivent éditer /etc/default/shorewall et mettre 'startup=1'.</font><br>
|
|
</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left">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 <a
|
|
href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>. 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".</p>
|
|
</div>
|
|
|
|
<div align="left">
|
|
<p align="left"><b>ATTENTION: </b>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 <a href="Documentation.htm#Routestopped">/etc/shorewall/routestopped</a>.
|
|
De la même manière, je ne vous recommande pas d'utiliser "shorewall restart";
|
|
il est plus intéressant de créer une <i><a
|
|
href="configuration_file_basics.htm#Configs">configuration alternative</a></i>
|
|
et de la tester en utilisant la commande <a
|
|
href="starting_and_stopping_shorewall.htm">"shorewall try"</a>.</p>
|
|
</div>
|
|
|
|
<p align="left"><font size="2">Last updated 12/9/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>
|
|
</body>
|
|
</html>
|