
HOWTO - Rseau GNU/Linux Chez Soi

_Auteur : _Paul Ramsey

   <pramsey@refractions.net>

   Adaptation franaise: Marc Tanguy

   <mtanguy@ens.uvsq.fr>

   Copyright  1999-2002 par Paul Ramsey pour la version originale
   anglaise.

   Copyright  2002 par Marc Tanguy pour la version franaise.

   Permission est accorde de copier, distribuer et/ou modifier ce
   document selon les termes de la Licence de Documentation Libre GNU
   (GNU Free Documentation License), version 1.1 ou toute version
   ultrieure publie par la Free Software Foundation ; sans Sections
   Invariables ; sans Premire de Couverture , et sans Textes de
   Quatrime de Couverture.

   Linux est une marque dpose de Linus Torvalds. Toutes les marques
   dposes sont la proprit de propritaires respectifs.

   Version 1.4 22/06/2000

   Version franaise 1.0 18/09/2002
   _Historique des versions_
   Version 1.0 21 Dc 1999 pr
   Premire version
   Version 1.1 2 Jan 2000 pr
   Rajout des suggestions apportes par John Mellor  propos de
   bizarreries pour le rseau extrieur
   Version 1.2 22 Jan 2000 pr
   Mises  jour mineures de Chris Lea  propos des cartes rseaux
   identiques et des informations sur la dnomination d'IP (IP aliasing).
   Version 1.3 16 Mar 2000 pr
   Prcisions sur la scurit du serveur de noms et sur le support avec
   Caldera de la part de Nelson Gibbs
   Version 1.4 22 Jui 2000 pr
   Documentation de particularits de configuration de Red Hat 6.2 Rajout
   d'informations sur PPPoE de Kerr First

   _Rsum_

   Ce document dcrit la mise en place d'une Red Hat comme passerelle
   vers Internet pour un rseau local d'entreprise ou pour chez soi. Il
   s'agit tout simplement de partager une connexion Internet  travers
   une Red Hat. Les points suivants seront couverts : masquage d'IP, DNS,
   DHCP, et quelques principes de base de scurit.
     _________________________________________________________________

   _Table des matires_

   1. Introduction

        1.1. Versions

   2. Branchons tout ce qu'il faut

        2.1. Avec un Concentrateur
        2.2. Sans Concentrateur
        2.3. Avec une seule carte rseau

   3. Configuration du rseau

        3.1. Configurer un pilote de rseau
        3.2. Configurer le rseau interne
        3.3. Configurer le rseau externe
        3.4. Scurit

   4. Configurer le Masquage d'IP
   5. Problmes

        5.1. ICQ ne fonctionne pas
        5.2. J'ai une Caldera 2.X et pas une Red Hat 6.X
        5.3. Je veux qu'une de mes machines interne soit mon serveur Web 

1. Introduction

   Cette page est juste un recueil de recettes de cuisine pour configurer
   une Red Hat en tant que passerelle pour un rseau local. Les
   instructions sont trs simplifies i.e. pas de discussion hasardeuse
   et on supposera les adresses rseaux qui devront tre choisies. Les
   pr-requis les plus importants sont :

     * vous disposez d'un accs permanent  Internet via le Cble ou
       l'ADSL ;
     * vous avez install avec succs une Red Hat sur au moins une de vos
       machines. Notez que c'est aussi valide pour les distributions
       drives de Red Hat, telle que Mandrake ;
     * votre ordinateur sous GNU/Linux possde deux cartes rseaux
       installes et qui sont compatibles avec GNU/Linux ;
     * vous avez un concentrateur Ethernet (concentrateur ou switch) si
       vous mettez en rseau plus d'un ordinateur ou alors un cble
       crois si vous ne reliez qu'un seul ordinateur ;
     * vous savez diter des fichiers textes sur votre machine GNU/Linux
       ;
     * vous pouvez vous connecter sous _root_. Et vous savez installer
       des paquetages Red Hat (RPM)  partir du cdrom de votre
       distribution.

   Si vous ne remplissez pas l'une des conditions ci-dessus, alors ce
   document ne vous est probablement pas destin.

   Il n'y a rien de particulier  faire  l'installation. Choisissez
   simplement l'installation qui vous convient et allez-y. Ce document
   donne les directions pour installer de zro tout ce dont vous aurez
   besoin pour votre rseau, afin d'viter les confusions sur ce que vous
   avez install ou configur durant l'installation. Toutes les
   configurations seront effectues directement sur les fichiers de
   configuration plutt qu'avec les outils graphiques fournis par Red
   Hat. Cette solution a pour effet d'tre d'une certaine faon moins
   facile mais certainement plus ducative et plus facilement applicable
   dans d'autres situations avec d'autres distributions.

1.1. Versions

   Les versions les plus  jour de ce document (en anglais) sont
   accessibles en suivant ce lien pour la version HTML ou celui-ci pour
   la version SGML

2. Branchons tout ce qu'il faut

   Selon si vous utilisez un concentrateur ou pas, votre topologie de
   rseau diffrera lgrement. Je ne couvrirai que le cblage avec des
   prises RJ45 (celles qui ressemblent  des prises de tlphones avec 8
   broches) et non le coaxial. Avec le coaxial vous pouvez relier
   plusieurs machines sans concentrateur, mais vous devez faire plus
   attention aux terminaisons etc. videmment si vous connaissez le
   rseau, ces instructions sont clairement redondantes.

2.1. Avec un Concentrateur

   Si vous avez un concentrateur, votre rseau local devrait ressembler 
   quelque chose comme a :
   [avec_concentrateur.png]

   Reliez la carte eth0 sur le GNU/Linux au modem cble ou ADSL avec le
   cble fourni par votre fournisseur d'accs  Internet (FAI) pendant
   l'installation (ou un cble que vous savez fonctionner dans cette
   configuration. C'est important car parfois le cble doit tre crois,
   parfois droit.)

   Reliez la carte eth1 du GNU/Linux au concentrateur avec un cble
   droit. De mme, reliez tous les autres ordinateurs au concentrateur
   avec des cbles droits.

