3. Mise en place d'IP Masquerade

Contenu de cette section

Si votre réseau privé contient des informations vitales, repensez y à deux fois avant d'utiliser IP Masquerade. Cela 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é.

3.1 Compiler le noyau pour le support d'IP Masquerade

** Veuillez s'il vous plaît consulter l' IP Masquerade Resource pour les dernières informations, puisqu'il m'est difficile de mettre à jour ce document fréquemment.**

NB : Vous pouvez aussi les charger manuellement avant d'utiliser ip_masq, mais SURTOUT, n'utilisez pas kerneld pour cela.
Si vos modules ne se chargent pas, essayez sans l'extension '.o'

3.2 Assignation d'adresse IP pour le réseau local

Puisque toutes les AUTRES machines n'ont pas d'adresse IP officielle, il faut leur en allouer, de manière intelligente.

Selon la FAQ d'IP Masquerade :

Il existe un RFC (#1597) qui indique quelles adresses IP assigner à un réseau non connecté. Il existe 3 plages réservées spécialement à cet effet. Une de celles que j'utilise est un sous réseau de classe C, faisant partie de la plage allant de 192.168.1.n à 192.168.255.n.

Selon le RFC 1597 :

Section 3 : Adressage de reseaux prives

L' "Internet Assigned Numbers Authority" (IANA) a reserve les 3 plages
suivantes pour leur utilisation par des reseaux prives :

              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 reference a la premiere en tant que la "plage de 24 bits", la
deuxieme comme "plage de 20 bits" et la troisieme comme "plage de 16
bits".
Notez que la premiere plage n'est rien d'autre qu'un reseau de classe A,
la deuxieme un ensemble de 16 reseaux de classe B contigus, et la
troisieme un ensemble de 255 reseaux de classe C contigus.
Ainsi, si vous utilisez un réseau de classe C, vous devrez utiliser les adresses IP 192.168.1.1, 1.92.168.1.2, 1.92.168.1.3, ..., 192.168.1.x

192.168.1.1 est habituellement la machine passerelle, qui est ici votre machine Linux se connectant à Internet. Remarquez que 192.168.1.0 et 192.168.1.255 sont respectivement les adresses de réseau et de broadcast, qui sont réservées. Evitez d'utiliser ces adresses sur vos machines.

3.3 Configurer les AUTRES machines

En plus d'affecter les adresses IP pour chaque machine, vous devrez indiquer la bonne passerelle. En général, c'est plutôt simple. Vous entrez juste l'adresse de votre machine Linux (généralement 192.168.1.1) en tant qu'adresse de passerelle.

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

Une fois configurées ces adresses IP, n'oubliez pas de relancer les programmes concernés, ou de rebooter vos machines.

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.1.1. Notez que 192.168.1.0 et 192.168.1.255 sont réservées.

Configurer Windows 95

  1. Si vous n'avez pas installé votre carte réseau et son driver, faites le maintenant.
  2. Allez dans Panneau de configuration / Réseau .
  3. Ajoutez le protocole TCP/TP si ce n'est pas déjà fait.
  4. Dans les propriétés de TCP/IP, allez dans Adresse IP et entrez votre adresse IP, 192.168.1.x (1 < x < 255). Fixez le Masque de sous réseau à 255.255.255.0
  5. Ajoutez 192.168.1.1 dans Passerelle.
  6. Dans Configuration / Ordre de recherche DNS, ajoutez le DNS qu'utilise votre machine Linux (que l'on peut trouver dans /etc/resolv.conf). Vous pouvez éventuellement ajouter les suffixes de domaine adéquats.
  7. Laissez les autres paramètres tels quels, à moins que vous sachiez ce que vous faites.
  8. Cliquez sur OK dans toutes les boîtes de dialogue et relancez le système.
  9. Pinguez la machine Linux pour tester la connexion réseau : Démarrer / Executer, tapez: ping 192.168.1.1
    (C'est seulement un test de connexion locale, vous ne pouvez pas encore pinguer l'extérieur).
  10. Vous pouvez éventuellement créér un fichier HOSTS dans le répertoire de windows, pour que vous puissiez utiliser les noms d'hôtes des autres machines de votre réseau local. Il y a un exemple nommé HOSTS.SAM dans le répertoire windows.

