<!doctype linuxdoc system>

<!--
  $Id: IP-Masquerade.sgml,v 1.8 2000/02/10 16:57:44 mat Exp $

  $Log: IP-Masquerade.sgml,v $
  Revision 1.8  2000/02/10 16:57:44  mat
  v1.77

  Revision 1.7  1999/09/25 07:18:37  mat
  tite modif

  Revision 1.6  1999/04/02 17:17:14  mat
  relecture appliquée, qq trucs pour que la version texte passe bien, c bon, c parti

  Revision 1.5  1999/03/31 20:53:37  mat
  freenix.{fr,org}/linux -> freenix.org/unix/linux

  Revision 1.4  1999/03/12 18:07:42  mat
  ajout d'espaces apres les &nl; sinon, sgml2txt gueule un peut

  Revision 1.3  1999/03/03 20:14:49  mat
  Changement de mail

  Revision 1.2  1999/02/12 16:02:57  mat
  v1.50, 7 Février 1999
  envoi relecture

-->
<!--

  Ami relecteur, il y a des moments ou je n'étais pas sur de la traduction,
  j'ai mis un NdT en commentaires....

  A part ça, je n'ai pas vraiment relu par manque de temps, alors, il se
  peut qu'il y ait de grosses coquilles, mais je ne le pense pas.

-->
<article>
<title>Linux IP Masquerade HOWTO

<author>David Ranch, <tt><htmlurl url="mailto:dranch@trinnet.net"
name="dranch@trinnet.net"></>; Ambrose Au, <tt><htmlurl
url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"></>&nl Version
Française par Mathieu Arnold, <tt><htmlurl
url="mailto:arn_mat@club-internet.fr" name="arn_mat@club-internet.fr"></>

<date>v1.77, 27 Juillet 1999
<abstract>
Ce document décrit la procédure pour mettre en place la fonctionnalité IP
Masquerade sur un ordinateur Linux. L'IP MASQ est une forme de NAT (Network
Address Translation, c'est a dire, Translation d'adresse réseau) qui permet
de connecter sur Internet des ordinateurs n'ayant pas d'adresses IP
réservées, à travers l'IP de votre ordinateur Linux.
</abstract>

<toc>

<!-- Section 1 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Introduction

<sect1> Introduction à l'IP Masquerading aka IP MASQ 
<p>
Ce document décrit la façon de mettre en oeuvre l'IP MASQ sur une machine
Linux. IP MASQ est une forme de NAT qui permet de connecter sur Internet des
ordinateurs n'ayant pas d'adresses IP réservées, à travers l'IP de votre
ordinateur Linux. Il est possible de connecter vos machines internes a la
machine Linux avec des technologies réseau telles l'Ethernet, le TokenRing,
le FDDI, comme d'autres formes de connexions comme une connexion PPP ou
SLIP. Ce document utilise l'Ethernet comme exemple car c'est le scénario le
plus commun.

<quote><em><bf>Ce document est destiné aux utilisateurs utilisant un des
noyaux Linux stable~: 2.0.36+ et 2.2.9+ sur un compatible PC. Les noyaux les
plus anciens comme les 1.2, 1.3 et 2.1 NE SONT PAS couverts par ce document,
et certaines versions sont considérées comme dangereuses. Mettez a jour
votre noyau pour utiliser un noyau stable avant de vous mettre a utiliser
l'IP MASQ.</></></>

<quote><em><bf>Si vous configurez l'IP MASQ pour être utilisé sur un
Macintosh, envoyez un email à Taro Fukunaga, <htmlurl
url="mail:tarozax@earthlink.net" name="tarozax@earthlink.net"> pour recevoir
un exemplaire de sa version de ce HOWTO pour MkLinux.</></></>

<sect1> Mise en garde, Feedback et Crédits
<p>

En tant que débutant, je trouve qu'il est très déroutant de mettre en place
l'IP masquerade sur un noyau, (un 1.2 a cette époque là). Bien qu'il y ait
une FAQ et une mailing list, il n'y avais pas de documents qui soit
spécifiques à cela. Il y avais aussi quelques demandes sur la mailing list
pour des documents tels qu'un HOWTO. J'ai donc décidé d'écrire ce document
comme un point de départ pour un nouvel utilisateur et peut-être comme une
première brique pour que d'autres utilisateurs expérimentés ajoutent leurs
briques. Si vous avez la moindre idée a propos de ce document, une
correction, n'hésitez pas à nous en faire part afin que nous puissions
l'améliorer.

Ce document étais a l'origine largement inspiré de la FAQ de Ken Eves, ainsi
que de nombreux messages très utiles de la mailing list d'IP Masquerading.
Je tiens à adresser des remerciements tout particuliers à M. Matthew Driver
qui, par ses messages sur la mailing list, m'a donné envie de mettre en
place l'IP Masquerading et d'écrire ce document. Récemment, David Ranch a
réécrit ce HOWTO et a ajouté un bon paquet de sections pour rendre ce
document encore plus complet possible.

N'hésitez pas à nous envoyer tout commentaire à <htmlurl
url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et <htmlurl
url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> pour toute erreur
ou tout oubli dans ce document. L'avenir de cet HOWTO sera fortement
influencé par les réactions que j'aurais de votre part.

<bf>Ce HOWTO a été conçu pour être un guide compréhensible pour que l'IP
Masquerading fonctionne chez vous le plus vite possible. Comme ni Ambrose ni
David ne sont des techniciens, il se peut que vous trouviez les informations
de ce document moins générales et/ou moins objectives. Les dernières
nouvelles et informations sur ce HOWTO et l'IP MASQ pourront être trouvées
sur le site web de l'<htmlurl name="IP Masquerading Ressource"
url="http://ipmasq.cjb.net/">, dont nous nous occupons activement. Si vous
désirez poser des questions techniques à propos d'IP Masquerade, veuillez
souscrire à la mailing list IP Masquerade au lieu d'envoyer des mails à
Ambrose ou David. La majorité des questions se rapportant au masquerading
sont bien connues des utilisateurs et trouveront réponse sur la liste. De
plus, la réponse donnée sur la liste sera beaucoup plus rapide que si elle
est posée à Ambrose ou David.</>

La dernière version de ce document peut être obtenue aux adresses suivantes,
il y a aussi des versions HTML et PostScript~:

<itemize>
<item>
<htmlurl url="http://ipmasq.cjb.net/" name="http://ipmasq.cjb.net/ : The IP Masquerade Resources">

<item>
<htmlurl url="http://ipmasq2.cjb.net/" name="http://ipmasq2.cjb.net/ : The IP Masquerade Resources MIRROR">

<item>
<htmlurl url="http://metalab.unc.edu/LDP" name="The Linux Documentation Project">

<item>
<htmlurl url="http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html#ipmasq" name="Dranch's Linux page">

<item>Référez vous aussi à <url
url="http://ipmasq.cjb.net/index.html&num;mirror" name="IP Masquerade
Resource Mirror Sites Listing"> pour la liste des miroirs proche de vous.
</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Copyright & Dénégation
<p>
Ce document est <tt>copyright &copy; 1999 Ambrose Au et David Ranch</>, et
est un document GRATUIT. Vous pouvez le redistribuer sous la licence GPL de
GNU (General Public Licence).

Les informations contenues dans ce document sont correcte dans l'état des
connaissances d'Ambrose et David. Toutefois, la fonctionnalité IP MASQ de
Linux est écrite par des humains, et donc, il y a des chances que des bugs
apparaissent de temps en temps.

Personne n'est responsable pour un quelconque dommage sur vos ordinateur(s)
ainsi qu'une quelconque autre perte due à l'utilisation des informations
contenues dans ce document. C'est à dire~:

<quote>
<bf>LES AUTEURS ET TOUS LES MAINTENEURS NE SONT EN AUCUN CAS RESPONSABLES
DES DOMMAGES OCCASIONNÉS PAR L'USAGE DES INFORMATIONS CONTENUES DANS CE
DOCUMENT, QUELS QU'ILS SOIENT.</>
</quote>






<!-- Section 2 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Connaissances de base
<p>

<sect1> Qu'est-ce que l'IP Masquerade?
<p>
LÍP Masquerade est une fonctionnalité réseau de Linux similaire aux
nombreuses NAT (Network Address Translation) présents dans beaucoup de par
feux commerciaux et de routeurs réseau. Par exemple, une machine Linux
connectée a internet via une liaison PPP, Ethernet, etc., l'IP MASQ permet
a d'autres ordinateurs connectés a la machine Linux (via PPP, Ethernet,
etc.) d'accéder aussi a internet. L'IP MASQ de Linux permet cela même si les
machines internes n'ont pas <em>d'adresse IP officielle</>.

L'IP MASQ permet a un ensemble de machines d'accéder a internet de manière
<em>invisible</> via la passerelle MASQ. Pour les autres machines sur
internet, tout le trafic sortant aura comme source la machine Linux IP MASQ
elle même. En plus de ces fonctionnalités, l'IP Masquerade fournis les bases
de la création d'un environnement réseau totalement sécurisé. Avec un
firewall bien intégré, braver la sécurité d'un système utilisant le
masquerading ainsi que le réseau interne est peine perdue.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Où cela en est~?
<p>
L'IP Masquerade est utilisé depuis quelques années et est arrivé a maturité
lorsque Linux est arrivé dans les noyaux 2.2. Cette fonctionnalité est
supportée en standard depuis la série 1.3. De nombreuses personnes, et même
des entreprises l'utilisent, avec des résultats excellents.

Les utilisation courantes comme la navigation web, le telnet, ftp, ping,
traceroute, etc marche très bien avec l'ip masquerade. D'autres protocoles
de communication comme le ftp, l'irc et le RealAudio marchent très bien avec
le module IP MASQ approprié. D'autres programmes spécifiques a un réseau
comme les stream audio (MP3s, True Speech, etc) marchent aussi. Certains ont
même obtenus de bon résultats avec des logiciels de vidéoconférence.

Veuillez consulter la section <ref id="Supported Client Software"> pour une
liste complète des logiciels supportés.

IP Masquerade marche bien comme serveur pour d'autres 'machines clientes'
avec différents OS. Il y a eu des échos de succès avec des machines MASQuées
utilisant~:


<itemize>
<item>
Unix~: Sun Solaris, *BSD, Linux, Digital UNIX, etc.</>

<item>
Microsoft Windows 95/98, Windows NT, et Windows pour Workgroups (avec le
paquetage TCP/IP)</>

<item>
IBM OS/2</>

<item>
Apple Macintosh MacOS avec soit MacTCP soit Open Transport</>

<item>
Les systèmes basés sur le DOS avec les pilotes packet et le paquetage NCSA
Telnet</>

<item>
Les VAX</>

<item>
Compaq/Digital Alpha avec Linux ou Windows NT</>

<item>
même les Amiga avec AmiTCP ou la pile AS225</>

</>

La liste continue, mais en fait, si votre OS parle TCP/IP, il devrais
marcher avec IP Masquerade~!


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> A qui peut être utile IP Masquerade?
<p>
<itemize>
<item>
Si vous avez un hôte Linux connecté à Internet et</>

<item>
si vous avez un ou plusieurs ordinateurs utilisant TCP/IP, connecté à un
hôte Linux sur un réseau local, et/ou</>

<item>
si votre hôte Linux a un ou plusieurs modems et joue le rôle de serveur PPP
ou SLIP, et que</>

<item>
ces <bf>AUTRES</> machines ne possèdent pas d'adresse IP officielle ou
publique (c'est a dire, avec une adresse IP privée).</>

<item>
et bien sûr, si vous désirez que ces <bf>AUTRES</> machines soient également
connectées sur Internet sans débourser un centime de plus pour acheter des
IP officielles ou publiques a votre FAI et configurer un routeur sous Linux
ou même acheter un routeur.</>
</>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Qui n'a pas besoin d'IP Masquerade?
<p>
<itemize>
<item>
Si votre machine est un hôte isolé, connecté sur Internet, (bien que mettre
en place un firewall soit une bonne idée), ou</>

<item>
si vous avez déjà obtenu des adresses officielles pour vos <bf>AUTRES</>
machines,</>

<item>
et bien sûr, si vous n'aimez pas l'idée de connecter toutes les
<bf>AUTRES</> machines gratuitement, de cette manière en utilisant Linux et
vous avez plus confiance en utilisant de chers produits commerciaux qui font
exactement la même chose...</>
</>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Comment fonctionne IP Masquerade~?
<p>
D'après la FAQ IP Masquerade originelle, de Ken Eves~:
<verb>
  Voici un schéma du plus simple cas possible~:

     SLIP/PPP         +------------+                         +-------------+
     vers le FAI      |  Linux     |       SLIP/PPP          | Peu_importe |
    <---------- modem1|   #1       |modem2 ----------- modem3|             |
      111.222.333.444 |            |           192.168.0.100 |             |
                      +------------+                         +-------------+

    Dans le schéma ci-dessus, un ordinateur sous Linux (Linux #1), utilisant
    IP_MASQUERADING est connecté à Internet par un lien SLIP ou PPP,
    utilisant modem1. Il possède l'adresse IP (officielle)
    111.222.333.444. Il a aussi un modem2 de branché qui permet aux
    appelants de se connecter et d'initier une connexion PPP ou SLIP.

    Le second système (qui n'utilise par forcément Linux comme système
    d'exploitation) se connecte par modem sur l'hôte Linux #1 et entame une
    liaison SLIP ou PPP. Il NE possède PAS d'adresse IP officielle donc il
    utilise l'adresse privée 192.168.0.100 (voir ci-dessous pour plus
    d'informations).

    Avec l'option IP Masquerade et un routage configuré correctement, la
    machine "Peu_importe" peut interagir avec Internet comme si elle était
    directement connectée (à quelques petites exceptions près).

Pour citer Pauline Middlelink~:

  N'oublie pas de rappeler que la machine "Peu_importe" doit déclarer l'hôte
  Linux #1 comme passerelle (que cela soit la route par défaut ou juste un
  sous réseau importe peu). Si la machine "Peu_importe" ne peut pas le
  faire, l'hôte Linux devra être configurée pour faire du proxy arp pour
  toutes les adresses routées, mais la mise en place et la configuration du
  proxy arp est hors du domaine de ce document.

Ce qui suit est l'extrait d'un article de comp.os.linux.networking qui a été
modifié pour utiliser les noms des machines de l'exemple ci-dessus~:

   o J'indique à la machine "Peu_importe" que le serveur Linux est sa
     passerelle.
   o Quand un paquet en provenance de Peu_importe arrive sur la machine
     Linux, elle va lui assigner un nouveau numéro de port, et indiquer sa
     propre adresse IP dans l'entête du paquet, tout en sauvegardant
     l'entête originale. Le serveur IP MASQ va alors envoyer le paquet
     modifié à travers son interface SLIP ou PPP, vers Internet.
   o Lorsqu'un paquet en provenance d'Internet revient sur la machine Linux,
     Linux regarde si le numéro de port est un de ceux assignés à l'étape
     précédente, elle va modifier à nouveau l'entête pour y remettre les
     numéros de port et adresses IP originaux, et alors envoyer le paquet à
     la machine Peu_importe.
   o L'hôte qui a envoyé le paquet ne verra jamais la différence.
</verb>

<p>
<bf>Un autre example d'IP Masquerading~:</>
<p>
 Voici ci-dessous le schéma d'un exemple classique~:
<verb>

    +----------+
    |          |  Ethernet
    | Ordi A   |::::::
    |          |.2  ~:192.168.0.x
    +----------+    ~:
                    ~:     +----------+   lien
    +----------+    ~:   .1|  Linux   |   PPP
    |          |    ~::::::| Masq-Gate|:::::::::::::::::// Internet
    | Ordi B   |::::::     |          | 111.222.333.444
    |          |.3  ~:     +----------+
    +----------+    ~:
                    ~:
    +----------+    ~:
    |          |    ~:
    | Ordi C   |::::::
    |          |.4
    +----------+

    |                      |          |
    | <- Réseau interne -> |          | <- Réseau externe ----->
    |                      |          |
</verb>

Dans cet exemple, il y a (4) ordinateurs qui nous intéressent. Il y a aussi
certainement quelquechose loin a droite ou votre connexion PPP arrive (un
serveur, etc.) et qu'il y a une machine distant très très loin a droite sur
internet avec laquelle nous voulons communiquer. La machine Linux
<bf><tt>Masq-Gate</></> est la passerelle IP MASQ que tout le réseau de
machines <bf><tt>Ordi A</></>, <bf><tt>Ordi B</></> et <bf><tt>Ordi C</></>
utilisent pour se rendre sur internet. Le réseau interne utilise un des
nombreux réseaux privés décrit dans la <htmlurl
url="http://www.cis.ohio-state.edu/htbin/rfc/rfc1918.html" name="RFC-1918">,
dans ce cas, le réseau de classe C 192.168.0.0. La machine Linux ayant
l'adresse TCP/IP 192.168.0.1 alors que les autres ont les adresses~:

<itemize>
<item>Ordi A~: 192.168.0.2
<item>Ordi B~: 192.168.0.3
<item>Ordi C~: 192.168.0.4
</itemize>

Les trois machines <tt>A</>, <tt>B</> et <tt>C</>, qui peuvent utiliser
n'importe quel système d'exploitation, du moment qu'elles utilisent TCP/IP -
comme par exemple <bf>Windows 95</>, <bf>Macintosh MacTCP ou Open
Transport</> ou même une autre <bf>machine Linux</>, peuvent se connecter à
n'importe qu'elle machine sur Internet. Toutefois <tt>masq-gate</>
convertit toutes leurs connexions de façon à ce qu'elles semblent provenir
de <tt>masq-gate</> elle même. MASQ s'arrange pour que toutes les données
revenant d'Internet retournent au système qui en est à l'origine. Ainsi, les
ordinateurs du réseau interne voient une route directe vers Internet et ne
sont pas au courant du fait que leurs données ont été "masqueradées". Cela
s'appelle une connexion transparente.

NOTE~: Allez voir la <ref id="FAQ"> pour plus de détails sur~:
<p>
<itemize>
<item>
La différence entre NAT, MASQ et serveurs Proxy.</>

<item>
Comme le firewalling de paquets marche.</>

</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="2.0.x-Requirements">
<sect1> Ce qui est requis pour utiliser IP Masquerade sur un Linux 2.0.x

<p>
<quote><bf>** Veuillez s'il vous plaît consulter l'<htmlurl
url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour les dernières
informations.**</></quote>

<itemize>
<item>
Un matériel décent. référez vous a la <ref id="FAQ-Hardware"> pour plus de
détails

<item>
Les sources d'un noyau de la série 2.0, disponibles sur <htmlurl
url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/"
name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/"> &nl; (La majorité
des distributions de linux récentes <ref id="MASQ-supported-Distributions">
telle la RedHat 5.2 ont le un noyau modulaire avec toutes les options
nécessaires a l'IP Masquerading compilées d'origine. Dans ce genre de cas,
il n'y a pas besoin de recompiler le noyau. Si vous METTEZ À JOUR votre
noyau, alors, vous devriez savoir ce dont que vous aurez besoin d'installer
ou de mettre a jour, nous y reviendrons un peu plus loin).

<item>
Les modules chargeables à la demande, de préférence la version 2.1.85 (ou
ultérieure), disponible sur <htmlurl
url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.1/modules-2.1.85.tar.gz"
name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.1/modules-2.1.85.tar.gz">
(modules-1.3.57 étant le minimum)</item>

<item>
Un réseau ou LAN TCP/IP fonctionnant convenablement (se référer à <url
url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html" name="Linux
NET-3 HOWTO"> (<bf>en français</>) et au <url
url="ftp://ftp.ibp.fr/pub/linux/french/books/nag.french.eoit-1.0.tar.gz"
name="Network Administrator's Guide">) &nl; Allez aussi faire un tour chez
<url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri"
name="Trinity OS Doc">, une documentation très simple sur Linux et le réseau
incluant des sujets comme IP MASQ, sécurité, DNS, DHCP, Sendmail, PPP,
DialD, NFS, IPSEC-based VPNs, et des sections sur les performances pour n'en
nommer que quelques unes. Plus de 50 sections en tout.

<item>
Un accès Internet pour votre hôte Linux Se référer à <url
url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html"
name="Linux ISP Hookup HOWTO"> <url
url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="Linux PPP
HOWTO">, <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri"
name="TrinityOS">, <url
url="http://www.freenix.org/unix/linux/HOWTO/mini/DHCP.html" name="Linux
DHCP mini-HOWTO"> et à <url
url="http://www.freenix.org/unix/linux/HOWTO/mini/Cable-Modem.html"
name="Linux Cable Modem mini-HOWTO">

<item>
Ipfwadm 2.3, téléchargeable sur <htmlurl
url="ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz"
name="ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz"> &nl; Plus
d'informations sur <url url="http://www.xos.nl/linux/ipfwadm/" name="Linux
IPFWADM page">

<item>
Si vous etes interessés par l'utilisation d'IPCHAINS sur un noyau 2.0.36+,
allez voir <url url="http://www-miaif.lip6.fr/willy/pub/linux-patches/"
name="Willy Tarreau's IPCHAINS enabler for 2.0.36"> ou <htmlurl
url="http://www.rustcorp.com/linux/ipchains/" name="Rusty's IPCHAINS for
2.0.x kernels">

<item>
Sachez configurer, compiler et installer un nouveau noyau Linux comme décrit
dans <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html"
name="Linux Kernel HOWTO">

<item>
Vous pouvez aussi appliquer divers paths optionnels pour ajouter des
fonctionnalités comme~:

<itemize>
<item>
Des redirecteurs de ports~: Avec ces outils, vous pouvez faire marcher
quelques programmes non MASQ derriere un serveur MASQ. De plus, vous pouvez
configurer un serveur MASQ pour permettre aux utilisateurs d'internet de
contacter des serveurs web, telnet, smtp, ftp (avec un patch), etc. Référez
vous a la section <ref id="Forwarders"> de ce HOWTO pour plus
d'informations. Voici une liste des différents patchs IP MASQ pour les
noyaux 2.0~:

<itemize>
<item>
<htmlurl url="http://www.ox.compsoc.org.uk/~steve/portforwarding.html"
name="IP PortForwarding (IPPORTFW)"> de Steven Clarke's <bf>RECOMMANDÉ</>

<item>
<htmlurl url="http://ipmasq.cjb.net/ipautofw.tar.gz" name="IP AutoForward">
et <url url="ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz" name="a
mirror"> (IPAUTOFW) - <htmlurl url="http://ipmasq.cjb.net/tcpdeath.html"
name="NON recommandé">

<item>
<url url="http://ipmasq.cjb.net/redir_0.7.orig.tar.gz" name="REDIR"> pour TCP
(REDIR) - NON recommandé

<item>
<htmlurl url="http://ipmasq.cjb.net/udpred.c.gz" name="UDP redirector">
(UDPRED) - NON recommandé

</itemize>

<item>
PORTFWed FTP:

<itemize>
<item>
Si vous allez faire de la redirection de port pour un serveur FTP interne,
vous aurez besoin de <htmlurl
url="http://ipmasq.cjb.net/patches/portfw-ftp-patch.tgz" name="Fred Viles's
FTP server patch">. Pour plus de détails, allez faire un tour du coté de la
section <ref id="Forwarders"> de ce HOWTO.

</itemize>

<item>
X-Windows display forwarders:

<itemize>
<item>
<url url="ftp://sunsite.unc.edu/pub/Linux/X11/compress/dxpc-3.7.0.tar.gz"
name="X-windows forwarding (DXCP)">

</itemize>

<item>
ICQ MASQ module

<itemize>
<item>
<htmlurl url="http://members.tripod.com/~djsf/masq-icq/"
name="Andrew Deryabin's ICQ MASQ module ">

</itemize>

<item>
PPTP (GRE) et SWAN (IPSEC) VPNs redirecteur de tunnels~:

<itemize>
<item><htmlurl
url="ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html"
name="John Hardin's VPN Masquerade forwarders"> ou le vieux patch pour juste
le <url url="http://ipmasq.cjb.net/ip_masq_pptp.patch.gz" name="PPTP
Support">.

</itemize>

<item>
Patches spécifiques aux jeux~:

<itemize>
<item>Le patch Lamb's <url
url="ftp://ftp.netcom.com/pub/mu/mumford/loose-udp-2.0.36.patch.gz"
name="LooseUDP for 2.0.36+"> de Glenn.

Notez que certains navigateurs WWW décompresseront automatiquement ce
fichier <tt>.gz</>. Pour télécharger ce fichier, gardez la touche SHIFT
enfoncée lorsque vous cliquez sur l'URL ci dessus.

Allez aussi faire un tour sur la <url
url="http://www.alumni.caltech.edu/&tilde;dank/peer-nat.html" name="page sur
le NAT"> de Dan Kegel pour plus d'informations. D'autres informations
peuvent aussi être touvées dans la section <ref id="Game-Clients"> et dans
la <ref id="FAQ">.
</itemize>
</itemize>
</itemize>

Allez faire un tour sur <url url="http://ipmasq.cjb.net/" name="IP Masquerade
Resource"> pour plus de détails sur ces patchs.



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="2.2.x-Requirements">
<sect1> Ce qui est requis pour utiliser IP Masquerade sur un Linux 2.2.x
<p>
<quote> <bf> ** Référez vous à <url url="http://ipmasq.cjb.net/" name="IP
Masquerade Resource"> pour les dernieres informations (en anglais). ** </>
</quote>

<p>
<itemize>
<item>
Les sources du noyau 2.2.x sont disponibles depuis <htmlurl
url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.2/"
name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.2/"> &nl; NOTE~: La
majorité des distributions de linux récentes <ref
id="MASQ-supported-Distributions"> telle la RedHat 5.2 - livrée avec un
noyau 2.0.36 - ne sont peut être pas prêtes pour les 2.2. Des outils comme
le DHCP, NetUtils, auront a être mis a jour. Plus de détails sont donnés par
la suite.

<item>
Modules chargeables dynamiquement, de préférence avec un 2.1.121 ou plus
récent. disponible depuis : <htmlurl url="http://www.pi.se/blox/modules/"
name="http://www.pi.se/blox/modules/">

<item>
Un réseau ou LAN TCP/IP fonctionnant convenablement (se référer à <url
url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html" name="Linux
NET-3 HOWTO"> (<bf>en français</>) et au <url
url="ftp://ftp.ibp.fr/pub/linux/french/books/nag.french.eoit-1.0.tar.gz"
name="Network Administrator's Guide">) &nl; Allez aussi faire un tour chez
<url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri"
name="Trinity OS Doc">, une documentation très simple sur Linux et le réseau
incluant des sujets comme IP MASQ, sécurité, DNS, DHCP, Sendmail, PPP,
DialD, NFS, IPSEC-based VPNs, et des sections sur les performances pour n'en
nommer que quelques unes. Plus de 50 sections en tout.

<item>
Un accès Internet pour votre hôte Linux Se référer à <url
url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html"
name="Linux ISP Hookup HOWTO"> <url
url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="Linux PPP
HOWTO">, <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri"
name="TrinityOS">, <url
url="http://www.freenix.org/unix/linux/HOWTO/mini/DHCP.html" name="Linux
DHCP mini-HOWTO"> et à <url
url="http://www.freenix.org/unix/linux/HOWTO/mini/Cable-Modem.html"
name="Linux Cable Modem mini-HOWTO">

<item>
IP Chains 1.3.8 ou plus récent, disponible sur <htmlurl
url="http://www.rustcorp.com/linux/ipchains/"
name="http://www.rustcorp.com/linux/ipchains/"> &nl; D'informations
additionnelles sur les différentes versions, visitez <url
url="http://www.rustcorp.com/linux/ipchains/" name="Linux IP Firewalling
Chains page">

<item>
Sachez configurer, compiler et installer un nouveau noyau Linux comme décrit
dans <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html"
name="Linux Kernel HOWTO">

<item>
Vous pouvez aussi appliquer divers paths optionnels pour ajouter des
fonctionnalités comme~:

<itemize>
redirecteur de ports TCP/IP~:
<itemize>
<item><url url="http://juanjox.kernelnotes.org/" name="IP PortForwarding
(IPMASQADM) - RECOMMANDÉ"> ou son vieux <htmlurl
url="http://www.geocities.com/SiliconValley/Campus/4869/"
name="miroir">.
</itemize>
</itemize>
<p>
Module ICQ MASQ
<itemize>
<item><htmlurl url="http://members.tripod.com/~djsf/masq-icq/" name="Andrew
Deryabin's ICQ MASQ module ">
</itemize>
</itemize>

Allez faire un tour sur <url url="http://ipmasq.cjb.net/" name="IP
Masquerade Resource"> pour plus d'informations sur ces patches là et
d'autres.



<!-- Section 3 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Mise en place d'IP Masquerade
<p>
<quote>
<bf>Si votre réseau privé contient des informations vitales, pensez aux
implications de sécurité avant d'utiliser IP Masquerade. Par défaut IP MASQ
constitue une passerelle pour vous, pour atteindre Internet, mais la
réciproque est vraie et quelqu'un sur Internet pourrait pénétrer sur votre
réseau privé.</></quote><quote>Une fois que vous avez un IP MASQ qui
marche, il est CHAUDEMENT recommandé d'implémenter de FORTES règles
d'IPFWADM/IPCHAINS. Référez vous aux sections <ref
id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> ci
dessous pour plus de détails.
</quote>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Compiler le noyau pour le support d'IP Masquerade

<p>
<label id="Kernel-Compile">

<quote>
<bf>Si votre distribution de Linux a déjà les fonctionnalités
necessaires et les modules de compilés, comme~:</>
</quote>

<quote>
<itemize>
  <item>IPFWADM/IPCHAINS
  <item>IP forwarding
  <item>IP masquerading
  <item>IP Firewalling
  <item>etc.
</itemize>
</quote>

<quote>
Et tous les modules relatif au MASQ de compilés (la majorité des noyaux
auront ce dont vous avez besoin); alors, vous n'aurez pas a recompiler votre
noyau. Si vous n'etes pas sru que votre distribution linux est prete pour le
MASQ allez voir la section <ref id="MASQ-supported-Distributions"> ou la
page <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour
plus de détails. Si vous n'arrivez pas a savoir si votre distribution
supporte le MASQ, alors, SUPPOSEZ QU'ELLE NE LE SUPPORTE PAS
</quote>

<quote>
Que votre distribution le supporte ou pas, lire la suite de cette section
est chaudement recommandé car elle contient pas mal d'informations
interessantes.
</quote>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect2> Noyaux Linux 2.0.x
<p>

<bf>Référez vous a la section <ref id="2.0.x-Requirements"> pour les
logiciels, patchs requis.</>

<itemize>
<item>
Vous devez tout d'abord disposer des sources du noyau (de préférence la
derniere version 2.0.36 ou plus récente).