2.2. Sans Concentrateur

   Si vous n'avez pas de concentrateur, vous pouvez toujours relier un
   seul ordinateur  votre GNU/Linux,  l'aide d'un cble crois. Votre
   topologie ressemblera alors  ceci :
   [sans_concentrateur.png]

   Reliez la carte eth0 du GNU/Linux au modem cble ou ADSL  l'aide du
   cble fourni par votre fournisseur d'accs. Reliez la carte eth1 du
   GNU/Linux  l'autre ordinateur avec un cble crois.

2.3. Avec une seule carte rseau

   Cette configuration n'est pas recommande (dans cette configuration
   vos rseaux interne et externe sont sur le mme lien physique, et sont
   donc en thorie plus vulnrable aux attaques ; en pratique, le risque
   est relativement faible), mais cela est _possible_.

   Le noyau Linux inclue le support de la dnomination d'IP (IP
   aliasing), ce qui permet d'associer plusieurs adresses IP  une mme
   carte Ethernet. Les noyaux fournis dans les distributions Red Hat et
   Mandrake supportent la dnomination d'IP par dfaut. Pour configurer
   votre passerelle avec une seule carte Ethernet, dans tout ce qui suit,
   remplacez simplement _eth1_ par _eth0:0_.

   _Dans ce genre de configuration  carte unique, l'utilisation d'un
   serveur DHCP _n'est pas _recommande._

   Branchez toutes vos machines et votre modem cble ou ADSL dans le
   concentrateur. Croisez les doigts, vous pouvez continuer.