Configurer Windows pour Workgroup 3.11

  1. Si vous n'avez pas encore installé votre carte réseau et son driver, faites le maintenant.
  2. Installez le package TCP/IP 32b si ce n'est pas déjà fait.
  3. Dans Groupe Principal / Installation / Configuration réseau, cliquez sur Drivers.
  4. Séléctionnez Microsoft TCP/IP-32 3.11b dans la section Drivers Réseaux. Choisissez Configuration.
  5. Saisissez l'adresse IP 192.168.1.x (1 < x < 255), et positionnez le masque de sous réseau à 255.255.255.0 et la passerelle par défaut à 192.168.1.1.
  6. Ne sélectionnez pas Configuration automatique DHCP et mettez n'importe quoi dans la case Server WINS, à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous faites.
  7. Cliquez sur DNS, et remplissez les informations appropriés, mentionnées à l'étape 6 de la section 3.3.1. Cliquez sur OK une fois que c'est fini.
  8. Cliquez sur Configuration avancée, cochez Utiliser le DNS pour la résolution de noms, et Utiliser LMHOSTS si vous utilisez un fichier de résolution, comme celui mentionné à l'étape 10 de la section 3.3.1.
  9. Cliquez alors sur OK sur toutes les boites de dialogue, et redémarrez le système.
  10. Pingez la machine Linux pour tester la connexion réseau : Fichier / Exécuter, taper : ping 192.168.1.1
    (C'est juste un test de connexion locale, vous ne pouvez pas encore pinger le monde extérieur.

Configurer Windows NT

  1. Si vous n'avez pas encore installé votre carte réseau et son driver, faites le maintenant.
  2. Allez dans Groupe Principal / Panneau de configuration / Réseau.
  3. Ajoutez le protocole TCP/IP et les composants qui s'y rattachent depuis le menu Ajout de logiciels si vous n'avez pas encore installé le service TCP/IP.
  4. Dans la section Logiciel et carte réseau, sélectionnez Protocole TCP/IP dans la boite de choix Logiciels réseaux installés.
  5. Dans Configuration TCP/IP, sélectionnez l'adaptateur réseau appropriées, par exemple [1]Novell NE2000 Adapter. Entrez l'adresse IP 192.168.1.x (1 < x < 255), positionnez le masque de sous réseau sur 255.255.255.0 et la passerelle par défaut à 192.168.1.1.
  6. Ne sélectionnez pas Configuration automatique DHCP et mettez n'importe quoi dans la case Server WINS, à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous faites.
  7. Cliquez sur DNS, et remplissez les informations appropriés, mentionnées à l'étape 6 de la section 3.3.1. Cliquez sur OK une fois que c'est fini.
  8. Cliquez sur Configuration avancée, cochez Utiliser le DNS pour la résolution de noms, et Utiliser LMHOSTS si vous utilisez un fichier de résolution, comme celui mentionné à l'étape 10 de la section 3.3.1.
  9. Cliquez alors sur OK sur toutes les boites de dialogue, et redémarrez le système.
  10. Pingez la machine Linux pour tester la connexion réseau : Fichier / Exécuter, taper : ping 192.168.1.1
    (C'est juste un test de connexion locale, vous ne pouvez pas encore pinger le monde extérieur.

Configurer les systèmes UNIX

  1. Si vous n'avez pas encore installé votre carte réseau et recompilé votre noyau avec le driver adéquat, faites le maintenant.
  2. Installez des outils TCP/IP, comme par exemple le package nettools, si ce n'est déjà fait.
  3. Affectez IPADDR à 192.168.1.x (1 < x < 255), puis NETMASK à 255.255.255.0, GATEWAY à 192.168.1.1 et BROADCAST à 192.168.1.255.
    Par exemple, sur les systèmes Red Hat Linux, vous pouvez éditer le fichier /etc/sysconfig/network-scripts/ifcfg-eth0, ou simplement le faire par l'intermédiaire du Control Panel.
    (c'est différent sur SunOS, BSDi, Slackware Linux, etc...)
  4. Ajoutez l'adresse IP de votre DNS et votre ordre de recherche DNS dans /etc/resolv.conf.
  5. Il sera éventuellement nécessaire de mettre à jout le fichier /etc/networks, selon votre configuration.
  6. Redémarrez les services adéquats, ou, plus simplement, redémarrez votre système.
  7. Testez votre connexion avec la passerelle en utilisant la commande ping : ping 192.168.1.1.
    (ceci est juste un test sur votre réseau local, vous ne pouvez pas encore pinger l'extérieur.

Configuration sous DOS avec le package NCSA

  1. Si vous n'avez pas encore installé votre carte réseau, faites le maintenant.
  2. Chargez le driver adéquat. Pour une carte NE2000, tapez nwpd 0x60 10 0x300, si votre carte utilise l'IRQ 10 et l'adresse d'entrée/sortie 0x300.
  3. Créez un nouveau répertoire, et décompressez-y l'archive NCSA Telnet : pkunzip tel2308b.zip
  4. Utilisez un éditeur de texte pour ouvrir le fichier config.tel.
  5. Affectez myip=192.168.1.x (1 < x < 255), et netmask=255.255.255.0.
  6. Dans cet exemple, vous auriez à régler hardware=packet, interrupt=10, ioaddr=60.
  7. Vous devriez avoir au moins une seule machine déclarée comme passerelle, à savoir la machine sous Linux :
    name=default
    host=le_nom_de_votre_hote_linux
    hostip=192.168.1.1
    gateway=1
    
  8. Pour mettre en place le DNS :
    name=dns.domain.com_; hostip=123.123.123.123; nameserver=1
    
    NB: remplacez les champs par les informations qu'utilise votre machine Linux.
  9. Sauvegardez votre nouveau fichier config.tel.
  10. Lancez un telnet vers la machine Linux pour tester la connexion réseau : telnet 192.168.1.1.

Configuration des systèmes MacOS utilisant MacTCP

  1. Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça serait une excellente idée de le faire maintenant.
  2. Ouvrez le Tableau de bord MacTCP. Selectionnez le driver réseau adapté (Ethernet, PAS EtherTalk) et cliquez sur le bouton.
  3. Dans la section Obtenir l'adresse, sélectionnez Manuellement.
  4. Dans Adresse IP, choisissez class C dans le menu déroulant. Vous pouvez ignorer le reste de cette boite de dialogue.
  5. Remplissez la section Information DNS avec les informations qui conviennent.
  6. Dans Adresse de la passerelle, entrez 192.168.1.1.
  7. Cliquez sur OK pour sauvegarder les changements. Dans la fenetre principale du Tableau de bord MacTCP, entrez l'adresse IP de votre Mac (192.168.1.x, 1 < x < 255) dans la zone Adresse IP.
  8. Refermez le Tableau de bord MacTCP. Si une boite de dialogue vous demande de redémarrer le système, faites le.
  9. Vous pouvez si vous le désirez pinger l'hôte Linux pour tester la connexion réseau. Si vous avez le programme freeware MacTCP Watcher, cliquez sur le bouton Ping et entrez l'adresse de votre hôte Linux (192.168.1.1) dans la boîte de dialogue qui apparait. (C'est uniquement une connexion locale, vous ne pouvez pas encore pinger l'extèrieur).
  10. Vous pouvez, si vous le désirez, créer un fichier Hosts dans votre dossier système, pour pouvoir utiliser les noms d'hote 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.

Configuration des systèmes MacOS utilisant Open Transport

  1. Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça serait une excellente idée de le faire maintenant.
  2. Ouvrez le Tableau de bord TCP/IP et choisissez Mode utilisateur... dans le menu Edition. Assurez nous que le mode utilisateur est mis au niveau Avancé et cliquez sur le bouton OK.
  3. Choisissez Configurations... depuis le menu Fichier. Sélectionnez la configuration Par défaut et cliquez sur le bouton 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 Configuration de copie. Cliquez sur le bouton OK puis sur Rendre active.
  4. Sélectionnez Ethernet depuis le menu Se connecter via....
  5. Sélectionnez l'option qui convient dans le menu Configuration. Si vous ne savez pas quelle option choisir, vous devriez sans doute resélectionner la configuration par défaut et quitter. Je choisis Manuellement.
  6. Saisissez l'adresse IP de votre Mac (192.168.1.x, 1 < x < 255) dans la zone Adresse IP.
  7. Mettez le Masque de sous réseau à 255.255.255.0.
  8. L'Adresse de routeur est 192.168.1.1.
  9. Remplissez la case Adresse du DNS en y mettant votre adresse IP.
  10. Entrez le nom de votre domaine Internet (par exemple 'microsoft.com') dans la boite de dialogue Ordre de recherche DNS.
  11. 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 802.3 si votre réseau nécessite des paquets de type 802.3.
  12. Cliquez sur le bouton Options... pour vous assurer que le TCP/IP est activé. J'utilise l'option 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 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 pretes à 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 le charger et le décharger en mémoire peut fragmenter la mémoire de votre ordinateur.
  13. Pingez la machine Linux pour tester la connexion réseau. Si vous avez le programme freeware MacTCP Watcher, cliquez sur le bouton Ping, et entrez l'adresse de votre machine Linux (192.168.1.1) dnas la boite de dialogue qui apparait. (C'est une connexion locale, vous ne pouvez pas encore pinger l'extérieur).
  14. Vous pouvez créer un fichier 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 /etc/hosts sur un système Unix, qui est décrit à la page 33 du RFC 1035). Une fois le fichier créé, ouvrez le Tableau de bord TCP/IP, cliquez sur le bouton Sélectionner le fichier Hosts..., et ouvrez le fichier Hosts.
  15. Cliquez sur Fermer ou choisissez Fermer ou Quitter depuis le menu Fichier, et cliquez alors sur le bouton Enregistrer pour enregistrer vos changements.
  16. Les changements prennent effet immédiatement, mais cela ne fera pas de mal de rebouter le système.

Configurer un réseau Novell utilisant le DNS

  1. Si vous n'avez pas encore installé le gestionnaire de périphérique de votre adaptateur Ethernet, faites le dès maintenant.
  2. Téléchargez tcpip16.exe depuis (NdT ???)
  3. Editez c:\nwclient\startnet.bat (voici une copie du mien) :
    SET NWLANGUAGE=ENGLISH
    LH LSL.COM
    LH KTC2000.COM
    LH IPXODI.COM
    LH tcpip
    LH VLM.EXE
    F:
    
  4. Editez c:\nwclient\net.cfg (changez le Link drivers, NE2000 dans mon cas) :
    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      xxx.xxx.xxx.xxx
            ip_router       xxx.xxx.xxx.xxx
    
  5. et finalement, créez c:\bin\resolv.cfg :
    SEARCH DNS HOSTS SEQUENTIAL
    NAMESERVER 207.103.0.2
    NAMESERVER 207.103.11.9
    
  6. J'espère que cela vous aura aidé à configurer vos réseaux Novell, mais cela ne fonctionne que pour Netware 3.1x ou 4.x.

Configurer OS/2 Warp

  1. Si vous n'avez toujours pas configuré votre adaptateur réseau Ethernet, c'est le moment de le faire.
  2. Installez le protocole TCP/IP s'il n'est pas déjà présent.
  3. Allez dans les paramètres Programs/TCP/IP(LAN)/TCP/IP
  4. Dans 'Network', ajoutez votre adresse TCP/IP et configurez votre masque de sous réseau (255.255.255.0)
  5. Dans 'Routing' cliquez sur 'Ajouter'. Sélectionnez 'default' pour le Type and entrez l'adresse de votre machine Linux dans le champs 'Router Address' (192.168.1.1).
  6. Utilisez la même adresse DNS (Serveur de noms) que celle de votre machine Linux.
  7. Fermez le panneau de contrôle de TCP/IP. Répondez oui au (à la) question(s) suivante(s).
  8. Reboutez votre système.
  9. Vous devriez être en mesure de pinger votre hôte Linux pour tester la configuration réseau. Taper 'ping 192.168.1.1" dans une boîte de commande OS/2. Si vous recevez les paquets IP, tout fonctionne correctement.

Configurer les autres systèmes

Ces systèmes devraient suivre la meme logique d'installation. Lisez les sections précédentes. Si vous etes 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 à ambrose@writeme.com (Note du traducteur : en anglais bien sûr).

3.4 Configurer les règles d'IP Forwarding

A ce point du document, vous devriez avoir votre noyau et les autres packages installés, ainsi que les modules nécessaires chargés. De plus, les adresses IP, la passerelle, et le DNS devraient être installés sur les AUTRES ordinateurs.

Maintenant, la seule chose à faire est d'utiliser ipfwadm pour faire suivre les paquets appropriés à la machine qui convient :

** 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. Je vous renvoie à la section 4.4 et aux pages de manuel de ipfwadm pour plus de détails. **

ipfwadm -F -p deny 
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 
où x est un des nombres suivants, selon la classe de votre sous réseau, et yyy.yyy.yyy.yyy est votre adresse de réseau.
Masque de sous reseau | x  | Sous reseau
~~~~~~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0             | 8  | Classe A
255.255.0.0           | 16 | Classe B
255.255.255.0         | 24 | Classe C
255.255.255.255       | 32 | Point-to-point (PPP)

Par exemple, si je suis sur un réseau de classe C, j'utiliserai :

ipfwadm -F -p deny 
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 

Puisque les paquets de demande de bootp arrivent sans adresse IP valide alors que le client ne connait rien de lui, les personnes utilisant un serveur bootp comme machine de masquerading/firewall devront utiliser la commande suivante avant la commande deny :

ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp

Vous pouvez également faire cela machine par machine. Par exemple, si je veux que 192.168.1.2 et 192.168.1.8 aient accès à Internet, mais pas les autres machines, j'utiliserai :

ipfwadm -F -p deny 
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0 
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0 

Vous pouvez également entrer le masque de sous réseau à la place de la valeur, par exemple 192.168.1.0/255.255.255.0.

Une erreur fréquente est d'utiliser comme première règle la commande :

ipfwadm -F -p masquerade
Il ne faut jamais que votre règle par défaut soit le masquerading, sinon n'importe qui pouvant manipuler ses tables de routage pourra utiliser votre machine Linux pour masquer son identité !

Une fois encore, vous pouvez ajouter ces lignes à vos fichiers /etc/rc.local, ou le faire manuellement à chaque fois que vous avez besoin de l'IP Masquerading.

Veuillez lire la section 4.4 pour des instructions détaillées sur Ipfwadm.

3.5 Tester IP Masquerade

Il est maintenant temps de tester notre travail. Assurez vous que la connexion de votre hôte Linux à Internet est correcte.

Vous pouvez par exemple essayer de parcourir quelques sites Web (sur Internet !!!) depuis vos AUTRES machines, et voir ce que vous obtenez. Je recommande d'utiliser une adresse IP plutôt qu'un nom DNS lors de votre premier essai, puisque votre réglage pour le DNS peut être incorrect.

Par exemple, vous pouvez accéder au site Web du Linux Documentation Project à http://sunsite.unc.edu/mdw/linux.html en entrant http://152.2.254.81/mdw/linux.html

Si vous voyez le beau bateau, félicitations ! Ca marche ! Vous pouvez alors essayer avec un autre hôte, puis telnet, ftp, Real Audio, True Speech, etc...

Pour l'instant je n'ai eu aucun problème avec ces réglages, et c'est totalement grâce aux personnes qui ont passé du temps à faire fonctionner cette superbe fonctionnalité de Linux.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre