Standalone Firewall

Tom Eastep

Patrice Vetsel

Fabien Demassieux

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 “GNU Free Documentation License”.

2005-01-17



Table of Contents

Introduction
Pré-requis
Avant de commencer
Conventions
PPTP/ADSL
Les Concepts de Shorewall
Interface Externe
Adresse IP
Permettre d'autres connexions
Starting and Stopping Your Firewall
Autres Lectures Recommandées
1. Revision History

Note

Notes du traducteur : Le guide initial a été traduit par VETSEL Patrice que je remercie. J'en ai assuré la révision pour l'adapter à la version 2 de Shorewall. J'espère vous faciliter l'accès et la prise en main d'un firewall performant, efficace, adaptable et facile d'utilisation. Donc félicitations pour la qualité du travail et la disponibilité offerte par Thomas M. Eastep. Si vous trouvez des erreurs ou des améliorations à apporter vous pouvez me contacter Fabien Demassieux

Introduction

Configurer Shorewall sur un système isolé Linux est très 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 :

  • Un système Linux

  • Une seule adresse IP externe

  • Une connexion passant par un modem câble, ADSL, ISDN, Frame Relay, rtc...

Pré-requis

Shorewall a besoin que le package iproute/iproute2 soit installé (avec la distribution RedHat™, le package s'appelle iproute). Vous pouvez vérifier si le package est installé par la présence du programme ip sur votre firewall. En tant que root, vous pouvez utiliser la commande which pour cela:

[root@gateway root]# which ip
/sbin/ip
[root@gateway root]#

Avant de commencer

Je recommande en premier la lecture complète du guide afin de se familiariser avec les tenants et aboutissants puis de revenir sur les modifications de votre configuration adapté à votre système.

Caution

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 convertir avec 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.

Conventions

Les points ou les modifications s'imposent sont indiqués par .

PPTP/ADSL

Si vous êtes équipé d'un modem ADSL et utilisez PPTP pour communiquer avec un serveur à travers ce modem, vous devez faire le changement suivant en plus de ceux ci-dessous. ADSL avec PPTP est commun en Europe, ainsi qu'en Australie.

Les Concepts de 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.

Tip

Après avoir installé Shorewall, téléchargez l'exemple one-interface, décompressez le (tar -zxvf one-interface.tgz) et copiez les fichiers dans /etc/shorewall (ces fichiers remplaceront les initiaux).

Parallèlement à la présentation, 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 fonctionne, comme un ensemble de zones.Dans les fichiers de configuration fournis pour une unique interface, une seule zone est définie :

NameDescription
netThe 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 est connu comme fw.

Les règles concernant le trafic à autoriser ou à interdire sont exprimées en utilisant les termes de zones.

  • Vous exprimez votre politique par défaut pour les connexions d'une zone vers une autre zone dans le fichier /etc/shorewall/policy.

  • Vous définissez les exceptions à ces politiques pas défaut dans le fichier /etc/shorewall/rules.

Pour chaque connexion demandant à entrer dans le firewall, la requête est en premier lieu comparée par rapport au fichier /etc/shorewall/rules. Si aucune règle dans ce fichier ne correspond à la demande de connexion alors la première politique dans le fichier /etc/shorewall/policy qui y correspond sera appliquée. Si cette politique est REJECT ou DROP la requête est dans un premier temps comparée par rapport aux règles contenues dans le fichier /etc/shorewall/common, si ce fichier existe; sinon les régles dans le fichier /etc/shorewall/common.def sont vérifiées.

Le fichier /etc/shorewall/policy inclus dans l'archive d'exemple (one-interface) contient 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 :

  1. Permettre toutes demandes de connexion depuis le firewall vers l'Internet

  2. Drop (ignorer) toutes les demandes de connexion depuis l'Internet vers votre firewall

  3. Reject (rejeter) toutes les autres requêtes de connexion (Shorewall à besoin de cette politique).

A ce point, éditez votre /etc/shorewall/policy et faites y les changements que vous désirez.

Interface Externe

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'Interface Externe sera l'adaptateur ethernet qui y est connecté à ce “Modem” (e.g., eth0) à moins de se que vous vous connectiez par Point-to-Point Protocol over Ethernet (PPPoE) ou Point-to-Point Tunneling Protocol (PPTP) dans ce cas l'interface externe sera (e.g., ppp0). Si vous vous connectez par un simple modem (RTC), votre interface externe sera aussi ppp0. Si vous vous connectez en utilisant l'ISDN, votre interface externe sera ippp0.

Si votre interface vers l'extérieur est ppp0 ou ippp0 alors vous mettrez CLAMPMSS=yes dans le fichier /etc/shorewall/shorewall.conf.

Le fichier de configuration d'exemple pour une interface suppose que votre interface externe est eth0. Si votre configuration est différente, vous devrez modifier le fichier/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:

Tip

Si votre interface vers l'extérieur est ppp0 ou ippp0, vous pouvez remplacer le detect dans la seconde colonne par un “-” (sans les quotes).

Tip

Si votre interface vers l'extérieur est ppp0 or ippp0 u si vous avez une adresse IP statique, vous pouvez enlever dhcp dans la liste des options .

Tip

Si vous spécifiez norfc1918 pour votre interface externe, vous pouvez vérifier périodiquement le Shorewall Errata pour mettre à jour le fichier /usr/share/shorewall/rfc1918. Sinon, vous pouvez copier le fichier /usr/share/shorewall/rfc1918 vers /etc/shorewall/rfc1918 et adapter votre fichier /etc/shorewall/rfc1918 comme je le fais.

Adresse IP

Avant d'aller plus loin, nous devons dire quelques mots au sujet des adresses Internet Protocol (IP). Normalement, votre fournisseur Internet ISP vous assignera une seule adresse IP. 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 peut vous assigner une adresse statique IP ; cela signifie que vous devez configurer l'interface externe de votre firewall afin d'utiliser cette adresse de manière permanente. La RFC 1918 réserve plusieures plages d'adresses privées Private IP à cet fin:

Table 1. Example sub-network

Range:10.10.10.0 - 10.10.10.255
Subnet Address:10.10.10.0
Broadcast Address:10.10.10.255
CIDR Notation:10.10.10.0/24

Ces adresses sont parfois nommées comme non-routable car les routers centraux d'Internet ne renvoient pas un paquet dont la destination est reservée par la RFC 1918. Dans certain cas cependant, les FAI (fournisseurs d'accès Internet) assignent ces adresses et utilisent ensuite NAT Network Address Translation pour réécrire les en-têtes de paquets renvoyés vers/depuis Internet.