<item>
Si c'est la première fois que vous compilez votre noyau, ne soyez pas
effrayé. En fait, c'est plutôt simple, et tout est expliqué dans plusieurs
liens dans la section <ref id="2.0.x-Requirements">.

<item>
Décompressez les sources du noyau dans <tt>/usr/src/</> avec la
commande <tt>tar xvzf linux-2.0.x.tar.gz -C /usr/src</>, où x est le
numéro de révision du noyau. Une fois terminé, vérifiez qu'il y a un
répertoire ou un lien symbolique nommé <tt>/usr/src/linux/</>.

<item>
Appliquez les patches appropriés et/ou optionnels au sources du
noyau. Depuis la version 2.0.36, IP MASQ ne requiert plus de patches
spécifiques pour que tout marche. Les fonctionnalités comme IPPORTFW, PPTP,
and Redirection Xwindow sont optionnelles. Référez vous à la section <ref
id="2.0.x-Requirements"> pour des liens et a la page <url
url="http://ipmasq.cjb.net/" name="IP Masquerade Resources"> pour des
informations a jours ainsi que les adresses des patchs additionnels.

<item>
Il y a ici le MINIMUM d'options a etre incluses dans le noyau. Vous aurez
aussi a configurer le noyau pour vos interfaces réseau. Consulter le <url
url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux
Kernel HOWTO"> et le fichier README dans le répertoire des sources du noyau
pour plus d'informations sur la compilation d'un noyau.

<item>
Notez les <em><bf>RÉPONSES YES ou NO</></> données aux options
suivantes. Toutes les options citées ici ne seront pas disponibles avec un
noyau standard, certaines sont issues de l'application d'un patch~:

</itemize>

<tscreen><verb>
  * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] 
    - YES : Permet de selectionner l'IP Masquerade (qui est experimental dans les 2.0)

  * Enable loadable module support (CONFIG_MODULES) [Y/n/?] 
    - YES : Permet de charger les modules IP MASQ

  * Networking support (CONFIG_NET) [Y/n/?]
    - YES : Permet l'utilisation du réseau

  * Network firewalls (CONFIG_FIREWALL) [Y/n/?]
    - YES : Permet d'utiliser IPFWADM

  * TCP/IP networking (CONFIG_INET)
    - YES : Permet d'utiliser le protocole TCP/IP

  * IP: forwarding/gatewaying (CONFIG_IP_FORWARD)
    - YES : Permet de faire du relayage / routage de paquets IP - Contrôlé par IPFWADM

  * IP: syn cookies (CONFIG_SYN_COOKIES) [Y/n/?]
    - YES : CHAUDEMENT recommandé pour une sécurité réseau de base

  * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?]
    - YES : Permet d'utiliser les fonctionnalités de firewall

  * IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) [Y/n/?]
    - YES : (OPTIONNEL mais CHAUDEMENT recommandé) : Permet de logger des hits du firewall

  * IP: masquerading (CONFIG_IP_MASQUERADE [Y/n/?]
    - YES : Permet a IP MASQ de réadresser les paquets TCP/IP

  * IP: ipautofw masquerade support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [Y/n/?]
    - NO : IPAUTOFW est une méthode simple de relayage de port. Bien qu'elle marche,
           IPPORTFW marche mieux, par conséquent, IPAUTOFW N'EST PAS recommandé

  * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/n/?]
    - YES : Cette option n'est disponible qu'après l'application d'un patch pour les
            noyaux 2.0

            Avec cette option, des ordinateurs externes sur internet peuvent communiquer
            directement avec des machines MASQuée spécifiques. Cette fonctionnalité est
            typiquement utilisée pour accéder a des serveurs smtp, telnet, web
            internes. Pour le ftp, un patch supplémentaire sera nécessaire comme il l'est
            décrit dans la FAQ. De plus amples informations sur le relayage de port se
            trouve dans la section forwarding de ce HOWTO.

  * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?]
    - YES : Permet de masquerader les paquets ICMP. Bien qu'optionnelle, beaucoup de
            programmes ne fonctionneront pas correctement sans cette fonctionnalité.

  * IP: loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?] 
    - YES : Cette option n'est disponible qu'après l'application d'un patch pour les
            noyaux 2.0

            Avec cette option, des ordinateurs internes masqués peuvent jouer a des jeux
            ne supportant pas le NAT sur internet. plus de détails sont donnés dans la FAQ

  * IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?]
    - YES : Cette fonctionnalité optimise les connexions IP MASQ - CHAUDEMENT recommandé

  * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?] 
    - YES : Cela optimise le noyau pour l'utilisation en réseau

  * IP: Drop source routed frames (CONFIG_IP_NOSR) [Y/n/?]
    - YES : CHAUDEMENT recommandé pour une sécurité réseau de base

  * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?]
    - YES : Bien qu'optionnelle, cette fonctionnalité peut aider en cas de problèmes

  * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] 
    - YES : Requise pour permettre d'autoriser le systeme de relayage
</verb></tscreen>

NOTE~: Ce sont juste les composants dont vous avez besoin pour l'IP
Masquerade. Vous avez aussi à ajouter toute autre option réseau et
matérielles nécessaire pour votre configuration personnelle.

<itemize>
<item>
Une fois le noyau compilé, vous avez aussi à compiler et installer les
modules~:

<tscreen><verb>make modules; make modules_install </verb></tscreen></item>

<item>
Ensuite, ajoutez quelques lignes dans votre <tt>/etc/rc.d/rc.local</> pour
charger le script de configuration de l'IP MASQ automatiquement a chaque
démarrage~:

<tscreen>
<verb>
        .
        .
        .
	# script rc.firewall - Démarre l'IP MASQ et le firewall
	/etc/rc.d/rc.firewall
        .
        .
        .
</verb>
</tscreen>

</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect2> Noyaus Linux 2.2.x
<p>

<bf>Référez vous a la section <ref id="2.2.x-Requirements"> pour les
logiciels, patchs requis.</>

<itemize>
<item>
Tout d'abord, Vous avez besoin des sources du noyau 2.2.x. De préférence,
une version ultérieure au 2.2.1.

<item>
Si c'est la première fois que vous compilez votre noyau, ne soyez pas
effrayé. En fait, c'est plutôt simple, et tout est expliqué dans plusieurs
liens dans la section <ref id="2.2.x-Requirements">.

<item>
Décompressez les sources du noyau dans <tt>/usr/src/</> avec la commande
<tt>tar xvzf linux-2.2.x.tar.gz -C /usr/src</>, où x est le numéro de
révision du noyau. Une fois terminé, vérifiez qu'il y a un répertoire ou un
lien symbolique nommé <tt>/usr/src/linux/</>.

<item>
Appliquez les patches appropriés et/ou optionnels au sources du
noyau. Depuis la version 2.2.1, IP MASQ ne requiert plus de patches
spécifiques pour que tout marche. Les fonctionnalités comme PPTP, and
Redirection Xwindow sont optionnelles. Référez vous à la section <ref
id="2.2.x-Requirements"> pour des liens et a la page <url
url="http://ipmasq.cjb.net/" name="IP Masquerade Resources"> pour des
informations a jours ainsi que les adresses des patchs additionnels.

<item>
Il y a ici le MINIMUM d'options a etre incluses dans le noyau. Vous aurez
aussi a configurer le noyau pour vos interfaces réseau. Consulter le <url
url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux
Kernel HOWTO"> et le fichier README dans le répertoire des sources du noyau
pour plus d'informations sur la compilation d'un noyau.

<item>
Notez les <em><bf>RÉPONSES YES ou NO</></> données aux options
suivantes. Toutes les options citées ici ne seront pas disponibles avec un
noyau standard, certaines sont issues de l'application d'un patch~:

</itemize>

<tscreen><verb>
  * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]
    - YES : Bien que n'étant pas nécessaire pour l'IP MASQ, cette option permet de créer
            certains modules MASQ et de choisir quelques options comme le relayage de
            ports
 
  * Enable loadable module support (CONFIG_MODULES) [Y/n/?]
    - YES : Permet de charger les modules IP MASQ

  * Networking support (CONFIG_NET) [Y/n/?]
    - YES : Permet l'utilisation du réseau

  * Packet socket (CONFIG_PACKET) [Y/m/n/?]
    - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet d'utiliser tcpdump pour
            débugger certains problèmes avec IP MASQ

  * Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?] 
    - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet de logger des hits du
            firewall

  * Routing messages (CONFIG_RTNETLINK) [Y/n/?]
    - NO : Cette option n'a rien a voir avec les logs du firewall

  * Network firewalls (CONFIG_FIREWALL) [Y/n/?]
    - YES : Permet d'utiliser IPCHAINS

  * TCP/IP networking (CONFIG_INET) [Y/n/?]
    - YES : Permet d'utiliser le protocole TCP/IP

  * IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?]
    - NO : Ce n'est requis que si vous utilisez aussi CONFIG_IP_ROUTE_VERBOSE et des
           routages spéciaux (indépendants d'ipchains/masq)

  * IP: verbose route monitoring (CONFIG_IP_ROUTE_VERBOSE) [Y/n/?]
    - YES : Très utile si vous voulez utiliser le code de routage pour mettre de coté les
            paquets spoofés (CHAUDEMENT recommandé) et que vous voulez les logger.

  * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?]
    - YES : Permet d'utiliser les fonctionnalités de firewall

  * IP: firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK) [Y/n/?]
    - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet d'améliorer les logs du
            firewall

  * IP: always defragment (required for masquerading) (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?] 
    - YES : Cette fonctionnalité est REQUISE si vous voulez avoir accès aux
            fonctionnalités d'IP MASQ et/ou de proxy transparent. Cette fonctionnalité
            optimise les connexions IP MASQ

  * IP: masquerading (CONFIG_IP_MASQUERADE) [Y/n/?]
    - YES : Permet a IP MASQ de réadresser les paquets TCP/IP

  * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?]
    - YES : Permet de masquerader les paquets icmp (les paquets d'erreur seront masqués de
            que la réponse soit oui ou non). Cette fonctionnalité est importante si vous
            rencontrez des problèmes avec vos connexions.

  * IP: masquerading special modules support (CONFIG_IP_MASQUERADE_MOD) [Y/n/?]
    - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet de choisir le relayage de
            port TCP/IP pour permettre a des ordinateurs externe d'accéder a certaines
            machines MASQuées.

  * IP: ipautofw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [N/y/m/?]
    - NO : IPAUTOFW est une méthode simple pour le relayage de ports. C'est juste une
           grosse bidouille, et il est préférable d'utiliser les modules spécifiques a un
           protocole. IPAUTOFW N'EST PAS recommandé.

  * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/m/n/?]
    - YES : Permet le IPPORTFW.  

            Avec cette option, des ordinateurs externes sur internet peuvent communiquer
            directement avec des machines MASQuée spécifiques. Cette fonctionnalité est
            typiquement utilisée pour accéder a des serveurs smtp, telnet, web
            internes. Pour le ftp, un patch supplémentaire sera nécessaire comme il l'est
            décrit dans la FAQ. De plus amples informations sur le relayage de port se
            trouve dans la section forwarding de ce HOWTO.

  * IP: ip fwmark masq-forwarding support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_MFW) [Y/m/n/?]
    - NO : Permet de configurer le relayage avec IPCHAINS directement. C'est du code
          expérimental, et la méthode recommandée est d'utiliser IPMASQADM et IPPORTFW.

  * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?]
    - YES : Cela optimise le noyau pour l'utilisation en réseau mais cela ne change pas
            grand chose en fait.

  * IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/m/?]
    - NO : Cette sélection OPTIONNELLE sert a autoriser les tunnels PPTP et GRE via la
           machine MASQ

  * IP: TCP syncookie support (not enabled per default) (CONFIG_SYN_COOKIES) [Y/n/?]
    YES : CHAUDEMENT recommandé pour une sécurité réseau de base

  * IP: Drop source routed frames (CONFIG_IP_NOSR) [Y/n/?]
    - YES : CHAUDEMENT recommandé pour une sécurité réseau de base

  * Network device support (CONFIG_NETDEVICES) [Y/n/?]
    - YES : Permet d'utiliser la sous couche réseau de Linux

  * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] 
    - YES : Bien qu'optionnelle, cette fonctionnalité peut aider en cas de problèmes

  * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] 
    - YES : Requise pour permettre d'autoriser le systeme de relayage
</verb></tscreen>

NOTE~: Voici juste les composants qu'il faut pour que l'IP Masquerade marche,
sélectionnez les options spécifiques dont vous avez besoin pour votre système.

<itemize>
<item>
Après avoir compilé le noyau, vous devriez compiler et installer les modules~:

<tscreen><verb>
make modules; make modules_install
</verb></tscreen>

<item>
Ensuite, ajoutez quelques lignes dans votre <tt>/etc/rc.d/rc.local</> pour
charger le script de configuration de l'IP MASQ automatiquement a chaque
démarrage~:

<tscreen>
<verb>
        .
        .
        .
	# script rc.firewall - Démarre l'IP MASQ et le firewall
	/etc/rc.d/rc.firewall
        .
        .
        .
</verb>
</tscreen>

</itemize>



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Assignation d'adresse IP pour le réseau local
<p>
Puisque toutes les machines <bf>INTERNES MASQUÉES</> ne doivent pas
d'adresse IP officielle, il doit y avoir une manière spécifique et générale
de leur en allouer sans entrer en collisions avec l'adresse IP de quelqu'un
d'autre.

Selon la FAQ originelle d'IP Masquerade~:

Le document officiel qui indique quelles adresses IP assigner à un réseau
non connecté ou "privé" est la <htmlurl
url="http://www.cis.ohio-state.edu/htbin/rfc/INDEX.rfc.html" name="RFC
1918">. Il existe 3 plages réservées spécialement à cet effet.

<tscreen><verb>
Section 3~: Adressage de réseaux privés

L' "Internet Assigned Numbers Authority" (IANA) a réservé les 3 plages
suivantes pour leur utilisation par 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

Nous ferons référence à la première en tant que la "plage de 24 bits", la
deuxième comme "plage de 20 bits" et la troisième comme "plage de 16 bits".
Notez que la première plage n'est rien d'autre qu'un réseau de classe A, la
deuxième un ensemble de 16 réseaux de classe B contigus, et la troisième un
ensemble de 255 réseaux de classe C contigus.
</verb></tscreen>

Pour la petite histoire, ma préférence va au réseau 192.168.0.0 avec le
masque de sous réseau de classe C 255.255.255.0, et ce HOWYO reflete
cela. Bien sur, n'importe quel réseau privé décrit ci dessus est valide,
tant que vous utilisez le bon masque de sous réseau.

Ainsi, si vous utilisez un réseau de classe C, vous devrez utiliser les
adresses IP 192.168.0.1, 1.92.168.0.2, 1.92.168.0.3, ..., 192.168.0.x

192.168.0.1 est habituellement la machine passerelle, qui est ici votre
machine Linux se connectant à Internet. Remarquez que 192.168.0.0 et
192.168.0.255 sont respectivement les adresses de réseau et de broadcast
(ces adresses sont RÉSERVÉES). Évitez d'utiliser ces adresses sur vos
machines ou votre réseau ne fonctionnera pas correctement.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Configurer les règles d'IP Forwarding

<p>
A ce point du document, vous devriez avoir votre noyau et les autres
packages installés. De plus, les adresses IP, la passerelle, et le DNS
devraient être installés sur votre serveur MASQ. Si vous ne savez pas
comment configurer votre carte réseau, référez vous aux sections <ref
id="2.0.x-Requirements"> ou <ref id="2.2.x-Requirements">


Maintenant, la seule chose à faire est de configurer l'outil de firewalling
IP (ipfwadm) pour faire suivre / masquer les paquets appropriés à la machine
qui convient~:

<p>

<quote>
** Ceci peut être fait de diverses façons. Les suggestions et
exemples suivants fonctionnent pour moi, mais il se peut que vous ayez
d'autres idées ou besoins.
</>


<quote><bf>
** Cette section ne fournis que les rudiments d'un firewall pour
faire marcher l'IP MASQ. Une fois que l'IP MASQ a été suffisamment testé
(comme décrit plus loin dans ce HOWTO), référez vous aux section <ref
id="Strong-IPFWADM-Rulesets"> et/ou <ref id="Strong-IPCHAINS-Rulesets"> pour
des regles plus sécurisées. En plus, allez lire les mages man d'IPFWADM
(2.0) te IPCHAINS (2.2) pour plus de détails.
</></quote>



<p>



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="rc.firewall-2.0.x"><sect2> Noyaux Linux 2.0.x
<p>


Créez le fichier <tt>/etc/rc.d/rc.firewall</> avec l'exemple SIMPLE qui
suit~:

<tscreen>
<verb>
#!/bin/sh
#
# rc.firewall - exemple SIMPLE de configuration IP MASQ pour les noyaux 2.0 avec IPFWADM
#
# Charge tous les modules MASQ requis
#
# NOTE : Ne chargez que les modules dont vous avez besoin. Tous les modules IP MASQ
#        disponibles sont cités ci dessous, mais sont mis en commentaires.

# Necessaire pour charger les modules
#
/sbin/depmod -a

# Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT.
#
/sbin/modprobe ip_masq_ftp

# Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA,
# mais en mode TCP. Cela peut causer une réduction dans la qualité du son.
#
#/sbin/modprobe ip_masq_raudio

# Supporte le masquerading des transferts IRC DCC.
#
#/sbin/modprobe ip_masq_irc

# Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous avez
# plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, II et
# III, utilisez le deuxieme exemple.
#
#Quake I / QuakeWorld (ports 26000 et 27000)
#/sbin/modprobe ip_masq_quake
#
#Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960

# Supporte le masquerading du systeme de visioconférences CuSeeMe
#
#/sbin/modprobe ip_masq_cuseeme

# Supporte le masquerading du systeme de visioconférences VDO Live
#
#/sbin/modprobe ip_masq_vdolive


# CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le
#            noyau 2.0.34
#
# Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network de :
#
#                       FORWARD_IPV4=false  
#                             à
#                       FORWARD_IPV4=true
#
echo "1" > /proc/sys/net/ipv4/ip_forward

# Utilisateurs d'IP dynamiques :
#
# Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option
# suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP
# dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien plus
# facile.
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#  160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ)
#
/sbin/ipfwadm -M -s 7200 10 160


# DHCP : Pour Ceux qui recoivent leur IP externe d'un serveur soit DHCP soit BOOTP comme
#        les utilisateurs d'ADSL ou du Câble, Il est nécessaire d'utiliser la commande
#        suivante avant le deny. Le "bootp_client_net_if_name" doit être remplacé par le
#        nom de l'interface qui recevra son IP du serveur DHCP/BOOTP. Cela devrais être
#        quelque chose comme "eth0", "eth1", etc.
#
#        Cet exemple est pour l'instant commenté.
#
#
#/sbin/ipfwadm -I -a accept -S 0/0 67 -D 0/0 68 -W bootp_clients_net_if_name -P udp


# Permettre un forwarding et masquerading IP simple
#
# NOTE : L'exemple suivant est un exemple pour un réseau dont les adresses sont dans le
#        réseau 192.168.0.0 avec le masque de sous réseau 255255.255.0, ou 24 bits.
#
#        Changez ces paramètres pour prendre en compte votre configuration locale.
#
/sbin/ipfwadm -F -p deny
/sbin/ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0
</verb>
</tscreen>

Une fois que vous avez terminé d'éditer votre <tt>/etc/rc.d/rc.firewall</>,
rendez le executable en tapant "<tt>chmod 700 /etc/rc.d/rc.firewall</>".

Vous pouvez aussi autoriser l'IP MASQ par machine et non en autorisant tout
le réseau. Par exemple, vous pourriez vouloir que seules les machines
192.168.0.2 et 192.168.0.8 aient accès a internet, et pas les autres
machines. Il suffit de changer la section "Permettre un forwarding et
masquerading IP simple" (ci dessus) du fichier <tt>/etc/rc.d/rc.firewall</>.

<tscreen>
<verb>
# Permettre un forwarding et masquerading IP simple
#
# NOTE : L'exemple suivant est un exemple qui autorise le MASQ pour uniquement les
#        machines 192.168.0.2 et 192.168.0.6.
#
#        Utilisez l'exemple ci dessous pour spécifier les machines ayant le droit
#        d'accéder a internet. n'oubliez pas de l'adapter a votre configuration.
#
/sbin/ipfwadm -F -p deny
/sbin/ipfwadm -F -a m -S 192.168.0.2/32 -D 0.0.0.0/0
/sbin/ipfwadm -F -a m -S 192.168.0.8/32 -D 0.0.0.0/0
</verb>
</tscreen>

Il semble que l'erreur la plus courante soit de faire de la police par
défaut le masquerading en tapant~:
<verb>
ipfwadm -F -p masquerade
</verb>

<bf>NE FAITE PAS</> de votre configuration par défaut le MASQ. Autrement,
quelqu'un de mal intentionné pourrais manipuler ses tables de routage pour
créer un tunnel a travers votre passerelle, utilisant le masquerading pour
masquer sa propre identité~!

Encore une fois, vous pouvez ajouter au fichier
<tt>/etc/rc.d/rc.firewall</>, ou l'un des autres fichiers rc, ou même les
taper a la main a chaque fois que vous en avez besoin.

Allez faire un tour dans les sections <ref id="Strong-IPFWADM-Rulesets"> et
<ref id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement
de règles plus strictes.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="rc.firewall-2.2.x"><sect2> Noyaux Linux 2.2.x
<p>

Notez que <bf>IPFWADM n'est plus l'outil de firewall a utiliser</> pour
manipuler les regles d'IP MASQ pour les noyaux 2.1 et 2.2. Ces noyaux
utilisent le nouvel outil IPCHAINS. Pour plus de détails sur les raisons de
ce changement, référez vous a la <ref id="FAQ">.

Créez le fichier <tt>/etc/rc.d/rc.firewall</> avec les règles suivantes~:

<tscreen>
<verb>
#!/bin/sh
#
# rc.firewall - exemple SIMPLE de configuration IP MASQ pour les noyaux 2.1 et 2.2 avec
#               IPFWADM
#
# Charge tous les modules MASQ requis
#
# NOTE : Ne chargez que les modules dont vous avez besoin. Tous les modules IP MASQ
#        disponibles sont cités ci dessous, mais sont mis en commentaires.

# Necessaire pour charger les modules
#
/sbin/depmod -a

# Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT.
#
/sbin/modprobe ip_masq_ftp

# Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA,
# mais en mode TCP. Cela peut causer une réduction dans la qualité du son.
#
#/sbin/modprobe ip_masq_raudio

# Supporte le masquerading des transferts IRC DCC.
#
#/sbin/modprobe ip_masq_irc


# Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous avez
# plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, II et
# III, utilisez le deuxieme exemple.
#
#Quake I / QuakeWorld (ports 26000 et 27000)
#/sbin/modprobe ip_masq_quake
#
#Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960

# Supporte le masquerading du systeme de visioconférences CuSeeMe
#
#/sbin/modprobe ip_masq_cuseeme

# Supporte le masquerading du systeme de visioconférences VDO Live
#
#/sbin/modprobe ip_masq_vdolive


# CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le
#            noyau 2.0.34
#
# Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network de :
#
#                       FORWARD_IPV4=false  
#                             à
#                       FORWARD_IPV4=true
#
echo "1" > /proc/sys/net/ipv4/ip_forward


# Utilisateurs d'IP dynamiques :
#
# Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option
# suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP
# dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien plus
# facile.
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#  160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ)
#
/sbin/ipchains -M -S 7200 10 160


