mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-01 12:03:40 +01:00
dbfc838988
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@789 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
427 lines
15 KiB
HTML
Executable File
427 lines
15 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>
|
|
<h1 style="text-align: center;">Standalone Firewall</h1>
|
|
<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://www1.shorewall.net/pub/shorewall/Samples/">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>
|
|
<br>
|
|
<br>
|
|
</body>
|
|
</html>
|