Avant de lancer Shorewall, regarder l'adresse IP de votre interface externe, et si elle est dans les plages précédentes, vous devez enlever l'option 'norfc1918' dans la ligne concernant l'interface externe dans le fichier /etc/shorewall/interfaces.

Permettre d'autres connexions

Shorewall version 2.0.0 et postérieure inclus une collection d'actions qui peuvent être utilisées pour rapidemement autoriser ou refuser des services. Pour voir les actions comprises avec votre version de Shorewall, regardez dans le fichier /etc/shorewall/actions.std. Le nom de celles qui acceptent des connexions débutent par “Allow”.

Si vous souhaitez autoriser d'autre connexions depuis internet vers votre firewall, le format général utilisant l'action type “Allow” est:

#ACTION   SOURCE    DESTINATION     PROTO       DEST PORT(S)
<action>  net       fw

Example 1. Vous voulez un serveur Web et POP3 accessible de l'extérieur sur votre firewall:

#ACTION   SOURCE    DESTINATION     PROTO       DEST PORT(S)
AllowWeb  net       fw
AllowPOP3 net       fw

Au cas ou Shorewall n'inclue pas d'actions définies qui vous conviennent, vous pouvez les définir vous même ou coder directement les régles dans /etc/shorewall/rules selon le format suivant:

#ACTION   SOURCE    DESTINATION     PROTO       DEST PORT(S)
ACCEPT    net       fw              <protocol>  <port>

Example 2. Vous voulez un serveur Web et POP3 accessible de l'extérieur sur votre firewall:

#ACTION   SOURCE    DESTINATION     PROTO       DEST PORT(S)
ACCEPT    net       fw              tcp          80
ACCEPT    net       fw              tcp          110

Si vous ne savez pas quel port(s) et protocole(s) requièrent une application particulière, vous pouvez regarder ici.

Important

Je ne recommande pas d'autoriser telnet vers/de l'Internet parce qu'il utilise du texte en clair (même pour le login!). Si vous voulez un accès shell à votre firewall, utilisez SSH:

#ACTION    SOURCE    DEST               PROTO     DEST PORT(S)
AllowSSH   net       fw

Maintenant, éditez votre fichier de configuration /etc/shorewall/rules pour ajouter, modifier ou supprimer les autres connexions voulues.

Starting and Stopping Your Firewall

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 avant 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” command. Si vous voulez enlever toutes traces de Shorewall sur votre configuration de Netfilter, utilisez “shorewall clear”.

Warning

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”.

Autres Lectures Recommandées

Je vous recommande vivement de lire la page des Fonctionnalités Générales des Fichiers de Configuration -- elle contient des trucs sur les possibilités de Shorewall pour rendre aisé l'administration de votre firewall Shorewall.

1. Revision History

Revision History
Revision 1.72004-02-16TE
Move /etc/shorewall/rfc1918 to /usr/share/shorewall.
Revision 1.62004-02-05TE
Update for Shorewall 2.0
Revision 1.52004-01-05TE
Standards Changes
Revision 1.42003-12-30TE
Add tip about /etc/shorewall/rfc1918 updates.
Revision 1.32003-11-15TE
Initial Docbook Conversion