# DHCP : Pour Ceux qui recoivent leur IP externe d'un serveur soit DHCP soit BOOTP comme
#        les utilisateurs d'ADSL ou du Câble, Il est nécessaire d'utiliser la commande
#        suivante avant le deny. Le "bootp_client_net_if_name" doit être remplacé par le
#        nom de l'interface qui recevra son IP du serveur DHCP/BOOTP. Cela devrais être
#        quelque chose comme "eth0", "eth1", etc.
#
#        Cet exemple est pour l'instant commenté.
#
#/sbin/ipchains -A input -j ACCEPT -i bootp_clients_net_if_name -s 0/0 67 -d 0/0 68 -p udp

# Permettre un forwarding et masquerading IP simple
#
# NOTE : L'exemple suivant est un exemple pour un réseau dont les adresses sont dans le
#        réseau 192.168.0.0 avec le masque de sous réseau 255255.255.0, ou 24 bits.
#
#        Changez ces paramètres pour prendre en compte votre configuration locale.
#
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ
</verb></tscreen>

Une fois que vous avez terminé d'éditer votre <tt>/etc/rc.d/rc.firewall</>,
rendez le executable en tapant "<tt>chmod 700 /etc/rc.d/rc.firewall</>".

Vous pouvez aussi autoriser l'IP MASQ par machine et non en autorisant tout
le réseau. Par exemple, vous pourriez vouloir que seules les machines
192.168.0.2 et 192.168.0.8 aient accès a internet, et pas les autres
machines. Il suffit de changer la section "Permettre un forwarding et
masquerading IP simple" (ci dessus) du fichier <tt>/etc/rc.d/rc.firewall</>.

<tscreen><verb>
# Permettre un forwarding et masquerading IP simple
#
# NOTE : L'exemple suivant est un exemple qui autorise le MASQ pour uniquement les
#        machines 192.168.0.2 et 192.168.0.6.
#
#        Utilisez l'exemple ci dessous pour spécifier les machines ayant le droit
#        d'accéder a internet. n'oubliez pas de l'adapter a votre configuration.
#
/sbin/ipchains -P forward deny
/sbin/ipchains -A forward -s 192.168.0.2/32 -j MASQ
/sbin/ipchains -A forward -s 192.168.0.8/32 -j MASQ
</verb></tscreen>

Il semble que l'erreur la plus courante soit de faire de la police par
défaut le masquerading en tapant~:

<tscreen><verb>/sbin/ipchains -P forward masquerade</verb></tscreen>

<bf>NE FAITE PAS</> de votre configuration par défaut le MASQ. Autrement,
quelqu'un de mal intentionné pourrais manipuler ses tables de routage pour
créer un tunnel a travers votre passerelle, utilisant le masquerading pour
masquer sa propre identité~!

Encore une fois, vous pouvez ajouter au fichier
<tt>/etc/rc.d/rc.firewall</>, ou l'un des autres fichiers rc, ou même les
taper a la main a chaque fois que vous en avez besoin.

Allez faire un tour dans les sections <ref id="Strong-IPFWADM-Rulesets"> et
<ref id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement
de règles plus strictes, référez vous aussi au <htmlurl
url="http://www.freenix.org/unix/linux/HOWTO/IPCHAINS-HOWTO.html"
name="Linux IP CHAINS HOWTO">




<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Configurer les autres machines MASQuées internes
<p>
En plus d'affecter les adresses IP pour chaque machine MASQuée, vous devrez
indiquer la bonne adresse de la passerelle et le bon serveur DNS. En
général, c'est plutôt simple. Vous entrez juste l'adresse de votre machine
Linux (généralement 192.168.0.1) en tant qu'adresse de passerelle.

Pour le DNS, vous pouvez utiliser n'importe quel DNS qui soit utilisable. Le
plus simple est d'utiliser celui qu'utilise votre serveur Linux. Vous pouvez
aussi, si vous le désirez, ajouter des "suffixes d'ordre de recherche" DNS.

Après avoir correctement configurées ces adresses IP, n'oubliez pas de
relancer leurs services réseaux, ou de les rebooter.

Les instructions de configuration qui suivent supposent que vous utilisez un
réseau de classe C, et que votre machine Linux a pour adresse
192.168.0.1. Notez que 192.168.0.0 et 192.168.0.255 sont des adresses TCP/IP
réservées.

Au jour d'aujourd'hui, les plates formes suivantes ont été testés comme
machine MASQuées.

<itemize>
<item>
Linux 1.2.x, 1.3.x, 2.0.x, 2.1.x, 2.2.x

<item>
Solaris 2.51, 2.6, 7

<item>
Windows 95, OSR2, 98

<item>
Windows NT 3.51, 4.0, 2000 (workstation et server)  

<item>
Windows For Workgroup 3.11 (avec le paquetage TCP/IP)

<item>
Windows 3.1 (avec ke paquetage Netmanage Chameleon)

<item>
Novell 4.01 Server avec le service TCP/IP

<item>
OS/2 (Warp v3 inclu)

<item>
Macintosh OS (avec MacTCP ou Open Transport)

<item>
DOS (avec le paquetage NCSA Telnet, DOS Trumpet fonctionne partiellement)

<item>
Amiga (avec AmiTCP ou AS225-stack)

<item>
Les VAX 3520 et 3100 avec UCX (la pile TCP/IP pour VMS)

<item>
Alpha/AXP avec Linux RedHat

<item>
SCO Openserver (v3.2.4.2 et 5)

<item>
IBM RS/6000 avec AIX

</itemize>



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Configurer Microsoft Windows 95
<p>
<enum>
<item>
Si vous n'avez pas installé votre carte réseau et son driver, faites le
maintenant. La description de cela dépasse le cadre de ce document.

<item>
Allez dans le <em>'Panneau de configuration'</> --> <em>'Réseau'</>.

<item>
Cliquez sur <em>'Ajouter'</> --> <em>'Protocole'</> --> <em>'Constructeur~:
Microsoft'</> --> <em>'Protocole~: TCP/IP'</> si vous ne l'avez pas déjà.

<item>
Sélectionnez le TCP/IP lié a votre carte réseau et cliquez sur
<em>'Propriétés'</>. Allez maintenant dans l'onglet <em>'adresse IP'</> et
mettez comme adresse IP 192.168.0.x (1 &lt; x &lt; 255). Fixez le <em>'Masque
de sous réseau'</> à 255.255.255.0

<item>
Maintenant, allez dans l'onglet <em>'Passerelle'</>, Entrez 192.168.0.1
comme passerelle et cliquez sur <em>'Ajouter'</>.

<item>
Dans l'onglet <em>'Configuration DNS'</>, assurez vous de bien avoir mis un
nom pour cette machine et entré votre nom de domaine officiel. Si vous
n'avez pas de nom de domaine, mettez celui de votre FAI. Maintenant, ajoutez
tous les serveurs DNS qui sont configurés sur votre machine Linux (on les
trouve dans le fichier <tt>/etc/resolv.conf</>). D'habitude, ces serveurs
DNS sont situés chez votre FAI, mais il se peut que vous en aviez un en
local pour faire soit votre propre cache ou serveur DNS autoritaire. Vous
pouvez aussi ajouter quelques domaines de recherche.

<item>
Laissez les autres paramètres tels quels, à moins que vous sachiez ce que vous
faites.

<item>
Cliquez sur <em>'OK'</> dans toutes les boîtes de dialogue et relancez le
système.

