diff --git a/STABLE/documentation/OPENVPN.html b/STABLE/documentation/OPENVPN.html new file mode 100755 index 000000000..08b40777a --- /dev/null +++ b/STABLE/documentation/OPENVPN.html @@ -0,0 +1,281 @@ + + +
+ + +
+ OpenVPN Tunnels+ |
+
OpenVPN is a robust and highly configurable VPN (Virtual Private Network)
+daemon which can be used to securely link two or more private networks using
+an encrypted tunnel over the internet. OpenVPN is an Open Source project and
+is licensed under the
+GPL. OpenVPN can be downloaded from http://openvpn.sourceforge.net/.
+
OpenVPN support was added to Shorewall in version 1.3.14.
+
Suppose that we have the following situation:
+ ++
+ +We want systems in the 192.168.1.0/24 subnetwork to be able +to communicate with the systems in the 10.0.0.0/8 network. This is accomplished +through use of the /etc/shorewall/tunnels file and the /etc/shorewall/policy +file and OpenVPN.
+ +While it was possible to use the Shorewall start and stop +script to start and stop OpenVPN, I decided to use the init script of OpenVPN +to start and stop it.
+ +On each firewall, you will need to declare a zone to represent +the remote subnet. We'll assume that this zone is called 'vpn' and declare +it in /etc/shorewall/zones on both systems as follows.
+ +++ ++ +
++ +ZONE +DISPLAY +COMMENTS ++ + + +vpn +VPN +Remote Subnet +
On system A, the 10.0.0.0/8 will comprise the vpn zone. +In /etc/shorewall/interfaces:
+ +++ ++ +
++ +ZONE +INTERFACE +BROADCAST +OPTIONS ++ + + +vpn +tun0 ++
++
In /etc/shorewall/tunnels on system A, we need the following:
+ +++ ++ +
++ +TYPE +ZONE +GATEWAY +GATEWAY ZONE ++ + + +openvpn +net +134.28.54.2 ++
This entry in /etc/shorewall/tunnels opens the firewall so that OpenVPN
+traffic on the default port 5000/udp will be accepted to/from the remote gateway.
+If you change the port used by OpenVPN to 7777, you can define /etc/shorewall/tunnels
+like this:
+
++ ++ +
++ +TYPE +ZONE +GATEWAY +GATEWAY ZONE ++ + + +openvpn:7777 +net +134.28.54.2 ++
This is the OpenVPN config on system A:
+ ++ ++ +
++ +dev tun
+
+ local 206.162.148.9
+ remote 134.28.54.2
+ ifconfig 192.168.99.1 192.168.99.2
+ up ./route-a.up
+ tls-server
+ dh dh1024.pem
+ ca ca.crt
+ cert my-a.crt
+ key my-a.key
+ comp-lzo
+ verb 5
+
Similarly, On system B the 192.168.1.0/24 subnet will comprise the vpn +zone. In /etc/shorewall/interfaces:
+ +++ ++ +
++ +ZONE +INTERFACE +BROADCAST +OPTIONS ++ + + +vpn +tun0 +192.168.1.255 ++
In /etc/shorewall/tunnels on system B, we have:
+ +++ ++ +
++ +TYPE +ZONE +GATEWAY +GATEWAY ZONE ++ + + +openvpn +net +206.191.148.9 ++
And in the OpenVPN config on system B:
+ +++ +dev tun
+
+ local 134.28.54.2
+ remote 206.162.148.9
+ ifconfig 192.168.99.2 192.168.99.1
+ up ./route-b.up
+ tls-client
+ ca ca.crt
+ cert my-b.crt
+ key my-b.key
+ comp-lzo
+ verb 5
+
You will need to allow traffic between the "vpn" zone and + the "loc" zone on both systems -- if you simply want to admit all traffic + in both directions, you can use the policy file:
+ +++ ++ +
++ +SOURCE +DEST +POLICY +LOG LEVEL ++ +loc +vpn +ACCEPT ++ + + + +vpn +loc +ACCEPT ++
On both systems, restart Shorewall and start OpenVPN. The systems in the +two masqueraded subnetworks can now talk to each other.
+ +Updated 2/4/2003 - Tom Eastep
+and Simon Mater
+
+ +
Copyright
+© 2003 Thomas M. Eastep. and Simon Mater
+
+ 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
+
+ Three-Interface 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 pour un petit
+réseau contenant une DMZ est une chose assez simple à réaliser si vous
+comprenez les bases et suivez cette documentation.
Ce guide ne prétend pas vous mettre au courant de toutes les +possibilités de Shorewall. Il se focalise sur les besoins pour +configurer Shorewall dans une de ses utilisations les plus populaire :
+Voici le schéma d'une installation typique.
++
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 offre 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 +la configuration d'exemple three-interface +sample, un-tarez la (tar -zxvf three-interfaces.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).
+En même temps que chacun des fichiers est présenté, je vous suggère +de jeter un oeil à ceux qui se trouvent réellement 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 trois +interfaces, trois zones sont définies :
+Name | +Description | +
net | +The Internet | +
loc | +Votre réseau local | +
dmz | +Zone Demilitarisée | +
Les noms de zone sont définis 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 +three-interface sample a les politiques suivantes :
++++ +
++ +Source Zone +Destination Zone +Policy +Log Level +Limit:Burst ++ +loc +net +ACCEPT ++
++
++ +net +all +DROP +info ++
++ + +all +all +REJECT +info ++
+
++Dans l'archive three-interface, la ligne suivante est existante +mais elle est commentée. Si vous souhaitez que votre système de firewall +puisse avoir un accès complet aux serveurs sur Internet, décommentez la.
++ +
++ +Source Zone +Destination Zone +Policy +Log Level +Limit:Burst ++ + +fw +net +ACCEPT ++
++
+
Les politiques précédentes vont :
+A +ce point, éditez votre /etc/shorewall/policy et faites y les changements +que vous désire
++
Le firewall a trois interfaces de réseau. Lorsque la +connexion Internet passe par le câble ou par un ROUTEUR (pas un simple +modem) ADSL (non USB), l'interface vers l'extérieur (External Interface) +sera l'adaptateur sur lequel est connecté le routeur (e.g., eth0) à +moins que vous ne vous connectiez par Point-to-PointProtocol +overEthernet (PPPoE) ou par Point-to-PointTunneling Protocol (PPTP), +dans ce cas l'interface extérieure sera une interface de type ppp (e.g., +ppp0). Si vous vous connectez par un simple modem (RTC), votre interface +extérieure sera aussi ppp0. Si votre connexion passe par Numéris +(ISDN), votre interface extérieure sera ippp0.
+Si votre interface vers l'extérieur est ppp0 ou ippp0 +alors vous mettrez CLAMPMSS=yes dans +/etc/shorewall/shorewall.conf.
+Votre Interface locale sera un adaptateur +Ethernet (eth0, eth1 ou eth2) et sera connecté à un hub ou un +switch. Vos ordinateurs locaux seront connectés à ce même switch (note : +si vous n'avez qu'un seul ordinateur en local, vous pouvez le connecter +directement au firewall par un câble croisé).
+Votre interface DMZ sera aussi un adaptateur +Ethernet (eth0, eth1 ou eth2) et sera connecté à un hub ou un switch. +Vos ordinateurs appartenant à la DMZ seront connectés à ce même switch +(note : si vous n'avez qu'un seul ordinateur dans la DMZ, vous pouvez +le connecter directement au firewall par un câble croisé).
+Ne connectez pas l'interface interne et +externe sur le même hub ou switch (même pour tester). Cela ne +fonctionnera pas et ne croyez pas que ce soit shorewall qui ne marche +pas.
+L'exemple de configuration de Shorewall pour trois +interfaces suppose que l'interface externe est eth0, l'interface +locale est eth1 et que la DMZ est sur l'interface eth2. +Si votre configuration diffère, vous devrez modifier le fichier +d'exemple /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 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.
+Avant d'aller plus loin, nous devons dire quelques mots +au sujet du Protocole d'adresse Internet (IP). Normalement, votre +fournisseur Internet (ISP) vous assignera une seule adresse IP (single +Public IP address). 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 peu vous +assigner une adresse statique (staticIP address); cela signifie que vous +configurez votre interface externe sur votre firewall afin d'utiliser +cette adresse de manière permanente. Une fois votre adresse externe +assignée, elle va être partagée par tout vos systèmes lors de l'accès à +Internet. Vous devrez assigner vos propres adresses à votre réseau +local (votre interface interne sur le firewall ainsi que les autres +ordinateurs). La RFC 1918 réserve plusieurs plages d'IP (Private IP +address ranges) à cette fin :
+10.0.0.0 - 10.255.255.255+
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
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.
+Vous devrez assigner les adresses locales à un +sous-réseau (sub-network ou subnet) et les adresse pour +la DMZ à un autre sous-réseau. Pour ce faire, nous pouvons considérer +qu'un sous-réseau consiste en une plage d'adresse x.y.z.0 à x.y.z.255. +Chacun des sous-réseaux possèdera une masque (Subnet Mask) de +255.255.255.0. L'adresse x.y.z.0 est réservée comme l'adresse du +sous-réseau (Subnet Address) et x.y.z.255 est réservée en +tant qu'adresse de broadcast du sous-réseau (Subnet Broadcast Address). +Sous Shorewall, un sous-réseau est décrit/désigné en utilisant la +notation Classless +InterDomain Routing(CIDR) qui consiste en l'adresse du +sous-réseau suivie par "/24". Le "24" se réfère au nombre de bits "1" +consécutifs dans la partie gauche du masque de sous-réseau.
+Exemple de sous-réseau (subnet) :
++++ +
++ +Plage: +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 +
Il est de convention d'assigner à l'interface interne +la première adresse utilisable dans le sous-réseau (10.10.10.1 dans +l'exemple précédent) ou la dernière utilisable (10.10.10.254).
+L'un des buts d'un sous-réseau est de permettre à tous +les ordinateurs dans le sous-réseau de savoir avec quels autres +ordinateurs ils peuvent communiquer directement. Pour communiquer avec +des systèmes en dehors du sous-réseau, les ordinateurs envoient des +paquets à travers le gateway (routeur).
+Vos ordinateurs locaux (ordinateur local 1 et 2) devraient +être configurés avec leur passerelle par défaut (default gateway)pointant +sur l'adresse IP de l'interface interne du firewall, et les ordinateurs +de la DMZ devraient être configurés avec leur passerelle par défaut (default +gateway) pointant sur l'adresse IP de l'interface DMZ du firewall.
+Cette courte description ne fait que survoler les +concepts de routage et de sous-réseau. Si vous vous voulez en apprendre +plus sur l'adressage IP et le routage, je vous recommande chaudement "IP +Fundamentals: What Everyone Needs to Know about Addressing & +Routing", Thomas A. Maufer, Prentice-Hall, 1999, ISBN +0-13-975483-0.
+Pour rappel, ce guide supposera que vous avez configuré +votre réseau comme montrer ci-dessous :
++
La passerelle par défaut (default gateway) pour les +ordinateurs de la DMZ sera 10.10.11.254 et le passerelle par +défaut pour les ordinateurs en local sera 10.10.10.254.
+Les adresses réservées par la RFC 1918 sont parfois +désignées comme non-routables car les routeurs Internet (backbone) ne +font pas circuler les paquets qui ont une adresse de destination +appartenant à la RFC-1918. Lorsqu'un de vos systèmes en local (supposons +l'ordinateur1) demande une connexion à un serveur par Internet, le +firewall doit appliquer un NAT (Network Address Translation). Le +firewall ré écrit l'adresse source dans le paquet, et l'a remplace par +l'adresse de l'interface externe du firewall; en d'autres mots, le +firewall fait croire que c'est lui même qui initie la connexion. Ceci +est nécessaire afin que l'hôte de destination soit capable de renvoyer +les paquets au firewall (souvenez vous que les paquets qui ont pour +adresse de destination, une adresse réservée par la RFC 1918 ne pourront +pas être routés à travers Internet, donc l'hôte Internet ne pourra +adresser sa réponse à l'ordinateur 1). Lorsque le firewall reçoit le +paquet de réponse, il remet l'adresse de destination à 10.10.10.1 et +fait passer le paquet vers l'ordinateur 1.
+Sur les systèmes Linux, ce procédé est souvent appelé +de l'IP Masquerading mais vous verrez aussi le terme de Source Network +Address Translation (SNAT) utilisé. Shorewall suit la convention +utilisée avec Netfilter :
+Masquerade désigne le cas ou vous laissez votre +firewall détecter automatiquement l'adresse de l'interface externe.
+SNAT désigne le cas où vous spécifiez explicitement +l'adresse source des paquets sortant de votre réseau local.
+Sous Shorewall, autant le Masquerading que le SNAT sont +configuré avec des entrés dans le fichier /etc/shorewall/masq.
+Si votre interface externe est eth0, votre +interface locale eth1 et votre interface pour la DMZ eth2 +vous n'avez pas besoin de modifier le fichier fourni avec l'exemple. +Dans le cas contraire, éditez /etc/shorewall/masq et changez le en +conséquence.
+ Si votre IP externe est statique, vous pouvez la mettre
+dans la troisième colonne dans /etc/shorewall/masq si vous le désirez,
+de toutes façons votre firewall fonctionnera bien si vous laissez cette
+colonne vide. Le fait de mettre votre IP statique dans la troisième
+colonne permet un traitement des paquets sortant un peu plus efficace.
+
Si vous utilisez les paquets Debian, vérifiez que
+votre fichier de configuration shorewall.conf contient bien les valeurs
+suivantes, si elles n'y sont pas faite les changements nécessaires :
+
Un de nos buts est de, peut être, faire tourner un ou +plusieurs serveurs sur nos ordinateurs dans la DMZ. que ces ordinateurs +on une adresse RFC-1918, il n'est pas possible pour les clients sur +Internet de se connecter directement à eux. Il est nécessaire à ces +clients d'adresser leurs demandes de connexion au firewall qui ré écrit +l'adresse de destination de votre serveur, et fait passer le paquet à +celui-ci. Lorsque votre serveur répond, le firewall applique +automatiquement un SNAT pour ré écrire l'adresse source dans la réponse.
+Ce procédé est appelé Port Forwarding ou Destination +Network Address Translation(DNAT). Vous configurez le port forwarding en +utilisant les règles DNAT dans le fichier /etc/shorewall/rules.
+La forme générale d'une simple règle de port forwarding dans +/etc/shorewall/rules est :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ + +DNAT +net +dmz:<server local ip address> [:<server + port>] +<protocol> +<port> ++
++
+
Si vous ne spécifiez pas le <server port>, il est +supposé être le même que <port>.
+Exemple - vous faites tourner un serveur Web dans votre DMZ (2) et +vous voulez faire passer les paquets entrant en TCP sur le port 80 à ce +système :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +DNAT +net +dmz:10.10.11.2 +tcp +80 +# Fait suivre le port 80 +depuis Internet ++ + +ACCEPT +loc +dmz:10.10.11.2 +tcp +80 +#Permet les connexions +depuis le réseau local +
Deux points importants à garder en mémoire :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ + +DNAT +net +dmz:10.10.11.2:80 +tcp +5000 ++
++
+
Si vous voulez avoir la possibilité de vous connecter à votre +serveur depuis le réseau local en utilisant votre adresse externe, et si +vous avez une adresse IP externe statique (fixe), vous pouvez remplacer +la règle loc->dmz précédente par :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ + +DNAT +net +dmz:10.10.11.2:80 +tcp +80 +- +<external IP> +
Si vous avez une IP dynamique, alors vous devez vous assurer que +votre interface externe est en route avant de lancer Shorewall et vous +devez suivre les étapes suivantes (en supposant que votre interface +externe est eth0) :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ + +DNAT +loc +
+dmz:10.10.11.2:80 +tcp +80 +- +$ETH0_IP +
Si vous voulez accéder à votre serveur dans la DMZ en utilisant +votre adresse IP externe, regardez FAQ 2a.
+A +ce point, ajoutez les règles DNAT et ACCEPT pour vos serveurs..
+Normalement, quand vous vous connectez à votre +fournisseur (ISP), une partie consiste à obtenir votre adresse IP, votre +DNS pour le firewall (Domain Name Service) est configuré automatiquement +(c.a.d., le fichier /etc/resolv.conf a été écrit). Il arrive que votre +provider vous donne une paire d'adresse IP pour les DNS (name servers) +afin que vous configuriez manuellement votre serveur de nom primaire et +secondaire. La manière dont le DNS est configuré sur votre firewall est +de votre responsabilité. Vous pouvez procéder d'une de ses deux façons :
+Vous pouvez configurer votre système interne pour +utiliser les noms de serveurs de votre provider. Si votre fournisseur +vous donne les adresses de leurs serveurs ou si ces adresses sont +disponibles sur leur site web, vous pouvez configurer votre système +interne afin de les utiliser. Si cette information n'est pas disponible, +regardez dans /etc/resolv.conf sur votre firewall -- les noms des +serveurs sont donnés dans l'enregistrement "nameserver" dans ce fichier.
+Vous pouvez installer/configurer un cache dns +(Caching Name Server) sur votre firewall ou dans la DMZ. Red Hat +a un RPM pour mettre en cache un serveur de nom (le RPM requis aussi le +RPM 'bind') et pour les utilisateurs de Bering, il y a dnscache.lrp. Si +vous adoptez cette approche, vous configurez votre système interne pour +utiliser le firewall lui même comme étant le seul serveur de nom +primaire. Vous pouvez utiliser l'adresse IP interne du firewall +(10.10.10.254 dans l'exemple) pour l'adresse de serveur de nom si vous +décidez de faire tourner le serveur de nom sur votre firewall. Pour +permettre à vos systèmes locaux de discuter avec votre serveur cache de +nom, vous devez ouvrir le port 53 (UDP ET TCP) sur le firewall vers le +réseau local; vous ferez ceci en ajoutant les règles suivantes dans +/etc/shorewall/rules.
+++Si vous faites tourner le serveur de nom sur le +firewall : +
+ +
+ ++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +ACCEPT +loc +fw +tcp +53 ++
++
++ +ACCEPT +loc +fw +udp +53 ++
++
++ +ACCEPT +dmz +fw +tcp +53 ++
++
++ + +ACCEPT +dmz +fw +udp +53 ++
++
+
++Le serveur de nom tourne sur l'ordinateur 1 de la DMZ
++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +ACCEPT +loc +dmz:10.10.11.1 +tcp +53 ++
++
++ +ACCEPT +loc +dmz:10.10.11.1 +udp +53 ++
++
++ +ACCEPT +fw +dmz:10.10.10.1 +tcp +53 ++
++
++ + +ACCEPT +fw +dmz:10.10.10.1 +udp +53 ++
++
+
L'exemple pour trois interfaces contient les règles +suivantes :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +ACCEPT +fw +net +udp +53 ++
++
++ + +ACCEPT +fw +net +tcp +53 ++
++
+
Ces règles permettent l'accès DNS depuis votre firewall +et peuvent être enlevées si vous avez décommenté la ligne dans +/etc/shorewall/policy autorisant toutes les connexions depuis votre +firewall et vers Internet.
+L'exemple contient aussi :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +ACCEPT +loc +fw +tcp +22 ++
++
++ + +ACCEPT +loc +dmz +tcp +22 ++
++
+
Cette règle permet de faire fonctionner une serveur SSH +sur le firewall et sur tous les systèmes de la DMZ et d'y autoriser la +connexion à partir de votre réseau local.
+Si vous désirez permettre d'autres connexions entre vos +systèmes, la forme générale est :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ + +ACCEPT +<source zone> +<destination zone> +<protocol> +<port> ++
++
+
Exemple - Vous voulez faire tourner un serveur DNS +disponible pour le publique sur votre firewall :
++++ +
++ +ACTION +SOURCE +DESTINATION +PROTOCOL +PORT +SOURCE PORT +ORIGINAL ADDRESS ++ +ACCEPT +net +fw +tcp +53 +#permet les accès DNS +depuis Internet ++ + +ACCEPT +net +fw +tcp +53 +#permet les accès DNS +depuis Internet +
Ces deux règles seront, bien sur, ajoutées aux règles +décrites dans "Vous pouvez installer/configurer un cache dns (Caching +Name Server) sur votre firewall ou dans la DMZ".
+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 ++
++
+
Et maintenant, é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 avez 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".
+L'exemple pour trois interfaces suppose que vous voulez +permettre le routage depuis/vers eth1 (votre réseau local) et +eth2(DMZ) lorsque Shorewall est arrêté. Si ces deux +interfaces ne sont pas connectées à votre réseau local et votre DMZ, ou +si vous voulez permettre un ensemble d'hôtes différents, modifiez +/etc/shorewall/routestopped en conséquence.
+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 alternativeet +de la tester en utilisant la commande "shorewall try".
+Last updated 12/20/2002 - Tom Eastep
+Copyright 2002 +Thomas M. Eastep
+
+ Basic Two-Interface + 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 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 :
+Un système Linux +utilisé en tant que firewall/routeur pour un petit +réseau local.
+Une seule adresse IP publique.
+Une connexion Internet par le biais d'un modem câble, +ADSL, ISDN, "Frame Relay", RTC ...
+Voici un schéma d'une installation typique.
+ +Si vous faites tourner Shorewall sous Mandrake 9.0 ou plus +récent, vous pouvez facilement réaliser la configuration +ci-dessus en utilisant l'applet Mandrake "Internet Connection Sharing". +Depuis le "Mandrake Control Center", sélectionnez "Network & +Internet" et "Connection Sharing". Vous ne devriez pas avoir besoin de +vous référer à ce guide.
+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 qui 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 offre 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 dans le répertoire +/etc/shorewall -- pour de simples configurations, vous n'aurez +seulement à faire qu'avec quelques fichiers comme décrit +dans ce guide. Après avoir installé +Shorewall, télé chargez le two-interface +sample, un-tarez le (tar -zxvf two-interfaces.tgz) et copiez les +fichiers vers /etc/shorewall (ces fichiers remplaceront les fichiers de +même nom).
+Parallèlement à la présentation de chacun des +fichiers, je vous suggère de regarder le fichier qui se trouve +réellement sur votre système -- tous les fichiers +contiennent des instructions de configuration détaillées +et des valeurs par défaut.
+Shorewall voit le réseau où il tourne, comme un +ensemble de zones. Dans une configuration avec deux interfaces, +les noms des zones suivantes sont utilisés:
+ +
+ Nom + |
+
+ Description + |
+
+ net + |
+
+ Internet + |
+
+ loc + |
+
+ Votre réseau local + |
+
Les zones sont définies dans le fichier/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 à propos de quel trafic autoriser, et de +quel trafic interdire sont exprimées en terme 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 /etc/shorewall/common.
+Le fichier /etc/shorewall/policy inclue dans l'archive d'exemple +(two-interface) a les politiques suivantes:
+ +
+ Source Zone + |
+
+ Destination Zone + |
+
+ Policy + |
+
+ Log Level + |
+
+ Limit:Burst + |
+
+ loc + |
+
+ net + |
+
+ ACCEPT + |
+
+ + |
+
+ + |
+
+ net + |
+
+ all + |
+
+ DROP + |
+
+ info + |
+
+ + |
+
+ all + |
+
+ all + |
+
+ REJECT + |
+
+ info + |
+
+ + |
+
Dans le fichier d'exemple (two-interface), la ligne +suivante est inclue mais elle est commentée. Si vous voulez que +votre firewall puisse avoir un accès complet aux serveurs sur +Internet, décommentez la ligne.+ +
+ Source Zone + |
+
+ Destination Zone + |
+
+ Policy + |
+
+ Log Level + |
+
+ Limit:Burst + |
+
+ fw + |
+
+ net + |
+
+ ACCEPT + |
+
+ + |
+
+ + |
+
Ces politiques vont:
+permettre toutes les demandes de + connexion depuis votre réseau local vers l'Internet
+drop (ou ignorer) toutes les + demandes de connexion depuis l'Internet vers votre firewall ou votre +réseau local.
+Facultativement accepter toutes +les demandes de connexion de votre firewall vers l'Internet (si vous + avez dé commenté la politique additionnelle)
+reject (rejeter) toutes les autres demandes de connexion.
+A ce point, +éditez votre fichier /etc/shorewall/policy et faite les +changements que vous désirez.
+Le firewall a deux interfaces de réseau. Lorsque +la connexion Internet passe par le câble ou par un ROUTEUR (pas +un simple modem) ADSL (non USB), l'interface vers l'extérieur (External +Interface) sera l'adaptateur sur lequel est connecté le +routeur (e.g., eth0) à moins que vous ne +vous connectiez par Point-to-PointProtocol overEthernet +(PPPoE) ou par Point-to-PointTunnelingProtocol(PPTP), +dans ce cas l'interface extérieure sera une interface de type +ppp (e.g., ppp0). Si vous vous connectez par un simple modem +(RTC), votre interface extérieure sera aussi ppp0. Si +votre connexion passe par Numéris (ISDN), votre interface +extérieure seraippp0.
+Si +votre interface vers l'extérieur estppp0 ou ippp0 +alors vous mettrez CLAMPMSS=yes dans /etc/shorewall/shorewall.conf.
+Votre Internal Interface (interface vers votre +réseau local -> LAN) sera un adaptateur Ethernet (eth1 ou +eth0) et sera connectée à un hub ou switch (ou un PC avec +un câble croisé). Vos autres ordinateurs seront +connectés à ce même hub/switch
+Ne connectez +pas l'interface interne et externe sur le même hub ou switch +(même pour tester). Cela ne fonctionnera pas et ne croyez pas que +ce soit shorewall qui ne marche pas.
+Le +fichier de configuration d'exemple pour deux interfaces suppose que +votre interface externe est eth0et que l'interne est eth1. +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 "-".
+Si votre interface vers l'extérieur + est ppp0 ou ippp0 ou si vous avez une adresse IP + statique, vous pouvez enlever "dhcp" dans la liste des options.
+Avant d'aller plus loin, nous devons dire quelques mots +au sujet de Internet Protocol (IP) addresses. Normalement, votre +fournisseur Internet (ISP) vous assignera une seule adresse IP (single PublicIP +address). 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 (staticIP +address); cela signifie que vous devez configurer l'interface externe +de votre firewall afin d'utiliser cette adresse de manière +permanente. Votre adresse externe assignée, elle va être +partagée par tous vos systèmes lors de l'accès +à Internet. Vous devrez assigner vos propres adresses dans votre +réseau local (votre interface interne sur le firewall + ainsi que les autres ordinateurs). La RFC 1918 réserve +plusieurs plages d'IP (PrivateIP address ranges) à cette +fin :
+10.0.0.0 - 10.255.255.255an+
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
+Avant de lancer Shorewall, vous devriez regarder l'adresse IP de votre +interface externe, et si elle est dans les plages +précédentes, vous devriez enlever l'option 'norfc1918' +dans la ligne concernant l'interface externe dans le fichier +/etc/shorewall/interfaces.
+Vous devrez assigner vos adresses depuis le même +sous-réseau (sub-network/subnet). Pour ce faire, nous +pouvons considérer un sous-réseau dans une plage +d'adresses x.y.z.0 - x.y.z.255. Chaque sous-réseau aura un +masque (Subnet Mask) de 255.255.255.0. L'adresse x.y.z.0 est +réservée comme l'adresse de sous-réseau (Subnet +Address) et x.y.z.255 est réservée en tant +qu'adresse de broadcast (Subnet Broadcast Address). Dans +Shorewall, un sous-réseau est décrit en utilisant la notation Classless +InterDomain Routing (CIDR) qui consiste en l'adresse du +sous-réseau suivie par "/24". Le "24" se réfère au +nombre consécutif de bits marquant "1" dans la partie gauche du +masque de sous-réseau.
+Un exemple de sous-réseau (sub-network) :
+ +
+ Plage: + |
+
+ 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 + |
+
Il est de mise d'assigner l'interface interne (LAN) +à la première adresse utilisable du sous-réseau +(10.10.10.1 dans l'exemple précédent) ou la +dernière adresse utilisable (10.10.10.254).
+L'un des buts d'un sous-réseau est de permettre +à tous les ordinateurs dans le sous-réseau de savoir avec +quels autres ordinateurs ils peuvent communiquer directement. Pour +communiquer avec des systèmes en dehors du sous-réseau, +les ordinateurs envoient des paquets à travers le gateway +(routeur).
++Vos ordinateurs en local (ordinateur 1 et ordinateur 2 dans le +diagramme) devraient être configurés avec leur passerelle +par défaut (default gateway) pointant sur l'adresse IP de +l'interface interne du firewall.
+The foregoing short discussion barely scratches the +surface regarding subnetting and routing. If you are interested in +learning more about IP addressing and routing, I highly recommend "IP +Fundamentals: What Everyone Needs to Know about Addressing & +Routing", Thomas A. Maufer, Prentice-Hall, 1999, ISBN 0-13-975483-0.
+Le reste de ce guide assumera que vous avez +configuré votre réseau comme montré ci-dessous :
+ +La passerelle par défaut pour les ordinateurs 1 +et 2 devrait être 10.10.10.254.
+Les adresses réservées par la RFC 1918 +sont parfois désignées comme non-routables car les +routeurs Internet (backbone) ne font pas circuler les paquets qui ont +une adresse de destination appartenant à la RFC-1918. Lorsqu'un +de vos systèmes en local (supposons l'ordinateur1) demande une +connexion à un serveur par Internet, le firewall doit appliquer +un NAT (Network Address Translation). Le firewall ré +écrit l'adresse source dans le paquet, et l'a remplace par +l'adresse de l'interface externe du firewall; en d'autres mots, le +firewall fait croire que c'est lui même qui initie la connexion. +Ceci est nécessaire afin que l'hôte de destination soit +capable de renvoyer les paquets au firewall (souvenez vous que les +paquets qui ont pour adresse de destination, une adresse +réservée par la RFC 1918 ne pourront pas être +routés à travers Internet, donc l'hôte Internet ne +pourra adresser sa réponse à l'ordinateur 1). Lorsque le +firewall reçoit le paquet de réponse, il remet l'adresse +de destination à 10.10.10.1 et fait passer le paquet vers +l'ordinateur 1.
+Sur les systèmes Linux, ce procédé +est souvent appelé de l'IP Masquerading mais vous verrez +aussi le terme de Source Network Address Translation (SNAT) +utilisé. Shorewall suit la convention utilisée avec +Netfilter:
+Masquerade désigne le cas ou vous + laissez votre firewall détecter automatiquement l'adresse de + l'interface externe.
+SNAT désigne le cas où vous + spécifiez explicitement l'adresse source des paquets sortant + de votre réseau local.
+Sous Shorewall, autant le Masquerading que le SNAT sont +configuré avec des entrés dans le fichier +/etc/shorewall/masq. Vous utiliserez normalement le Masquerading si +votre adresse IP externe est dynamique, et SNAT si elle est statique.
+Si +votre interface externe du firewall est eth0, vous n'avez pas +besoin de modifier le fichier fourni avec l'exemple. Dans le cas +contraire, éditez /etc/shorewall/masq et changez la +première colonne par le nom de votre interface externe, et la +seconde colonne par le nom de votre interface interne.
+ Si
+votre IP externe est statique, vous pouvez la mettre dans la
+troisième colonne dans /etc/shorewall/masq si vous le
+désirez, de toutes façons votre firewall fonctionnera
+bien si vous laissez cette colonne vide. Le fait de mettre votre IP
+statique dans la troisième colonne permet un traitement des
+paquets sortant un peu plus efficace.
+
+ Si vous utilisez les paquets
+Debian, vérifiez que votre fichier de configuration
+shorewall.conf contient bien les valeurs suivantes, si elles n'y sont
+pas faite les changements nécessaires:
NAT_ENABLED=Yes
+IP_FORWARDING=On
+Un de nos buts est de , peut être, faire tourner +un ou plusieurs serveurs sur nos ordinateurs locaux. Parce que ces +ordinateurs on une adresse RFC-1918, il n' est pas possible pour les +clients sur Internet de se connecter directement à eux. Il est +nécessaire à ces clients d'adresser leurs demandes de +connexion au firewall qui ré écrit l'adresse de +destination de votre serveur, et fait passer le paquet à +celui-ci. Lorsque votre serveur répond, le firewall applique +automatiquement un SNAT pour ré écrire l'adresse source +dans la réponse.
+Ce procédé est appelé Port +Forwarding ou Destination Network Address Translation(DNAT). +Vous configurez le port forwarding en utilisant les règles DNAT +dans le fichier /etc/shorewall/rules.
+La forme générale d'une simple règle de port +forwarding dans /etc/shorewall/rules est:
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ DNAT + |
+
+ net + |
+
+ loc:<server local ip address> [:<server + port>] + |
+
+ <protocol> + |
+
+ <port> + |
+
+ + |
+
+ + |
+
Exemple - vous faites tourner un serveur Web sur l'ordinateur 2 et +vous voulez faire passer les requêtes TCP sur le port 80 à +ce système :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ DNAT + |
+
+ net + |
+
+ loc:10.10.10.2 + |
+
+ tcp + |
+
+ 80 + |
+
+ + |
+
+ + |
+
Deux points importants à garder en mémoire :
+Vous devez tester la règle + précédente depuis un client à l'extérieur + de votre réseau local (c.a.d., ne pas tester depuis un + navigateur tournant sur l'ordinateur 1 ou 2 ou sur le firewall). Si + vous voulez avoir la possibilité d'accéder à + votre serveur web en utilisant l'adresse IP externe de votre + firewall, regardez Shorewall FAQ #2.
+Quelques fournisseurs Internet (Provider/ISP) bloquent les + requêtes entrantes de connexion sur le port 80. Si vous avez des +problèmes à vous connecter à votre serveur web, +essayez la règle suivante et connectez vous sur le port 5000.
+
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ DNAT + |
+
+ net + |
+
+ loc:10.10.10.2:80 + |
+
+ tcp + |
+
+ 5000 + |
+
+ + |
+
+ + |
+
A ce point, +modifiez /etc/shorewall/rules pour ajouter les règles DNAT dont +vous avez besoin.
+Normalement, quand vous vous connectez à votre +fournisseur (ISP), une partie consiste à obtenir votre adresse +IP, votre DNS pour le firewall (Domain Name Service) est +configuré automatiquement (c.a.d.,le fichier /etc/resolv.conf a +été écrit). Il arrive que votre provider vous +donne une paire d'adresse IP pour les DNS (name servers) afin que +vous configuriez manuellement votre serveur de nom primaire et +secondaire. La manière dont le DNS est configuré sur +votre firewall est de votre responsabilité. Vous pouvez +procéder d'une de ses deux façons :
+Vous pouvez configurer votre système + interne pour utiliser les noms de serveurs de votre provider. Si + votre fournisseur vous donne les adresses de leurs serveurs ou si ces +adresses sont disponibles sur leur site web, vous pouvez configurer +votre système interne afin de les utiliser. Si cette +information n' est pas disponible, regardez dans /etc/resolv.conf sur +votre firewall -- les noms des serveurs sont donnés dans +l'enregistrement "nameserver" dans ce fichier.
++Vous pouvez configurer un cache dns (Caching Name Server) sur +votre firewall. Red Hat a un RPM pour mettre en cache un +serveur de nom (le RPM requis aussi le RPM 'bind') et pour les +utilisateurs de Bering, il y a dnscache.lrp. Si vous adoptez cette +approche, vous configurez votre système interne pour utiliser +le firewall lui même comme étant le seul serveur de nom +primaire. Vous pouvez utiliser l'adresse IP interne du firewall +(10.10.10.254 dans l'exemple) pour l'adresse de serveur de nom. Pour +permettre à vos systèmes locaux de discuter avec votre +serveur cache de nom, vous devez ouvrir le port 53 (UDP ET TCP) +sur le firewall vers le réseau local; vous ferez ceci en +ajoutant les règles suivantes dans /etc/shorewall/rules.
+
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ loc + |
+
+ fw + |
+
+ tcp + |
+
+ 53 + |
+
+ + |
+
+ + |
+
+ ACCEPT + |
+
+ loc + |
+
+ fw + |
+
+ udp + |
+
+ 53 + |
+
+ + |
+
+ + |
+
Les fichiers exemples inclus dans l'archive +(two-interface) contiennent les règles suivantes :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ fw + |
+
+ net + |
+
+ tcp + |
+
+ 53 + |
+
+ + |
+
+ + |
+
+ ACCEPT + |
+
+ fw + |
+
+ net + |
+
+ udp + |
+
+ 53 + |
+
+ + |
+
+ + |
+
Ces règles autorisent l'accès DNS +à partir de votre firewall et peuvent être enlevées +si vous avez dé commenté la ligne dans +/etc/shorewall/policy autorisant toutes les connexions depuis le +firewall vers Internet.
+Les exemples contiennent aussi :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ loc + |
+
+ fw + |
+
+ tcp + |
+
+ 22 + |
+
+ + |
+
+ + |
+
Cette règle vous autorise à faire tourner +un serveur SSH sur votre firewall et à vous y connecter depuis +votre réseau local.
+Si vous voulez permettre d'autres connexions entre +votre firewall et d'autres systèmes, la forme +générale est :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ <source zone> + |
+
+ <destination zone> + |
+
+ <protocol> + |
+
+ <port> + |
+
+ + |
+
+ + |
+
Exemple - Vous voulez faire tourner un serveur Web sur +votre firewall :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ net + |
+
+ fw + |
+
+ tcp + |
+
+ 80 + |
+
+ #Permet l'accès Web + |
+
+ depuis Internet + |
+
+ ACCEPT + |
+
+ loc + |
+
+ fw + |
+
+ tcp + |
+
+ 80 + |
+
+ #Permet l'accès Web ++ |
+
+ depuis Internet + |
+
Ces deux règles bien sûr viennent +s'ajouter aux règles décrites précédemment +dans "Vous pouvez configurer un cache dns (Caching Name Server) sur +votre firewall"
+Si vous ne savez pas quel port et quel protocole une +application particulière utilise, regardez ici.
+Important: Je ne vous recommande pas de +permettre le telnet depuis ou vers Internet car il utilise du texte en +clair (même pour le login et le mot de passe!). Si vous voulez un +accès au shell sur votre firewall depuis Internet, utilisez SSH :
+ +
+ ACTION + |
+
+ SOURCE + |
+
+ DESTINATION + |
+
+ PROTOCOL + |
+
+ PORT + |
+
+ SOURCE PORT + |
+
+ ORIGINAL ADDRESS + |
+
+ ACCEPT + |
+
+ net + |
+
+ fw + |
+
+ tcp + |
+
+ 22 + |
+
+ + |
+
+ + |
+
+Maintenant éditez votre fichier /etc/shorewall/rules pour +ajouter ou supprimer les connexions voulues.
++La procédure d'installation +configure votre système pour lancer Shorewall au boot du +système, mais pour les débutants sous Shorewall version +1.3.9, le lancement est désactivé tant que la +configuration n' est pas finie. Une fois la configuration de votre +firewall achevée, vous pouvez permettre le lancement de Shorewall +en enlevant le fichier /etc/shorewall/startup_disabled.
+IMPORTANT: Les +utilisateurs des paquets .deb doivent éditer +/etc/default/shorewall et mettre 'startup=1'.
+Le firewall est lancé en utilisant la commande +"shorewall start" et stoppé avec "shorewall stop". Lorsque le +firewall est stoppé, le routage est permis sur les hôtes +qui sont dans le fichier/etc/shorewall/routestopped. +Un firewall fonctionnant peut être relancé en utilisant la +commande "shorewall restart". Si vous voulez enlever toutes les traces +de Shorewall dans votre configuration de Netfilter, utilisez "shorewall +clear".
++Les exemples (two-interface) supposent que vous voulez permettre le +routage depuis ou vers eth1 (le réseau local) lorsque +Shorewall est stoppé. Si votre réseau local n' est pas +connecté à eth1 ou si vous voulez permettre +l'accès depuis ou vers d'autres hôtes, changez +/etc/shorewall/routestopped en conséquence.
+ATTENTION: Si vous êtes connecté +à votre firewall depuis Internet, n'essayez pas la commande +"shorewall stop" tant que vous n'avez pas ajouté une +entrée pour votre adresse IP depuis laquelle vous êtes +connecté dans/etc/shorewall/routestopped. +De plus, je ne vous recommande pas d'utiliser "shorewall restart"; il +est mieux de créer une configuration +alternative et de l'essayer en utilisant la commande"shorewall try".
+Last updated 12/20/2002 - Tom Eastep
+Copyright 2002 +Thomas M. Eastep
+