3. Configuration du rseau

   Bien,  partir de l, vous avez install une passerelle sous
   GNU/Linux. Vous avez peut-tre mme configur une de vos cartes
   rseaux, et mis en place la connexion vers Internet. De toutes les
   manires, nous allons tout reprendre depuis le dpart et faire comme
   si rien n'tait configur.

   Connectez-vous sous _root_. Toutes les instructions donnes dans ce
   document supposent que vous soyez connect sous _root_.

   Le noyau Linux se rfre  vos deux cartes Ethernet  travers eth0 et
   eth1, nous allons donc de mme utiliser ces rfrences. Le problme
   est de savoir laquelle est laquelle. Voici un moyen simple de
   savoir, garanti  50% : poser l'ordinateur sur le bureau avec la carte
   mre horizontale et le panneau arrire face  vous (comme si vous
   alliez l'ouvrir pour travailler dessus). La carte la plus  gauche est
   eth0. Maintenant, notez sur un papier le fabricant et le modle de
   eth0 et d'eth1.

   Bien, voyons si eth0 et eth1 sont correctement et automatiquement
   reconnues par le noyau. Tapez _ifconfig eth0_ puis _ifconfig eth1_.
   Dans les deux cas, si le noyau reconnat bien vos cartes, vous devriez
   voir quelque chose ressemblant  ceci (en gardant bien  l'esprit que
   les nombres seront diffrents) :

eth0   Link encap: Ethernet   HWaddr 00:60:67:4A:02:0A
       inet adr:0.0.0.0  Bcast:0.0.0.0  Masque:255.255.255.255
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:466 errors:0 dropped:0 overruns:0 frame:0
       TX packets:448 errors:0 dropped:0 overruns:0 carrier:0
       collisions:85 lg file transmission:100
       RX bytes:800 (0.8 Kb)  TX bytes:736 (0.7 Kb)
       Interruption:10 Adresse de base:0xe400

   Si le noyau ne reconnat pas votre carte rseau, vous devriez alors
   voir quelque chose comme :

eth0: erreur lors de la recherche d'infos sur l'interface: Priphrique non tro
uv

3.1. Configurer un pilote de rseau

   Si les deux cartes ont t reconnues, passez directement  la
   prochaine section. Sinon lisez ce qui suit.

   Bien, il se peut maintenant qu'une ou que vos deux cartes ne soient
   pas reconnues par le noyau. Ce n'est pas rellement un problme. Nous
   avons juste  spcifier explicitement au noyau comment trouver les
   cartes. Il existe beaucoup de dtours et nous allons tous les couvrir.
   N'oubliez pas qu'en cas de grosses difficults, vous trouverez tout
   dans le Ethernet HOWTO. Voici le rsum de quelques conseils :

     * _vous avez une carte rseau PCI._ Vous tes probablement en bonne
       position, en supposant qu'elle ne soit pas trop rcente et
       excentrique pour qu'il existe un pilote. Vous trouverez des
       informations sur votre carte rseau (et d'autres) en parcourant
       _/proc/pci_ notamment le fabricant et le modle (n.d.t. : vous
       pouvez utiliser la commande suivante _lspci_) ;
     * _vous avez une carte rseau ISA._ Il est possible que vous ayez 
       connatre l'adresse de base E/S et l'interruption (IRQ) assigns 
       la carte. Vous avez les manuels, n'est-ce pas ? N'est-ce pas ?
       Sinon, il est grand temps d'aller surfer du cot du site web du
       fabricant et de voir s'il a les rfrences de votre carte. Ou si
       vous avez une vieille disquette de configuration DOS, dmarrez
       sous DOS et regardez s'il existe un programme qui pourrait lire et
       positionner l'adresse et l'interruption ;
     * _Vous avez une carte ISA Plug'n'Play._ Premirement vous aurez 
       apprendre comment la configurer -- lisez le Plug'n'Play HOWTO.
       Heureusement, une fois que vous aurez configur votre carte vous
       connatrez exactement son adresse de base E/S et son interruption.

   Maintenant que vous connaissez le fabricant de eth0 et de eth1, vous
   pouvez aller sur la page de compatibilit du Ethernet HOWTO et trouver
   votre carte. Notez le pilote recommand, et toute information  propos
   d'options spcifiques  votre carte. Notez-les quelque part !

   Il est temps d'diter le fichier de configuration ! Le fichier que
   vous devez diter est le suivant /etc/modules.conf (n.d.t. :
   anciennement /etc/conf.modules). Ouvrez ce fichier avec l'diteur de
   votre choix. Sachant qu'il y a beaucoup de possibilits et de
   combinaisons qui peuvent remplir ce fichier, je vais donner ma propre
   passerelle comme exemple. Je possde une carte PCI 10/100Mb bas sur
   la puce VIA Rhine, et une clone de NE2000 ISA 10Mb de base. J'utilise
   la carte 100Mb pour le rseau interne et la carte de 10Mb pour la
   connexion externe. Mon fichier /etc/modules.conf ressemble  cela :

alias parport_lowlevel parport_pc
alias eth0 ne
options ne io=0x300 irq=10
alias eth1 via-rhine

   Mon fichier modules.conf se dcompose de la manire suivante :

     * La premire ligne est ici pour configurer le port parallle pour
       l'impression. Vous avez probablement une ligne similaire.
       Laissez-la.
     * La deuxime ligne (_alias eth0 ne_) informe le noyau pour qu'il
       utilise le pilote NE pour le priphrique eth0.
     * La troisime ligne (_options ne io=0x300 irq=10_) passe au pilote
       les paramtres d'adresse E/S de base et l'interruption
       correspondants  l'emplacement de la carte ISA. Si vous possdez
       une carte ISA, vous aurez trs certainement  utiliser ce genre de
       directives. Remplacez juste les options de pilote, d'adresse et
       d'interruption par celles de votre carte.
     * La dernire ligne (_alias eth1 via-rhine_) informe le noyau pour
       qu'il utilise le pilote VIA-Rhine pour eth1. Comme ma carte eth1
       est une carte PCI, elle ne ncessite pas de paramtres
       supplmentaires (E/S, interruption) : le sous-systme PCI
       configure le priphrique automatiquement.

   Vous vrifierez bien que vous avez des entres d'alias dans
   modules.conf pour vos deux cartes, et les lignes d'options adquates
   pour toutes vos cartes ISA. Vous avez d'ailleurs peut-tre dj des
   lignes pour une carte Ethernet configure lors de l'installation.

   Ds que vous aurez fini de modifier votre modules.conf, essayez la
   commande _ifconfig eth0_ puis _ifconfig eth1_. Vous devrez peut-tre
   procder par ttonnements si vous perdez du temps avec les
   interruptions et les adresses E/S sans manuel du fabricant.

3.1.1. Deux cartes rseaux identiques

   Voil, vous avez voulu tre malin, et vous avez achet deux cartes
   rseaux identiques pour votre passerelle GNU/Linux, et maintenant vous
   n'arrivez pas  les faire fonctionner ensemble ? Ne vous inquitez
   pas, pour les faire coexister il suffit d'employer la bonne syntaxe
   dans votre modules.conf. Pour cet exemple, les adresses E/S et les
   numros d'interruptions sont fixs, et je supposerai que vous avez
   achet une paire de cartes compatibles NE2000 (un choix habituel).
   Alors votre fichier modules.conf devrait ressembler  cela :

alias eth0 ne
alias eth1 ne
options ne io=0x330,0x360 irq=7,9

   Les options d'adressage sont toutes donnes sur la mme ligne, et le
   premier nombre pour chaque adressage est pour la carte eth0, le second
   nombre pour eth1.

3.2. Configurer le rseau interne

   Le _rseau interne_ est le rseau dans lequel toutes vos machines
   personnelles communiquent entre elles. Le _rseau externe_ dsigne le
   grand et effrayant Internet de l'autre ct du GNU/Linux. Gnralement
   parlant, le rseau interne sera compltement isol du rseau externe
   grce au GNU/Linux, qui oprera alors comme pare-feu de force moyenne.

3.2.1. Le rseau

   Maintenant que les pilotes fonctionnent et que vous voyez vos deux
   cartes eth0 et eth1 dans _ifconfig_ il est temps de mettre en place le
   rseau interne. Je choisis arbitrairement de configurer le rseau
   interne sur la carte eth1 et l'externe sur eth0.

   Votre rseau interne va tre un rseau priv et par consquent doit
   utiliser une plage d'adresse rseau spcifique pour les rseaux
   internes : _192.168.1.0_. Ceci est un _rseau priv de classe C_, au
   cas o vous voudriez impressionner vos amis (n.d.t. cela impose entre
   autres l'utilisation d'au maximum 254 adresses IP diffrentes sur le
   rseau interne) ;

   Premirement nous devons nous assurer que le rseau est activ. ditez
   le fichier /etc/sysconfig/network et vrifiez que les lignes suivantes
   sont prsentes :

NETWORKING=yes
FORWARD_IPV4=yes

   La premire ligne indique au systme que nous voulons que les
   priphriques rseaux dmarrent au dmarrage du systme. La seconde
   ligne demande au systme d'autoriser le transfert IP. Ceci est un
   pr-requis pour dmarrer la configuration du masquage d'IP  la
   section 4.
   [Note] Redhat 6.2

   Pour pouvoir supporter le masquage d'IP et le transfert IP, la Red Hat
   6.2 requiert des modifications dans le fichier /etc/sysctl.conf.
   Vrifiez que les lignes suivantes existent et que les valeurs sont
   correctes :

net.ipv4.ip_forward = 1
net.ipv4.ip_always_defrag = 1

   Tous les paramtres concernant les interfaces rseaux sont dans les
   fichiers contenus dans le rpertoire /etc/sysconfig/network-scripts.
   Entrez dans ce rpertoire, et crez un nouveau fichier ifcfg-eth1.
   Puis rentrez ce qui suit dans le fichier ifcfg-eth1 :

DEVICE=eth1
IPADDR=192.168.1.1
ONBOOT=yes

   Ces lignes permettent aux scripts grant le rseau de configurer eth1
   au dmarrage du systme et de lui assigner une adresse IP
   particulire. Activez votre rseau avec les nouveaux paramtres avec
   la commande suivante : _/etc/rc.d/init.d/network restart_.

3.2.2. Le serveur DHCP (Dynamic Host Configuration Protocol)

   Un serveur DHCP (Protocole de Configuration Dynamique d'Hte)
   configurera automatiquement les priphriques de votre rseau interne
   avec des adresses IP. Ceci est trs utile pour les personnes munis
   d'ordinateur portable : ils n'ont qu' brancher leurs machines et tout
   se configure immdiatement proprement. Si vous ne voulez pas de
   serveur DHCP sur votre rseau interne, passez  la section suivante.

   Premirement vous devez vous assurer que le serveur DHCP est install.
   Montez votre cdrom GNU/Linux et installez le paquetage RPM dhcp.
   Ceci fait, ditez le fichier /etc/dhcpd.conf et mettez les lignes
   suivantes (et seulement celles-ci) dedans :

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.2 192.168.1.60;
  default-lease-time 86400;
  max-lease-time 86400;
  option routers 192.168.1.1;
  option ip-forwarding off;
  option broadcast-address 192.168.1.255;
  option subnet-mask 255.255.255.0;
}

   Si vous allez configurer votre GNU/Linux en tant que cache DNS
   (serveur de nom de domaine), insrez alors l'option suivante :

   option domain-name-servers 192.168.1.1;

   Si vous savez que ni vous ni vos adresses DNS externes n'allez
   utiliser votre GNU/Linux comme DNS, insrez l'option suivante, o
   x.x.x.x et y.y.y.y reprsentent les adresses IP des serveurs DNS :

   option domain-name-servers x.x.x.x, y.y.y.y;

   Si vous voulez utiliser le partage de fichier Samba sur votre
   GNU/Linux pour vos ordinateurs MS-Windows, ajoutez les options
   suivantes pour utiliser le GNU/Linux par dfaut comme serveur WINS
   (Windows Name Server) :

option netbios-name-servers 192.168.1.1;
option netbios-dd-server 192.168.1.1;
option netbios-node-type 8;
option netbios-scope "";

   Configurer Samba et WINS est bien au-del de la porte de ce document.
   Si vous avez besoin d'aide, commencez par lire le SMB HOWTO et
   continuez  partir de l.

   Il y a encore quelques petites choses  rajouter. ditez le fichier
   /etc/rc.d/init.d/dhcpd et cherchez la ligne suivante :

   /sbin/route add -host 255.255.255.255 dev eth1

   Les clients DHCP MS-Windows requirent une adresse de diffusion
   particulire (Broadcast Adress) dans les rponses DHCP, et cette
   commande force la pile TCP/IP du GNU/Linux  la reproduire. Si vous ne
   trouvez pas cette ligne dans ce fichier, _ajoutez-la_. Si vous en
   trouvez une ressemblante, vrifiez que la carte rfrence soit bien
   eth1.

   L'tape suivante est de modifier le fichier /etc/sysconfig/dhcpd afin
   d'utiliser eth1 comme carte par dfaut. Remplacez la ligne :

   DHCPDARGS=

   Par :

   DHCPDARGS=eth1

   Bien, nous sommes maintenant prts  dmarrer le DHCP. Tout d'abord
   dmarrez le serveur DHCP avec la commande : _/etc/rc.d/init.d/dhcpd
   start_.

   Puis dans un deuxime temps, nous devons nous assurer que le serveur
   DHCP dmarrera au prochain rarmorage du systme. Certains paquetages
   RPM pour le serveur DHCP n'incluent pas les directives pour assurer le
   dmarrage du service  chaque fois, donc nous devons le faire en
   invoquant la commande _chkconfig dhcpd on_.

   Cette commande force la RedHat  ajouter le script de dmarrage du
   dhcp aux diffrents rpertoires de niveaux de dmarrage dans
   /etc/rc.d. Dans les niveaux 3 et 5 (console multi-utilisateur et X
   multi-utilisateur) le serveur DHCP est dmarr. Dans les niveaux 0, 1
   et 6 (arrt, unique utilisateur et redmarrage) le serveur DHCP est
   arrt.

3.2.3. Les ordinateurs clients

   Si vous avez mis en route le DHCP, configurer les ordinateurs clients
   est trs simple : choisissez juste la configuration par DHCP. Pour les
   ordinateurs sous Windows, cela implique d'ouvrir le Panneau de
   configuration puis l'option Rseaux. Trouvez le protocole TCP/IP et
   cliquez sur Configurer. Cochez la case Obtenir automatiquement une
   adresse IP, appliquez les changements, puis redmarrez.

   Avant de redmarrer votre Windows, vous pourriez avoir besoin de taper
   cette commande : _tail -f /var/log/messages_. Ceci vous permettra de
   regarder en continue le systme de log du GNU/Linux. Si tout va bien,
   quand vous redmarrez votre Windows, vous le verrez demander une
   adresse IP et le serveur DHCP lui rpondre. Il suffit d'un Ctrl+C pour
   sortir de la commande _tail -f_.

   Si vous n'avez pas mis en route le DHCP, la configuration est tout de
   mme trs simple. De mme, dans la rubrique Rseau du Panneau de
   configuration, slectionnez le protocole TCP/IP puis cliquez sur
   Paramtres. Vous pouvez alors lui spcifier une adresse IP comprise
   dans le rseau 192.168.1.0 sauf 192.168.1.0 (l'adresse de rseau)
   192.168.1.255 (l'adresse de diffusion du rseau) ou 192.168.1.1
   (l'adresse du serveur GNU/Linux). Ne donnez jamais  deux ordinateurs
   clients la mme adresse IP. Ajoutez la passerelle  l'adresse
   192.168.1.1, ce qui permettra au trafic sortant d'tre rout  travers
   votre passerelle GNU/Linux.

   Le HOWTO IP Masquerade dtaille trs prcisment la configuration du
   client dans le Section Configuration.

   En gnral, pour configurer un ordinateur client, soit par DHCP, soit
   par assignation d'une IP fixe dans le rseau 192.168.1.0 avec une
   passerelle en 192.168.1.1, positionnez l'adresse du serveur DNS 
   192.168.1.1 si vous avez un serveur de cache DNS (voir ci-dessous) ou
   fixez les DNS aux adresses fournies par votre fournisseur d'accs 
   Internet.

3.2.4. Le Serveur de Noms de Domaine (DNS)

   La mise en place d'un serveur de cache DNS amliorera lgrement la
   vitesse de navigation sur le net, car les adresses DNS les plus
   demandes seront mis en cache dans le rseau et n'auront pas  tre
   rcupres  l'extrieur.

   Si vous tes intresss par la mise en place d'un DNS complet et
   efficace, il y a normment de dtails complexes  apprendre. Il
   existe un DNS HOWTO disponible, et le livre DNS et Bind est une bonne
   (et trs dtaille) rfrence papier.

   Afin que vos machines clientes profitent du serveur de cache, elles
   doivent tre configures pour utiliser la passerelle GNU/Linux comme
   serveur DNS primaire. Les directives DHCP donnes  la section 3.2.2
   sont une manire pour accomplir cela. Si vous configurez vos
   ordinateurs clients  la main, vous pouvez changer les configurations
   DNS dans les mmes onglets de configuration que ceux utiliss pour
   affecter l'adresse IP de la machine.

   Pour installer le serveur DNS, installez simplement le paquetage RPM
   _bind_.  prsent, vous tes presque prt.

   Avec cette installation, le serveur de cache fonctionnera
   correctement, mais si vous connaissez les adresses IP des serveurs DNS
   de votre fournisseur d'accs  Internet vous pouvez lgrement
   amliorer les performances en ditant le fichier /etc/named.conf et en
   ajoutant la ligne suivante aprs la ligne _directory_ (o x.x.x.x et
   y.y.y.y dsignent les serveurs DNS primaire et secondaire) :

   forwarders { x.x.x.x; y.y.y.y; };

   Cette modification imposera  votre serveur DNS de d'abord questionner
   les serveurs DNS de votre FAI avant de traverser Internet  la
   recherche d'une adresse donne. Les serveurs de votre FAI possdent
   souvent un cache riche d'information DNS et peuvent alors fournir la
   rponse plus vite que votre serveur.

   Le dmon _named_ a rgulirement des problmes de scurit, il est
   donc important d'installer la dernire version, et de modifier
   certains paramtres par dfaut afin d'amliorer la scurit.

    1. Vrifiez votre version de _bind_ afin qu'elle soit au moins gale
        8.2.2. Puis allez sur le site de mise  jour Red Hat afin de
       trouver la dernire version.
    2. Restreignez l'accs  votre serveur de noms  votre rseau local
       en ajoutant la ligne _allow-query { 192.168.1/24; 127.0.0.1/32; }
       ; _ votre fichier /etc/named.conf aprs la ligne _forwarders_.
    3. vitez d'excuter le serveur de noms sous _root_. Si votre serveur
       s'excute sous _root_, une faille dans le serveur donnera  celui
       qui l'exploite les privilges de l'administrateur. Si, par contre
       vous l'excutez sous un utilisateur moins privilgi, comme
       l'utilisateur _nobody_, vous pouvez minimiser le risque de faille
       dans le serveur de nom. Pour excuter votre serveur de nom sous
       _nobody_, ditez le fichier /etc/rc.d/init.d/named et changez la
       ligne _daemon named_ par _daemon named -u nobody_.

       [Note] Redhat 7.x
   Dans les versions rcentes de Red Hat, le dmon de serveur de noms
   s'excute dj sous un utilisateur non privilgi.

   Vrifiez que votre serveur DNS dmarrera au dmarrage de GNU/Linux 
   l'aide de la commande suivante : _chkconfig named on_. Une fois
   encore, ceci nous assure que le serveur dmarrera dans les niveaux de
   chargements habituels (3 et 5) au dmarrage de GNU/Linux.

   Bien, maintenant vous pouvez dmarrer votre serveur DNS :
   _/etc/rc.d/init.d/named start_.

3.2.5. Tester le rseau interne

   Tant que nous n'aurons pas configurer le rseau externe, le service de
   DNS ne fonctionnera pas (car il doit pouvoir communiquer avec les
   autres serveurs DNS sur Internet), cependant nous pouvons tester la
   connectabilit interne basique avec le programme _ping_.

   Sur l'un de vos ordinateurs clients, ouvrez une fentre de commandes
   MSDOS, et tapez _ping 192.168.1.1_. Ceci mettra des paquets vers
   votre machine GNU/Linux  des intervalles rguliers, et votre machine
   GNU/Linux rpondra aux paquets. Si les choses se passent bien, vous
   devriez voir les temps de retour des paquets.

3.3. Configurer le rseau externe

   Maintenant nous sommes prts  configurer le rseau externe. Parfois
   cela sera difficile, cela dpend la faon dont votre FAI supporte
   GNU/Linux. Si vous rencontrez des difficults, il existe un mini-HOWTO
   DSL qui couvre en dtails les problmes d'ADSL. Il existe aussi un
   mini-HOWTO Modem Cble pour l'Internet par le cble.

   Le principal problme avec la plupart des connexions externes est
   _l'obtention d'une adresse IP_. Certains FAI distribuent des adresses
   IP statiques  leurs abonns cble ou ADSL, et dans ce cas la
   configuration est facilite. Cependant, la plupart des FAI ont
   maintenant choisi des configurations dynamiques via (vous l'avez
   devin) DHCP (n.d.t. : la tendance actuelle est plutt de se tourner
   vers le protocole PPPoE, aussi bien pour le cble que pour l'ADSL).
   Ceci signifie que votre machine GNU/Linux sera vraisemblablement
   _serveur_ DHCP pour l'interface eth1, et _client_ DHCP pour l'interface
   eth0.

   De plus, beaucoup de FAI se sont mis  fournir leurs services 
   travers des protocoles non standards spcialiss ce qui oblige leurs
   abonns  rester sous MS-Windows. Certains de ces cas de figures
   seront discuts  la fin de la section 3.3.2.

3.3.1. Avec une IP fixe

   Si votre FAI vous a assign une adresse IP statique, vous tes en
   bonne voie. Premirement, crez un fichier pour une nouvelle
   interface, /etc/sysconfig/network-scripts/ifcfg-eth0 et insrez y les
   lignes suivantes :

DEVICE=eth0
IPADDR=x.x.x.x
NETMASK=y.y.y.y
ONBOOT=yes

   Remplacez juste les x.x.x.x et y.y.y.y par les valeurs donnes par
   votre FAI. Puis ditez le fichier /etc/resolv.conf et entrez les
   informations suivantes :

search domaine_du_FAI
nameserver n.n.n.n
nameserver m.m.m.m

   Le _domaine_du_FAI_ devrait vous tre fourni par votre FAI. De mme,
   entrez les adresses des serveurs DNS primaire et secondaire aux lignes
   n.n.n.n et m.m.m.m. Si vous avez mis en place votre machine GNU/Linux
   en tant que serveur DNS, vous pouvez ajouter une ligne avant les
   autres entres _nameserver 127.0.0.1_. Ceci forcera votre serveur
   GNU/Linux  utiliser en priorit le serveur de cache DNS avant de
   demander l'information aux serveurs DNS extrieurs.

3.3.2. Avec un DHCP

   Si votre FAI utilise une configuration base sur un DHCP, vous devez
   alors crer un fichier de configuration pour une nouvelle interface
   /etc/sysconfig/network-scripts/ifcfg-eth0 avec les lignes suivantes :

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

   Maintenant vrifiez que le dmon client _dhcpcd_ est install sur
   votre systme. Prenez votre cdrom d'installation de GNU/Linux et
   installez le paquetage RPM _dhcpcd_.

   C'est le moment de tester notre nouvelle configuration rseau.
   Utilisez juste la commande _/etc/rc.d/init.d/network restart_.
   Maintenant testez votre connexion vers le rseau externe avec le
   programme _ping_. Pingez un ordinateur sur Internet, comme par exemple
   _www.yahoo.com_ et observez le retour.

3.3.3. Bizarreries et Anomalies

   Votre situation peut diffrer d'une des situations simplistes dcrites
   ci-dessus. Voici quelques courtes remarques sur les diverses
   difficults et des liens vers des ressources de rfrence auxquelles
   les adresser. Merci  John Mellor pour avoir fourni les liens et
   l'impulsion ncessaire  l'ajout de cette section.

3.3.3.1. PPP Over Ethernet (PPPoE)

   Plusieurs FAI ADSL (France Tlcom, par exemple) obligent leurs
   abonns  se connecter au service via le protocole "Point  Point 
   travers Ethernet" (PPPoE).  cette fin, ils fournissent un programme
   client MS-Windows : ce qui n'est pas trs utile pour les utilisateurs
   GNU/Linux. Heureusement, PPPoE est un protocole simple et qui a fait
   l'objet de dveloppements sous GNU/Linux.

     * Le Client PPPoE de Roaring Penguin est trs fortement recommand
       par Kerr First ;
     * PPPoE sous GNU/Linux avec France Tlcom ;
     * PPPoE sous GNU/Linux avec Sympatico ( Informations Gnrales).

3.3.3.2. Trucs idiots  propos du DHCP

   Un des tours favoris auxquels les FAI jouent est de restreindre votre
   service  un nom de machine unique, ou mme  une unique carte
   d'interface rseau. Ceci en gnral afin de vous empcher de brancher
   de multiples ordinateurs sur le port Internet d'un concentrateur (bien
   sr, avec GNU/Linux et le masquage d'IP vous obtiendrez le mme effet
   avec une scurit accrue et sans que votre FAI puisse le deviner!).

   Si votre FAI vous a donn un nom de machine et insiste pour que vous
   configuriez votre Windows avec ce nom afin d'utiliser leur service,
   alors vous devez vous assurer que votre machine GNU/Linux renvoie ce
   nom de machine quand il requiert une adresse au serveur DHCP.

   Le client DHCP de Red Hat est lanc quand vous positionnez la variable
   BOOTPROTO  dhcp dans le fichier de configuration d'interface, mais il
   est lanc sans rfrence  un nom de machine particulier. Pour le
   lancer avec un nom de machine donn, sous Red Hat 6.x ou 7.x, ditez
   le fichier /etc/sysconfig/network, en changeant la ligne :

   _HOSTNAME=_

   Par ceci :

   _HOSTNAME=votre_nom_de_machine_assigne_par_votre_FAI_

   Cette opration peut ne pas fonctionner sur certaines drives de Red
   Hat. Si tel est le cas, ouvrez le script /sbin/ifup pour voir si
   l'appel  dhcpcd et pump inclue le paramtre -h $HOSTNAME. S'il ne
   l'inclue pas, ajoutez-le, de faon  ce que l'appel ressemble 
   _/sbin/dhcpcd -i $DEVICE -h $HOSTNAME_ et _/sbin/pump -i $DEVICE -h
   $HOSTNAME_.

3.3.4. Vue d'ensemble des entres rseaux

   Maintenant vous pouvez admirer le travail. Tapez _ifconfig_ pour voir
   tous les priphriques rseaux configurs. Sur ma machine passerelle,
   cela ressemble  ceci :

eth0  Lien encap:Ethernet  HWaddr 00:60:67:4A:02:0A
      inet adr:24.65.182.43  Bcast:24.65.182.255  Masque:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
      RX packets:2054256 errors:0 dropped:0 overruns:1 frame:0
      TX packets:1316599 errors:0 dropped:0 overruns:0 carrier:0
      collisions:89 lg file transmission:100
      RX bytes:1478576846 (1410.0 Mb)  TX bytes:203407515 (193.9 Mb)
      Interruption:10 Adresse de base:0xe400
eth1  Lien encap:Ethernet  HWaddr 00:80:C8:D3:30:2C
      inet adr:192.168.1.1  Bcast:192.168.1.255  Masque:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
      RX packets:81652 errors:0 dropped:0 overruns:0 frame:0
      TX packets:116131 errors:0 dropped:0 overruns:0 carrier:0
      collisions:37938 lg file transmission:100
      RX bytes:26228293 (25.0 Mb)  TX bytes:109197036 (104.1 Mb)
      Interruption:5 Adresse de base:0xe800
lo    Lien encap:Boucle locale
      inet adr:127.0.0.1  Masque:255.0.0.0
      UP LOOPBACK RUNNING  MTU:3924  Metric:1
      RX packets:359890 errors:0 dropped:0 overruns:0 frame:0
      TX packets:359890 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0
      RX bytes:145538898 (138.7 Mb)  TX bytes:145538898 (138.7 Mb)

   Notez que l'interface eth0 a une adresse IP fantaisiste, alors que
   l'adresse d'eth1 est une adresse de rseau priv interne.

   Vous pouvez regarder les routes de rseaux en tapant la commande
   _route_. Sur ma passerelle, cela ressemble  ceci :

  Table de routage IP du noyau
  Destination     Passerelle   Genmask         Indic Metric Ref Use Iface
  255.255.255.255 *            255.255.255.255 UH    0      0     0 eth1
  192.168.1.0     *            255.255.255.0   U     0      0     0 eth1
  24.65.182.0     *            255.255.255.0   U     0      0     0 eth0
  127.0.0.0       *            255.0.0.0       U     0      0     0 lo
  default         24.65.182.1  0.0.0.0         UG    0      0     0 eth0

   Ici nous pouvons voir que le rseau externe est configur, que le
   rseau interne aussi, ainsi que la boucle locale, l'adresse spciale
   de diffusion 255.255.255.255 est configure, et la route par dfaut
   pointe vers la passerelle du FAI. Parfait !

    ce point vous avez l'extrieur, et l'intrieur. Il ne reste qu'
   ouvrir les portes entre les deux. Avant toute chose, nous devons nous
   assurer qu'aucun monstre ne puisse rentrer de l'extrieur.

3.4. Scurit

   Un des inconvnients d'avoir une connexion permanente vers Internet
   via l'ADSL ou le cble est que votre ordinateur est expos aux menaces
   de trous de scurit potentiels 24 heures sur 24, 7 jours sur 7.
   Utiliser GNU/Linux comme passerelle rduit les risques, car il cache
   les autres ordinateurs : ainsi en ce qui concerne le reste d'Internet,
   seul votre machine GNU/Linux est disponible pour des connexions. Ceci
   signifie que votre rseau interne est au mieux aussi scuris que
   votre machine GNU/Linux, c'est pourquoi je vais vous donner quelques
   astuces basiques pour amliorer cette scurit.

   Premirement, il est ncessaire de bloquer les personnes
   malintentionnes. Pour cela, ditez le fichier /etc/hosts.deny et
   vrifiez qu'il ressemble exactement  cela :

#
# hosts.deny  This file describes the names of the hosts which are
#             *not* allowed to use the local INET services, as decided
#             by the '/usr/sbin/tcpd' server.
#
#            The portmap line is redundant, but it is left to remind you that
#        the new secure portmap uses hosts.deny and hosts.allow. In particular
#             you should know that NFS uses portmap!
ALL: ALL

   Ceci demande au "TCP wrappers" -- qui contrle 95% des connexions
   entrantes -- de refuser toutes les connexions de tous les htes. C'est
   plutt une bonne rgle ! Malheureusement, elle vous empchera aussi de
   vous connecter  votre GNU/Linux  partir de votre rseau interne, ce
   qui est gnant, donc nous allons rajouter une exception. ditez le
   fichier /etc/hosts.allow et vrifiez qu'il ressemble exactement  cela
   :

#
# hosts.allow  This file describes the names of the hosts which are
#              allowed to use the local INET services, as decided
#              by the '/usr/sbin/tcpd' server.
#
ALL: 127.0.0.1
ALL: 192.168.1.

   Ceci indique au "TCP wrappers" qu'il doit autoriser les connexions 
   tous les services  partir de la machine locale (127.0.0.1) et 
   partir du rseau interne (192.168.1.).

   Bien, vous avez maintenant bloqus les mchants  l'extrieur, avec un
   bon cadenas. Si vous voulez utiliser des systmes de blocage et
   d'alarmes, vous allez devoir tre beaucoup plus sophistiqus. Le
   Security HOWTO est une bonne lecture pour commencer si vous voulez en
   apprendre plus pour scuriser votre machine GNU/Linux.

4. Configurer le Masquage d'IP

   a y est ! Les prliminaires sont termins, c'est ici que la magie
   commence. Le masquage d'IP est un des services vraiment magique que
   GNU/Linux propose. Il existe des produits commerciaux pour MS-Windows
   qui font la mme chose, mais ils sont loin d'approcher la mme
   efficacit : un vieux 386 peut joyeusement fournir des services de
   masquage d'IP  un bureau entier de taille moyenne, alors qu'il ne
   pourrait mme pas lancer MS-Windows 95", sans parler du support ajout
   du masquage d'IP." (Il est aujourd'hui possible d'utiliser le "partage
   de connexion" de MS-Windows pour faire du masquage d'IP mais il
   toujours impossible de faire tourner MS-Windows 2000 sur un 386.)

   GNU/Linux a des capacits de pare-feu extrmement varies, et nous
   allons les utiliser dans leur manire la plus simple et la plus
   rudimentaire. Si vous voulez apprendre comment matriser les
   pare-feux, vous devriez lire  la fois le HOWTO du pare-feu et des
   serveurs mandataires pour une comprhension de la thorie et le HOWTO
   IPCHAINS pour les instructions  propos de l'outil de pare-feux
   _ipchains_ fourni avec le noyau Linux 2.2.X (et par extension avec la
   Red Hat 6.X). (n.d.t. : un nouvel outil _iptables_ est fourni avec le
   noyau Linux 2.4.x, sa documentation peut tre trouv ici) Il y a aussi
   un trs bon HOWTO IP Masquerade disponible qui donne beaucoup de
   dtails pour ajuster le masquage d'IP.
   [Note] n.d.t. : Attention  votre version de noyau/distribution

   Afin d'utiliser au mieux les ressources disponibles, une lecture
   attentive du HOWTO IP Masquerade est ncessaire. En effet, les
   diffrentes versions de noyaux Linux impliquent l'utilisation d'outils
   adapts. De plus en plus de distributions rcentes fournissent des
   outils graphiques de configuration pour le pare-feu.

   Configurer un simple masquage d'IP est trs trs facile une fois que
   les rseaux interne et externe sont oprationnels. ditez le fichier
   /etc/rc.d/rc.local et ajoutez les lignes suivantes  la fin :

# 1) Remettre les rgles des tables  zro
/sbin/ipchains -F input
/sbin/ipchains -F forward
/sbin/ipchains -F output
# 2) Configurer les temporisations du MASQ et autoriser les paquets entrants
#    pour la du DHCP.
/sbin/ipchains -M -S 7200 10 60
/sbin/ipchains -A input -j ACCEPT -i eth0 -s 0/0 68 -d 0/0 67 -p udp
# 3) Refuser tous les paquets transfrs  part ceux provenant du rseau local.
#    Camoufler ces derniers.
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ
# 4) Charger les modules pour des services spcifiques.
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio

   Les deux dernires lignes insrent des modules noyaux qui autorisent
   le FTP et le RealAudio pour les ordinateurs dans le rseau interne. Il
   existe d'autres modules pour des services spciaux que vous pouvez
   ajouter ensuite si vous en avez besoin :

     * CUSeeMe (_/sbin/modprobe ip_masq_cuseeme_)
     * Internet Relay Chat (_/sbin/modprobe ip_masq_irc_)
     * Quake (_/sbin/modprobe ip_masq_quake_)
     * VDOLive (_/sbin/modprobe ip_masq_vdolive_)

   Maintenant vous tes prts  essayer le masquage d'IP ! Lancez le
   script rc.local avec la commande _/etc/rc.d/rc.local_ et a devrait
   aller. Asseyez-vous devant un autre ordinateur et essayez le surfer
   sur la toile. Avec un peu de chance, tout devrait aller comme sur des
   roulettes.

5. Problmes

   Il y a beaucoup de choses qui peuvent mal se passer en utilisant un
   document comme celui-ci, car il existe plein de cas spciaux. La
   majorit des problmes viennent de la configuration des priphriques
   rseaux interne et externe. J'essaierai de rpondre  ceux qui
   rencontrent des problmes, en essayant de voir ce qui ne va pas et en
   ajoutant des liens ici pour que les personnes avec des problmes lis
    des cas spciaux puissent trouver de l'aide. Vous pouvez me joindre
   sans problme  l'adresse suivante pramsey@refractions.net.

5.1. ICQ ne fonctionne pas

   Reportez vous tout simplement au HOWTO IP Masquerade.

5.2. J'ai une Caldera 2.X et pas une Red Hat 6.X

   Bien, tout d'abord flicitations pour aller  contre-courant !
   Deuximement, Nelson Gibbs (ngibbs@pacbell.net) a envoy de bonnes
   nouvelles, car la plupart de ces instructions fonctionneront pour
   vous. Il y a des changements importants  noter cependant :

    1. Une spcification de passerelle _GATEWAY=xxx.xxx.xxx.xxx_ dans
       /etc/sysconfig/network-scripts/ifcfg-eth0 et eth1 pour les
       interfaces (l'interface locale utilise l'adresse IP distante et
       l'interface distante utilise l'adresse IP de la passerelle du FAI)
       ;
    2. Vrifiez que le script /etc/sysconfig/daemons/dhcpd positionne la
       variable _ROUTE_DEVICE_  eth1 et _non_ eth0 ;
    3. Le fichier /etc/dhcpd.conf requiert un paramtre de sous-rseau
       pour chaque interface (Je ne suis pas trop sr du pourquoi et du
       comment lorsque j ai fait mon deuxime test : subnet
       213.102.154.201 netmask 255.255.255.255 { } sans aucune autre
       option le dhcp coutait et envoyait aussi bien sur eth0 que eth1).
       Le serveur DHCP renvoie des erreurs si un seul des 2 sous-rseaux
       est list ;
    4. n'ajoutez _pas_ de route vers _255.255.255.255_, le script
       /etc/rc.d/init.d/dhcpd fourni par Caldera fixe dj le problme.
       _Changez_ chaque rfrence de eth0  eth1 dans ce script.

5.3. Je veux qu'une de mes machines interne soit mon serveur Web

   C'est du gteau ! En revanche, _vous aurez besoin d'une adresse IP
   statique_ pour que la liste de recommandations suivantes fonctionne.
   Si vous avez une adresse IP dynamique, vous devrez rajouter des
   scripts pour vous assurer que l'adresse IP soit mise  jour dans les
   commandes de transfert de port quand l'adresse change.

   Gardez  l'esprit que transfrer un port externe vers une machine
   interne rend votre machine interne 'moins' interne qu'avant,
   heureusement ceci peut tre fait de manire totalement transparente et
   sans relle dgradation de performance. Un des effets de bord de
   l'implmentation du masquage d'IP dans le noyau Linux est la
   possibilit de faire des choses plutt gniales avec les paquets quand
   il passe  travers la couche rseau, et l'utilitaire _ipmasqadm_ est
   construit de manire  en tirer avantage.

   Pour certaines raisons _ipmasqadm_ n'est pas fourni avec toutes les
   drives de Red Hat ou de Mandrake, donc vous aurez probablement  le
   tlcharger sur le site du mainteneur -- il existe aussi un paquetage
   RPM de disponible ainsi que le code source.

   Une fois que vous avez le paquetage Red Hat, installez-le, et ajoutez
   les lignes suivantes  votre fichier /etc/rc.d/rc.local :

/usr/sbin/ipmasqadm portfw -f
/usr/sbin/ipmasqadm portfw -a -P tcp -L x.x.x.x 80 -R 192.168.1.x 80

   La premire commande efface les rgles de transfert de port, la
   seconde ajoute un transfert du port 80 externe vers le port 80 du
   machine en interne. Notez que l'adresse IP statique tient dans
   l'espace d'adresse x.x.x.x et l'adresse IP interne dans l'espace
   192.168.1.x.

    partir de l, les requtes externes vers le port 80 seront envoyes
   de manire transparente au port 80 de la machine interne. Notez que
   vous ne pourrez tester  l'aide de telnet ou en vous connectant au
   port 80 de la passerelle d'une machine interne : le transfert de port
   honore seulement les requtes en provenance de l'interface _externe_.
