Standalone FirewallTomEastepPatriceVetselFabienDemassieux2005-01-172002-2005Thomas M. EastepPatrice VetselFabien DemasieuxPermission 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.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 DemassieuxIntroductionConfigurer 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 LinuxUne seule adresse IP externeUne connexion passant par un modem câble, ADSL, ISDN, Frame
Relay, rtc...Pré-requisShorewall 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 commencerJe 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.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.Windows
Version of dos2unixLinux
Version of dos2unixConventionsLes points ou les modifications s'imposent sont indiqués par
.PPTP/ADSLSi 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 ShorewallLes 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 l'exemple
one-interface, décompressez le (tar
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 :NameDescriptionnetThe InternetLes 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 infoCes politiques vont :Permettre toutes demandes de connexion depuis le firewall vers
l'InternetDrop (ignorer) toutes les demandes de connexion depuis
l'Internet vers votre firewallReject (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 ExterneLe 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: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).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 .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 IPAvant 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:
Example sub-networkRange:10.10.10.0 -
10.10.10.255Subnet Address:10.10.10.0Broadcast Address:10.10.10.255CIDR 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 connexionsShorewall 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 fwVous 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 fwAu 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>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 110Si vous ne savez pas quel port(s) et protocole(s) requièrent une
application particulière, vous pouvez regarder ici.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 fwMaintenant, éditez votre fichier de configuration /etc/shorewall/rules
pour ajouter, modifier ou supprimer les autres connexions voulues.Starting and Stopping Your FirewallLa 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.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.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éesJe 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.Revision History1.72004-02-16TEMove /etc/shorewall/rfc1918 to
/usr/share/shorewall.1.62004-02-05TEUpdate for Shorewall 2.01.52004-01-05TEStandards Changes1.42003-12-30TEAdd tip about /etc/shorewall/rfc1918 updates.1.32003-11-15TEInitial Docbook Conversion