<item>
<tt>Ping</>uez la machine Linux pour tester la connexion réseau~:
<em>'Démarrer'</> --> <em>'Exécuter'</>, tapez: <tt>ping 192.168.0.1</>
(C'est seulement un test de connexion locale, vous ne pouvez pas encore
<tt>ping</>uer l'extérieur). Si vous ne voyez pas de réponses a vos pings,
vérifiez votre configuration réseau.

<item>
Vous pouvez éventuellement créer un fichier <tt>HOSTS</> dans le répertoire
<tt>c:\windows</>, pour que vous puissiez utiliser les noms d'hôtes des
autres machines de votre réseau local sans recourir a un serveur dns. Il y
a un exemple nommé <tt>HOSTS.SAM</> dans le répertoire <tt>c:\windows</>.
</enum>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Configurer Windows NT
<p>
<enum>

<item>
Si vous n'avez pas encore installé votre carte réseau et son driver, faites
le maintenant. La description de cela dépasse le cadre de ce document.

<item>
Allez dans le <em>'Panneau de configuration'</> --> <em>'Réseau'</>.

<item>
Ajoutez le protocole TCP/IP et les composants qui s'y rattachent depuis le
menu <em>'Ajout de logiciels'</> si vous n'avez pas encore installé le
service TCP/IP.

<item>
Dans la section <em>'Logiciel et carte réseau'</>, sélectionnez le
<em>'Protocole TCP/IP'</> dans la boite de choix <em>'Logiciels réseaux
installés'</>.

<item>
Dans <em>Configuration TCP/IP</>, sélectionnez l'adaptateur réseau
appropriées, par exemple <tt>[1]Novell NE2000 Adapter</>. Entrez l'adresse
IP 192.168.0.x (1 &lt; x &lt; 255), positionnez le masque de sous réseau sur
255.255.255.0 et la passerelle par défaut à 192.168.0.1.

<item>
Ne sélectionnez pas <em>'Configuration automatique DHCP'</>, mettez
n'importe quoi dans la case <em>'Serveur WINS'</>, et <em>'Autorisez le
relayage de paquets'</> à moins que vous ne fassiez partie d'un domaine
Windows NT et que vous sachiez EXACTEMENT ce que vous faites.

<item>
Cliquez sur <em>'DNS'</>, et remplissez les informations
appropriés, maintenant, ajoutez tous les serveurs DNS qui sont configurés sur
votre machine Linux (on les trouve dans le fichier
<tt>/etc/resolv.conf</>). Cliquez sur <em>'OK'</> une fois que c'est fini.

<item>
Cliquez sur <em>'Configuration avancée'</>, décochez <em>'Utiliser le DNS
pour la résolution de noms'</>, et cochez <em>'Utiliser LMHOSTS'</>, a moins
que vous sachiez ce que font ces options. Si vous voulez utiliser un fichier
<tt>LMHOSTS</>, il est situé dans <tt>C:\winnt\system32\drivers\etc</>.

<item>
Cliquez alors sur <em>'OK'</> sur toutes les boites de dialogue, et redémarrez
le système.

<item>
<tt>Ping</>ez la machine Linux pour tester la connexion réseau~:
<em>'Fichier'</> --> <em>'Exécuter'</>, taper~: <tt>ping 192.168.0.1</>
(C'est juste un test de connexion locale, vous ne pouvez pas encore
<tt>ping</>er le monde extérieur). Si vous ne voyez pas de réponses a vos
pings, vérifiez votre configuration réseau.
</enum>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1>  Configurer Windows pour Workgroup 3.11
<p>
<enum>

<item> Si vous n'avez pas encore installé votre carte réseau et son driver,
faites le maintenant. La description de cela dépasse le cadre de ce
document.

<item>Installez le package TCP/IP 32b si ce n'est pas déjà fait.

<item>
Dans <em>'Groupe Principal'</> --> <em>'Installation'</> -->
<em>'Configuration réseau'</>, cliquez sur <em>'Drivers'</>.

<item>
Sélectionnez <em>'Microsoft TCP/IP-32 3.11b'</> dans la section <em>'Drivers
Réseaux'</>. Choisissez <em>Configuration</>.

<item>
Saisissez l'adresse IP 192.168.0.x (1 &lt; x &lt; 255), et positionnez le
masque de sous réseau à 255.255.255.0 et la passerelle par défaut à
192.168.0.1.

<item>
Ne sélectionnez pas <em>'Configuration automatique DHCP'</> ou mettez
n'importe quoi dans la case <em>'Server WINS'</>, à moins que vous ne
fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous
faites.

<item>
Cliquez sur <em>'DNS'</>, et remplissez les informations appropriés, ajoutez
tous les serveurs DNS qui sont configurés sur votre machine Linux (on les
trouve dans le fichier <tt>/etc/resolv.conf</>). Cliquez sur <em>'OK'</> une
fois que c'est fini.

<item>
Cliquez sur <em>'Configuration avancée'</>, cochez <em>'Utiliser le DNS pour
la résolution de noms'</>, et <em>'Utiliser LMHOSTS'</> situé dans
<tt>c:\windows</>.

<item>
Cliquez alors sur <em>'OK'</> sur toutes les boites de dialogue, et
redémarrez le système.

<item>
<tt>Ping</>ez la machine Linux pour tester la connexion réseau~:
<em>'Fichier'</> --> <em>'Exécuter'</>, taper~: <tt>ping 192.168.0.1</>
(C'est juste un test de connexion locale, vous ne pouvez pas encore
<tt>ping</>er le monde extérieur. Si vous ne voyez pas de réponses a vos
pings, vérifiez votre configuration réseau.
</enum>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Configurer les systèmes UNIX
<p>
<enum>

<item>
Si vous n'avez pas encore installé votre carte réseau et recompilé votre
noyau avec le driver adéquat, faites le maintenant. La description de cela
dépasse le cadre de ce document.

<item>
Installez des outils TCP/IP, comme par exemple le package net-tools, si ce
n'est déjà fait.

<item>
Affectez <em>IPADDR</> à 192.168.0.x (1 &lt; x &lt; 255), puis
<em>NETMASK</> à 255.255.255.0, <em>GATEWAY</> à 192.168.0.1 et
<em>BROADCAST</> à 192.168.0.255.

Par exemple, sur les systèmes RedHat Linux, vous pouvez éditer le fichier
<tt>/etc/sysconfig/network-scripts/ifcfg-eth0</>, ou simplement le faire par
l'intermédiaire du <em>Control Panel</>. C'est différent sur d'autres unices
comme SunOS, BSDi, Slackware Linux, Solaris, SuSe, Debian, etc. Référez vous
a la documentation de votre unix pour plus d'informations.

<item>
Ajoutez l'adresse IP de votre DNS et votre ordre de recherche DNS dans
<tt>/etc/resolv.conf</>. Et pour certaines versions d'unix, éditez votre
<tt>/etc/nsswitch.conf</> pour autoriser le service DNS.

<item>
Il sera éventuellement nécessaire de mettre à jout le fichier
<tt>/etc/networks</>, selon votre configuration.

<item>
Redémarrez les services adéquats, ou, plus simplement, redémarrez votre
système.

<item>
Testez votre connexion avec la passerelle en utilisant la commande
<tt>ping</>~: <tt>ping 192.168.0.1</>. Ceci est juste un test sur votre
réseau local, vous ne pouvez pas encore <tt>ping</>er l'extérieur. Si vous
ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau.
</enum>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Configuration sous DOS avec le package NCSA
<p>
<enum>
<item>
Si vous n'avez pas encore installé votre carte réseau, faites le
maintenant. La description de cela dépasse le cadre de ce document.

<item>
Chargez le driver adéquat. Par exemple, si vous utilisez une carte ethernet
NE2000 configurée pour utiliser le port d'E/S 0x300 et l'IRQ 10, tapez
<tt>nwpd 0x60 10 0x300</>.

<item>
Créez un nouveau répertoire, et décompressez-y l'archive NCSA Telnet~:
<tt>pkunzip tel2308b.zip</>

<item>
Utilisez un éditeur de texte pour ouvrir le fichier <tt>config.tel</>.

<item>
Affectez <tt>myip=192.168.0.x</> (1 &lt; x &lt; 255), et
<tt>netmask=255.255.255.0</>.

<item>
Dans cet exemple, vous auriez à régler <tt>hardware=packet, interrupt=10,
ioaddr=60</>.

<item>
Vous devriez avoir au moins une seule machine déclarée comme passerelle, à
savoir la machine sous Linux~:

<tscreen><verb>
name=default
host=le_nom_de_votre_hote_linux
hostip=192.168.0.1
gateway=1
</verb></tscreen>

<item>
Pour mettre en place le DNS~:
<tscreen><verb>
name=dns.domain.com~; hostip=123.123.123.123; nameserver=1
</verb></tscreen>
NB: remplacez les champs par les informations qu'utilise votre machine
Linux.

<item>
Sauvegardez votre nouveau fichier <tt>config.tel</>.

<item>
Lancez un telnet vers la machine Linux pour tester la connexion réseau~:
<tt>telnet 192.168.0.1</>. Si vous n'obtenez pas un prompt de login,
Vérifiez votre configuration réseau.
</enum>

<!-- - - - - - - - - - - - - - - - - - -->
<sect1>Configuration des systèmes MacOS utilisant MacTCP
<p>
<enum>
<item>
Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça
serait une excellente idée de le faire maintenant. La description de cela
dépasse le cadre de ce document.

<item>
Ouvrez le <em>'Tableau de bord MacTCP'</>. Selectionnez le driver réseau
adapté (Ethernet, PAS EtherTalk) et cliquez sur le bouton.

<item>
Dans la section <em>'Obtenir l'adresse'</>, sélectionnez
<em>'Manuellement'</>.

<item>
Dans <em>'Adresse IP'</>, choisissez <em>'class C'</> dans le menu
déroulant. Vous pouvez ignorer le reste de cette boite de dialogue.

<item>
Remplissez la section <em>'Information DNS'</> avec les informations qui
conviennent.

<item>
Dans <em>'Adresse de la passerelle'</>, entrez 192.168.0.1.

<item>
Cliquez sur <em>'OK'</> pour sauvegarder les changements. Dans la fenêtre
principale du <em>'Tableau de bord MacTCP'</>, entrez l'adresse IP de votre
Mac (192.168.0.x, 1 < x < 255) dans la zone <em>'Adresse IP'</>.

<item>
Refermez le <em>'Tableau de bord MacTCP'</>. Si une boite de dialogue vous
demande de redémarrer le système, faites le.

<item>
Vous pouvez si vous le désirez <tt>ping</>er l'hôte Linux pour tester la
connexion réseau. Si vous avez le programme freeware <em>'MacTCP
Watcher'</>, cliquez sur le bouton <em>Ping</> et entrez l'adresse de votre
hôte Linux (192.168.0.1) dans la boîte de dialogue qui apparait. (C'est
uniquement une connexion locale, vous ne pouvez pas encore <tt>ping</>er
l'extérieur). Si vous ne voyez pas de réponses a vos pings, vérifiez votre
configuration réseau.

<item>
Vous pouvez, si vous le désirez, créer un fichier <tt>Hosts</> dans votre
dossier système, pour pouvoir utiliser les noms d'hôte des machines de votre
réseau local. Le fichier devrait déjà exister dans votre dossier système, et
contenir quelques exemples commentés, que vous n'avez qu'à modifier pour
correspondre à vos besoins.
</enum>

<!-- - - - - - - - - - - - - - - - - - -->
<sect1> Configuration des systèmes MacOS utilisant Open Transport 
<p>
<enum>
<item>
Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça
serait une excellente idée de le faire maintenant. La description de cela
dépasse le cadre de ce document.

<item>
Ouvrez le <em>'Tableau de bord TCP/IP'</> et choisissez <em>'Mode
utilisateur...'</> dans le menu <em>'Edition'</>. Assurez nous que le mode
utilisateur est mis au niveau <em>'Avancé'</> et cliquez sur le bouton
<em>'OK'</>.

<item>
Choisissez <em>'Configurations...'</> depuis le menu
<em>'Fichier'</>. Sélectionnez la configuration <em>'Par défaut'</> et
cliquez sur le bouton <em>'Recopier'</>. Entrez 'IP Masq' (ou quelque chose
d'autre du moment que vous puissiez etre sur qu'il s'agit d'une
configuration spéciale) dans la boite de dialogue <em>'Configuration de
copie'</>. Cliquez sur le bouton <em>'OK'</> puis sur <em>'Rendre
active'</>.

<item>
Sélectionnez <em>'Ethernet'</> depuis le menu <em>'Se connecter via...'</>.

<item> Sélectionnez l'option qui convient dans le menu
<em>'Configuration'</>. Si vous ne savez pas quelle option choisir, vous
devriez sans doute resélectionner la configuration par défaut et quitter. Je
choisis <em>'Manuellement'</>.

<item>
Saisissez l'adresse IP de votre Mac (192.168.0.x, 1 < x < 255) dans la zone
<em>'Adresse IP'</>.

<item>
Mettez le <em>'Masque de sous réseau'</> à 255.255.255.0.

<item>
L'<em>'Adresse de routeur'</> est 192.168.0.1.

<item>
Remplissez la case <em>'Adresse du DNS'</> en y mettant votre adresse IP.

<item>
Entrez le nom de votre domaine Internet (par exemple 'microsoft.com') dans
la boite de dialogue <em>'Ordre de recherche DNS'</>.

<item> La procédure suivante est optionnelle. L'utilisation de valeurs
incorrectes peut entrainer des comportements inattendus. Si vous ne savez
pas ce que vous faites, il vaut mieux ne pas y toucher, et si nécessaire
vider les cases et zones de sélection. Pour ce que j'en sais, il n'est pas
possible, par l'intermédiaire des boites de dialogue, de demander au système
de ne pas utiliser un fichier "Hosts" sélectionné précédemment. Si vous
saviez comment faire, je serais très intéressé.

Sélectionnez l'option <em>'802.3'</> si votre réseau nécessite des paquets
de type 802.3.

<item>
Cliquez sur le bouton <em>'Options...'</> pour vous assurer que le TCP/IP
est activé. J'utilise l'option <em>'Charger uniquement si besoin'</>. Si
vous lancez et quittez des applications utilisant TCP/IP assez souvent, sans
relancer votre machine, vous pourrez sans doute désélectionner <em>'Charger
uniquement si besoin'</> pour diminuer les effets sur le gestionnaire
mémoire de votre machine. Lorsque l'option est désélectionnée, les piles du
protocole TCP/IP sont toujours en mémoire et prêtes à l'emploi. Si l'option
est cochée, la pile TCP/IP est automatiquement chargée lorsqu'elle est
nécessaire, et déchargée sinon. Le processus de la charger et la décharger
en mémoire peut fragmenter la mémoire de votre ordinateur.

<item>
<tt>Ping</>ez la machine Linux pour tester la connexion réseau. Si vous avez
le programme freeware <em>MacTCP Watcher</>, cliquez sur le bouton
<em>'Ping'</>, et entrez l'adresse de votre machine Linux (192.168.0.1) dans
la boite de dialogue qui apparait. (C'est une connexion locale, vous ne
pouvez pas encore <tt>ping</>er l'extérieur). Si vous ne voyez pas de
réponses a vos pings, vérifiez votre configuration réseau.

<item>
Vous pouvez aussi créer un fichier <tt>Hosts</> dans votre dossier Système,
pour pouvoir utiliser les noms d'hotes de votre réseau local. Le fichier
peut exister ou non dans votre dossier Système. Si c'est le cas, il devrait
contenir des exemples (en commentaires) que vous pouvez modifier selon vos
souhaits. Sinon, vous pouvez obtenir une copie d'un système utilisant
MacTCP, ou juste créer le votre (cela ressemble fortement au fichier
<tt>/etc/hosts</> sur un système Unix, qui est décrit dans la RFC 952). Une
fois le fichier créé, ouvrez le <em>'Tableau de bord TCP/IP'</>, cliquez sur
le bouton <em>'Sélectionner le fichier Hosts...'</>, et ouvrez le fichier
<tt>Hosts</>.

<item>
Cliquez sur <em>'Fermer'</> ou choisissez <em>'Fermer'</> ou
<em>'Quitter'</> depuis le menu <em>'Fichier'</>, et cliquez alors sur le
bouton <em>'Enregistrer'</> pour enregistrer vos changements.

<item>
Les changements prennent effet immédiatement, mais cela ne fera pas de mal de
rebouter le système.
</enum>


<!-- - - - - - - - - - - - - - - - - - -->
<sect1>Configurer un réseau Novell utilisant le DNS
<p>
<enum>
<item>
Si vous n'avez pas encore installé le gestionnaire de périphérique de votre
adaptateur Ethernet, faites le dès maintenant. La description de cela
dépasse le cadre de ce document.

<item>
Téléchargez tcpip16.exe depuis <url
url="ftp://ftp.novell.com/pub/updates/unixconn/lwp5" name="The Novell LanWorkPlace
page">

<item>
Editez <tt>c:&bsol;nwclient&bsol;startnet.bat</> (voici une copie du mien)~:
<verb>
SET NWLANGUAGE=ENGLISH
LH LSL.COM
LH KTC2000.COM
LH IPXODI.COM
LH tcpip
LH VLM.EXE
F:
</verb>

<item>
Editez <tt>c:&bsol;nwclient&bsol;net.cfg</> (changez le <tt>Link drivers</>,
NE2000 dans mon cas)~:

<verb>
Link Driver KTC2000
        Protocol IPX 0 ETHERNET_802.3    
        Frame ETHERNET_802.3     
        Frame Ethernet_II        
        FRAME Ethernet_802.2

NetWare DOS Requester
           FIRST NETWORK DRIVE = F
           USE DEFAULTS = OFF
           VLM = CONN.VLM
           VLM = IPXNCP.VLM
           VLM = TRAN.VLM
           VLM = SECURITY.VLM
           VLM = NDS.VLM
           VLM = BIND.VLM
           VLM = NWP.VLM
           VLM = FIO.VLM
           VLM = GENERAL.VLM
           VLM = REDIR.VLM
           VLM = PRINT.VLM
           VLM = NETX.VLM

Link Support
        Buffers 8 1500
        MemPool 4096

Protocol TCPIP
        PATH SCRIPT     C:\NET\SCRIPT
        PATH PROFILE    C:\NET\PROFILE
        PATH LWP_CFG    C:\NET\HSTACC
        PATH TCP_CFG    C:\NET\TCP
        ip_address      192.168.0.xxx
        ip_router       192.168.0.1

</verb>

<item>
Changez l'adresse IP dans le champ <em>'ip_address'</> (192.168.0.x, 1 &lt;
x &lt; 255) et finalement, créez <tt>c:&bsol;bin&bsol;resolv.cfg</>~:

<verb>
SEARCH DNS HOSTS SEQUENTIAL
NAMESERVER xxx.xxx.xxx.xxx
NAMESERVER yyy.yyy.yyy.yyy
</verb>

<item>
Maintenant, éditez les entrées <em>'NAMESERVER'</> et remplacez les par
l'adresse ip de votre serveur DNS local.

<item>
Testez votre connexion avec la passerelle en utilisant la commande
<tt>ping</>~: <tt>ping 192.168.0.1</>. Ceci est juste un test sur votre
réseau local, vous ne pouvez pas encore <tt>ping</>er l'extérieur. Si vous
ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau.
</enum>

<!-- - - - - - - - - - - - - - - - - - -->
<sect1> Configurer OS/2 Warp
<p>
<enum>
<item>
Si vous n'avez toujours pas configuré votre adaptateur réseau Ethernet,
c'est le moment de le faire. La description de cela dépasse le cadre de ce
document.

<item>
Installez le protocole TCP/IP s'il n'est pas déjà présent.

<item>
Allez dans les paramètres <em>'Programs/TCP/IP(LAN)/TCP/IP'</>

<item>
Dans <em>'Network'</>, ajoutez votre adresse TCP/IP (192.168.0.x) et
configurez votre masque de sous réseau (255.255.255.0)

<item>
Dans <em>'Routing'</> cliquez sur <em>'Ajouter'</>. Sélectionnez
<em>'default'</> pour le <em>Type</> and entrez l'adresse de votre machine
Linux dans le champs <em>'Router Address'</> (192.168.0.1).

<item>
Utilisez la même adresse DNS (Serveur de noms) que celle de votre machine
Linux.

<item>
Fermez le panneau de contrôle de TCP/IP. Répondez oui au (à la) question(s)
suivante(s).

<item>
Reboutez votre système.

<item>
Vous devriez être en mesure de <tt>ping</>er votre hôte Linux pour tester la
configuration réseau. Taper <tt>'ping 192.168.0.1'</> dans une boîte de
commande OS/2. Si vous recevez les paquets IP, tout fonctionne correctement.

</enum>

<!-- - - - - - - - - - - - - - - - - - -->
<sect1> Configurer les autres systèmes
<p>
Ces systèmes devraient suivre la même logique d'installation.  Lisez les
sections précédentes. Si vous êtes intéressés par l'écriture de la
documentation sur n'importe quel système, comme OS/2, ou une variété
quelconque de système Unix, envoyez s'il vous plait des instructions
détaillées à <htmlurl url="mailto:ambrose@writeme.com"
name="ambrose@writeme.com"> (Note du traducteur~: en anglais bien sûr).


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Tester IP Masquerade
<p>
<label id="Testing">
Enfin, il est temps de faire un vrai test de votre IP masquerading après
tout ce dur labeur. Si vous n'avez pas encore rebooté votre machine Linux,
faites le maintenant, et assurez vous que votre machine démarre sans
problèmes. Exécutez vos règles dans <tt>/etc/rc.d/rc.firewall</>. Ensuite,
assurez vous que votre réseau local fonctionne bien.

<p>
Maintenant, faites ce qui suit :
<p>
<enum>

<item>
Depuis une machine, interne MASQuée, essayez de <tt>ping</>er une machine
locale (par exemple~: <em>ping 192.168.0.10</>). C'est pour vérifier que
votre TCP/IP marche bien sur cette machine. Si cela ne marche pas, assurez
vous de bien avoir configuré le TCP/IP sur le PC MASQué comme décrit plus
haut dans ce HOWTO.

<item>
Sur le serveur MASQ, <tt>ping</>ez des adresses IP internes (par exemple~:
<em>ping 192.168.0.10</>). Maintenant, <tt>ping</>ez l'adresse IP externe
connectée a internet. Cette adresse IP devrais être votre adresse PPP,
Ethernet, etc. connectée a votre FAI. Si vous ne connaissez pas cette
adresse IP, lancez la commande <em>"/sbin/ifconfig"</em> depuis votre
serveur MASQ pour récupérer votre adresse Internet. Cela confirmera que le
serveur MASQ a une connectivité totale a Internet.

<item>
Revenez sur une machine MASQuée, et essayez de <tt>ping</>er l'adresse IP de
la carte Ethernet interne de votre serveur MASQ (par exemple~: <em>ping
192.168.0.1</>). Cela prouvera que le routage de votre réseau interne
marche. Si ça ne marche pas, assurez vous que la carte Ethernet de votre
serveur a bien le "link". C'est habituellement une diode qui est sur le
derriere de la carte Ethernet et aussi sur le hub/switch Ethernet (si vous
en utilisez un).

<item>
Depuis une machine MASQuée, <tt>ping</>ez l'adresse externe de votre serveur
MASQ que vous avez déjà testé dans l'item 2 ci dessus. Cette adresse IP
devrais être votre adresse PPP, Ethernet, etc. connectée a votre FAI. Ce
test de <tt>ping</> prouvera que votre masquerading marche (enfin, le
masquerading ICMP au moins). Si ça ne marche pas, assurez vous d'avoir bien
coché "ICMP Masquerading" dans la configuration de votre noyau et que vous
avez bien "IP Forwarding" dans votre <tt>/etc/rc.d/rc.firewall</>. Assurez
vous que les règles de votre <tt>/etc/rc.d/rc.firewall</> sont bien
chargées. Essayez de lancer le script <tt>/etc/rc.d/rc.firewall</>
manuellement pour vérifier qu'il fonctionne bien.


<p>
Si ça ne marche toujours pas, allez voir informations données par la sortie
des commandes suivantes~:

<itemize>
<item>
"<em>ifconfig</em>"~: Assurez vous que vous avez bien votre connexion
internet d'établie et que vous avez la bonne adresse IP pour votre connexion
internet.

<item>
"<em>netstat -rn</em>"~: Assurez vous que votre passerelle par défaut est
bien (la colonne avec une adresse IP en gateway)

<item>
"<em>cat /proc/sys/net/ipv4/ip_forward</em>"~: Assurez vous bien que ça
réponde "<tt>1</>" ce qui prouvera que l'ip forwarding est activé

<item>
"<em>/sbin/ipfwadm -F -l</em>" pour les 2.0 ou "<em>/sbin/ipchains -F
-L</em>" pour les 2.2.x~: Assurez vous de bien avoir le MASQ d'intégré
</itemize>

<item>
Pour une machine MASQuée, <tt>ping</>ez une adresse IP statique sur internet
(par exemple~: <em>ping 152.19.254.81</em> (c'est
<tt>http://metalab.unc.edu/</> maison du LDP). Si ça marche, cela signifie
que le masquerading ICMP marche via internet. Si cela n'a pas marché,
revérifiez votre connexion Internet. Si ça ne marche toujours pas, assurez
vous que les règles de votre rc.firewall sont bien chargées et que vous avec
compilé l'"ICMP Masquerading" dans votre noyau.

<item>
Maintenant, faites un TELNET sur une adresse IP distante (par exemple~:
<em>telnet 152.2.254.81</> (metalab.unc.edu - notez que cela peut prendre
longtemps avant d'avoir le prompt de login car c'est un serveur très
chargé). Vous avez eu le prompt de login~? Si ça a marché, cela signifie que
le masquerading TCP marche aussi. Si non, essayez de faire un telnet sur une
autre machine qui le supporte comme 198.182.196.55 (www.linux.org). Si ça ne
marche toujours pas, vérifiez que vous utilisez bien des règles simples pour
l'instant.

<item>
Maintenant, essayez de faire un telnet sur un nom de machine (par exemple~:
<em>"telnet metalab.unc.edu"</> (152.2.254.81)). Si ça marche aussi, cela
signifie que le DNS marche aussi. Si ça ne marche pas mais que l'étape 4 a
marchée, assurez vous de bien avoir configuré les bons serveurs DNS sur
votre ordinateur MASQué

<item>
Comme dernier test, essayez de naviguer sur quelques sites web sur
<em>'Internet'</> depuis l'une de vos machines <bf>MASQuées</>, et voyez si
vous pouvez les atteindre. Par exemple, essayez d'accéder au <htmlurl
url="http://metalab.unc.edu/LDP" name="site du LDP">. Si ça marche, vous
pouvez être fier, tout marche sans problèmes~!

</enum>
<p>
Si vous voyez la page du LDP <bf>FÉLICITATIONS~! Ça marche~!</> Si le site
web apparaît bien, les autres outils réseau comme <tt>ping</>,
<tt>telnet</>, <tt>ssh</> et avec leurs modules chargés~: <tt>ftp</>, Real
Audio, les DCC IRC, Quake I, ][, ]I[, CuSeeme, vdolive, etc. devraient aussi
marche~! Si le <tt>ftp</>, l'<tt>irc</>, ou autres marchent mal ou pas du
tout, assurez vous que leurs modules respectifs sont bien chargés en lançant
<tt>lsmod</> et aussi, assurez vous de bien charger les modules avec les
bons ports. Si vous ne voyez pas un module dont vous avez besoin, assurez
vous qu'il est bien chargé dans le <tt>/etc/rc.d/rc.firewall</> (par
exemple~: enlevez le # qui se trouve au début de la ligne).


<!-- Section 4 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Autres sujets relatifs à IP Masquerade et au support logiciel
<p>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Problèmes avec IP Masquerade
<p>
Certains protocoles TCP/IP propriétaires ne marcheront pas avec l'IP
masquerading Linux, soit car ils supposent des choses sur les numéros de
port ou soit qu'ils encodent les adresses/ports TCP/IP dans leurs les
données. Ces protocoles ont besoin de proxy ou de modules intégrés dans le
code du masquerading pour fonctionner.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Services entrants
<p>
A la base, le masquerading ne peut pas du tout prendre en charge les
services entrants mais il y a plusieurs façons de les autoriser


Si vous n'avez pas besoin d'une grande sécurité, vous pouvez simplement
rediriger ou forwarder les ports. Il y a de nombreuses façons de faire cela
toutefois, la meilleur solution est d'utiliser IPPORTFW. Pour plus
d'informations, référez vous a la section <ref id="Forwarders">.

Si vous désirez avoir des niveaux d'autorisation sur les connexions
entrantes, vous aurez alors soit à utiliser les <tt>TCP Wrappers</> soit
<tt>Xinetd</> pour autoriser seulement des adresses IP données, ou utiliser
d'autre outils. La boîte à outils pour firewall TIS (TIS Firewall Toolkit)
est un bon produit pour ceux qui cherchent des outils et des informations.

Plus de détails sur la sécurité peuvent être trouvés dans le document <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS"> et sur <url url="http://ipmasq.cjb.net" name="la page de
l'IP Masquerade">.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="Supported Client Software">
<sect1> Programmes clients supportés et autres remarques pour la configuration

<p>
<label id="Clients">
<quote><bf> ** Voyez la <url url="http://dijon.nais.com/~nevo/masq/"
name="page"> sur les applications fonctionnant au travers d'IP Masquerading
contient plein de bonnes informations. Malheureusement, Cette page n'est
plus vraiment mise a jour, si vous voulez vous en occuper, envoyez un mail a
<htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et/ou
<htmlurl url="mailto:dranch@trinnet.net"
name="dranch@trinnet.net">. </></quote>

En général, toutes les applications qui utilisent TCP et/ou UDP de manière
standard devraient fonctionner. Si vous avez une quelconque suggestion ou
question à propos des applications compatibles avec IP masquerade, visitez
<url url="http://ipmasq.cjb.net" name="la page de l'IP Masquerade">.
 
<!-- - - - - - - - - - - - - - - - - - -->
<sect2> Les clients réseau qui <bf>fonctionnent</> avec l'IP Masq

<p>Clients génériques

<descrip>
<tag>
Archie
</>
toutes les plateformes, client de recherche de fichiers (tous les clients ne
fonctionnent pas) ;

<tag>
FTP
</>
toutes les plateformes, avec le module <tt>ip_masq_ftp.o</> (tous les sites
ne fonctionnent pas avec certains clients~; par exemple, certains sites ne
peuvent pas être atteints en utilisant ws_ftp32 mais fonctionnent avec
Netscape) ;

<tag>
Gopher
</>
toutes les plateformes ;

<tag>
HTTP
</>
toutes les plateformes, naviguer sur le web ;

<tag>
IRC
</>
toutes les plateformes, avec le module <tt>ip_masq_irc.o</> ;

<tag>
NNTP
</>
toutes les plateformes, client news USENET ;

<tag>
ping
</>
toutes plateformes, avec le patch ICMP

<tag>
POP
</>
toutes les plateformes, clients de courrier électronique ;

<tag>
SSH
</>
toutes plateformes, client Telnet/FTP sécurisé ;

<tag>
SMTP
</>
toutes les plateformes, clients de courrier électronique ;

<tag>
Telnet
</>
toutes les plateformes, sessions distantes ;

<tag>
traceroute
</>
surtout les plateformes UNIX, certaines variantes ne devraient pas
fonctionner ;

<tag>
VRML
</>
Windows (peut être toutes les plateformes), réalité virtuelle ;

<tag>
WAIS
</>
toutes les plateformes.

</descrip>

<p>Clients Multimédia et de communication
<descrip>
<tag>
Alpha Worlds
</>
Windows, programme client-serveur de discussion 3D

<tag>
CU-SeeMe
</>
toutes les plateformes, avec le module cuseeme, voir la section <ref
id="CuSeeme"> pour les détails.

<tag>
ICQ
</>
Tous clients supportés. Requiert d'avoir compilé le noyau avec IPPORTFW et
qu'ICQ soit configuré pour être derrière un proxy non socks. Une description
complète de la configuration se trouve dans la section <ref id="ICQ">.

<tag>
Internet Phone 3.2
</>
Windows, communications audio. Vous ne pouvez être contacté que si vous
initiez la connexion, mais on ne peut pas vous appeler si vous n'avez pas
mis en place un port forwarding spécifique. Référez vous a la section <ref
id="Forwarders"> pour plus de détails.

<tag>
Internet Wave Player
</>
Windows, flux audio par réseau

<tag>
Powwow
</>
Windows, communication audio. Vous ne pouvez être contacté que si vous
initiez la connexion, mais on ne peut pas vous appeler si vous n'avez pas
mis en place un port forwarding spécifique. Référez vous a la section <ref
id="Forwarders"> pour plus de détails.

<tag>
Real Audio Player 2.0
</>
Windows, flux audio par réseau, on obtient une meilleur qualité avec le
module <tt>ip_masq_raudio</>.

<tag>
True Speech Player 1.1b
</>
Windows, flux audio par réseau

<tag>
VDOLive
</>
Windows, avec le patch <em>ip_masq_vdolive</>

<tag>
Worlds Chat 0.9a
</>
Windows, programme client-serveur de discussion 3D

</descrip>

<label id="Game-Clients">
Jeux - Référez vous a la section <ref id="LooseUDP"> pour plus
d'informations sur comment utiliser le patch LooseUDP.

<descrip>
<tag>
Battle.net
</tag>
Fonctionne mais requiert que les ports TCP 116 et 118 et le port UDP 6112
soient IPPORTFW<!--NdT : vi, c'est pas beau du tout un bon point a celui qui
fait mieux ;)--> sur la machine qui joue. Référez vous a la section <ref
id="Forwarders"> pour plus de détails. Notez que les serveurs FSGS et Bnetd
requièrent toujours IPPORTFW car ils n'ont pas été réécrits pour marcher
avec le NAT.

<tag>
BattleZone 1.4
</tag>
Fonctionne avec le patch LooseUDP et les nouvelles <htmlurl
url="http://us4.alink.activision.com/tmp/nat/" name=".DLLs d'Activision">
qui marchent avec le NAT.

<tag>
Dark Reign 1.4
</tag>
Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118
et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Référez vous a
la section <ref id="Forwarders"> pour plus de détails

<tag>
Diablo
</tag>
Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118
et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Les dernières
version de Diablo utilisent uniquement les ports TCP et UDP 6112. Référez
vous a la section <ref id="Forwarders"> pour plus de détails

<tag>
Heavy Gear 2
</tag>
Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118
et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Référez vous a
la section <ref id="Forwarders"> pour plus de détails

<tag>
Quake I/][/]I[
</tag>
Fonctionne sans problèmes avec le module <em>ip_masq_quake</> si il y a
plusieurs joueurs derrière la machine MASQ. Ce module ne supporte que Quake
I et QuakeWorld par défaut. Si vous avez besoin d'utiliser Quake ][ ou des
ports non standards, regardez comment s'installe le module dans les sections
<ref id="rc.firewall-2.0.x"> et <ref id="rc.firewall-2.2.x">.

<tag>
StarCraft
</tag>
Fonctionne avec le patch LooseUDP ou requiert que les ports TCP et UDP 6112
soient IPPORTFW sur la machine qui joue. Référez vous a la section <ref
id="Forwarders"> pour plus de détails

<tag>
WorldCraft
</tag>
Fonctionne avec le patch LooseUDP.
</descrip>

<p>Autres clients

<descrip>
<tag>
Linux net-acct package
</>
Linux, package d'administration par réseau

<tag>
NCSA Telnet 2.3.08
</>
DOS, une suite de logiciels contenant telnet, ftp, ping, etc...

<tag>
PC-anywhere pour Windows
</>
MS-Windows, controle d'un PC à distance avec TCP/IP, fonctionne uniquement
si la machine est un client et non un hôte si vous n'avez pas joué avec
IPPORTFW. Référez vous a la section <ref id="Forwarders"> pour plus de
détails

<tag>
Socket Watch
</>
utilise ntp - network time protocol

</descrip>

<!-- - - - - - - - - - - - - - - - - - -->
<sect2> Clients qui ne fonctionnent pas
<p> 
<descrip>
<tag>
Tous les programmes H.323
</>
MS Netmeeting, Intel Internet Phone Beta 2... Connexion ok, mais la voix ne
peut que sortir de votre réseau. Allez faire un tour sur la passerelle H.323
<url url="http://www.equival.com.au/phonepatch/index.html"
name="Equivalence's PhonePatch"> qui est une solution possible.

<tag>
Intel Streaming Media Viewer Beta 1
</>
Connexion impossible au serveur.

<tag>
Netscape CoolTalk
</>
Connexion à l'hôte distant impossible.

<tag>
WebPhone
</>
Ne peut pas fonctionner (il fait des suppositions invalides sur les
adresses).

</descrip>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Regles ipfwadm plus sures
<p>
<label id="Strong-IPFWADM-Rulesets">

Cette section constitue un guide plus précis sur l'utilisation de l'outil de
reglage du firewall sur les noyaux 2.0, ipfwadm. Allez voire plus bas pour
ipchains.

Voici un exemple de script d'initialisation pour un système qui fait office
de firewall et de masquerading derriere un lien PPP avec une IP statique
(des instructions pour les ip dynamiques sont données, mais
commentées). L'interface à laquelle on fait confiance est 192.168.0.1 (celle
du réseau local) et l'adresse IP de l'interface PPP a été changée pour des
raisons de sécurité. Toutes les interfaces sont listées individuellement
pour intercepter l'IP spoofing et les routages inexacts. Tout ce qui n'est
pas explicitement autorisé est <bf>INTERDIT</> (disons plutôt rejeté). Si
machine IP MASQ ne marche plus apres avoir lancé ce script, assurez vous de
bien avoir édité le script pour qu'il sont en accord avec votre
configuration, allez aussi jeter un coup d'oeil dans votre syslog
<tt>/var/log/messages</> ou <tt>/var/adm/messages</> pour y trouver une ou
deux erreurs de firewall.

Pour des exemples plus précis sur l'implémentation de règles sures pour PPP,
modem Câble, etc., référez vous à <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> et <htmlurl url="http://www.greatcircle.com/"
name="GreatCircle's Firewall WWW page">

<bf>NOTE~:</bf> Si vous avez une adresse TCP/IP assignée dynamiquement par
votre FAI (PPP, ADSL, Câble, etc.), vous <bf>ne pouvez pas charger ce script
au boot</>. Vous allez soit avoir a le recharger a chaque fois que vous
changez d'adresse IP, soit rendre votre <tt>/etc/rc.d/rc.firewall</> plus
intelligent. Pour les utilisateurs de PPP, lisez attentivement et
décommentez les lignes qui vous concernent dans la section "Récupération
dynamique de l'IP en PPP" ci dessous. Vous pourrez aussi trouver plus de
détails dans <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> pour plus de détails sur les règles plus
sures avec des IP Dynamiques.

<bf>Rappelez vous qu'il y a plein d'outils graphiques pour régler votre
Firewall. Référez vous a la section <ref id="FAQ"> pour plus de détails.</>

Enfin, si vous utilisez une adresse PPP statique, changez la ligne "ppp_ip =
"votre_adresse_ip_statique"" pour refléter votre adresse.


<verb>
#!/bin/sh
#
# /etc/rc.d/rc.firewall, un exemple de regles plutot sures de firewall avec ipfwadm
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# pour les tests, attend un moment puis efface toutes les règles du
# firewall. Décommentez les lignes suivantes si vous voulez que le firewall soit
# désactivé automatiquement après 10 minutes.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &


########################################################################################
# Necessaire pour charger les modules
#
/sbin/depmod -a

# Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT.
#
/sbin/modprobe ip_masq_ftp

# Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA,
# mais en mode TCP. Cela peut causer une réduction dans la qualité du son.
#
#/sbin/modprobe ip_masq_raudio

# Supporte le masquerading des transferts IRC DCC.
#
#/sbin/modprobe ip_masq_irc

# Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous
# avez plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I,
# ][ et ]I[, utilisez le deuxieme exemple.
#
#Quake I / QuakeWorld (ports 26000 et 27000)
#/sbin/modprobe ip_masq_quake
#
#Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960

# Supporte le masquerading du systeme de visioconférences CuSeeMe
#
#/sbin/modprobe ip_masq_cuseeme

# Supporte le masquerading du systeme de visioconférences VDO Live
#
#/sbin/modprobe ip_masq_vdolive


# CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le
#            noyau 2.0.34
#
# Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network
#                             de :
#                       FORWARD_IPV4=false  
#                             à :
#                       FORWARD_IPV4=true
#
echo "1" > /proc/sys/net/ipv4/ip_forward

# Utilisateurs d'IP dynamiques :
#
# Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option
# suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP
# dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien
# plus facile.
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Spécifiez votre adresse IP statique ici.
#
#   Si vous utilisez une adresse IP DYNAMIQUE, vous avez besoin de faire comprendre a ce
#   jeu de règles que votre IP a changée a chaque fois qu'elle change. Pour faire cela,
#   décommentez le script suivant. (Notez qu'il y a une différence importante entre les
#   guillemets simples et doubles).
#
#   Vous aurez aussi besoin soit de créer le lien suivant ou que votre /etc/ppp/ip-up
#   existant lance votre /etc/rc.d/rc.firewall.
#
#	ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up
#
#   Si le fichier /etc/ppp/ip-up existe déjà, vous devriez l'éditer et ajouter une ligne
#   contenant "/etc/rc.d/rc.firewall" aux alentours de la fin du fichier.
#
#   Si vous ne vous en etes pas encore rendu comptes, le script /etc/ppp/ip-up est
#   toujours lancé lorsqu'une connexion PPP est établie. Grâce a cela, nous pouvons dire
#   au script d'aller chercher la nouvelle adresse IP pour pouvoir mettre a jour les
#   règles sures.
#
#   Utilisateurs PPP : 
#        Le bout de script suivant devrais marcher sans problèmes.
#
#   Utilisateurs de DHCP :
#        Si vous obtenez votre adresse TCP/IP via DHCP, vous aurez a remplacer le mot
#        ppp0 par le nom de votre interface via laquelle vous êtes connectés a Internet
#        (eth0, eth1, etc). Il devrais aussi être noté que le DHCP peut changer votre IP
#        adresse. Pour régler cela vous devriez configurer votre client DHCP pour
#        relancer vos règles de firewall a chaque vois que votre bail est
#        renouvelé. Pour les utilisateurs de DHCPcd, utilisez l'option -c.
#   
#ppp_ip = "`/sbin/ifconfig ppp0 | perl -ne 'if (/inet addr:([^ ]*)/) {print $1}'`"
#
ppp_ip = "votre_adresse_ip_statique"


# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#  160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ)
#
/sbin/ipfwadm -M -s 7200 10 160


########################################################################################
# Connexions entrantes, efface tout et positionne le comportement par défaut à reject
# (refus). En fait, le comportement par défaut est inadéquat puisqu'il y a une règle
# pour tout intercepter, avec refus et logging.
#
/sbin/ipfwadm -I -f
/sbin/ipfwadm -I -p reject

# interface locale, machines locales. Aller n'importe où est autorisé.
#
/sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0

# interface distante, prétendant être une machine locale. C'est de l'IP spoofing, on
# refuse.
#
/sbin/ipfwadm -I -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o

# interface distante, n'importe qu'elle source, l'accès à notre adresse PPP est valide
#
/sbin/ipfwadm -I -a accept -V $ppp_ip -S 0.0.0.0/0 -D $ppp_ip/32

# l'interface loopback est valide.
#
/sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

# une fois toutes les règles faites, toutes les autres connexions entrantes sont
# refusées et logguées.
#
/sbin/ipfwadm -I -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o


########################################################################################
# Connexions sortantes,efface tout et positionne le comportement par défaut à reject
# (refus).En fait, le comportement par défaut est inadéquat puisqu'il y a une règle pour
# tout intercepter, avec refus et logging.
#
/sbin/ipfwadm -O -f
/sbin/ipfwadm -O -p reject

# interface locale, machines locales. N'importe quelle source allant vers le réseau
# local est valide.
#
/sbin/ipfwadm -O -a accept -V 192.168.0.1 -S 0.0.0.0/0 -D 192.168.0.0/24

# destination vers le réseau local à partir de l'interface sortante. C'est du routage
# piraté, tout refuser.
#
/sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o

# sortante depuis le réseau local sur l'interface sortante. C'est du masquerading
# pirate, tout refuser.
#
/sbin/ipfwadm -O -a reject -V  $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o

# sortante depuis le réseau local sur l'interface sortante. C'est du masquerading
# pirate, tout refuser.
#
/sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o

# Tout ce qui sort d'autre de l'interface distante est bon
#
/sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0

# l'interface loopback est valide.
#
/sbin/ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0

# une fois toutes les règles faites, toutes les autres connexions sortantes sont
# refusées et logguées.
#
/sbin/ipfwadm -O -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o


########################################################################################
# Connexions à faire suivre (forwarding), efface tout et positionne le comportement par
# défaut à reject (refus). En fait, le comportement par défaut est inadéquat puisqu'il y
# a une règle pour tout intercepter, avec refus et logging.
#
/sbin/ipfwadm -F -f
/sbin/ipfwadm -F -p reject

# Masquerade depuis le réseau local sur l'interface locale vers n'importe où
#
/sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0

# une fois toutes les règles faites, toutes les autres connexions à faire suivre sont
# refusées et logguées.
#
/sbin/ipfwadm -F -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o

</verb>

Avec IPFWADM, vous pouvez bloquer le trafic vers ou depuis un site
particulier en utilisant -I, -O ou -F appropriées. Souvenez vous que les
règles sont analysées de haut en bas, et "<tt>-a</>" signifie ajoute
(<em>"append"</>) à l'ensemble des règles existantes. Avec cela en mémoire,
toute restriction spécifique doit venir avant les regles globales. Par
exemple~:

En utilisant les règles -I. Probablement le plus rapide mais stoppe
uniquement les machines locales, le firewall peut encore accéder au site
"interdit". C'est peut être d'ailleurs le comportement que vous désirez.

Dans le <tt>/etc/rc.d/rc.firewall</>~:
<verb>
... début des règles -I ...

# rejette et loggue l'interface locale et la machine locale allant sur 204.50.10.13
#
/sbin/ipfwadm -I -a reject -V 192.168.0.1 -S 192.168.0.0/24 -D 204.50.10.13/32 -o

# interface locale, machines locales. Aller n'importe où est autorisé.
#
/sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0

... fin des règles -I ...
</verb>


En utilisant les règles -O. C'est le plus lent puisque les paquets passent
d'abord à travers le masquerading, mais cette règle empèche même au firewall
d'accéder au site interdit.

<verb>
... début des règles -O ...

# rejette et loggue les connexions sortantes vers 204.50.10.13
#
/sbin/ipfwadm -O -a reject -V $ppp_ip -S $ppp_ip/32 -D 204.50.10.13/32 -o

# tout le reste, sortant vers l'interface distante est valide
#
/sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0

... fin des règles -O ...
</verb>

En utilisant les règles -F. Probablement plus lent qu'en utilisant les
règles -I, et cela stoppe uniquement les machines pour lesquelles on effetue
du masquerading (c'est à dire les machines internes). Le firewall peut
encore accéder au site interdit.

<verb>
... début des règles -F ...

# Rejette et loggue les connexions depuis le réseau local sur l'interface PPP vers
# 204.50.10.13.
#
/sbin/ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/24 -D 204.50.10.13/32 -o

# Masquerade depuis le réseau local sur l'interface locale vers n'importe où
#
/sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0

... fin des règles -F ...
</verb>

Il n'y a pas besoin d'une règle spéciale pour autoriser 192.168.0.0/24 à se
connecter sur 204.50.11.0, ce comportement est inclus dans les règles
globales.
<p>
Il y a plus d'une façon d'écrire les règles précédentes. Par exemple, au
lieu de -V 192.168.0.1, vous pouvez utiliser -W eth0, au lieu de -V $ppp_ip,
vous pouvez utiliser -W ppp0. Le -V a été supprimé lors du passage a
ipchains, mais pour les utilisateurs de ipfwadm, c'est une question de goût
personnel.



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Chaines IP Firewalling (ipchains) 
<p>

<label id="Strong-IPCHAINS-Rulesets">

Cette section constitue un guide plus précis sur l'utilisation de l'outil de
reglage du firewall sur les noyaux 2.2, ipchains. Allez voire plus haut pour
ipfwadm.

Voici un exemple de script d'initialisation pour un système qui fait office
de firewall et de masquerading derriere un lien PPP avec une IP statique
(des instructions pour les ip dynamiques sont données, mais
commentées). L'interface à laquelle on fait confiance est 192.168.0.1 (celle
du réseau local) et l'adresse IP de l'interface PPP a été changée pour des
raisons de sécurité. Toutes les interfaces sont listées individuellement
pour intercepter l'IP spoofing et les routages inexacts. Tout ce qui n'est
pas explicitement autorisé est <bf>INTERDIT</> (disons plutôt rejeté). Si
machine IP MASQ ne marche plus apres avoir lancé ce script, assurez vous de
bien avoir édité le script pour qu'il sont en accord avec votre
configuration, allez aussi jeter un coup d'oeil dans votre syslog
<tt>/var/log/messages</> ou <tt>/var/adm/messages</> pour y trouver une ou
deux erreurs de firewall.

Pour des exemples plus précis sur l'implémentation de règles sures pour PPP,
modem Câble, etc., référez vous à <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> et <htmlurl url="http://www.greatcircle.com/"
name="GreatCircle's Firewall WWW page">

<bf>NOTE~:</bf> Si vous avez une adresse TCP/IP assignée dynamiquement par
votre FAI (PPP, ADSL, Câble, etc.), vous <bf>ne pouvez pas charger ce script
au boot</>. Vous allez soit avoir a le recharger a chaque fois que vous
changez d'adresse IP, soit rendre votre <tt>/etc/rc.d/rc.firewall</> plus
intelligent. Pour les utilisateurs de PPP, lisez attentivement et
décommentez les lignes qui vous concernent dans la section "Récupération
dynamique de l'IP en PPP" ci dessous. Vous pourrez aussi trouver plus de
détails dans <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> pour plus de détails sur les règles plus
sures avec des IP Dynamiques.

<bf>Rappelez vous qu'il y a plein d'outils graphiques pour régler votre
Firewall. Référez vous a la section <ref id="FAQ"> pour plus de détails.</>

Enfin, si vous utilisez une adresse PPP statique, changez la ligne "ppp_ip =
"votre_adresse_ip_statique"" pour refléter votre adresse.

<verb>
#!/bin/sh
#
# /etc/rc.d/rc.firewall: un exemple de regles plutot sures de firewall avec ipchains
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# pour les tests, attend un moment puis efface toutes les règles du
# firewall. Décommentez les lignes suivantes si vous voulez que le firewall soit
# désactivé automatiquement après 10 minutes.
# (sleep 600; \
# ipchains -F \
# ipchains -X \
# ) &

########################################################################################
# Necessaire pour charger les modules
#
/sbin/depmod -a

# Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT.
#
/sbin/modprobe ip_masq_ftp

# Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA,
# mais en mode TCP. Cela peut causer une réduction dans la qualité du son.
#
#/sbin/modprobe ip_masq_raudio

# Supporte le masquerading des transferts IRC DCC.
#
#/sbin/modprobe ip_masq_irc

# Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous
# avez plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I,
# ][ et ]I[, utilisez le deuxieme exemple.
#
#Quake I / QuakeWorld (ports 26000 et 27000)
#/sbin/modprobe ip_masq_quake
#
#Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960

# Supporte le masquerading du systeme de visioconférences CuSeeMe
#
#/sbin/modprobe ip_masq_cuseeme

# Supporte le masquerading du systeme de visioconférences VDO Live
#
#/sbin/modprobe ip_masq_vdolive


# CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le
#            noyau 2.0.34
#
# Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network
#                             de :
#                       FORWARD_IPV4=false  
#                             à :
#                       FORWARD_IPV4=true
#
echo "1" > /proc/sys/net/ipv4/ip_forward

# Utilisateurs d'IP dynamiques :
#
# Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option
# suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP
# dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien
# plus facile.
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Spécifiez votre adresse IP statique ici.
#
#   Si vous utilisez une adresse IP DYNAMIQUE, vous avez besoin de faire comprendre a ce
#   jeu de règles que votre IP a changée a chaque fois qu'elle change. Pour faire cela,
#   décommentez le script suivant. (Notez qu'il y a une différence importante entre les
#   guillemets simples et doubles).
#
#   Vous aurez aussi besoin soit de créer le lien suivant ou que votre /etc/ppp/ip-up
#   existant lance votre /etc/rc.d/rc.firewall.
#
#	ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up
#
#   Si le fichier /etc/ppp/ip-up existe déjà, vous devriez l'éditer et ajouter une ligne
#   contenant "/etc/rc.d/rc.firewall" aux alentours de la fin du fichier.
#
#   Si vous ne vous en etes pas encore rendu comptes, le script /etc/ppp/ip-up est
#   toujours lancé lorsqu'une connexion PPP est établie. Grâce a cela, nous pouvons dire
#   au script d'aller chercher la nouvelle adresse IP pour pouvoir mettre a jour les
#   règles sures.
#
#   Utilisateurs PPP : 
#        Le bout de script suivant devrais marcher sans problèmes.
#
#   Utilisateurs de DHCP :
#        Si vous obtenez votre adresse TCP/IP via DHCP, vous aurez a remplacer le mot
#        ppp0 par le nom de votre interface via laquelle vous êtes connectés a Internet
#        (eth0, eth1, etc). Il devrais aussi être noté que le DHCP peut changer votre IP
#        adresse. Pour régler cela vous devriez configurer votre client DHCP pour
#        relancer vos règles de firewall a chaque vois que votre bail est
#        renouvelé. Pour les utilisateurs de DHCPcd, utilisez l'option -c.
#
extint = "ppp0"
#extip = "`/sbin/ifconfig $extint | perl -ne 'if (/inet addr:([^ ]*)/) {print $1}'`"
#
extip = "votre_adresse_ip_statique"

# L'ip interne e
intint="eth0"
intnet="192.168.0.1/24"


# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#   60 sec pour le traffic UDP (Les utilisateurs d'ICQ doivent configurer leur ICQ avec
#                               un timeout de firewall de 30 secondes)
#
ipchains -M -S 7200 10 60

########################################################################################
# Connexions entrantes, efface tout et positionne le comportement par défaut à reject
# (refus). En fait, le comportement par défaut est inadéquat puisqu'il y a une règle
# pour tout intercepter, avec refus et logging.
#
ipchains -F input
ipchains -P input REJECT

# interface locale, machines locales. Aller n'importe où est autorisé.
#
ipchains -A input -i $intint -s $intnet -d 0.0.0.0/0 -j ACCEPT

# interface distante, prétendant être une machine locale. C'est de l'IP spoofing, on
# refuse.
#
ipchains -A input -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT

# interface distante, n'importe qu'elle source, l'accès à notre adresse PPP est valide
#
ipchains -A input -i $extint -s 0.0.0.0/0 -d $extip/32 -j ACCEPT

# l'interface loopback est valide.
#
ipchains -A input -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

# une fois toutes les règles faites, toutes les autres connexions entrantes sont
# refusées et logguées.
#
ipchains -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

########################################################################################
# Connexions sortantes,efface tout et positionne le comportement par défaut à reject
# (refus).En fait, le comportement par défaut est inadéquat puisqu'il y a une règle pour
# tout intercepter, avec refus et logging.
#
ipchains -F output
ipchains -P output REJECT

# interface locale, machines locales. N'importe quelle source allant vers le réseau
# local est valide.
#
ipchains -A output -i $intint -s 0.0.0.0/0 -d $intnet -j ACCEPT

# destination vers le réseau local à partir de l'interface sortante. C'est du routage
# piraté, tout refuser.
#
ipchains -A output -i $extint -s 0.0.0.0/0 -d $intnet -l -j REJECT

# sortante depuis le réseau local sur l'interface sortante. C'est du masquerading
# pirate, tout refuser.
#
ipchains -A output -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT

# Tout ce qui sort d'autre de l'interface distante est bon
#
ipchains -A output -i $extint -s $extip/32 -d 0.0.0.0/0 -j ACCEPT

# l'interface loopback est valide.
#
ipchains -A output -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

# une fois toutes les règles faites, toutes les autres connexions sortantes sont
# refusées et logguées.
#
ipchains -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

########################################################################################
# Connexions à faire suivre (forwarding), efface tout et positionne le comportement par
# défaut à reject (refus). En fait, le comportement par défaut est inadéquat puisqu'il y
# a une règle pour tout intercepter, avec refus et logging.
#
ipchains -F forward
ipchains -P forward DENY

# Masquerade depuis le réseau local sur l'interface locale vers n'importe où
#
ipchains -A forward -i $extint -s $intnet -d 0.0.0.0/0 -j MASQ
#
# une fois toutes les règles faites, toutes les autres connexions à faire suivre sont
# refusées et logguées.
#
ipchains -A forward -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT

</verb>
<!--NdT~: C'est moi ou l'auteur original a juste fait un copier/coller et
n'a même pas changé les commandes ?--> 

Avec IPCHAINS, vous pouvez bloquer le trafic vers ou depuis un site
particulier en utilisant les règles "input", "output" et "forward". Souvenez
vous que les règles sont analysées de haut en bas, et "<tt>-A</>" signifie
ajoute (<em>"append"</>) à l'ensemble des règles existantes. Avec cela en
mémoire, toute restriction spécifique doit venir avant les regles
globales. Par exemple~:

En utilisant les règles "input". Probablement le plus rapide mais stoppe
uniquement les machines locales, le firewall peut encore accéder au site
"interdit". C'est peut être d'ailleurs le comportement que vous désirez.

Dans le <tt>/etc/rc.d/rc.firewall</>~:
<verb>
... début des règles "input" ...

# rejette et loggue l'interface locale et la machine locale allant sur 204.50.10.13
#
/sbin/ipfwadm -I -a reject -V 192.168.0.1 -S 192.168.0.0/24 -D 204.50.10.13/32 -o

# interface locale, machines locales. Aller n'importe où est autorisé.
#
/sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0

... fin des règles -I ...
</verb>


En utilisant les règles "output. C'est le plus lent puisque les paquets
passent d'abord à travers le masquerading, mais cette règle empèche même au
firewall d'accéder au site interdit.

<verb>
... début des règles "output" ...

# rejette et loggue les connexions sortantes vers 204.50.10.13
#
/sbin/ipfwadm -O -a reject -V $ppp_ip -S $ppp_ip/32 -D 204.50.10.13/32 -o

# tout le reste, sortant vers l'interface distante est valide
#
/sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0

... fin des règles -O ...
</verb>

En utilisant les règles "forward". Probablement plus lent qu'en utilisant les
règles -I, et cela stoppe uniquement les machines pour lesquelles on effetue
du masquerading (c'est à dire les machines internes). Le firewall peut
encore accéder au site interdit.

<verb>
... début des règles "forward" ...

# Rejette et loggue les connexions depuis le réseau local sur l'interface PPP vers
# 204.50.10.13.
#
/sbin/ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/24 -D 204.50.10.13/32 -o

# Masquerade depuis le réseau local sur l'interface locale vers n'importe où
#
/sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0

... fin des règles -F ...
</verb>

Il n'y a pas besoin d'une règle spéciale pour autoriser 192.168.0.0/24 à se
connecter sur 204.50.11.0, ce comportement est inclus dans les règles
globales.

Contrairement a ipfwadm, il n'y a qu'une seule façon de spécifier
l'interface dans ipchains, utilisez "-i interface".


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> MASQuer de multiples sous réseaux internes
<p>
MASQuer plus d'un sous réseau interne est assez simple. Vous n'avez qu'a
vous assurer que tous vos réseaux fonctionnent bien (en interne et avec
l'extérieur). Ensuite, vous aurez a autoriser le traffic a passer via vos
interface réseaux vers Internet.

Ensuite, vous aurez a autoriser les autres interfaces internes, cet exemple
montre comment masquer les interfaces eth1 (192.168.0.1) et eth2
(192.168.1.1) derriere eth0. Dans votre <tt>rc.firewall</> juste apres la
ligne autorisant le MASQ, ajoutez les lignes~:

<itemize>
<item>Noyaux 2.0 avec IPFWADM
<verb>
  # Permet aux interfaces internes de communiquer ensemble
  /sbin/ipfwadm -F -a -V 192.168.0.1 -D 192.168.1.0/24
  /sbin/ipfwadm -F -a -V 192.168.1.1 -D 192.168.0.0/24

  # Permet aux interfaces internes d'etre MASQuées pour Internet
  /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.0.0/24 -D 0.0.0.0/0
  /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.1.0/24 -D 0.0.0.0/0
</verb>
<p>
<item>Noyaux 2.2 avec IPCHAINS
<verb>
  #Enable internal interfaces to communication between each other
  /sbin/ipchains -A forward -i eth1 -d 192.168.1.0/24
  /sbin/ipchains -A forward -i eth2 -d 192.168.0.0/24

  #Enable internal interfaces to MASQ out to the Internet
  /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24 -d 0.0.0.0/0
  /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.1.0/24 -d 0.0.0.0/0
</verb>
</itemize>



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="Diald">
<sect1> L'IP Masquerade et la numérotation à la demande.
<p>
<enum>
<item>
Si vous voulez que votre réseau se connecte automatiquement à Internet, soit
avec le package <em>diald</> soit avec les dernieres versions du paquetage
<em>PPPd</>. Diald est la solution de numérotation à la demande recommandée.

<item>
Pour mettre en place <em>Diald</>, veuillez vous référer à la page (en
anglais) <url url="http://home.pacific.net.sg/~harish/diald.config.html"
name="Setting Up Diald for Linux Page"> ou <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 23">

<item>
Une fois que diald et IP masq auront été installés, vous pouvez aller sur
n'importe laquelle des machines clients et initier une connexion web, telnet
ou ftp et cela fera que votre machine Linux se connectera a Internet.

<item>
Un <em>timeout</> (délai d'attente dépassé) sera inévitable sur la première
connexion, mais c'est le lot des modems analogiques. Le temps mis à établir
la connexion va provoquer un timeout de votre programme client. Ce n'est
quand meme pas quelque chose qui arrive souvent. Il suffit de recommencer,
et ça passera. Vous pouvez aussi essayer de faire un <tt>echo "1" >
/proc/sys/net/ipv4/ip_dynaddr</> pour aider la premiere utilisation.
</enum>

<label id="Forwarders">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1>IPPORTFW, IPMASQADM, IPAUTOFW, REDIR, UDPRED, et autres outils de
redirection de ports
<p>

IPPORTFW, IPAUTOFW, REDIR, UDPRED, et autres sont des programmes génériques
pour faire de la redirection de ports avec Linux IP MASQ. Ces outils sont
normalement utilisés en remplacement de modules IP MASQ spécifiques comme
les modules FTP ou Quake existant. Avec les redirecteurs de ports, vous
pouvez rediriger des connexions arrivant d'Internet vers le réseau interne
derriere le serveur MASQ. Cette redirection inclue des protocoles réseaux
comme telnet, www, smtp, ftp (avec un patch, voir plus bas), ICQ, et plein
d'autres.

NOTE~: Si vous n'avez besoin que de la redirection de ports et pas besoin de
l'IP MASQ, vous aurez <bf>QUAND MÊME</> à autoriser l'IP MASQ dans le noyau et
avec soit IPFWADM soit IPCHAINS pour avoir la possibilité d'utiliser la
redirection de ports. Plus tard, lorsque IP Masquerade est devenu mature, ces
outils sont remplacés par IPPORTFW qui est une solution plus intelligente. Du
fait de la présence d'outils plus récents, il est <bf>HAUTEMENT RECOMMANDÉ</>
de ne pas utiliser les vieux outils comme IPAUTOFW et REDIT car ils ne font
pas part au noyau de leur présence et leur présence peut même <bf>PLANTER</>
votre serveur Linux si la charge monte.

Avant de se lancer corps et âme dans l'installation de soit IPPORTFW pour les
2.0 soit IPMASQADM avec le support IPPORTFW pour les 2.2, la sécurité du
réseau peut être grandement compromise avec l'utilisation d'un tel outil. La
raison est que ces outils créent un trou dans le firewall. Bien que cela ne
pose pas de problèmes a votre machine Linux, il se peut que cela en soit un
pour la machine interne vers lesquels sont transférés les paquets. Ne vous
inquiétez pas trop quand même, Voici ce que Steven Clarke (l'auteur
d'IPPORTFW) réponds a cela~:

<quote>
<tscreen>
<verb>
"Le relayage de ports est seulement appelé depuis les fonctions de
masquerading, Par conséquent, il rentre dans les mêmes règles
d'IPFWADM/IPCHAINS. Le masquerading est une extension du relayage IP. Par
conséquent, ipportfw ne voit que les paquets qui rentrent dans les règles
d'entrée et de sortie."
</verb>
</tscreen>
</quote>

Par conséquent, il est important d'avoir de bonnes regles de firewall. Allez
lire les sections <ref id="Strong-IPFWADM-Rulesets"> et <ref
id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement de
bonnes règles.

Donc, pour installer IPPORTFW, que ce soit pour les 2.0 ou 2.2, vous aurez a
recompiler votre noyau avec le support pour IPPORTFW.

<itemize>
<item>
Les utilisateurs des 2.0 auront a appliquer un patch aux sources de leur
noyau (allez lire plus loin).

<item>
Les utilisateurs des 2.2 ont déjà l'option IPPORTFW disponible via IPMASQADM.
</itemize>


<sect2>IPPORTFW sur un noyau 2.0
<p>

Premièrement, assurez vous que vous avez le dernier noyau 2.0 décompressé dans
<tt>/usr/src/linux</>. Si vous n'avez pas encore fait cela allez voir la
section <ref id="Kernel-Compile"> pour plus de détails. Ensuite, téléchargez
le programme "<tt>ipportfw.c</>" et le "<tt>subs-patch-x.gz</>" depuis la
section <ref id="2.0.x-Requirements"> dans le répertoire <tt>/usr/src</>

NOTE~: Remplacez le x de "<tt>subs-patch-x.gz</>" par le nom de la dernière
version disponible sur le site.

Maintenant, copiez le patch IPPORTFW (<tt>subs-patch-x.gz</>) dans le
repertorie Linux~:

<tscreen>
<verb>
cp /usr/src/subs-patch-1.37.gz /usr/src/linux
</verb>
</tscreen>

Ensuite, appliquez le patch pour créer l'option IPPORTFW au noyau~:

<tscreen>
<verb>
cd /usr/src/linux
zcat subs-patch-1.3x.gz | patch -p1
</verb>
</tscreen>


Ensuite, Si vous avez dans l'idée de faire du forwarding de trafic FTP vers
un serveur interne, appliquez un <bf>NOUVEAU</> <em>IP_MASQ_FTP</> patch de la
section <ref id="2.0.x-Requirements">. Plus de détails sont donnés un peu plus
loin.

Bon, maintenant, il est temps de compiler votre noyau comme il l'est expliqué
dans la section <ref id="Kernel-Compile">. Dites bien oui a l'option IPPORTFW
qui est maintenant disponible quand vous configurez votre noyau. Une fois que
votre noyau est compilé et que vous avz rebooté, revenez ici.

Maintenant que vous avez un noyau tout neuf, compilez et installez le
programme "<tt>IPPORTFW</>"~:

<tscreen>
<verb>
cd /usr/src
gcc ipportfw.c -o ipportfw
mv ipportfw /usr/local/sbin
</verb>
</tscreen>

Maintenant, nous allons prendre l'exemple suivant~: rediriger le trafic
internet arrivant sur le port 80 d'être transféré a la machine masquée ayant
l'adresse IP 192.168.0.10.

<bf>NOTE~:</bf> Une fois que vous avez autorisé le relayage de ports sur le
port 80, ce port ne peut plus être utilisé par le serveur MASQ. Pour être plus
précis, si vous avez un serveur web qui tourne déjà sur le serveur MASQ et que
vous avez mis le relayage en place, tous les utilisateurs d'Internet verront
les pages web du serveur interne, et non celles du serveur MASQ. La seule
parade a cela est de forwarder un autre port, disons par exemple le 8080, vers
votre machine interne. Bien que cela marchera, les utilisateurs auront a
ajouter un <em>:8080</> a l'URL quand ils voudront contacter le serveur WWW.

Quoi qu'il en soit, pour autoriser la redirection de port, éditez le fichier
<tt>/etc/rc.d/rc.firewall</>. Et ajoutez les lignes suivantes, assurez vous de
bien remplacer le mot <tt>$extip</> par votre adresse internet.

<bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre
<tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux
sections <ref id="Strong-IPFWADM-Rulesets"> et <ref
id="Strong-IPCHAINS-Rulesets"> ou à <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques.

<tscreen>
<verb>
	/etc/rc.d/rc.firewall
	--

	#echo "Mise en place d'IPPORTFW vers le LAN externe."
	#
	/usr/local/sbin/ipportfw -C
	/usr/local/sbin/ipportfw -A -t$extip/80 -R 192.168.0.10/80

	--
</verb>
</tscreen>

Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~!

Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed:
Protocol not available</>", vous avez votre ancien noyau. Assurez vous que
vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez.

Redirection de ports pour les serveurs FTP~:

Si vous avez dans l'idée d'utilise la redirection de ports, les choses se
compliquent... La raison est que le module standard <tt>ip_masq_ftp</> du
noyau n'a pas été écrit dans ce but. Heureusement, Fred Viles à modifié le
module pour que ça marche. Si vous êtes juste curieux de savoir comment ça
marche, téléchargez le patch suivant, Fred a mis plein de commentaires dans
son code. Notez aussi que ce patch est légèrement expérimental et doit être
traité comme tel. Il faut aussi noter que ce patch est disponible uniquement
pour les noyaux 2.0. Le portage vers les noyaux 2.2 a été entrepris, si vous
voulez aider a terminer ce port, envoyez un email directement à <htmlurl
url="mailto:fv@episupport.com" name="Fred Viles - fv@episupport.com"> (en
anglais bien sur ;).

Donc, Pour faire marcher le patch, vous allez avoir à~:

<itemize>
<item>
Appliquer le patch IPPORTFW au noyau comme indiqué plus haut dans cette
section.

<item>
Télécharger le "<tt>msqsrv-patch-36</>" depuis le serveur ftp de Fred Viles
(voir la section <ref id="2.0.x-Requirements">) et mettez le dans
<tt>/usr/src/linux</>.

<item>
Patchez le noyau avec ce nouveau code en tapant : "<tt>cat msqsrv-patch-36 |
patch -p1</>".

<item>
Ensuite, remplacez le fichier "<tt>ip_masq_ftp.c</> du noyau par le nouveau~:

<tscreen>
<verb>
mv /usr/src/linux/net/ipv4/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c.orig
mv /usr/src/linux/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c
</verb>
</tscreen>

<item>
Enfin, compilez et installez le noyau avec le nouveau code en place.

</itemize>

Une fois cela fait, éditez le fichier <tt>/etc/rc.d/rc.firewall</> et ajoutez
les lignes suivantes (remplacez bien $extip par votre ip externe)~:

<bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre
<tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux
sections <ref id="Strong-IPFWADM-Rulesets"> et <ref
id="Strong-IPCHAINS-Rulesets"> ou à <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques.

Cet exemple, comme celui ci dessus, permettra à tout le trafic ftp (sur le
port 21) arrivant sur l'adresse IP internet d'être transféré a la machine
interne ayant l'adresse IP 192.168.0.10.

<bf>NOTE~:</> Une fois que vous avez autorisé le relayage du port 21, ce port
ne peut plus être utilisé par le serveur MASQ. Pour être plus spécifique, si
vous aviez déjà un serveur ftp sur le serveur MASQ, il ne sera plus accessible
de l'extérieur.

<tscreen>
<verb>
        /etc/rc.d/rc.firewall
        --

        #echo "Mise en place d'IPPORTFW vers le LAN externe."
        #
        /usr/local/sbin/ipportfw -C
        /usr/local/sbin/ipportfw -A -t$extip/21 -R 192.168.0.10/21

        --
</verb>
</tscreen>

Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~!

Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed:
Protocol not available</>", vous avez votre ancien noyau. Assurez vous que
vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez. Si
vous êtes sur de bien utiliser votre nouveau noyau, tapez : "<tt>ls
/proc/net</>" et vérifiez qu'il y a bien un "<tt>ip_portfw</>". Si il n'y est
pas, vous avez du commettre une erreur dans la configuration du noyau. Essayez
encore.


<sect2>IPMASQADM avec IPPORTFW pour les noyaux 2.2
<p>

Tout d'abord, vérifiez que vous avez bien le dernier noyau 2.2 décompressé
<tt>/usr/src/linux</>. Si vous ne l'avez pas encore fait, Allez voir la
section <ref id="Kernel-Compile"> pour tous les détails. Ensuite, téléchargez
le programme "<tt>ipmasqadm.c</>" depuis la section <ref
id="2.2.x-Requirements"> dans le repertoire <tt>/usr/src</>.

Ensuite, vous aurez a compiler votre noyau comme il l'est expliqué dans la
section <ref id="Kernel-Compile">. Vérifiez que vous avez bien dit YES a
l'option IPPORTFW quand vous avez configuré votre noyau. Une fois la
compilation terminée et que vous avez rebooté, revenez ici.

Maintenant, compilez et installez ipmasqadm~:

<tscreen>
<verb>
        cd /usr/src
        tar xzvf ipmasqadm-x.tgz
        cd ipmasqadm-x
        make
	make install 
</verb>
</tscreen>

Maintenant, nous allons prendre l'exemple suivant~: rediriger le trafic
internet arrivant sur le port 80 d'être transféré a la machine masquée ayant
l'adresse IP 192.168.0.10.

NOTE~: Actuellement, le module <tt>ip_masq_ftp</> modifié ne marche pas pour
les noyaux 2.2. Si vous vous sentez l'âme expérimentale, essayez de le porter
et envoyez vos résultats a Ambrose et David.

<bf>NOTE~:</bf> Une fois que vous avez autorisé le relayage de ports sur le
port 80, ce port ne peut plus être utilisé par le serveur MASQ. Pour être plus
précis, si vous avez un serveur web qui tourne déjà sur le serveur MASQ et que
vous avez mis le relayage en place, tous les utilisateurs d'Internet verront
les pages web du serveur interne, et non celles du serveur MASQ.

Quoi qu'il en soit, pour autoriser la redirection de port, éditez le fichier
<tt>/etc/rc.d/rc.firewall</>. Et ajoutez les lignes suivantes, assurez vous de
bien remplacer le mot <tt>$extip</> par votre adresse internet.

<bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre
<tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux
sections <ref id="Strong-IPFWADM-Rulesets"> et <ref
id="Strong-IPCHAINS-Rulesets"> ou à <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques.

<tscreen>
<verb>
        /etc/rc.d/rc.firewall
        --

        #echo "Mise en place d'IPPORTFW vers le LAN externe."
        #
        /usr/sbin/ipmasqadm portfw -f
	/usr/sbin/ipmasqadm portfw -a -P tcp -L $extip 80 -R 192.168.0.10 80

        --
</verb>
</tscreen>

Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~!

Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed:
Protocol not available</>", vous avez votre ancien noyau. Assurez vous que
vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez. Si
vous êtes sur de bien utiliser votre nouveau noyau, tapez : "<tt>ls
/proc/net</>" et vérifiez qu'il y a bien un "<tt>ip_portfw</>". Si il n'y est
pas, vous avez du commettre une erreur dans la configuration du noyau. Essayez
encore.


<label id="CuSeeme">

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> CU-SeeMe et Linux IP-Masquerade
<p>

L'ip masquerade supporte CuSeeMe via le module "<tt>ip_masq_cuseeme</>" du
noyau. Ce module devrais être chargé depuis le script
<tt>/etc/rc.d/rc.firewall</>. Une fois que le module est chargé, tous devriez
etre capable d'établir et recevoir des connexions CuSeeMe vers des serveurs
et/ou des utilisateurs.

NOTE~: Il est recommandé d'utiliser IPPORTFW plutôt que IPAUTOFW pour utiliser
CuSeeMe.

Si vous avez besoin de plus d'explications sur la configuration de CuSeeMe,
allez voire <url url="http://www.swampgas.com/vc/ipmcus.htm" name="Michael
Owings's CuSeeMe page"> pour un Mini HOWTO ou <htmlurl
url="http://ipmasq.cjb.net/" name="The IP Masquerade Resources"> pour un
miroir du mini HOWTO.




<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="ICQ">
<sect1>Mirabilis ICQ 
<p>

Il y a deux méthodes pour faire marcher ICQ derrière un serveur MASQ. L'une de
ces méthodes est d'utiliser le nouveau module ICQ MASQ, et l'autre est
d'utiliser IPPORTFW.

Le module ICQ a quelques bénéfices et quelques limitations. Il permet d'avoir
plusieurs utilisateurs ICQ derriere le serveur MASQ. Il ne requiert pas de
changements dans la configuration des clients. Toutefois, il ne permet pas les
transferts de fichiers et les chat en temps réel.

Avec IPPORTFW, Vous aurez a faire quelques changements a votre machine Linux
et aux clients ICQ, mais tous les types de messages ICQ (urls, chat,
transferts de fichiers) marcheront.

Si vous etes interessés par le module ICQ d'Andrew Deryabin's <htmlurl
url="mailto:djsf@usa.net" name="djsf@usa.net"> pour les noyaux 2.2, référez
vous a la section <ref id="2.2.x-Requirements"> pour plus de détails.

Si vous préférez utiliser la méthode classique pour faire marcher ICQ derriere
votre serveur MASQ, suivez les étapes suivantes~:

<itemize>

<item>
Tout d'abord, vous avez besoin d'avoir l'IPPORTFW de compilé. Référez vous a
la section <ref id="Forwarders"> pour plus de détails.

<item>
Ensuite, vous aurez besoin d'ajouter les lignes suivantes a votre fichier
<tt>/etc/rc.d/rc.firewall</>. Cet exemple suppose que 10.1.2.3 est votre
adresse internet externe et que votre machine utilisant ICQ est 192.168.0.10~:

<itemize>
<item>
Voici ce qu'il faut mettre pour un noyau 2.0 avec IPFWADM~·

<tscreen>
<verb>
J'ai inclus deux exemples pour l'utilisateur, les deux marchent tres bien :

Exemple #1
--
/usr/local/sbin/ipportfw -A -t10.1.2.3/2000 -R 192.168.0.10/2000
/usr/local/sbin/ipportfw -A -t10.1.2.3/2001 -R 192.168.0.10/2001
/usr/local/sbin/ipportfw -A -t10.1.2.3/2002 -R 192.168.0.10/2002
/usr/local/sbin/ipportfw -A -t10.1.2.3/2003 -R 192.168.0.10/2003
/usr/local/sbin/ipportfw -A -t10.1.2.3/2004 -R 192.168.0.10/2004
/usr/local/sbin/ipportfw -A -t10.1.2.3/2005 -R 192.168.0.10/2005
/usr/local/sbin/ipportfw -A -t10.1.2.3/2006 -R 192.168.0.10/2006
/usr/local/sbin/ipportfw -A -t10.1.2.3/2007 -R 192.168.0.10/2007
/usr/local/sbin/ipportfw -A -t10.1.2.3/2008 -R 192.168.0.10/2008
/usr/local/sbin/ipportfw -A -t10.1.2.3/2009 -R 192.168.0.10/2009
/usr/local/sbin/ipportfw -A -t10.1.2.3/2010 -R 192.168.0.10/2010
/usr/local/sbin/ipportfw -A -t10.1.2.3/2011 -R 192.168.0.10/2011
/usr/local/sbin/ipportfw -A -t10.1.2.3/2012 -R 192.168.0.10/2012
/usr/local/sbin/ipportfw -A -t10.1.2.3/2013 -R 192.168.0.10/2013
/usr/local/sbin/ipportfw -A -t10.1.2.3/2014 -R 192.168.0.10/2014
/usr/local/sbin/ipportfw -A -t10.1.2.3/2015 -R 192.168.0.10/2015
/usr/local/sbin/ipportfw -A -t10.1.2.3/2016 -R 192.168.0.10/2016
/usr/local/sbin/ipportfw -A -t10.1.2.3/2017 -R 192.168.0.10/2017
/usr/local/sbin/ipportfw -A -t10.1.2.3/2018 -R 192.168.0.10/2018
/usr/local/sbin/ipportfw -A -t10.1.2.3/2019 -R 192.168.0.10/2019
/usr/local/sbin/ipportfw -A -t10.1.2.3/2020 -R 192.168.0.10/2020
--

Exemple #2
--
port=2000
while [ $port -lt 2020 ]
 do
  /usr/local/sbin/ipportfw -A t10.1.2.3/$port -R 192.168.0.10/$port
  port=$((port+1)
 done
--

</verb>
</tscreen>

<item>
Et voila ce qu'il faut mettre pour un noyau 2.2 avec IPCHAINS~:

<tscreen>
<verb>
J'ai inclus deux exemples pour l'utilisateur, les deux marchent tres bien :

Exemple #1
--
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2000 -R 192.168.0.10 2000
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2001 -R 192.168.0.10 2001
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2002 -R 192.168.0.10 2002
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2003 -R 192.168.0.10 2003
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2004 -R 192.168.0.10 2004
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2005 -R 192.168.0.10 2005
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2006 -R 192.168.0.10 2006
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2007 -R 192.168.0.10 2007
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2008 -R 192.168.0.10 2008
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2009 -R 192.168.0.10 2009
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2010 -R 192.168.0.10 2010
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2011 -R 192.168.0.10 2011
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2012 -R 192.168.0.10 2012
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2013 -R 192.168.0.10 2013
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2014 -R 192.168.0.10 2014
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2015 -R 192.168.0.10 2015
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2016 -R 192.168.0.10 2016
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2017 -R 192.168.0.10 2017
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2018 -R 192.168.0.10 2018
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2019 -R 192.168.0.10 2019
/usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2020 -R 192.168.0.10 2020
--

Exemple #2
--
port=2000
while [ $port -lt 2020 ]
 do
  /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 $port -R 192.168.0.10 $port
  port=$((port+1)
 done
--
</verb>
</tscreen>
</itemize>

<item>
Une fois que votre nouveau <tt>rc.firewall</> est pret, rechargez le en tapant
"<tt>/etc/rc.d/rc.firewall</>". Si vous avez des erreurs, soit vous n'avez pas
IPPORTFW dans votre noyau, soit vous avez faite une faute de frappe dans le
script.

<item>
Maintenant, il est temps d'aller configurer ICQ, allez dans les préférences
--> connection, configurez pour avoir <em>'I am using a permanent internet
connection (LAN)'</> et <em>'I am behind a firewall or proxy'</>, maintenant,
cliquez sur <em>'Firewall Settings'</> et choisissez <em>'I don't use a SOCKS
Proxy server...'</>. Notez aussi qu'il étais recommandé de mettre 30 secondes
dans <em>'Firewall session time out after'</> MAIS beaucoup d'utilisateurs ont
trouvé qu'ICQ devenait peu fiable. ICQ est bien plus fiable avec l'option par
défaut (ne cochez donc pas cette option) et changez le timeout du serveur MASQ
a 160 secondes. Vous pouvez voir comment changer ce timeout dans les sections
<ref id="rc.firewall-2.0.x"> et <ref id="rc.firewall-2.2.x">. Finalement,
cliquez sur <em>'Next'</> et configurez ICQ pour <em>'Use the following TCP
listen ports...'</> de 2000 à 2020. Cliquez sur <em>'Done'</>.

Maintenant, ICQ vous dit que vous avez a redémarrer ICQ pour que les
changements soit pris en compte. Pour être honnête j'ai du redémarrer la
machine Windows 9x pour que ça marche, mais d'autre personnes disent que cela
n'a pas été la peine. Donc, essayez les deux...

<item>
Un utilisateur m'a aussi rapporté que le fait de rediriger le port 4000 vers
sa machine ICQ marche sans problèmes. Il a dit que tout fonctionnais (chat,
transferts de fichiers, etc) SANS AVOIR a reconfigurer ICQ. Il se peut que ça
marche, c'est pour cela que je vous en fait part.

</itemize>

<label id="LooseUDP">

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1>Joueurs~: Le patch LooseUDP
<p>

Le patch LooseUDP permet aux jeux comprenant le NAT qui utilisent des
connexions UDP de marcher et même bien derrière un serveur MASQ. Actuellement,
LooseUDP est disponible comme patch pour les noyaux 2.0.36+ et est intégré
dans les noyaux 2.2.3+. Pour le faire marcher, quelques petites choses sont
nécessaires~:

<itemize>
<item>
Ayez la dernière version des source du noyau décompressées dans
<tt>/usr/src/linux</>.

<item>
Pour les 2.0, il est NÉCESSAIRE d'installer IPPORTFW (voir la section <ref
id="2.0.x-Requirements">) comme expliqué dans la section <ref
id="Forwarders">.

<item>
Téléchargez le patch LooseUDP depuis la section <ref id="2.0.x-Requirements">.
</itemize>

Maintenant, mettez le patch LooseUDP dans le répertoire <tt>/usr/src/linux</>. Quand c'est fait, tapez~:

<tscreen>Pour un patch compressé~: zcat loose-udp-2.0.36.patch.gz | patch -p1</tscreen>

<tscreen>Pour un patch non compressé~: cat loose-udp-2.0.36.patch | patch -p1</tscreen>

Maintenant, suivant la version du "patch", vous verrez le texte suivant~:

<tscreen>
<verb>
patching file `CREDITS'
patching file `Documentation/Configure.help'
patching file `include/net/ip_masq.h'
patching file `net/ipv4/Config.in'
patching file `net/ipv4/ip_masq.c'
</verb>
</tscreen>

Si vous voyez le texte "Hunk FAILED" une fois et une seule au début du patch,
ne vous inquiétez pas, vous avez probablement une vieille version du patch (ça
à été réparé depuis) mais ça marche quand même. Si ça plante complètement,
vérifiez que vous avez appliqué le patch IPPORTFW en PREMIER.

Une fois que le patch est installé, reconfigurer le noyau comme c'est expliqué
dans la section <ref id="Kernel-Compile"> et dites bien YES à l'option "IP:
loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?]".

Une fois que vous tournez avec le patch LooseUDP, vous devriez pouvoir jouer a
un bon paquet de jeux. Quelques URL se trouvent dans la section <ref
id="Game-Clients"> pour savoir comment pouvoir utiliser des jeux comme
BattleZone et d'autre.




<!-- Section 5 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Foire Aux Questions
<p>
<label id="FAQ">
Si vous avez des suggestions a faire, envoyez les à <htmlurl
url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et <htmlurl
url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> (NdT~: en
anglais). S'il vous plait, poser clairement la question et la réponse
appropriée. Merci ! <!--NdT : ça veux dire ce que j'ai traduit ou pas~?-->


<label id="MASQ-supported-Distributions">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Quelles sont les distributions de Linux qui sont livrées avec les
fonctionnalités d'IP MASQ a la base~?
<p>
Si votre distribution de Linux ne supporte pas l'IP MASQ a la base, ne vous
inquiétez pas. Tout ce que vous aurez a faire est de recompiler votre noyau
comme il l'est expliqué plus haut dans ce HOWTO a la section <ref
id="Kernel-Compile">.

NOTE~: Si vous pouvez nous aider a remplir cette table, envoyez un email à
<htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> ou
<htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> (NdT~: en
anglais).

<verb>
Caldera       < v1.2 : NON - ?
Caldera         v1.3 : OUI - basé sur un 2.0.35
Caldera         v2.2 : OUI - basé sur un 2.2.5
Debian          v1.3 : NON - ?
Debian          v2.0 : NON - ?
Debian          v2.1 : NON - basé sur un 2.2.1
DLX Linux       v?   :  ?  - ?
DOS Linux       v?   :  ?  - ?
Hal91 Linux     v?   :  ?  - ?
Linux Mandrake  v5.3 : OUI - ?
Linux Mandrake  v6.0 : OUI - basé sur un 2.2.5
Linux PPC       vR4  : NON - ?
Linux Pro       v?   :  ?  - ?
LinuxWare       v?   :  ?  - ?
MkLinux         v?   :  ?  - ?
MuLinux         v3rl : OUI - ?
Redhat        < v4.x : NON - ?
Redhat          v5.0 : OUI - ?
Redhat          v5.1 : OUI - ?
Redhat          v5.2 : OUI - basé sur un 2.0.36
Redhat          v6.0 : OUI - basé sur un 2.2.5
Slackware       v3.0 :  ?  - ?
Slackware       v3.1 :  ?  - basé sur un 2.0.29
Slackware       v3.2 :  ?  - ?
Slackware       v3.3 :  ?  - basé sur un 2.0.34
Slackware       v3.4 :  ?  - ?
Slackware       v3.5 :  ?  - ?
Slackware       v3.6 :  ?  - ?
Slackware       v3.9 :  ?  - basé sur un 2.0.37pre10
Slackware       v4.0 :  ?  - ?
Stampede Linux  v?   :  ?  - ?
SuSE            v5.2 : OUI - ?
SuSE            v5.3 : OUI - ?
SuSE            v6.0 : OUI - ?
SuSE            v6.1 : OUI - basé sur un 2.2.5
Tomsrbt Linux   v?   :  ?  - ?
TriLinux        v?   :  ?  - ?
TurboLinux      v?   :  ?  - ?
Yggdrasil Linux v?   :  ?  - ?
</verb>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<label id="FAQ-Hardware">
<sect1> Quel est le minimum requis et quelles sont les limitations de l'IP
MASQ~? Est ce que ça marche bien~?
<p>
Un 486/66 avec 16 Mo de RAM, étais largement suffisant pour masquerader les
1.54 Mo/s d'une T1~! Le MASQ est aussi connu pour marcher très bien sur un
386SX-16s avec 8 Mo de RAM. Bon, il faut aussi savoir que l'IP Masq commence a
déconner<!--NdT : trash, j'ai pas mieux--> a partir de 500 connexions MASQ.

La seule application qui est connue pour bloquer temporairement une machine
Linux est GameSpy. Pourquoi~? Quand il raffraichis ses listes, il crée 10000
petites connexions dans très peu de temps. Jusqu'à ce que les sessions
timeout<!--NdT : C'est pas joli, ou alors, on conjugue : timeoutent ?-->, la
table des connexion MASQ est pleine. Allez visiter la section <ref
id="No-Free-Ports"> pour plus de détails.

Tant qu'on y est~:

Il y a une limite en dur dans le noyau à 4096 connexions TCP ou UDP. Cette
limite peut être changée en changeant les valeurs dans
<tt>/usr/src/linux/net/ipv4/ip_masq.h</>. Jusqu'à 32000, ça doit être bon. Si
vous voulez changer cette limite, vous aurez besoin de changer les valeurs de
PORT_MASQ_BEGIN &amp; PORT_MASQ_END pour avoir un espace suffisant au dessus
de 32K et en dessous de 64K.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai vérifié toute ma configuration, et je n'arrive toujours pas a
faire marcher l'IP MASQ. Que faire~?
<p>
<itemize>
<item>
Restez calme. Allez vous chercher une tasse de thé, café, soda, etc., et
allez faire une sieste. Une fois que votre esprit est plus clair, essayez les
suggestions ci dessous. La mise en place de l'ip masquerading n'est PAS une
chose difficile, mais il y a pas mal de concepts qui sont nouveaux pour vous.

<item>
Encore une fois, refaites toutes les étapes de la section <ref
id="Testing">. 99% du temps, vous n'êtes même pas allés lire cette section.

<item>
Allez lire <url url="http://www.indyramp.com/lists/masq/" name="IP Masquerade
Mailing List Archives">, il est tres probable que la réponse a votre question
trouvera réponse en faisant une simple recherche dans les archives.

<item>
Allez parcourir le document <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS">. Il couvre l'IP MASQ pour les noyaux 2.0 et 2.2 et beaucoup
d'autres sujets comme PPPd, DialD, DHCP, DNS, Sendmail, etc.

<item>
Assurez vous que vous n'avez pas lancés les démons ROUTED ou GATED. Pour
vérifiez, tapez "<tt>ps aux | grep -e routed -e gated"</>"

<item>
Posez votre question sur la liste IP MASQ (allez voir la section suivante de
la FAQ pour plus de détails). S'il vous plaît, ne posez votre question sur la
liste que si vous n'avez pas trouvé la réponse dans les archives. Assurez vous
de bien inclure toutes les informations requises dans la section <ref
id="Testing"> dans votre email~!

<item>
Posez votre question sur un newsgroup en rapport avec Linux.

<item>
Envoyez un email à <htmlurl url="mailto:ambrose@writeme.com"
name="ambrose@writeme.com"> et/ou <htmlurl url="mailto:dranch@trinnet.net"
name="dranch@trinnet.net">. Mais vous aurez plus de chance d'obtenir une
réponse venant de la liste IP MASQ que de nous.

<item>
Vérifiez votre configuration une fois de plus :-)

</itemize>

<label id="Masq-List">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1>Comment est ce que je m'inscrit a la liste IP MASQ et/ou a la liste IP
MASQ developers, et ou puis-je trouver leurs archives~?
<p>
Il y a deux moyens de s'inscrire aux deux listes IP MASQ. La première est
d'envoyer un email à <htmlurl url="mailto:masq-request@indyramp.com"
name="masq-request@indyramp.com">. Pour vous inscrire a la liste IP MASQ
developers, envoyez un email à <htmlurl
url="mailto:masq-dev-request@indyramp.com"
name="masq-dev-request@indyramp.com">. Voyez ci dessous pour plus de détails.

<itemize>
<item>
Inscription par email~: Mettez le mot "<tt>subscribe</>" soit dans le sujet
soit dans le corps du message. Si vous voulez juste vous inscrire à la liste
en mode digest (tous les emails vous sont envoyés chaque semaine en une seule
fois dans un gros message), mettez les mots "<tt>subscribe digest</>" dans le
sujet ou le corps.
<item>
Une fois que le serveur a reçu votre inscription, il vous inscrira a la liste
en question et vous enverra un mot de passe. Gardez ce mot de passe car vous
en aurez besoin plus tard pour vous désinscrire ou changer vos options.
</itemize>

La deuxième méthode est de passer via un navigateur web et de s'inscrire
depuis le formulaire <htmlurl url="http://www.indyramp.com/masq-list/"
name="http://www.indyramp.com/masq-list/"> pour la liste principale ou sur
<htmlurl url="http://www.indyramp.com/masq-dev-list/"
name="http://www.indyramp.com/masq-dev-list/"> pour la liste developers.

Une fois inscrit, vous recevrez les mails des listes ou vous vous êtes
inscrits. Notez aussi qu'il n'est pas nécessaire d'être inscrit pour consulter
les archives des deux listes. Pour ce faire, allez visiter les adresses ci
dessus.

Enfin, notez que vous ne pouvez poster des messages que depuis des adresses
depuis lesquelles vous êtes inscrits.

Si vous avez un quelconque problème en rapport avec les listes de diffusions,
contactez <htmlurl url="mailto:masq-owner@indyramp.com" name="Robert Novak">.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> 
<sect1> En quoi est ce que IP MASQ diffère des services NAT/Proxy~?
<p>
<verb>

Proxy:  Serveurs proxy sont disponibles pour : Win95, NT, Linux, Solaris, etc.

          Pour :   + (1) adresse IP ; économique
                   + Possibilité de cache pour de meilleurs performances (WWW, etc.)

          Contre : - Toutes les applications utilisées derrière le proxy doivent
                     supporter les services SOCKS et être configurés pour utiliser
                     les services du Proxy.
                   - Explose les statistiques et compteurs Web

        Un serveur proxy utilise seulement une adresse IP, comme IP MASQ, et sert de
        passerelle entre les clients sur le réseau privé (navigateur Web, etc.). Ce
        proxy reçoit des requêtes comme TELNET, FTP, WWW, etc. du réseau interne sur
        une interface. Il initie a son tour une requête comme si quelqu'un sur le
        proxy faisait la requête. Une fois que le serveur distant a répondu, il
        transfert les adresses TCP/IP au client MASQ interne et envoie la requête a
        la machine interne. C'est pour cela que ça s'appelle un serveur PROXY.

           Note : Toutes les applications que vous voudrez utiliser sur le réseau
                  interne doivent supporter un serveur proxy comme Netscape et
                  quelques bons clients TELNET et FTP. Ceux qui ne supportent pas un
                  serveur proxy ne fonctionneront pas.

        Une autre chose sympa a propos des serveurs proxy est que certains d'entre
        eux cachent aussi leurs données (Squid pour le WWW). Donc, imaginons que
        vous avez 50 clients qui lancent Netscape en même temps, si ils ont toujours
        la page par défaut de configurée, vous auriez 50 copies de la même page
        chargée 50 fois via la connexion internet. Avec un proxy cache, seule une
        copie de la page serais téléchargée via la connexion internet et elle serais
        ensuite distribuée a la demande aux machines internes. Non seulement ca
        sauvegarde la bande passante de la connexion internet mais en plus, les
        machines internes ont un acces beaucoup plus rapide au net.



MASQ:   Le masquerading est disponible sous Linux, et certains routeurs RNIS tels   
 OU     les Zytel Prestige128, Cisco 770, NetGear ISDN routers, etc.
1:+
 NAT         
          Pour :   + Seule une adresse IP est necessaire (économique)
                   + Ne requiert pas de support dans les applications.
                   + Utilise des logiciels de firewall, ce qui permet de rendre
                     votre réseau plus sur.

          Contre : - Requiert une machine Linux ou un routeur RNIS dédié (d'autres
                     produits peuvent l'avoir toutefois...)
                   - Le trafic entrant ne peut pas accéder a votre réseau interne, a
                     moins que votre LAN n'initie le trafic, ou qu'un logiciel de
                     redirection de ports soit installé. Beaucoup de serveurs NAT ne
                     savent pas le faire.
                   - Certains protocoles doivent être pris en charge uniquement via
                     des redirecteurs de firewall, etc. Linux supporte tout cela
                     (FTP, IRC, etc.) mais beaucoup de routeurs ne le font PAS
                     (NetGear le fait).

        MASQ ou 1:+ NAT est similaire a un serveur proxy dans le sens que le serveur
        fera de la translation d'adresse IP pour tromper les serveurs distants (WWW
        par exemple) comme si le serveur MASQ avait fait la requête et non pas une
        machine interne.

        La différence majeure entre le MASQ et un PROXY est que le serveur MASQ n'a
        pas besoin de changer la configuration des machines clientes. Configurez les
        juste pour utiliser la machine Linux comme étant leur passerelle par défaut
        et tout marchera sans problemes. Vous aurez besoin d'installer des modules
        Linux spéciaux sur le serveur pour certains services (RealAudio, FTP,
        etc. pour que cela marche) !
 
        Beaucoup de gens utilisent un serveur MASQ pour faire du TELNET, du FTP,
        etc. *ET* mettent aussi en place un serveur proxy cache pour le trafic WWW
        pour augmenter les performances.


NAT:    Des serveurs NAT sont disponibles pour Windows 95/98/NT/2000, Linux,
        Solaris, et certains bons routeurs RNIS (pas les Ascend).

          Pour :   + Très configurable
                   + Pas de logiciels vraiment nécessaires. 

          Contre : - Requiert un sous réseau de votre FAI (cher)

        Le NAT (translation d'adresses réseau) est le nom d'une machine ayant a sa
        disposition un certain nombre d'adresses IP valides qu'il peut
        utiliser. Lorsqu'une connexion vers l'extérieur est requise par un
        utilisateur interne, cette machine associe une adresse IP valide disponible
        a l'IP privée qui requiert la connexion. Apres ca, tout le traffic est
        réécrit de l'adresse IP NAT publique pour l'adresse IP NAT
        privée. Lorsqu'une adresse NAT publique reste sans être utilisée pendant un
        certain laps de temps, l'adresse IP publique retourne dans le groupe des IP
        publiques disponibles.

        Le problème principal du NAT est qu'une fois que toutes les adresses IP
        publiques sont utilisées, ceux qui veulent obtenir une connexion ensuite ne
        le pourront pas tant qu'une adresse ne se libère pas.
</verb>
<!-- Ndt : Tout est clair ? -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Existe-t-il des outils de configuration de firewall graphiques ?
<p>

Oui ! Il y a un peu de tout. Mais la majorité est faite pour marcher avec
IPFWADM. Voici une courte liste des outils disponibles par ordre
alphabétique. Si vous n'en connaissez pas d'autres, ou que vous avez des
remarques (bonnes/mauvaise/méchantes) sur ceux qui sont ici, envoyez un email
a Ambrose ou David.
<p>
<itemize>
<item>
John Hardin's <htmlurl url="http://www.wolfenet.com/~jhardin/ipfwadm.html"
name="IPFWADM Dot file generator"> - Une version IPCHAINS est en cours.

<item>
Sonny Parlin's <url
url="http://www.mindstorm.com/&tilde;sparlin/fwconfig.shtml" name="FWCONFIG">
pour IPFWADM et IPCHAINS

<item>
William Stearns's <url url="http://www.pobox.com/&tilde;wstearns/mason/"
name="Mason"> - Un système de création de règles a la volée.<!-- NdT : A
Build-a-ruleset on-the-fly type system -->

</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Est-ce que IP Masquerade marche avec une IP dynamique~?
<p>
Oui, bien sur que cela marche avec une adresse IP dynamique assignée par votre
FAI, d'habitude, via un serveur DHCP. Aussi longtemps que vous avez une
adresse Internet valide, cela devrait marcher. Bien entendu, les IP statiques
conviennent aussi.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Puis-je utiliser des modems cable, DSL, liaison satellite, etc pour me
connecter à Internet en utilisant IP masquerading~?
<p>
Bien sûr, tant que Linux supporte l'interface réseau, cela marchera.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Puis-je utiliser DialD ou la fonctionnalité de connexion à la demande
de PPPd avec IP MASQ ?
<p>

Bien sur ! IP MASQ est totalement transparent à DialD ou PPP. La seule chose
qui peut poser problème si vous avez des règles de firewall méchantes et que
vous avez une adresse dynamique. Référez vous a l'item de la FAQ "Est-ce que
IP Masquerade marche avec une IP dynamique~?" ci dessus pour plus de détails.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Quels sont les programmes qui fonctionnent avec l'IP Masquerade~?
<p>
Il est très difficile d'avoir une liste exhaustive des "programmes qui
marchent". Toutefois, la majorité des applications internet sont supportées,
telles que surfer sur Internet (Netscape, MSIE, etc.), ftp (comme WS_FTP),
Real Audio, telnet, SSH, POP3 (courrier entrant - pine, Outlook), SMTP
(courrier sortant), etc.

Les programmes qui impliquent des protocoles plus compliqués ou des méthodes
de connexion spéciales necessitent des outils d'aide spéciaux.

Pour plus de détails, référez vous à cette page : <url
url="http://dijon.nais.com/~nevo/masq/" name="programmes qui marchent avec le
Linux IP masquerading"> par Lee Nevo.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Comment puis-je faire marcher l'IP Masquerading sur une RedHat, une
Debian, une Slackware, etc~?
<p>
La distribution de Linux que vous avez, les procédures pour mettre en place
l'IP masquerading mentionnées dans ce HOWTO devraient suffire. Certaines
distributions auront peut être des programmes graphiques ou des fichiers de
configuration spéciaux pour rendre les réglages plus simples. Nous faisons en
sorte de rendre ce HowTo aussi simple que possible.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Mes connexions TELNET semblent mourrir si je ne les utilise pas
pendant quelques temps. Pourquoi ?
<p>
Par défaut, IP MASQ à un time out de connexion pour les sessions TCP, les TCP
FIN et le traffic UDP qui est a 15 minutes. Il est recommendé d'utiliser les
valeurs suivantes (comme elles le sont dans le fichier
<tt>/etc/rc.d/rc.firewall</> décrit dans ce HOWTO) :
<p>
Linux 2.0.x avec IPFWADM:
<p>
<verb>
# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#  160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ)
#
/sbin/ipfwadm -M -s 7200 10 160

</verb>
<p>

Linux 2.2.x avec IPCHAINS:
<p>
<verb>
# Durée de vie des connexion MASQuées
#
#    2 hrs pour une session TCP
#   10 sec apres qu'un paquet "FIN" soit passé
#   60 sec pour le traffic UDP (Les utilisateurs d'ICQ doivent configurer leur ICQ avec
#                               un timeout de firewall de 30 secondes)
#
ipchains -M -S 7200 10 60
</verb>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Lorsque ma connexion Internet arrive, rien ne marche, ensuite, si je
recommence, tout marche. Pourquoi~?
<p>
La raison est que vous utilisez une adresse dynamique et que lorsque votre
connexion internet arrive, IP Masquerade ne connaît pas son adresse IP. Il
existe une solution. Dans votre jeu de règles <tt>/etc/rc.d/rc.firewall</>,
ajoutez la ligne suivante~;
<p>
<verb>
# Utilisateurs d'IP dynamiques :
#
# Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option
# suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP
# dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien
# plus facile.
#
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
</verb>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> L'IP MASQ semble fonctionner comme un charme, mais certains sites ne
marchent pas. Cela se produit le plus souvent avec des sites WWW ou FTP.

<p>
Il y a deux raisons possibles à cela. La première est très commune, le
deuxième, très peu.
<p>
<itemize>
<item>
A partir des noyaux 2.0.36 et 2.2.9, il y a un BUG dans le code MASQ qui a qui
a à voir avec les paquets qui ont le bit DF ou "Don't Fragment" (ne pas
découper) de positionné. En gros, lorsque la machine MASQ se connecte à
internet avec un MTU inférieur a 1500, quelques paquets auront le bit DF de
positionné. Bien que changer le MTU de votre Linux à 1500 semblera résoudre le
problème, le bug est toujours là. Le problème semble venir du fait que le code
MASQ ne réécrit pas correctement les paquets ICMP avec le code ICMP 3.4
revenant a l'ordinateur MASQ à la source. A cause de cela, le paquet est
détruit. Si vous êtes un programmeur réseau et que vous pensez pouvoir le
faire... ESSAYEZ~!

Ne vous inquietez pas trop quand même. Pour contourner ce bug, changez le MTU
de votre lien Internet à 1500. Certains utilisateurs crieront car cela peut
créer quelques latences avec des programmes comme TELNET ou des jeux, mais
l'impact est vraiment faible. D'un autre coté, la majorité du trafic HTTP et
FTP deviendra plus rapide !

Pour réparer cela, regardez quel est le MTU de votre lien Internet. Pour le
savoir, lancez "<tt>/sbin/ifconfig</>". Maintenant, regardez les lignes
correspondant a votre connexion Internet et regardez le MTU. Il doit être a
1500. Pour l'Ethernet, c'est la valeur par défaut, mais sur un lien PPP, la
valeur par défaut est de 576.

<item>
Pour règler ce probleme de MTU sur votre lien PPP, éditez votre fichier
<tt>/etc/ppp/options</> et mettez y les lignes "<tt>mtu 1500</>" et "<tt>mru
1500</>". Sauvez et relancez votre lien PPP. Comme ci dessus, vérifiez que
votre lien PPP à bien les valeurs correctes pour MTU et MRU.
<p>
<item>
Pour réparer un probleme de MTU sur un lien Ethernet vers votre modem ADSL,
Cable, etc, vous allez devoir éditer vos scripts de démarrage. Allez consulter
<url url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 16"> pour plus d'informations.
<p>
<item>
Enfin, bien que ce ne soit pas un probleme tres commun, certaines personnes
ont trouvé leur solution. avec les utilisateurs PPP, sur quel port se connecte
PPPd~? À un port <tt>/dev/cua*</> ou un <tt>/dev/ttyS*</>~? Il doit se
connecter sur un port <tt>/dev/ttyS*</>. Les vieux cua font se comporter les
connexions de manières bizarres.
</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> IP Masquerading semble être lent.
<p>
Il peut y avoir quelques raisons a cela~:
<itemize>
<item>
Assurez vous que vous n'avez pas les réseaux internes et externes lancés sur
la même carte réseau avec de l'IP alias. Si vous le faites, vous devriez
vraiment aller dépenser 100F dans une deuxième carte réseau pour que chaque
réseau ait la sienne.

<item>
Si vous avez un modem externe, assurez vous d'avoir un bon câble. Beaucoup de
PC ont ces cables plats qui connectent le port série a la carte mère ou la
carte d'E/S. Si vous avez un câble comme cela, assurez vous qu'il est dans de
bonnes conditions. J'ai personnellement un anneau de ferrite (ces espèces
anneaux en métal gris/noir) autour de tous mes cables plats.

<item>
Assurez vous que votre MTU est a 1500 comme il l'est décrit ci dessus.

<item>
Assurez vous que votre port série est à un UARL 16550A ou mieux. Lancez
"<tt>dmesg | less</>" pour vérifier.

<item>
Assurez vous que le port série sur lequel votre connexion tourne est a 115200
(ou plus rapide si votre modem et votre port série le supportent... comme les
adaptateurs RNIS).

<itemize>
<item>
Noyaux 2.0~: Ces noyaux sont un peu vieux et ne peuvent pas obliger le noyau a
passer le port série à 115200. Par conséquent, dans l'un de vos scripts de
démarrage comme <tt>/etc/rc.d/rc.local</> ou <tt>/etc/rc.d/rc.serial</>,
lancez les commandes suivantes si votre modem se trouve sur le COM2 :

<itemize>
<item>
<tt>setserial /dev/ttyS1 spd_vhi</>

<item>
dans votre script PPPd, éditez la ligne pour inclure la vitesse de 38400
d'après la page man de pppd.
</itemize>

<item>
Noyaux 2.2~: Contrairement aux 2.0, les 2.1 et 2.2 n'ont pas besoin d'utiliser
setserial.

<itemize>
<item>
Donc, dans votre script PPPd, éditez la ligne lançant pppd et ajoutez la
vitesse de 115200.
</itemize>
</itemize>

<item>
Réglez la fenêtre de réception TCP à au moins 8192.

<itemize>
<item>
Bien que cela soit COMPLÈTEMENT hors du sujet de ce document, cela peut aider
un petit peu dans certaines conditions.<!--NdT : heu, je trouve rien de joli
pour l'original anglais--> Pour plus de détails, référez vous a la section
optimisation des réseaux de <htmlurl
url="http://www.ecst.csuchico.edu/&tilde;dranch/Linux/TrinityOS.wri"
name="TrinityOS - Section 16">.
</itemize>

<item>
Réglez IRQ-Tune pour vos ports séries.
<itemize>
<item>
Sur la majorité du matériel PC, l'utilisation de <url
url="http://www.best.com/&tilde;cae/irqtune/" name="IRQTUNE"> de Craig Estey's
accroît de manière significative les performances des ports pour les
connexions PPP et SLIP.
</itemize>
</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Maintenant que j'ai l'IP MASQ qui marche, j'ai plein de notifications
et d'erreurs bizarres dans mon SYSLOG. Comment comprendre les erreurs
IPFWADM/IPCHAINS dans le texte ?
<p>
Il y a probablement deux choses normales que vous allez voire~:
<itemize>
<item>
<bf>MASQ: Failed TCP Checksum error:</bf> Vous verrez cette erreur lorsqu'un
paquet venant de l'Ethernet a sa section de données corrompue alors que le
reste du paquet semble bon. Lorsque votre machine Linux reçoit ce paquet, il
calcule le CRC du paquet et détermine qu'il est corrompu. Sur la plupart des
machines tournant sur des OS comme Microsoft Windows, le paquet est juste mis
silencieusement a la poubelle, la seule différence est que Linux le dit. Si
vous avez beaucoup de paquets de ce genre a travers votre lien PPP, allez déjà
lire l'entrée précédente de la FAQ sur les lenteurs.

<item>
Si toutes les astuces ne servent a rien, essayez d'ajouter la ligne
"<tt>-vj</>" a votre <tt>/etc/ppp/options</> et redémarrez PPPd.

<item>
<bf>Firewall hits</bf>~: Vous êtes connectés a Internet avec un firewall
décent, vous allez voir le nombre de gens qui tentent de pénétrer votre
machine Linux~! Alors, qu'est ce que ces logs signifient~?

D'après <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 10">~:

<p>

<verb>
Dans les règles suivantes, les lignes ayant soit DENY soit REJECT ont aussi un
"-o" pour dire au firewall d'envoyer les messages au SYSLOG. Tout cela est
stocké soit dans :

        Redhat:         /var/log
        Slackware:      /var/adm

Si vous regardez a vos logs de firewall, vous verrez des choses comme cela~:

---------------------------------------------------------------------
IPFWADM:
Feb 23 07:37:01 Roadrunner kernel: IP fw-in rej eth0 TCP 12.75.147.174:1633
	100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254

IPCHAINS:
Packet log: input DENY eth0 PROTO=6 12.75.147.174:1633 100.200.0.212:23
	L=44 S=0x00 I=54054 F=0x0040 T=254
---------------------------------------------------------------------

Il y a beaucoup d'informations sur ces lignes. Découpons donc tout cela pour
que vous puissiez comprendre ce qui s'est passé sur votre machine. Notez que
cet exemple explique pour IPFWADM, bien qu'il soit compréhensible aux
utilisateurs d'IPCHAINS.

--------------

- Ce "hit" du firewall est arrivé le "Feb 23 07:37:01".

- Sur l'ordinateur "RoadRunner".

- Il est arrivé sur le protocole IP ou TCP/IP.

- Il est arrivé dans ("fw-in") le firewall
	* d'autres logs pourraient dire "fw-out" pour la sortie
	  ou "fw-fwd" pour le forwarding

- Ensuite, le hit a été "rejETÉ".
	* d'autres logs pourraient dire "deny" ou "accept"

- Ce hit du firewall est arrivé sur l'interface "eth0" (lien Internet).

- C'était un paquet "TCP".

- Ce hit est arrivé de l'adresse IP "12.75.147.174" avec comme port de retour
  "1633".

- Ce hit étais adressé a l'IP "100.200.0.212" sur le port "23" ou TELNET.
	* Si vous ne saviez pas que le port 23 correspondait au TELNET, allez
	  jeter un coup d'oeil au fichier /etc/services.

- Ce paquet faisait "44" octets de long.

- Ce paquet n'avais aucun TOS (type de service)
	--Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie...
	  vous n'avez pas envie de savoir.
	* pour IPCHAINS, il faut diviser ce nombre par 4.

- Ce paquet avec comme "IP ID" "18".
	--Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie...
	  vous n'avez pas envie de savoir.

- Ce paquet avec avais un fragment de décalage de 16 bits incluant tout paquet
  TCP/IP avec comme drapeau "0x0000".
	--Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie...
	  vous n'avez pas envie de savoir.
	* Une valeur commençant par "0x2..." ou "0x3..." aurais signifié que le
	  drapeau "Autres Fragments" était positionné et que d'autres morceaux
	  de paquets étaient a venir pour compléter cet ÉNORME paquet.
	* Une valeur de "Ox4..." et "Ox5..." signifie que le drapeau "Ne pas
	  fragmenter" est positionné.
	* Toutes les autres valeurs est le décalage du fragment (divisé par 8)
	  pour être réassemblé plus tard.

- Ce paquet avais un TTL de 20.
	* Chaque saut au travers d'Internet soustrait 1 de ce nombre. En
	  général, les paquets commencent leur vie avec un TTL de 255 et si
	  jamais ce nombre arrive a zéro, cela signifie que ce paquet a été
	  perdu et qu'il sera supprimé.
</verb>

</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Puis-je configurer IP MASQ pour permettre a des utilisateurs externes
de contacter directement des machines masquées ?

<p>
Bien sur~! avec IPPORTFW, vous pouvez autoriser TOUT ou juste certaines
machines sur Internet a contacter toutes vos machines masquées. <bf>Ce sujet
est développé dans la section <ref id="Forwarders"> de ce HOWTO.</bf>


<label id="No-Free-Ports">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai des "kernel: ip_masq_new(proto=UDP): no free ports." qui
apparaissent dans mon SYSLOG. Que se passe-t-il ?

<p>
L'une de vos machines internes crée un nombre anormalement haut de paquets a
destination d'Internet. Comme l'IP MASQ construit une table et transmet ces
paquets sur Internet, la table se remplis vite. Une fois cette table pleine,
vous aurez droit à cette erreur.

La seule application que je connaisse et qui crée cette situation
temporairement est un programme de jeu appelé "GameSpy". Pourquoi~? Car il
récupère une liste de serveurs et ensuite, ping chaque serveur de la liste
(environ 1000 serveurs). En créant tous ces pings, il crée une dizaine de
milliers de connexions dans un très court laps de temps. Jusqu'à ce que les
sessions expirent grâce aux timeout de l'IP MASQ, la table MASQ est pleine.

Que faire alors~? Franchement, n'utilisez pas de programme comme cela. Si vous
avez cette erreur dans vos logs, trouvez le programme, et stoppez le. Si vous
aimez beaucoup GameSpy, ne rafraîchissez pas la liste des serveurs trop
souvent. Une fois que vous arrêtez ce genre de programmes, l'erreur MASQ s'en
ira quand les connexions commenceront a expirer.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai des "ipfwadm: setsockopt failed: Protocol not available" lorsque
j'essaye d'utiliser IPPORTFW~!

<p>
Si vous obtenez ce message d'erreur, alors que vous venez d'installer un
nouveau noyau, assurez vous de bien avoir copié le noyau et de bien avoir
relancé LILO.

Référez vous à la fin de la section <ref id="Forwarders"> pour plus de
détails.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Les partages Microsoft ne marchent pas a travers l'IP MASQ~!

<p>
Pour supporter convenablement le protocole SMB, un module IP MASQ aurais
besoin d'être écrit, mais il y a trois façons de contourner ce problème. Allez
lire <htmlurl
url="http://support.microsoft.com/support/kb/articles/q172/2/27.asp" name="cet
article de la base de connaissances de Microsoft">.

La première façon est de configurer IPPORTFW et de rediriger les ports TCP
137, 138 et 139 vers la machine masquée. Bien que cette solution marche, elle
ne permet d'accéder qu'a UNE seule machine interne.

La deuxieme solution est d'installer et configurer <htmlurl
url="http://www.samba.org" name="Samba"> sur le serveur MASQ. Avec Samba, vous
pouvez mapper vos partages internes sur le serveur et les exporter aux clients
externes. La configuration de Samba est entièrement décrite dans le SMB HOWTO
et dans TrinityOS.

La troisième solution est de configurer un VPN (réseau privé virtuel) entre
les deux machines ou entre les deux réseaux. Cela peut être fait soit avec
PPTP, soit avec IPSEC. Il y a un patch <ref id="PPTP"> pour Linux et aussi une
implémentation complete d'IPSEC pour les noyaux 2.0 et 2.2. Cette solution est
probablement la plus sure des trois solutions.

Toutes ces solutions ne sont pas décrites dans ce HOWTO. Je vous recommande
d'aller lire TrinityOS pour de l'aide sur IPSEC et la page de John Hardin's
sur PPTP pour plus d'informations.

<em>S'IL VOUS PLAÎT, comprenez bien que le protocole SMB de Microsoft n'est
PAS sur du TOUT. A cause de cela, faire transiter des fichiers, impressions et
ouvertures de sessions SMB via Internet n'est PAS une bonne idée.</>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> L'IRC ne marche pas correctement pour les utilisateurs
MASQ. Pourquoi~?


<p>
La raison la plus probable est que la majorité des distributions Linux ont un
serveur IDENT qui n'arrive pas a prendre en charge les liens MASQ. Ne vous
inquiétez pas, il y a des IDENT de par le monde qui fonctionnent.

L'installation de ces logiciels est hors de propos dans ce HOWTO, mais chacun
a sa propre documentation. Voici quelques adresses~:
<itemize>
<item>
<url url="ftp://ftp.code.org/pub/linux/midentd/" name="Mident"> est largement
utilisé par la majorité des utilisateurs d'IRC.

<item>
<url url="http://insecurity.net/sidentd.gz" name="Sident">
  
<item>
<url url="ftp://sunsite.unc.edu/pub/Linux/system/network/daemons/" name="Autres Idents incluant Oidentd">

</itemize>

Notez que certains serveurs IRC n'autoriseront pas de multiples connexions
d'une machine, même si les ident sont différents et que les utilisateurs le
sont aussi. Plaignez vous a l'administrateur du serveur IRC. :-)

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> mIRC n'arrive pas a faire des DCC send.

<p>
C'est un problème de configuration de votre copie de mIRC. Pour réparer cela,
déconnectez vous du serveur IRC. Maintenant, dans mIRC, allez dans
fichier/options/Connect, cliquez sur Edit et vérifiez que vous vous connectez
bien sur le port 6667. Si vous avez besoin d'accéder via d'autres ports, allez
voir plus bas. Ensuite, allez dans Fichier/options/Local Info et effacez le
nom de machine ainsi que l'adresse IP, ensuite, sélectionnez "local host" et
"ip adress" (ip adress sera peut être coché mais désactivé). Ensuite, dans
"Lookup Method", configurez le pour "normal". Cela ne marchera PAS si vous
avez coché "server". Voilà. Reconnectez vous au serveur irc.

Si vous avez besoin de vous connecter a des serveurs irc sur un autre port que
6667 (par exemple 6969), vous allez avoir besoin d'éditer le fichier
<tt>/etc/rc.d/rc.firewall</> a l'endroit ou vous chargez les modules IP
MASQ. Éditez la ligne "modprobe ip_masq_irc" et ajoutez
"ports=6667,6969". Vous pouvez ajouter autant de ports que vous voulez tant
qu'ils sont séparés par des virgules.

Ensuite, déconnectez tous les clients IRC de toutes les machines masquées et
rechargez le module IP MASQ IRC :

<verb>
/sbin/rmmod ip_masq_irc
/etc/rc.d/rc.firewall
</verb>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Est ce que l'IP MASQ peut marcher avec une seule carte réseau (IP
Aliasing)~?

<p>
<bf>Oui et non</>. La fonctionnalité "IP Alias" du noyau sert a mettre en
place plusieurs interfaces comme eth0:0, eth0:1, etc mais il n'est pas
recommandé d'utiliser des interfaces aliasées pour faire de l'IP
Masquerading. Pourquoi~? Réaliser un firewall sécurisé devient plus dur avec
une seule interface réseau. De plus, vous allez rencontrer un nombre
anormalement élevé d'erreurs car les paquets reçus seront quasiment réenvoyés
au même moment. A cause de cela, et aussi vu qu'une carte réseau coûte moins
de 100 F, je recommande grandement d'acheter une deuxième carte réseau.

Vous devriez aussi comprendre que l'IP MASQ ne marchera en sortie que sur une
interface physique comme ppp0, eth0, etc... Masquer une interface aliasée
comme eth0:0, eth1:2, etc ne marchera PAS. En d'autres termes, cela NE
MARCHERA PAS~:

<itemize>
<item>
/sbin/ipfwadm -F -a m -W eth0:1 -S 192.168.0.0/24 -D 0.0.0.0/0

<item>
/sbin/ipchains -A forward -i eth0:1 -s 192.168.0.0/24 -j MASQ"

</itemize>

Si vous êtes toujours intéressés par le fait d'utiliser des interfaces
aliasées, vous allez avoir à autoriser la fonctionnalité "IP Alias" du
noyau. Recompilez et redémarrez. Une fois que vous avez votre nouveau noyau,
vous allez devoir configurer Linux pour utiliser la nouvelle interface
(eth0:0, etc). Après cela, vous pourrez la traiter comme n'importe quelle
interface avec quelques restrictions comme celle ci dessus.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'essaye d'utiliser NETSTAT pour montrer mes connexions masquées, mais
ça ne marche pas.

<p>
Il y a un problème dans le programme netstat. Après avoir rebooté linux,
lancer un <tt>netstat -M</> fonctionne, mais après qu'un ordinateur MASQué ai
fait un peu de trafic ICMP comme un ping ou un traceroute, etc. Vous verrez
peut être la chose suivante~:

<verb>
masq_info.c: Internal Error `ip_masquerade unknown type'.
</verb>

Pour contourner ce problème, utilisez la commande "<tt>/sbin/ipfwadm -M
-l</>". Vous noterez aussi qu'une fois que les entrées ICMP masquées expirent,
netstat remarche.


<label id="PPTP">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je voudrais réussir a faire marcher Microsoft PPTP (tunnel GRE) et/ou
des tunnels IPSEC (Linux SWAN) à travers l'IP MASQ.

<p>
C'EST possible. Toutefois, c'est légèrement hors de propos ici. Allez
consulter la page <htmlurl
url="ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html"
name="PPTP Masq"> de John Hardin pour plus de détails.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je veux faire marcher le jeu en réseau XYZ à travers IP MASQ, mais
cela ne marche pas~!

<p>
Tout d'abord, allez faire un tour sur <url
url="http://dijon.nais.com/&tilde;nevo/masq/" name="Lee Nevo's MASQ
Applications page">. Si la solution a votre probleme ne s'y trouve pas,
essayez de patcher votre noyau avec le patch <url
url="ftp://ftp.netcom.com/pub/mu/mumford/loose-udp-2.0.36.patch.gz"
name="LooseUDP"> qui est décrit dans la section <ref id="LooseUDP">. Allez
aussi faire un tour sur la <url
url="http://www.alumni.caltech.edu/&tilde;dank/peer-nat.html" name="NAT Page">
de Dan Kegel pour plus d'informations.

Si vous en avez le courage et les capacités, utilisez "<tt>tcpdump</>" pour
écouter votre réseau. Essayez de découvrir quels protocoles et ports votre jeu
XYZ utilise. Avec ces informations en main, inscrivez vous a la liste
<htmlurl url="mailto:masq-subscribe@tiffany.indyramp.com" name="IP Masq email
list"> et envoyez les résultats pour de l'aide.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> IP MASQ marche très bien, et puis au bout d'un certain temps, il
s'arrête de marcher. Un reboot semble corriger le problème pour un certain
temps. Pourquoi~?

<p>
Je parie que vous utilisez IPAUTOFW et/ou que vous l'avez compilé dans votre
noyau, non~? C'est un problème bien connu d'IPAUTOFW. Il est recommandé de ne
même pas configurer IPAUTOFW dans le noyau et d'utiliser IPPORTFW à la
place. Tout cela est couvert dans la section <ref id="Forwarders">.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Les machines masquées ne peuvent pas envoyer ni recevoir des emails~!

<p>
Bien que cela ne soit pas un problème de masquerading, mais que cela arrive a
pas mal de gens, ce problème mérite d'être mentionné.

SMTP~: Le problème est que vous utilisez certainement une machine Linux comme
serveur de mail et vous avez l'erreur suivante~:

<tscreen>
"error from mail server: we do not relay"
</tscreen>

Les dernières version de Sendmail et d'autres MTA (mail transfer agents)
désactivent le relayage par défaut (c'est une bonne chose). Donc, faites les
chose suivante~:

<itemize>
<item>
Sendmail~: Autoriser un relayage spécifique pour vos machines internes en
éditant le fichier <tt>/etc/sendmail.cw</> et ajoutez le nom de la machine et
le nom du domaine de votre machine masquée. Vous devriez aussi vérifier que
l'IP et le nom complet de la machine en question se trouvent dans le fichier
<tt>/etc/hosts</>. Une fois que cela a été fait, vous aurez a redémarrer
Sendmail pour qu'il relise son fichier de configuration. Tout cela est
expliqué dans <url
url="http://www.ecst.csuchico.edu/&tilde;dranch/LINUX/TrinityOS.wri"
name="TrinityOS - Section 25">

</itemize>

POP-3~: Certains utilisateurs configurent leurs ordinateurs masqués pour aller
récupérer leurs emails sur des serveurs POP-3 externes. Cela ne devrais pas
poser de problèmes, mais certains serveurs essayent de faire des requêtes
IDENT sur le port 113. La majorité des systèmes de part le monde ont comme
police par défaut mise a DENY. Ce n'est pas bien du tout. Réglez la a REJECT
et relancez votre <tt>rc.firewall</>.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai besoin que différents réseaux sortent sur des adresses IP
différentes (IPROUTE2)

<p>
Disons que vous avez le problème suivant :

<tscreen><verb>
LAN ----------> IP officielle
192.168.1.x --> 123.123.123.11
192.168.2.x -->123.123.123.12
</verb></tscreen>

Tout d'abord, vous devez comprendre que IPFWADM et IPCHAINS entrent en jeu
apres que le système de routage aie décidé ou envoyer le paquet. Cela devrais
être écrit en grosses lettres rouges dans toutes les documentations
IPFWADM/IPCHAINS/IPMASQ. Vous aurez donc tout d'abord a bien faire votre
routage et ensuite, ajouter IPFWADM/IPCHAINS, et/ou MASQ.

Dans le cas précédent, Vous allez devoir persuader le système de routage de
diriger les paquets de 192.168.1.x vers 123.123.123.11 et les paquets de
192.168.2.x vers 123.123.123.12. C'est la partie la plus ardue. Ajouter du
MASQ par dessus un routage correct est assez aisé.

Pour faire de routage bizarre, vous allez utiliser IPROUTE2.

Le site FTP principal est~:

<itemize>
<item>
<htmlurl url="ftp://ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.inr.ac.ru/ip-routing">

Les miroirs sont~:

</itemize>
<itemize>

<item>
<htmlurl url="ftp://linux.wauug.org/pub/net" name="ftp://linux.wauug.org/pub/net">

<item>
<htmlurl url="ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/">

<item>
<htmlurl url="ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/" name="ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/">

<item>
<htmlurl url="ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/ (STM1 to USA)">

<item>
<htmlurl url="ftp://sunsite.icm.edu.pl/pub/Linux/iproute/" name="ftp://sunsite.icm.edu.pl/pub/Linux/iproute/">

<item>
<htmlurl url="ftp://ftp.sunet.se/pub/Linux/ip-routing/" name="ftp://ftp.sunet.se/pub/Linux/ip-routing/">

<item>
<htmlurl url="ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/" name="ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/">

<item>
<htmlurl url="ftp://ftp.crc.ca/pub/systems/linux/ip-routing/" name="ftp://ftp.crc.ca/pub/systems/linux/ip-routing/">

<item>
<htmlurl url="ftp://ftp.paname.org" name="ftp://ftp.paname.org (France)">

<item>
<htmlurl url="ftp://donlug.ua/pub/mirrors/ip-route/" name="ftp://donlug.ua/pub/mirrors/ip-route/">

<item>
<htmlurl url="ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/">

</itemize>

  
Des RPM sont disponibles sur~:

<itemize>
<item>
<htmlurl url="ftp://omni.rk.tusur.ru/Tango/" name="ftp://omni.rk.tusur.ru/Tango/">

<item>
<htmlurl url="ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/" name="ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/">

</itemize>

NOTE~: Les instructions suivantes sont données uniquement car il n'y a que peu
d'informations disponibles sur IPROUTE2. Allez lire <htmlurl
url="http://www.compendium.com.ar/policy-routing.txt"
name="http://www.compendium.com.ar/policy-routing.txt"> pour avoir le début
d'un HOWTO sur d'IPROUTE2.

Les commandes "<tt>iprules</>" et "<tt>iproute</>" sont les mêmes que "<tt>ip
rules</>" et "<tt>ip route</>" (Je préfère les premières car elles sont plus
facile a retrouver). Toute les commandes ci dessous n'ont pas été testées, si
elles ne marchent pas, contactez l'auteur d'IPROUTE2... Pas David Ranch,
Ambrose Au, ou qui que ce soit sur la liste Masq, car cela n'a rien a voir
avec l'IP Masquerading.

Les premières commandes sont à exécuter une fois au boot, disons dans
<tt>/etc/rc.d/rc.local</>.

<tscreen>
<verb>
# Autoriser les deux LAN a communiquer, sans masq.
/sbin/iprule add from 192.168.0.0/16 to 192.168.0.0/16 table main pref 100
# Tout le trafic restant de 192.168.1.x va sortir, on le prends en charge via la table 101.
/sbin/iprule add from 192.168.1.0/24 to 0/0 table 101 pref 102
# Tout le trafic restant de 192.168.2.x va sortir, on le prends en charge via la table 102.
/sbin/iprule add from 192.168.2.0/24 to 0/0 table 102 pref 102
</verb>
</tscreen>

Ces commandes doivent être lancées lorsque eth0 est configurée, par exemple,
dans <tt>/etc/sysconfig/network-scripts/ifup-post</> (pour les
RedHat). Assurez vous les lancer a la main pour être sur qu'elles marchent.

<tscreen>
<verb>
# La table 101 force tous les paquets y arrivant à être envoyés via 123.123.123.11
/sbin/iproute add table 101 via 62123.123.123.11
# La table 102 force tous les paquets y arrivant à être envoyés via 123.123.123.12
/sbin/iproute add table 102 via 62123.123.123.12
</verb>
</tscreen>

A cette étape, vous devriez voir les paquets venant de 192.168.1.x a
destination du monde extérieur sont routés via 123.123.123.11, et que les
paquets de 192.168.2.x le sont via 123.123.123.12.

Une fois que le routage est correct, vous pouvez ajouter vos règles d'IPFWADM
ou d'IPCHAINS. Pour IPCHAINS, on pourrais mettre~:


<tscreen>
<verb>
/sbin/ipchains -A forward -i ppp+ -j MASQ
</verb>
</tscreen>

Si tout s'est bien passé, le code MASQ devrais voir les paquets routés sur
123.123.123.11 et 123.123.123.12, et utiliser ces adresses comme adresses
source de MASQ.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Pourquoi est ce que les noyaux 2.1 et 2.2 utilisent IPCHAINS et non
plus IPFWADM~?

<p>
IPCHAINS inclu plus de fonctionnalités qu'IPFWADM, dont~:

<itemize>
<item>
La "Qualité de Service" (QoS)

<item>
Un système en arbre contrairement au système linéaire d'IPFWADM (par exemple,
cela permet des choses comme "si ça vient de ppp0, va directement a cette
règle (qui contient ses règles propres)").

<item>
IPCHAINS est plus souple a configurer. Par exemple, il inclue la commande
"replace" (en plus d'"insert" et "add"). Il est aussi possible de nier des
règles (par exemple "ignorer tous les paquets sortant qui ne viennent pas de
mon IP" pour ne pas être la source d'une attaque spoofée).
  
<item>
IPCHAINS peut filtrer n'importe quel protocole IP, pas seulement TCP, UDP et
ICMP.
</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je viens de passer a un noyau 2.2 et ça ne marche plus.
<p>
Il y a plusieurs raisons qui peuvent faire que cela ne marche plus, en
supposant que vous avez une bonne connection à Internet et à votre LAN~:

<itemize>
<item>
Assurez vous que vous avez les fonctionnalités et les modules nécessaires
compilés et chargés. Référez vous aux sections précedentes pour cela.

<item>
Vérifiez <tt>/usr/src/linux/Documentation/Changes</> et assurez vous que
vous avez les bonnes versions des outils réseau installés.

<item>
Assurez vous d'avoir bien activé l'IP forwarding. Essayez de lancer <tt>echo
"1" &gt; /proc/sys/net/ipv4/ip_forwarding</>.
      
<item>
Assurez vous d'avoir bien suivi tous les tests de la section <ref
id="Testing"> de ce howto.

<item>
Vous devez utiliser <url url="http://www.rustcorp.com/linux/ipchains/"
name="ipchains"> pour manipuler les regles ipmasq et firewal.

<item>
IPPORTFW et IPAUTOFW ont été remplacés par <url
url="http://juanjox.kernelnotes.org/" name="IPMASQADM">. Vous allez devoir
appliquer des patchs au noyau, et à le recompiler, compiler le nouvel outil
IPMASQADM, et ensuite, convertir vos anciennes regles IPAUTOFW/IPPORTFW pour
utiliser la nouvelle syntaxe. Tout cela est intégrallement décrit dans la
section <ref id="Forwarders">.

<item>
Refaites toute la préparation et la configuration encore ! La plupart du
temps, c'est juste une erreur de typo ou une erreur stupide que vous verrez
facilement.

</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je viens de mettre à jour mon noyau avec un 2.0.36 ou plus récent et
ça ne marche plus~!
<p>
Il y a plusieurs chose que vous devriez vérifier, en supposant que vous avez
une bonne connection à Internet et à votre LAN~:

<itemize>
<item>
Assurez vous que vous avez bien toutes les fonctionnalités et modules de
compilés et chargés. Référez vous aux sections précédentes pour plus de
détails.

<item>
Verifiez dans <tt>/usr/src/linux/Documentation/Changes</> que vous avez bien
mis a jour le minimum pour survivre.

<item>
Assurez vous de bien avoir activé l'IP forwardinf. Essayez <tt>echo "1" &gt;
/proc/sys/net/ipv4/ip_forward</>.

<item>
Assurez vous d'avoir bien suivi tous les tests de la section <ref
id="Testing"> de ce howto.

<item>
Vous devriez utiliser <url url="http://www.xos.nl/" name="ipfwadm"> pour
manipuler les regles ipmasq et firewall. Vous aurez a patcher les noyaux 2.0.x
pour utiliser ipchains.

<item>
Refaites toute la préparation et la configuration encore ! La plupart du
temps, c'est juste une erreur de typo ou une erreur stupide que vous verrez
facilement.
</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai besoin de faire marcher des connexions EQL avec l'IP MASQ.

<p>
L'EQL n'a rien a voir avec l'IP MASQ bien qu'ils soient souvent utilisés
ensembles sur des machines Linux. A cause de cela, je vous recommenderais
d'aller récupérer la derniere version de l'<htmlurl
url="http://home.indyramp.com/masq/eql/eql.html" name="EQL HOWTO de Robert
Novak"> qui devrais répondre a toutes vos questions.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je n'arrive pas à faire marcher l'IP Masquerade ! Quelles sont les
possibilités pour le faire avec Windows ?

<p>
Ok, c'est vous qui l'avez voulu. Si vous voulez une solution Windows
NAT/proxy, voici une liste décente. Je n'ai aucune préférence entre ces
différents utilitaires, vu que je n'en ai utilisé aucun. (NdT~: j'utilise
souvent Winroute et il est très bien).

<itemize>
<item>
Firesock (des créateurs de Trumpet Winsock)

<itemize>
<item>
Joue le role de proxy

<item>
<htmlurl url="http://www.trumpet.com.au" name="http://www.trumpet.com.au">

</itemize>
  
<item>
Iproute

<itemize>
<item>
Programme DOS fait pour tourner sur un 286.

<item>
Requiert une machine Linux pour le MASQ.

<item>
<htmlurl url="http://www.mischler.com/iproute/" name="http://www.mischler.com/iproute/">

</itemize>

<item>
Microsoft Proxy

<itemize>

<item>
Requiert Windows NT Server

<item>
Assez cher

<item>
<htmlurl url="http://www.microsoft.com" name="http://www.microsoft.com">

</itemize>

<item>
NAT32

<itemize>
<item>
Compatible Windows 95/98/NT

<item>
<htmlurl url="http://www.nat32.com" name="http://www.nat32.com">

<item>
Coûte $25 pour Win9x et $47 pour Win9x et WinNT.

</itemize>

<item>
SyGate

<itemize>
<item>
<htmlurl url="http://www.sygate.com" name="http://www.sygate.com">

</itemize>

<item>
Wingate

<itemize>
<item>
Joue le role de proxy

<item>
Coûte $30 pour 2-3 IP.

<item>
<htmlurl url="http://www.wingate.com" name="http://www.wingate.com">

</itemize>

<item>
Winroute

<itemize>
<item>
Fait du NAT.

<item>
<htmlurl url="http://www.winroute.cz/en/" name="http://www.winroute.cz/en/">

</itemize>

</itemize>

Mais ne dites pas que c'est moi qui vous y envoie~!



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Comment je m'inscris à la liste IP Masquerade~?
<p>
Pour s'inscrire à la liste IP Masquerading envoyez un mail à <htmlurl
url="mailto:masq-subscribe@indyramp.com" name="masq-subscribe@indyramp.com">.

Le sujet et le corps de ce message sont <bf>ignorés</>. Ceci vous permet de
recevoir tous les messages de la liste alors qu'ils arrivent. Vous avez la
possibilité de recevoir les messages sous cette forme, mais si vous pouviez
plutot vous abonner au condensé (digest), choisissez le plutôt. Le digest
charge moins les machines qui servent les listes. Notez aussi qu'il n'est
possible de poster qu'à partir de l'adresse où vous êtes enregistrés.

Pour plus de commandes, envoyez un email à <htmlurl
url="mailto:masq-help@tori.indyramp.com" name="masq-help@tori.indyramp.com">.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je veux aider au développement de l'IP Masquerading. Comment faire~?
<p>
Abonnez vous à la liste de développement de l'IP Masquerading, et contactez les 
grands développeurs là-bas, en envoyant un email à <htmlurl
url="mailto:masq-dev-subscribe@tori.indyramp.com"
name="masq-dev-subscribe@tori.indyramp.com"> (ou pour le digest <htmlurl
url="mailto:masq-dev-digest-subscribe@tori.indyramp.com"
name="masq-dev-digest-subscribe@tori.indyramp.com">).

NE posez pas de questions n'ayant pas de rapport avec le développement sur
cette liste !!

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Où puis-je trouver plus d'informations sur l'IP Masquerading~?
<p>
Vous pouvez trouver plus d'informations sur l'IP Masquerading à <url
url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource"> que David et
moi maintenons. référez vous a la section 6.2 pour la disponibilité.

Vous pouvez aussi trouver plus d'informations à <url
url="http://www.indyramp.com/masq/" name="The Semi-Original Linux IP
Masquerading Web Site"> maintenu par Indyramp Consulting, qui fournissent
aussi les listes ipmasq.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Je veux traduire ce HOWTO dans une autre langue. Comment faire~?
<p>
Assurez vous que le langage dans lequel vous voulez traduire n'est pas déjà
couvert par quelqu'un d'autre; une liste des traductions faites est disponible
sur <url url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource">.

Envoyez un email à <htmlurl url="mailto:ambrose@writeme.com"
name="ambrose@writeme.com"> et je vous enverrais la derniere version du SGML
de ce HOWTO.


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Ce HOWTO semble à l'abandon, vous vous en occupez toujours~? Pouvez 
vous inclure plus d'informations sur~...~? Comptez vous l'améliorer~?
<p>
Oui, ce HOWTO est toujours maintenu. Il fut un temps ou j'étais coupable
d'être trop occupé à travailler sur deux boulots et je n'ai pas beaucoup de
temps pour travailler dessus, toutes mes excuses. Toutefois, avec l'arrivée de
David Ranch et tant que mainteneur aux alentours de la version 1.5, les choses
ont pas mal bougées.

Si vous pensez à un sujet qui devrais être inclus dans ce HOWTO, envoyez nous
un email à <htmlurl url="mailto:ambrose@writeme.com"
name="ambrose@writeme.com"> et <htmlurl url="mailto:dranch@trinnet.net"
name="dranch@trinnet.net">. Cela serais encore mieux si vous pouviez nous
fournir cette information. David et moi inclurons cette information dans le
HOWTO si elle nous semble appropriée. Et merci pour votre contribution.

Nous avons beaucoup de nouvelles idées et de plans pour mettre à jour ce
HOWTO, comme des études de cas, qui couvreraient differentes configurations
réseau mettant en jeu l'IP Masquerading, plus de choses sur la sécurité,
l'utilisation d'ipchains, des exemples sur ipfwadm/ipchains, plus de FAQ, plus
de choses sur les utilitaires de forwarding de port et de protocoles tels
masqasmin, etc. Si vous pensez que vous pouvez aider, faites le. Merci.

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> J'ai reussi à faire marcher l'IP Masquerade, c'est génial~! Qu'est ce 
que je pourrais faire pour vous remercier~?
<p>
<itemize>
<item>
Pouvez vous traduire ce HOWTO dans une nouvelle langue ?

<item>
Remerciez les développeurs, et appréciez le temps et les efforts qu'ils ont
passés dessus.

<item>
Inscrivez vous a la liste IP MASQ et aidez les nouveaux arrivants.

<item>
Envoyez nous un email pour nous faire savoir que vous êtes
contents.

<item>
Faites connaitre Linux autour de vous, et aidez les gens qui ont des
problèmes.

</itemize>


<!-- Section 6 -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect> Divers
<p>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Ressources utiles
<p>
Note du Traducteur~: Tous les documents cités dans cette section sont en
anglais, à moins d'une mention spéciale de ma part.

<itemize>

<item>
<url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource page"> devrait
contenir assez d'information pour l'installation d'IP Masquerade sur les
noyaux 2.0, 2.2 et même les 1.2~!

<item>
L'<url url="http://www.indyramp.com/masq/list/" name="archive de la mailing
list IP Masquerade"> contient certains des messages envoyés récement sur la
liste.

<item>
Ce document, en anglais~: <url url="http://ipmasq.cjb.net/ipmasq-HOWTO.html"
name="Linux IP Masquerade mini HOWTO"> pour les noyaux 2.2.x et 2.0.x.

<item>
Le <url url="http://ipmasq.cjb.net/ipmasq-HOWTO-1.2.x.txt" name="IP Masquerade
HOWTO pour les noyaux 1.2.x"> si vous utilisez un vieux noyau

<item>
La <url url="http://www.indyramp.com/masq/ip_masquerade.txt" name="FAQ IP
Masquerade"> contient des informations générales

<item>
<url url="http://www.freenix.org/unix/linux/HOWTO-vo/IPCHAINS-HOWTO.html"
name="Linux IPCHAINS HOWTO"> et <htmlurl
url="http://www.rustcorp.com/linux/ipchains/"
name="http://www.rustcorp.com/linux/ipchains/"> contiennent plein
d'informations sur l'utilisation d'ipchains, ainsi que les sources et les
binaires pour ipchains.

<item>
La page <url url="http://www.xos.nl/linux/ipfwadm/" name="X/OS Ipfwadm page">
contient les sources, binaires, de la documentation et d'autres informations
sur le package <tt>ipfwadm</>.

<item>
Une page sur les <url url="http://dijon.nais.com/~nevo/masq/"
name="applications qui marchent avec l'IP Masquerading de Linux"> par Lee Nevo
fournis des trucs et astuces pour faire marcher tout ça avec l'IP
Masquerading.

<item>
Le <url url="http://metalab.unc.edu/mdw/LDP/nag/nag.html" name="LDP Network
Administrator's Guide"> est incontournable pour les débutants essayant
d'installer un réseau.

<item>
<url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri"
name="Trinity OS Doc">, Une documentation très complete sur l'utilisation de
Linux en réseau.

<item>
Le <url url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html"
name="Linux NET-3 HOWTO"> (<bf>en français</>) contient aussi beaucoup
d'informations utiles sur l'utilisation du réseau sous Linux.

<item>
Le <url url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html"
name="Linux ISP Hookup HOWTO"> (<bf>en français</>) et le <url
url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="PPP HOWTO">
(<bf>en français</>) vous donnent des informations pour connecter votre hôte
Linux sur Internet.

<item>
Le <url url="http://www.freenix.org/unix/linux/HOWTO/Ethernet-HOWTO.html"
name="Linux Ethernet-Howto"> (<bf>en français</>) est une bonne source
d'informations sur la mise un place d'un réseau local utilisant Ethernet.

<item>
Vous pouvez également être intéressé par le <url
url="http://www.freenix.org/unix/linux/HOWTO/Firewall-HOWTO.html" name="Linux
Firewalling and Proxy Server HOWTO"> (<bf>en français</>)


<item>
Le <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html"
name="Linux Kernel HOWTO"> (<bf>en français</>) vous guidera pour pour la
recompilation de votre noyau.

<item>
D'autres HOWTOs, en <url url="http://www.freenix.org/unix/linux/HOWTO/"
name="français">, ou en <url
url="http://www.caldera.com/LDP/HOWTO/HOWTO-INDEX-3.html" name="anglais">.


<item>
Poster dans les newsgroups USENET~: <htmlurl
url="news:comp.os.linux.networking" name="comp.os.linux.networking">, ou, en
français, <htmlurl url="news:fr.comp.os.linux.configuration"
name="fr.comp.os.linux.configuration"> ou
<htmlurl url="news:fr.comp.os.linux.moderated"
name="fr.comp.os.linux.moderated">
</itemize>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Ressources sur l'IP Masquerade
<p>
Le site <url url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource
"> est dédié à l'IP Masquerading, aussi maintenu par David Ranch et moi. Les
dernières informations y sont toujours disponibles, et il peut y avoir des
choses non disponibles dans ce HOWTO.

Vous trouverez les ressources sur l'IP Masquerading aux endroits suivants~:
<itemize>
<item>
<htmlurl url="http://ipmasq.cjb.net/" name="http://ipmasq.cjb.net/">, site
primaire, redirigé sur <htmlurl url="http://www.tor.shaw.wave.ca/~ambrose/"
name="http://www.tor.shaw.wave.ca/~ambrose/">

<item>
<htmlurl url="http://ipmasq2.cjb.net/" name="http://ipmasq2.cjb.net/">, site
secondaire, redirigé sur <htmlurl
url="http://www.geocities.com/SiliconValley/Heights/2288/"
name="http://www.geocities.com/SiliconValley/Heights/2288/">
</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Remerciements
<p>

En ordre alphabétique~:

<itemize>

<item>
Gabriel Beitler, gbeitler@aciscorp.com &nl; section 3.3.8 sur Novell.

<item>
Juan Jose Ciarlante, irriga@impsat1.com.ar &nl; Pour son travail sur
IPMASQADM, son travail sur le code des 2.1 et 2.2, le patch LooseUDP original,
etc...

<item>
Steven Clarke, steven@monmouth.demon.co.uk &nl; pour ses contributions à
IPPORTFW.

<item>
Andrew Deryabin, djsf@usa.net &nl; pour ses contributions au module ICQ
MASQ.

<item>
Ed Doolittle, dolittle@math.toronto.edu &nl; pour ses suggestions sur
l'option <tt>-V</> d'<tt>ipfwadm</> pour accroître la sécurité.

<item>
Matthew Driver, mdriver@cfmeu.asn.au &nl; Pour avoir aidé sur ce HOWTO,
et avoir fourni la section 3.3.1 (mise en place de Windows 95).

<item>
Ken Eves, ken@eves.com &nl; pour la FAQ qui fournis des informations
essentielles à ce HOWTO.

<item>
John Hardin, jhardin@wolfenet.com &nl; pour ses outils de forwarding PPTP et
IPSEC.

<item>
Glenn Lamb, mumford@netcom.com &nl; pour le patch LooseUDP

<item>
Ed. Lott, edlott@neosoft.com &nl; pour une longue liste de systèmes et
logiciels testés.

<item>
Nigel Metheringham, Nigel.Metheringham@theplanet.net &nl; Pour avoir apporté
sa version de l'IP Packet Filtering et IP Masq HOWTO, qui rends ce HOWTO
encore meilleur. &nl; les section 4.1, 4.2, et d'autres.

<item>
Keith Owens, kaos@ocs.com.au &nl; pour son excellent guide sur ipfwadm de la
section 4.2 &nl; pour une correction à <tt>ipfwadm -deny</> qui évitais un
trou de sécurité, et clarifiait le status des <tt>ping</> via IP MASQ.

<item>
 Michael Owings, mikey@swampgas.com &nl; pour avoir fournis la section a
 propos de CU-SeeMe et le Linux IP-Masquerade Teeny How-To

<item>
Rob Pelkey, rpelkey@abacus.bates.edu &nl; pour avoir fournis les sections
3.3.6 et 3.3.7 (mise en place de MacTCP et Open Transport)

<item>
Harish Pillay, h.pillay@ieee.org &nl; pour la secion 4.5 (dial-on-demand avec
Diald)

<item>
Mark Purcell, purcell@rmcs.cranfield.ac.uk &nl; pour la section 4.6 (IPautofw)

<item>
David Ranch, dranch@trinnet.net &nl; pour son aide a maintenir ce HOWTO, la
page Linux IP Masquerade Resource, le document TrinityOS, ... , trop de choses
pour tout mettre ici :-)

<item>
Paul Russell, rusty@rustcorp.com.au &nl; pour son travail sur IPCHAINS, des
patchs IP MASQ, etc.

<item>
Ueli Rutishauser, rutish@ibm.net &nl; pour la section 3.3.9 (mise en place
d'OS/2 Warp)

<item>
Fred Viles, fv@episupport.com &nl; pour ses patchs FTP.

<item>
John B. (Brent) Williams, forerunner@mercury.net &nl; pour la section 3.3.7
(mise en place d'Open Transport)

<item>
Enrique Pessoa Xavier, enrique@labma.ufrj.br &nl; Pour une suggestion sur
BOOTp.

<item>
Tous les habitués de la liste IP MASQ, masq@tiffany.indyramp.com &nl; pour
avoir fournis leur aide aux utilisateurs de Linux.

<item>
D'autres programmeurs ou rédacteurs de documentations~:

<quote>
<itemize>
<item>
Delian Delchev, delian@wfpa.acad.bg

<item>
David DeSimone (FuzzyFox), fox@dallas.net

<item>
Jeanette Pauline Middelink, middelin@polyware.iaf.nl

<item>
Miquel van Smoorenburg, miquels@q.cistron.nl

<item>
Jos Vos, jos@xos.nl

<item>
Et tous ceux que j'ai pu oublier (faites-le moi savoir !)
</itemize>
</quote>


<item>
tous les utilisateurs envoyant des suggestions et des critiques à la mailing
list, et plus particulièrement ceux qui m'ont fait part d'erreurs dans ce
document et les clients supportés ou non.


<item>
Je vous demande pardon si je n'ai pas inclus les informations que certains
utilisateurs m'ont envoyées. De nombreuses idées et suggestions me sont
envoyées, mais je n'ai pas le temps de les vérifier, ou je les égare. J'essaie
de faire de mon mieux pour incorporer toutes les informations qu'on m'envoye
pour rédiger ce HOWTO. Je vous remercie pour votre effort, et j'espère que
vous comprenez ma situation.
</itemize>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1> Réference
<p>
<itemize>

<item>
IP masquerade FAQ de Ken Eves 

<item>
Archive de la mailing list IP Masquerade de Indyramp Consulting

<item>
Le site WWW IP Masquerade d'Ambrose Au

<item>
La page sur Ipfwadm par X/OS

<item>
Divers HOWTOs liés au réseau sous Linux

<item>
Certains sujets abordés dans TrinityOS de David Ranch

</itemize>



<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
</article>
