Standalone Firewall |
Notes du traducteur :
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 VETSEL Patrice
(merci à JMM pour sa relecture et ses commentaires pertinents, ainsi qu'à
Tom EASTEP pour son formidable outil et sa disponibilité).
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.
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 :
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 :
[root@gateway root]# which ip
/sbin/ip
[root@gateway root]#
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 .
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.
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 installé Shorewall, téléchargez le one-interface sample, 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).
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.
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 :
Name | Description |
net | The Internet |
Les zones de Shorewall sont définies dans /etc/shorewall/zones.
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.
Les règles concernant le trafic à autoriser ou à interdire sont exprimées en utilisant les termes de zones.
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).
Le fichier /etc/shorewall/policy d'exemple contenu dans l'archive one-interface a les politiques suivantes :
SOURCE ZONE DESTINATION ZONE POLICY LOG LEVEL LIMIT:BURST fw net ACCEPT
net all
DROP info
all all REJECT info
Ces politiques vont :
A ce point, éditez votre /etc/shorewall/policy et faites y les changements que vous désirez.
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 (eth0) 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 ppp0. Si vous vous connectez par un simple modem (RTC), votre interface externe sera aussi ppp0. Si vous vous connectez en utilisant l'ISDN (numéris), votre interface externe sera ippp0.
L'exemple de configuration de Shorewall pour une interface suppose que votre interface externe est eth0. 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 :
Si votre interface externe est ppp0 ou ippp0, vous pouvez remplacer le "detect" dans la seconde colonne par un "-".
Si votre interface externe est ppp0 ou ippp0 ou bien si vous avez une adresse IP statique, vous pouvez enlever le "dhcp" de la liste d'option.
La RFC 1918 définie plusieurs plage d'adresses IP privée (PrivateIP) pour l'utilisation dans des réseaux privés :
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
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.
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.
Si vous désirez autoriser d'autres connexions depuis l'Internet vers votre firewall, le format général est :
ACTION SOURCE DESTINATION PROTOCOL PORT SOURCE PORT ORIGINAL ADDRESS ACCEPT net fw <protocol> <port>
Exemple - Vous voulez faire tourner un serveur Web et un serveur POP3 sur votre système de firewall :
ACTION SOURCE DESTINATION PROTOCOL PORT SOURCE PORT ORIGINAL ADDRESS ACCEPT net fw tcp 80
ACCEPT net fw tcp 110
Si vous ne savez pas quel port ou protocole une application particulière utilise, regardez ici.
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 :
ACTION SOURCE DESTINATION PROTOCOL PORT SOURCE PORT ORIGINAL ADDRESS ACCEPT net fw tcp 22
ACCEPT net fw tcp 22
A ce point, éditez /etc/shorewall/rules pour rajouter les autres connexions désirées.
La procédure d'installation 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.
IMPORTANT: Les utilisateurs des
paquets .deb doivent éditer /etc/default/shorewall et mettre 'startup=1'.
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 /etc/shorewall/routestopped. 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".
ATTENTION: 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 /etc/shorewall/routestopped. De la même manière, je ne vous recommande pas d'utiliser "shorewall restart"; il est plus intéressant de créer une configuration alternative et de la tester en utilisant la commande "shorewall try".
Last updated 12/9/2002 - Tom Eastep
Copyright 2002 Thomas M. Eastep