Linux IP Masquerade mini HOWTO <author>Ambrose Au, <tt><htmlurl url="mailto:achau@wwonline.com" name="achau@wwonline.com"></tt>&nl Version Française par Etienne BERNARD, <tt><htmlurl url="mailto:eb@via.ecp.fr" name="eb@via.ecp.fr"></tt> <date>v1.20, 10 Novembre 1997 <abstract> Ce document décrit la procédure pour mettre en place l'option IP masquerade sur un ordinateur Linux, permettant de connecter sur Internet des ordinateurs n'ayant pas réservé d'adresse IP, à travers votre ordinateur Linux. </abstract> <toc> <!-- Section 1 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Introduction <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Introduction <p> Ce document décrit comment mettre en place l'option IP masquerade sous Linux, afin de permettre à des ordinateurs n'ayant pas d'adresse IP réservée de se connecter à Internet à travers votre ordinateur. Il est possible de connecter votre machine à l'hôte Linux grâce à de l'Ethernet, aussi bien que d'autres types de connexions comme un lien PPP. Ce document va se restreindre à une connexion Ethernet, puisque c'est l'hypothèse la plus probable. <p> <quote> <bf>Ce document suppose que vous utilisez les noyaux 2.x. Les versions de développement de la série 2.1.x ne sont PAS couvertes par ce document.</bf> </quote> <sect1> Mise en garde, Feedback et Crédits <p> Je trouve que, en tant que débutant, il est très déroutant de mettre en place l'IP masquerade sur un noyau récent, comme sur un de la série des 2.x. Bien qu'il y ait une FAQ et une mailing list, il n'y a pas de documents spécifiques pour cela, et il y a des 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 un point de départ pour qu'un utilisateur expérimenté écrive une véritable documentation. Si vous pensez que ce document n'est pas parfait, n'hésitez pas à m'en faire part afin que je puisse l'améliorer. <p> Ce document est 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. <p> N'hésitez pas à m'envoyer tout commentaire à <htmlurl url="mailto:achau@wwonline.com" name="achau@wwonline.com"> pour toute erreur ou tout oubli dans ce document. L'avenir de cet HOWTO sera fortement influencé par les réactions que j'aurai de votre part. <p> <bf>Cet HOWTO a été conçu pour être un guide pour que l'IP Masquerading fonctionne chez vous rapidement. Comme je ne suis pas un technicien, il se peut que vous trouviez les informations de ce document moins générales et moins objective. Les dernières nouvelles et informations pourront être trouvées sur le site web de l'<htmlurl name="IP Masquerading Resource" url="http://ipmasq.home.ml.org/">, dont je m'occupe. Si vous désirez poser des questions techniques à propos d'IP Masquerade, veuillez souscrire à la mailing list IP Masquerade au lieu de m'envoyer des mails. J'ai peu de temps pour vous répondre, et les développeurs d'IP_Masq sont plus à même de répondre à vos questions.</bf> <p> La dernière version de ce document peut être obtenue à l'<htmlurl name="IP Masquerade Resource" url="http://ipmasq.home.ml.org/">, qui distribue également des versions HTML et PostScript de ce document : <itemize> <item><htmlurl url="http://ipmasq.home.ml.org/" name="http://ipmasq.home.ml.org/"></item> <item>Veuillez consulter la <htmlurl name="liste des Sites Mirrors de l'IP Masquerade Resource" url="http://ipmasq.home.ml.org/index.html#mirror"> pour contacter un site plus proche de chez vous.</item> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Copyright & Disclaimer <p> Ce document est <tt>copyright © 1996 Ambrose Au</tt>, et est un document gratuit. Vous pouvez le redistribuer sous la licence GPL de GNU (General Public License). <p> Toutes les informations contenues dans ce document sont l'état de mes connaissances. Cependant, l'IP Masquerading est <em>expérimental</em>, et il y a des chances que j'aie fait des erreurs ; c'est à vous de décider si vous voulez suivre les informations contenues dans ce document. <p> Personne n'est responsable pour quelconque dommage sur votre ordinateur, ordinateurs, ainsi qu'une quelconque perte due à l'utilisation des informations contenues dans ce document. C'est à dire : <p> <quote> <bf>L'AUTEUR N'EST EN AUCUN CAS RESPONSABLE DES DOMMAGES OCCASIONNES PAR L'USAGE DES INFORMATIONS CONTENUES DANS CE DOCUMENT, QUELS QU'ILS SOIENT.</bf> </quote> <!-- Section 2 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Connaissances de base <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Qu'est ce que l'IP Masquerade? <p> L'IP Masquerade est une fonctionnalité réseau en développement de Linux. Si un hôte Linux est connecté à Internet avec l'option IP Masquerade en place, alors les ordinateurs se connectant à celui-ci (que cela soit sur le réseau local ou par modem) peuvent atteindre Internet aussi, même <em>s'il n'ont pas d'adresse IP officielle</em>. <p> Cela permet à un ensemble de machines d'accéder de manière <em>invisible</em> à Internet, caché derrière une passerelle, qui apparaît comme étant le seul système utilisant la connexion Internet. Il devrait être énormément plus difficile de contourner un système basé sur le masquerade, s'il est bien configuré, que de passer outre un bon firewall effectuant du filtrage de paquets (en supposant qu'il n'y a de bogues chez aucun des deux). <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Où cela en est <p> L'IP Masquerade est toujours en phase expérimentale. Cependant, les noyaux, depuis la série 1.3.x, supportent en standard cette fonctionnalité. De nombreuses personnes, et même des entreprises l'utilisent, avec des résultats satisfaisants. L'utilisation d'IP Masquerade pour parcourir de web, ou pour le telnet est tout à fait satisfaisante. FTP, IRC, et l'écoute de Real Audio fonctionnent en utilisant certains modules. D'autres technologies de flux audio par réseau, telles que True Speech et Internet Wave fonctionnent également. Certaines personnes, abonnées à la mailing list ont même essayé des logiciels de vidéo-conférence. <tt>Ping</tt> fonctionne à présent, avec le nouveau patch pour ICMP. <p> Veuillez consulter la section 4.3 pour une liste complète des logiciels supportés. <p> L'IP masquerade fonctionne convenablement avec des 'machines clientes' utilisant divers systèmes d'exploitation et différentes plate-formes. On a enregistré des succès pour des systèmes utilisant Unix, Windows 95, Windows NT, Windows pour Workgroups (avec l'extension TCP/IP), OS/2, MacOS avec Mac TCP, Mac Open Transport, DOS avec le package NCSA Telnet, VAX, Alpha sous Linux, et même Amiga avec AmiTCP ou la pile AS225. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> A qui peut être utile IP Masquerade? <p> <itemize> <item>Si vous avez un hôte Linux connectés à Internet, et</item> <item>si vous avez un ou plusieurs ordinateurs utilisant TCP/IP, connecté à cet hôte Linux sur un réseau local, et/ou</item> <item>si votre hôte Linux a un ou plusieurs modems et joue le rôle de serveur PPP ou SLIP, et que</item> <item>ces <bf/AUTRES/ machines ne possèdent pas d'adresse IP officielle. (ces machines seront désormais référencées sous le nom de <bf/AUTRES/)</item> <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 :-)</item> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Qui n'a pas besoin d'IP Masquerade? <p> <itemize> <item>Si votre machine est un hôte isolé, connecté sur Internet, alors c'est inutile de mettre en place l'IP Masquerading, ou</item> <item>si vous avez déjà obtenu des adresses officielles pour vos <bf/AUTRES/ machines, alors vous n'avez pas besoin d'IP Masquerade pour faire un firewall,</item> <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.</item> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment fonctionne IP Masquerade ? <p> D'après la FAQ IP Masquerade, de Ken Eves : <verb> Voici un schéma du plus simple cas possible : SLIP/PPP +------------+ +-------------+ vers le provider | Linux | SLIP/PPP | Peu_importe | <---------- modem1| |modem2 ----------- modem | | 111.222.333.444 | | 192.168.1.100 | | +------------+ +-------------+ Dans le schéma ci-dessus, un ordinateur sous Linux, 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 est configuré de telle façon que modem2 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 et entame une liaison SLIP ou PPP. Il NE possède PAS d'adresse IP officielle donc il utilise 192.168.1.100 (voir ci-dessous). Avec l'option ip_masquerade et un routage configuré correctement, la machine Peu_importe peut interagir avec Internet comme si elle était réellement connectée (à quelques exceptions près). Pour citer Pauline Middlelink : N'oublie pas de rappeler que la machine Peu_importe doit déclarer l'hôte Linux comme passerelle (que cela soit la route par défaut ou juste un sous réseau importe peu). Si Peu_importe ne peut pas le faire, l'hôte Linux devra faire du proxy arp pour toutes les adresses routées, mais la mise en place 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. Elle va alors envoyer le paquet modifié à travers son interface SLIP ou PPP, vers Internet. o Lorsqu'un paquet en provenance d'Internet arrive sur la machine Linux, 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 example d'IP Masquerading</bf> <p> Voici ci-dessous le schéma d'un exemple classique : <verb> +----------+ | | Ethernet | Ordi A |:::::: | |2 :192.168.1.x +----------+ : : +----------+ lien +----------+ : 1| Linux | PPP | | ::::| masq-gate|:::::::::// Internet | Ordi B |:::::: | | | |3 : +----------+ +----------+ : : +----------+ : | | : | Ordi C |:::::: | |4 +----------+ <-Réseau interne-> </verb> Il y a dans cet exemple 4 ordinateurs qui nous intéressent (il y a sûrement sur la droite quelque chose sur laquelle aboutit notre connexion, et encore plus à droite une autre machine avec laquelle nous échangeons des données). L'ordinateur sous Linux <tt>masq-gate</tt> est la passerelle qui effectue le masquerading pour le réseau interne des ordinateurs <tt/A/, <tt/B/, et <tt/C/, afin de les relier à Internet. Le réseau interne utilise une des adresses assignées des réseaux privés, à savoir dans ce cas le réseau de classe C 192.168.1.0, l'ordinateur Linux ayant l'adresse 192.168.1.1 et les autres ordinateurs ayant d'autres adresses sur ce réseau. 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 IP - comme par exemple <bf>Windows 95</bf>, <bf>Macintosh MacTCP</bf> ou même un autre Linux) peuvent se connecter à n'importe qu'elle machine sur Internet, mais <tt>masq-gate</tt> convertit toutes leurs connexions de façon à ce qu'elles semblent provenir de <tt>masq-gate</tt>, et 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". <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Ce qui est requis pour utiliser IP Masquerade sous Linux 2.x <p> <quote><bf>** Veuillez s'il vous plaît consulter l'<htmlurl url="http://ipmasq.home.ml.org/" name="IP Masquerade Resource"> pour les dernières informations, puisqu'il m'est difficile de mettre à jour ce document fréquemment.**</bf></quote> <p> <itemize> <item>Les sources d'un noyau de la série 2.x, disponibles sur <htmlurl url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/" name="ftp://ftp.ibp.fr/pub/linux/kernel/sources/v2.0/">&nl; (Oui, il faudra bien entendu recompiler votre noyau avec certaines options... Je vous conseille le dernier noyau stable)</item> <item>Les modules chargeables à la demande, de préférence la version 2.0.0 (ou ultérieure), disponible sur <htmlurl url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/modules-2.0.0.tar.gz" name="ftp://ftp.ibp.fr/pub/linux/kernel/sources/v2.0/modules-2.0.0.tar.gz"> (modules-1.3.57 étant le minimum)</item> <item>Un réseau TCP/IP fonctionnant convenablement&nl; (se référer à <url url="http://www.freenix.fr/linux/HOWTO/Net2-HOWTO.html" name="Linux NET-2 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">)</item> <item>Un accès Internet pour votre hôte Linux&nl; Se référer à <url url="http://www.caldera.com/LDP/HOWTO/ISP-Hookup-HOWTO.html" name="Linux ISP Hookup HOWTO"> et à <url url="http://www.caldera.com/LDP/HOWTO/mini/PPP-over-ISDN" name="Linux PPP-over-ISDN mini-HOWTO"></item> <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> <item>Vous pouvez, si vous le souhaitez, appliquer certains patches pour mettre en place certaines fonctionnalités. Vous trouverez plus d'informations sur la page des <htmlurl name="IP Masquerade Resources" url="http://ipmasq.home.ml.org/"> (ces patches s'appliquent à tout noyau de la série 2.0.x).</item> </itemize> <!-- Section 3 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Mise en place d'IP Masquerade <p> <quote> <bf>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é.</bf> </quote> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Compiler le noyau pour le support d'IP Masquerade <p> <quote><bf>** Veuillez s'il vous plaît consulter l'<htmlurl url="http://ipmasq.home.ml.org/" name="IP Masquerade Resource"> pour les dernières informations, puisqu'il m'est difficile de mettre à jour ce document fréquemment.**</bf></quote> <p> <itemize> <item>Vous devez tout d'abord disposer des sources du noyau (de préférence une version stable, de la série 2.0.x).</item> <item>Si c'est la première fois que vous compilez votre noyau, ne soyez pas effrayé. En fait, c'est plûtot simple, et tout est expliqué dans le <url url="http://www.freenix.fr/linux/HOWTO/Kernel-HOWTO.html" name="Kernel HOWTO"></item> <item>Décompressez les sources du noyau dans <tt>/usr/src/</tt> avec la commande <tt>tar xvzf linux-2.0.x.tar.gz -C /usr/src</tt>, où x est le numéro de révision du noyau.&nl (vérifiez qu'il y a un répertoire ou un lien symbolique nommé <tt/linux/)</item> <item>Appliquez les patches appropriés. Comme de nouveaux patches sortent souvent, aucun détail ne sera inclus ici. Référez vous à l'<htmlurl url="http://ipmasq.home.ml.org/" name="IP Masquerade Resources"> pour une information récente. <item>Veuillez consulter le 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> <item>Voici les options que vous devrez utiliser : <p> Répondre <em>YES</em> à : <tscreen><verb> * Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL - Cela vous permettra de pouvoir sélectionner IP Masquerade, qui est expérimental. * Enable loadable module support CONFIG_MODULES - Permet le chargement des modules. * Networking support CONFIG_NET * Network firewalls CONFIG_FIREWALL * TCP/IP networking CONFIG_INET * IP: forwarding/gatewaying CONFIG_IP_FORWARD * IP: firewalling CONFIG_IP_FIREWALL * IP: masquerading (EXPERIMENTAL) CONFIG_IP_MASQUERADE - bien que cela soit expérimental, il *FAUT* l'intégrer * IP: ipautofw masquerade support (EXPERIMENTAL) CONFIG_IP_MASQUERADE_IPAUTOFW -recommended * IP: ICMP masquerading CONFIG_IP_MASQUERADE_ICMP - support for masquerading ICMP packets, optionnel. * IP: always defragment CONFIG_IP_ALWAYS_DEFRAG - très recommendé * Dummy net driver support CONFIG_DUMMY - recommendé </verb></tscreen> NB : Ce sont juste les composants dont vous avez besoin pour l'IP Masquerade. Ajoutez toute autre option nécessaire pour votre configuration personnelle.</item> <item>Une fois le noyau compilé, compilez et installez les modules : <tscreen><verb> make modules; make modules_install </verb></tscreen></item> <item>Ajoutez alors quelques lignes dans votre fichier <tt>/etc/rc.d/rc.local</tt> (ou dans le fichier approprié), pour charger automatiquement les modules nécessaires dans <tt>/lib/modules/2.0.x/ipv4/</tt>, après chaque reboot : <tscreen> <verb> . . . /sbin/depmod -a /sbin/modprobe ip_masq_ftp.o /sbin/modprobe ip_masq_raudio.o /sbin/modprobe ip_masq_irc.o (et tout autre module, comme ip_masq_cuseeme, ip_masq_vdolive si vous avez appliqué les patches) . . . </verb> </tscreen> </itemize> NB : Vous pouvez aussi les charger manuellement avant d'utiliser ip_masq, mais SURTOUT, n'utilisez pas kerneld pour cela. &nl;Si vos modules ne se chargent pas, essayez sans l'extension '.o' <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Assignation d'adresse IP pour le réseau local <p> Puisque toutes les <bf/AUTRES/ machines n'ont pas d'adresse IP officielle, il faut leur en allouer, de manière intelligente. <p> Selon la FAQ d'IP Masquerade : <p> 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. <tscreen><verb> Selon le RFC 1597 : 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> 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 <p> 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. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer les AUTRES machines <p> 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. <p> 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. <p> Une fois configurées ces adresses IP, n'oubliez pas de relancer les programmes concernés, ou de rebooter vos machines. <p> 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. <p> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Configurer Windows 95 <p> <enum> <item>Si vous n'avez pas installé votre carte réseau et son driver, faites le maintenant.</item> <item>Allez dans <em>Panneau de configuration / Réseau </em>.</item> <item>Ajoutez le <em>protocole TCP/TP</em> si ce n'est pas déjà fait.</item> <item>Dans les <em>propriétés de TCP/IP</em>, allez dans <em>Adresse IP</em> et entrez votre adresse IP, 192.168.1.x (1 < x < 255). Fixez le <em>Masque de sous réseau</em> à 255.255.255.0</item> <item>Ajoutez 192.168.1.1 dans <em>Passerelle</em>.</item> <item>Dans <em>Configuration / Ordre de recherche DNS</em>, ajoutez le DNS qu'utilise votre machine Linux (que l'on peut trouver dans <tt>/etc/resolv.conf</tt>). Vous pouvez éventuellement ajouter les suffixes de domaine adéquats.</item> <item>Laissez les autres paramètres tels quels, à moins que vous sachiez ce que vous faites.</item> <item>Cliquez sur <em>OK</em> dans toutes les boîtes de dialogue et relancez le système.</item> <item><tt/Ping/uez la machine Linux pour tester la connexion réseau : <em>Démarrer / Executer</em>, tapez: <tt>ping 192.168.1.1</tt> &nl;(C'est seulement un test de connexion locale, vous ne pouvez pas encore <tt/ping/uer l'extérieur).</item> <item>Vous pouvez éventuellement créér un fichier <tt/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é <tt/HOSTS.SAM/ dans le répertoire windows.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> 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.</item> <item>Installez le package TCP/IP 32b si ce n'est pas déjà fait.</item> <item>Dans <em>Groupe Principal / Installation / Configuration réseau</em>, cliquez sur <em>Drivers</em>.</item> <item>Séléctionnez <em>Microsoft TCP/IP-32 3.11b</em> dans la section <em>Drivers Réseaux</em>. Choisissez <em>Configuration</em>.</item> <item>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.</item> <item>Ne sélectionnez pas <em>Configuration automatique DHCP</em> et mettez n'importe quoi dans la case <em>Server WINS</em>, à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous faites. <item>Cliquez sur <em>DNS</em>, et remplissez les informations appropriés, mentionnées à l'étape 6 de la section 3.3.1. Cliquez sur <em>OK</em> une fois que c'est fini. <item>Cliquez sur <em>Configuration avancée</em>, cochez <em>Utiliser le DNS pour la résolution de noms</em>, et <em>Utiliser LMHOSTS</em> si vous utilisez un fichier de résolution, comme celui mentionné à l'étape 10 de la section 3.3.1.</item> <item>Cliquez alors sur <em>OK</em> 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 / Exécuter</em>, taper : <tt>ping 192.168.1.1</tt> &nl;(C'est juste un test de connexion locale, vous ne pouvez pas encore <tt/ping/er le monde extérieur.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Configurer Windows NT <p> <enum> <item>Si vous n'avez pas encore installé votre carte réseau et son driver, faites le maintenant.</item> <item>Allez dans <em>Groupe Principal / Panneau de configuration / Réseau</em>.</item> <item>Ajoutez le protocole TCP/IP et les composants qui s'y rattachent depuis le menu <em>Ajout de logiciels</em> si vous n'avez pas encore installé le service TCP/IP.</item> <item>Dans la section <em>Logiciel et carte réseau</em>, sélectionnez <em>Protocole TCP/IP</em> dans la boite de choix <em>Logiciels réseaux installés</em>.</item> <item>Dans <em>Configuration TCP/IP</em>, sélectionnez l'adaptateur réseau appropriées, par exemple <tt>[1]Novell NE2000 Adapter</tt>. 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.</item> <item>Ne sélectionnez pas <em>Configuration automatique DHCP</em> et mettez n'importe quoi dans la case <em>Server WINS</em>, à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous faites. <item>Cliquez sur <em>DNS</em>, et remplissez les informations appropriés, mentionnées à l'étape 6 de la section 3.3.1. Cliquez sur <em>OK</em> une fois que c'est fini. <item>Cliquez sur <em>Configuration avancée</em>, cochez <em>Utiliser le DNS pour la résolution de noms</em>, et <em>Utiliser LMHOSTS</em> si vous utilisez un fichier de résolution, comme celui mentionné à l'étape 10 de la section 3.3.1.</item> <item>Cliquez alors sur <em>OK</em> 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 / Exécuter</em>, taper : <tt>ping 192.168.1.1</tt> &nl;(C'est juste un test de connexion locale, vous ne pouvez pas encore <tt/ping/er le monde extérieur.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> 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.</item> <item>Installez des outils TCP/IP, comme par exemple le package nettools, si ce n'est déjà fait.</item> <item>Affectez <em/IPADDR/ à 192.168.1.x (1 < x < 255), puis <em/NETMASK/ à 255.255.255.0, <em/GATEWAY/ à 192.168.1.1 et <em/BROADCAST/ à 192.168.1.255. &nl; Par exemple, sur les systèmes Red Hat Linux, vous pouvez éditer le fichier <tt>/etc/sysconfig/network-scripts/ifcfg-eth0</tt>, ou simplement le faire par l'intermédiaire du <em>Control Panel</em>. &nl;(c'est différent sur SunOS, BSDi, Slackware Linux, etc...)</item> <item>Ajoutez l'adresse IP de votre DNS et votre ordre de recherche DNS dans <tt>/etc/resolv.conf</tt>.</item> <item>Il sera éventuellement nécessaire de mettre à jout le fichier <tt>/etc/networks</tt>, selon votre configuration.</item> <item>Redémarrez les services adéquats, ou, plus simplement, redémarrez votre système.</item> <item>Testez votre connexion avec la passerelle en utilisant la commande <tt/ping/ : <tt>ping 192.168.1.1</tt>. &nl;(ceci est juste un test sur votre réseau local, vous ne pouvez pas encore <tt/ping/er l'extérieur.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Configuration sous DOS avec le package NCSA <p> <enum> <item>Si vous n'avez pas encore installé votre carte réseau, faites le maintenant.</item> <item>Chargez le driver adéquat. Pour une carte NE2000, tapez <tt>nwpd 0x60 10 0x300</tt>, si votre carte utilise l'IRQ 10 et l'adresse d'entrée/sortie 0x300.</item> <item>Créez un nouveau répertoire, et décompressez-y l'archive NCSA Telnet : <tt>pkunzip tel2308b.zip</tt> <item>Utilisez un éditeur de texte pour ouvrir le fichier <tt/config.tel/.</item> <item>Affectez <tt>myip=192.168.1.x</tt> (1 < x < 255), et <tt>netmask=255.255.255.0</tt>.</item> <item>Dans cet exemple, vous auriez à régler <tt>hardware=packet, interrupt=10, ioaddr=60</tt>.</item> <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.1.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> <item>Sauvegardez votre nouveau fichier <tt/config.tel/.</item> <item>Lancez un telnet vers la machine Linux pour tester la connexion réseau : <tt>telnet 192.168.1.1</tt>.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> 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.</item> <item>Ouvrez le <em>Tableau de bord MacTCP</em>. Selectionnez le driver réseau adapté (Ethernet, PAS EtherTalk) et cliquez sur le bouton.</item> <item>Dans la section <em>Obtenir l'adresse</em>, sélectionnez <em>Manuellement</em>.</item> <item>Dans <em>Adresse IP</em>, choisissez <em>class C</em> dans le menu déroulant. Vous pouvez ignorer le reste de cette boite de dialogue.</item> <item>Remplissez la section <em>Information DNS</em> avec les informations qui conviennent.</item> <item>Dans <em>Adresse de la passerelle</em>, entrez 192.168.1.1.</item> <item>Cliquez sur <em>OK</em> pour sauvegarder les changements. Dans la fenetre principale du <em/Tableau de bord MacTCP/, entrez l'adresse IP de votre Mac (192.168.1.x, 1 < x < 255) dans la zone <em>Adresse IP</em>.</item> <item>Refermez le <em/Tableau de bord MacTCP/. Si une boite de dialogue vous demande de redémarrer le système, faites le.</item> <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.1.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). <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'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.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> 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.</item> <item>Ouvrez le <em>Tableau de bord TCP/IP</em> et choisissez <em>Mode utilisateur...</em> dans le menu <em/Edition/. Assurez nous que le mode utilisateur est mis au niveau <em>Avancé</em> et cliquez sur le bouton <em>OK</em>. <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</em>. Cliquez sur le bouton <em/OK/ puis sur <em/Rendre active/.</item> <item>Sélectionnez <em>Ethernet</em> depuis le menu <em>Se connecter via...</em>.</item> <item>Sélectionnez l'option qui convient dans le menu <em>Configuration</em>. 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</em>.</item> <item>Saisissez l'adresse IP de votre Mac (192.168.1.x, 1 < x < 255) dans la zone <em>Adresse IP</em>.</item> <item>Mettez le <em>Masque de sous réseau</em> à 255.255.255.0.</item> <item>L'<em>Adresse de routeur</em> est 192.168.1.1.</item> <item>Remplissez la case <em>Adresse du DNS</em> en y mettant votre adresse IP.</item> <item>Entrez le nom de votre domaine Internet (par exemple 'microsoft.com') dans la boite de dialogue <em>Ordre de recherche DNS</em>.</item> <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é. &nl;Sélectionnez l'option <em>802.3</em> si votre réseau nécessite des paquets de type 802.3. <item>Cliquez sur le bouton <em>Options...</em> pour vous assurer que le TCP/IP est activé. J'utilise l'option <em>Charger uniquement si besoin</em>. 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</em> 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.</item> <item><tt/Ping/ez la machine Linux pour tester la connexion réseau. Si vous avez le programme freeware <em>MacTCP Watcher</em>, cliquez sur le bouton <em>Ping</em>, 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 <tt/ping/er l'extérieur).</item> <item>Vous pouvez 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</tt> sur un système Unix, qui est décrit à la page 33 du RFC 1035). Une fois le fichier créé, ouvrez le <em>Tableau de bord TCP/IP</em>, cliquez sur le bouton <em>Sélectionner le fichier Hosts...</em>, et ouvrez le fichier <tt/Hosts/.</item> <item>Cliquez sur <em>Fermer</em> ou choisissez <em>Fermer</em> ou <em>Quitter</em> depuis le menu <em>Fichier</em>, et cliquez alors sur le bouton <em>Enregistrer</em> pour enregistrer vos changements.</item> <item>Les changements prennent effet immédiatement, mais cela ne fera pas de mal de rebouter le système.</item> </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2>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. <item>Téléchargez tcpip16.exe depuis (NdT ???) <item>Editez <tt/c:\nwclient\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:\nwclient\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 xxx.xxx.xxx.xxx ip_router xxx.xxx.xxx.xxx </verb> <item>et finalement, créez <tt/c:\bin\resolv.cfg/ : <verb> SEARCH DNS HOSTS SEQUENTIAL NAMESERVER 207.103.0.2 NAMESERVER 207.103.11.9 </verb> <item>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. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> 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. <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</em> <item>Dans <em/'Network'/, ajoutez votre adresse TCP/IP 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.1.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.1.1"/ dans une boîte de commande OS/2. Si vous recevez les paquets IP, tout fonctionne correctement. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Configurer les autres systèmes <p> 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 à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> (Note du traducteur : en anglais bien sûr). <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <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, ainsi que les modules nécessaires chargés. De plus, les adresses IP, la passerelle, et le DNS devraient être installés sur les <bf/AUTRES/ ordinateurs. <p> Maintenant, la seule chose à faire est d'utiliser ipfwadm pour faire suivre les paquets appropriés à la machine qui convient : <p> <quote><bf>** 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. **</bf></quote> <p> <tscreen><verb> ipfwadm -F -p deny ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0 </verb></tscreen> 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. <tscreen><verb> Masque de sous réseau | x | Sous réseau ~~~~~~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~ 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) </verb></tscreen> Par exemple, si je suis sur un réseau de classe C, j'utiliserai : <tscreen><verb> ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 </verb></tscreen> <p> 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 : <tscreen><verb> ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp </verb></tscreen> <p> 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 : <tscreen><verb> 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 </verb></tscreen> <p> 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. <p> Une erreur fréquente est d'utiliser comme première règle la commande : <verb> ipfwadm -F -p masquerade </verb> Il ne faut <bf/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é ! <p> Une fois encore, vous pouvez ajouter ces lignes à vos fichiers <tt>/etc/rc.local</tt>, ou le faire manuellement à chaque fois que vous avez besoin de l'IP Masquerading. <p> Veuillez lire la section 4.4 pour des instructions détaillées sur Ipfwadm. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Tester IP Masquerade <p> Il est maintenant temps de tester notre travail. Assurez vous que la connexion de votre hôte Linux à Internet est correcte. <p> Vous pouvez par exemple essayer de parcourir quelques sites Web (sur <em>Internet</em> !!!) depuis vos <bf/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. <p> Par exemple, vous pouvez accéder au site Web du Linux Documentation Project à http://sunsite.unc.edu/mdw/linux.html en entrant <htmlurl url="http://152.2.254.81/mdw/linux.html" name="http://152.2.254.81/mdw/linux.html"> <p> 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... <p> 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. <!-- Section 4 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Autres sujets relatifs à IP Masquerade et le support logiciel <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Problèmes avec IP Masquerade <p> Certains protocoles ne marcheront pas avec l'IP masquerading, parce que soit ils supposent des choses sur les numéros de port ou soit qu'ils encodent les données sur le port et les adresses dans leurs paquets. Ces protocoles ont besoin de <em/proxy/ intégrés dans le code du masquerading pour fonctionner. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Services entrants <p> Le masquerading ne peut pas du tout prendre en charge les services entrants. Il y a plusieurs façons de les autoriser, mais ces méthodes sont complètement en dehors du thème du masquerading et se rapprochent plutôt de la technique des firewalls. <p> Si vous n'avez pas besoin d'une grande sécurité, vous pouvez simplement rediriger les ports. Il y a de nombreuses façons de faire cela - personnellement j'utilise une version modifiée du programme redir (qui, je l'espère, sera disponible sur sunsite et ses mirrors prochainement). Si vous désirez avoir des niveaux d'autorisation sur les connexions entrantes, vous pouvez alors utiliser les <tt/TCP Wrappers/ ou <tt/Xinetd/ par dessus redir (version 0.7 ou supérieure) 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. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Programmes clients supportés et autres remarques pour la configuration <p> <quote><bf> ** La liste suivante n'est plus maintenue. Voyez <htmlurl url="http://masqapps.home.ml.org/" name="cette page"> sur les applications fonctionnant au travers d'IP Masquerading et la page <htmlurl url="http://ipmasq.home.ml.org/" name="IP Masquerade Resource"> pour plus de détails. ** </bf></quote> <p> En général, les applications qui utilisent TCP et/ou UDP devraient fonctionner. Si vous avez une quelconque suggestion ou question à propos des applications compatibles avec IP masquerade, visitez la page sur les <htmlurl name="applications fonctionnant avec IP Masquerading" url="http://masqapps.home.ml.org/"> par Lee Nevo. <!-- - - - - - - - - - - - - - - - - - --> <sect2> Les clients qui fonctionnent <p>Clients génériques <descrip> <tag>HTTP</tag>toutes les plateformes, naviguer sur le web ; <tag>POP & SMTP</tag>toutes les plateformes, clients de courrier électronique ; <tag>Telnet</tag>toutes les plateformes, sessions distantes ; <tag>FTP</tag>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>Archie</tag>toutes les plateformes, client de recherche de fichiers (tous les clients ne fonctionnent pas) ; <tag>NNTP (USENET)</tag>toutes les plateformes, client news USENET ; <tag>VRML</tag>Windows (peut être toutes les plateformes), réalité virtuelle ; <tag>traceroute</tag>surtout les plateformes UNIX, certaines variantes ne devraient pas fonctionner ; <tag>ping</tag>toutes plateformes, avec le patch ICMP <tag>quoique ce soit, basé sur IRC</tag>toutes les plateformes, avec le module <tt/ip_masq_irc.o/ ; <tag>Client Gopher</tag>toutes les plateformes ; <tag>Client WAIS</tag>atoutes les plateformes. </descrip> <p>Clients Multimédia <descrip> <tag/Real Audio Player 2.0/Windows, flux audio par réseau, avec le module <tt/ip_masq_raudio/ <tag/True Speech Player 1.1b/Windows, flux audio par réseau <tag/Internet Wave Player/Windows, flux audio par réseau <tag/Worlds Chat 0.9a/Windows, programme client-serveur de discussion 3D <tag/Alpha Worlds/Windows, programme client-serveur de discussion 3D <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. <tag/Powwow/Windows, communication audio. Vous ne pouvez être contacté que si vous initiez la connexion, mais on ne peut pas vous appeler. <tag/CU-SeeMe/toutes les plateformes, avec le module cuseeme, voir sur <url url="http://ipmasq.home.ml.org" name="IP Masquerade Resource"> pour les détails. <tag/VDOLive/Windows, avec le patch vdolive </descrip> NB : Certains clients tels IPhone et Powwow peuvent fonctionner même si vous n'êtes pas la personne qui initie la connexion, en utilisant le <em/package ipautofw/ (voir la section 4.6). <p>Autres clients <descrip> <tag/NCSA Telnet 2.3.08/DOS, une suite de logiciels contenant telnet, ftp, ping, etc... <tag/PC-anywhere pour windows 2.0/MS-Windows, controle d'un PC à distance avec TCP/IP, fonctionne uniquement si la machine est un client et non un hôte. <tag/Socket Watch/utilise ntp - network time protocol <tag/Linux net-acct package/Linux, package d'administration par réseau </descrip> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Clients qui ne fonctionnent pas <p> <descrip> <tag/Intel Internet Phone Beta 2/Connexion ok, mais la voix ne peut que sortir de votre réseau. <tag/Intel Streaming Media Viewer Beta 1/Connexion impossible au sever. <tag/Netscape CoolTalk/Connexion à l'hôte distant impossible. <tag/talk,ntalk/ ne fonctionnera pas - nécessite l'écriture d'un proxy noyau <tag/WebPhone/ Ne peut pas fonctionner (il fait des supposition invalides sur les adresses). <tag/X/ Non testé, mais je pense que cela ne peut pas fonctionner à moins que quelqu'un écrive un proxy X, qui est sans doute un programme externe au code de masquerading. Une façon de le faire fonctionner est d'utiliser <bf/ssh/ comme lien, et X comme proxy. </descrip> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Plateformes/Systèmes d'exploitations testés sur des machines clientes <p> <itemize> <item>Linux <item>Solaris <item>Windows 95 <item>Windows NT (workstation et serveur) <item>Windows pour Workgroup 3.11 (avec le package TCP/IP) <item>Windows 3.1 (avec le package Chameleon) <item>Novel 4.01 Serveur <item>OS/2 (y compris Warp v3) <item>Macintosh OS (avec MacTCP ou Open Transport) <item>DOS (avec le package NCSA Telnet, DOS Trumpet fonctionne partiellement) <item>Amiga (avec AmiTCP ou AS225-stack) <item>Stations VAX 3520 et 3100 avec UCX (pile TCP/IP pour VMS) <item>Alpha/AXP avec Linux/Redhat <item>SCO Openserver (v3.2.4.2 et 5) <item>IBM RS/6000 sous AIX <item>(Quelqu'un d'autre a essayé autre chose ?) </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Administration du firewall IP (ipfwadm) <p> Cette section constitue un guide plus précis sur l'utilisation d'ipfwadm. <p> Voici un script d'initialisation pour un système qui fait office de firewall et de masquerading. L'interface à laquelle on fait confiance est 192.168.255.1 (celle du réseau local) et 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 interdit ! <p> <verb> #!/bin/sh # # /etc/rc.d/rc.firewall, définit la configuration du firewall. # appelé depuis rc.local. # 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; \ # ) & # Connexions entrantes, efface tout et positionne le comportement par # défaut à deny (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. ipfwadm -I -f ipfwadm -I -p deny # interface locale, machines locales. Aller n'importe où est autorisé. ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 # interface distante, prétendant être une machine locale. C'est de # l'IP spoofing, on refuse. ipfwadm -I -a deny -V votre.adresse.PPP.statique -S 192.168.0.0/16 -D 0.0.0.0/0 -o # interface distante, n'importe qu'elle source, l'accès à notre # adresse PPP est valide ipfwadm -I -a accept -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D votre.adresse.PPP.statique/32 # l'interface loopback est valide. 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. ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # Connexions sortantes,efface tout et positionne le comportement par # défaut à deny (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. ipfwadm -O -f ipfwadm -O -p deny # interface locale, machines locales. n'importe quelle source allant # vers le réseau local est valide. ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16 # destination vers le réseau local à partir de l'interface # sortante. C'est du routage piraté, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D 192.168.0.0/16 -o # sortante depuis le réseau local sur l'interface sortante. C'est du # masquerading pirate, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 192.168.0.0/16 -D 0.0.0.0/0 -o # sortante depuis le réseau local sur l'interface sortante. C'est du # masquerading pirate, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D 192.168.0.0/16 -o # l'interface loopback est valide. 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. ipfwadm -O -a deny -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 à deny (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. ipfwadm -F -f ipfwadm -F -p deny # Masquerade depuis le réseau local sur l'interface locale vers # n'importe où ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -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. ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o </verb> Vous pouvez bloquer le traffic vers ou depuis un site particulier en utilisant -I, -O ou -F. Souvenez vous que les règles sont analysées de haut en bas, et -a signifie ajoute (<em/append/) à l'ensemble des règles existantes. Par exemple (non testé) : <p> 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. <p> <verb> ... début des règles -I ... # rejette et loggue l'interface locale et la machine locale allant sur # 204.50.10.13 ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # interface locale, machines locales. Aller n'importe où est autorisé. ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -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 ipfwadm -O -a reject -V votre.adresse.PPP.statique -S votre.adresse.PPP.statique/32 -D 204.50.10.13/32 -o # tout le reste, sortant vers l'interface distante est valide ipfwadm -O -a accept -V votre.adresse.PPP.statique -S votre.adresse.PPP.statique/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. ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # Masquerade depuis le réseau local sur l'interface locale vers # n'importe où ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -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/16 à 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.255.1, vous pouvez utiliser -W eth0, au lieu de -V votre.adresse.PPP.statique, vous pouvez utiliser -W ppp0. C'est une question de goût personnel. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> L'IP Masquerade et la numérotation à la demande. <p> <enum> <item>Si vous voulez que votre réseau se connecte automatiquement à Internet, le package <em/diald/ de numérotation à la demande sera une grande aide. <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"> <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. <item><em/diald/ va détecter une demande, appeler votre provider Internet et établir la connexion. <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. Ceci peut être évité si vous utilisez une connexion ISDN. Tout ce que vous devez faire est relancer le client qui a fait le timeout. </enum> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Faire suivre les paquets avec IPautofw <p> <htmlurl url="ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz" name="IPautofw"> est un module générique pour faire suivre les paquets TCP et UDP pour le Masquerading de Linux. Généralement, pour utiliser un client utilisant UDP, un module spécifique doit être chargé. Ipautofw agit de manière plus générique, puisqu'il fait suivre tout type de traffic, y compris ceux pour lesquels les modules spécifiques ne feront rien suivre. Cela peut créer un trou de sécurité, si ce n'est pas administré correctement. <!-- Section 5 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Divers <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Obtenir de l'aide <p> Note du Traducteur : Tous les documents cités dans cette section sont en anglais, à moins d'une mention spéciale de ma part. <p> <quote><bf> ** S'il vous plait, essayez de NE PAS m'envoyer de mail pour une question ou un problème à propos d'IP Masquerading. Etant surchargé de travail, je ne peux pas promettre de réponse pour tout question non liée au site web. Postez vos question à la <htmlurl url="http://ipmasq.home.ml.org/index.html#mailinglist" name="mailing list d'IP Masquerade"> plutôt (c'est à mon avis le meilleur endroit pour obtenir de l'aide). Désolé, mais je ne veux pas vous répondre plusieurs semaines plus tard. </bf></quote> <itemize> <item><url url="http://ipmasq.home.ml.org/" name="IP Masquerade Resource page"> devrait contenir assez d'information pour l'installation d'IP Masquerade <item>Souscrire à la mailing list d'IP masquerade (recommendé) &nl; Pour souscrire, envoyez un mail ayant pour sujet "subscribe" (sans les guillemets) à <htmlurl url="mailto:masq-request@indyramp.com" name="masq-request@indyramp.com"> &nl; Pour mettre fin à votre souscription, envoyez un mail ayant pour sujet "unsubscribe" (toujours sans les guillemets) à <htmlurl url="mailto:masq-request@indyramp.com" name="masq-request@indyramp.com"> &nl Pour obtenir de l'aide sur le fonctionnement de la mailing list, envoyez un mail ayant pour sujet "archive help" ou "archive dir" (pas de guillemets) à <htmlurl url="mailto:masq-request@indyramp.com" name="masq-request@indyramp.com"> <item>L'<url url="http://www.indyramp.com/masq/list/" name="archive de la mailing list IP masquerade"> contient tous les messages envoyés jusqu'à maintenant dans la mailing list. <item>Ce document, en anglais : <url url="http://ipmasq.home.ml.org/ipmasq-HOWTO.html" name="Linux IP Masquerade mini HOWTO"> pour les noyaux 2.x (si vous utilisez un noyau de la série 1.3.x ou 2.x) <item>Le <url url="http://ipmasq.home.ml.org/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>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>Le <url url="http://linuxwww.db.erau.edu/NAG/" name="LDP Network Administrator's Guide"> est incontournable pour les débutants essayant d'installer un réseau. <item>Le <url url="http://www.freenix.fr/linux/HOWTO/Net2-HOWTO.html" name="Linux NET-2 HOWTO"> (<bf/en français/) contient aussi beaucou d'informations utiles sur l'utilisation du réseau sous Linux. <item>Le <url url="http://www.caldera.com/LDP/HOWTO/ISP-Hookup-HOWTO.html" name="Linux ISP Hookup HOWTO"> et le <url url="http://www.caldera.com/LDP/HOWTO/PPP-HOWTO.html" name="PPP HOWTO"> vous donnent des informations pour connecter votre hôte Linux sur Internet. <item>Le <url url="http://www.caldera.com/LDP/HOWTO/Ethernet-HOWTO.html" name="Linux Ethernet-Howto"> 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.fr/linux/HOWTO/Firewall-HOWTO.html" name="Linux Firewalling and Proxy Server HOWTO"> (<bf/en français/) <item>Le <url url="http://www.freenix.fr/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.fr/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" name="fr.comp.os.linux"> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Remerciements <p> <itemize> <item>Gabriel Beitler, gbeitler@aciscorp.com &nl; section 3.3.8 sur Novell. <item>Ed Doolittle, dolittle@math.toronto.edu &nl;suggestion de l'option <tt/-V/ dans la commande <tt/ipfwadm/ pour une sécurité améliorée <item>Matthew Driver, mdriver@cfmeu.asn.au &nl;aide active pour cet HOWTO, et écriture de la section section 3.3.1 (configuration de Windows 95) <item>Ken Eves, ken@eves.com &nl;pour la FAQ qui m'a servi à écrire cet HOWTO <item>Ed. Lott, edlott@neosoft.com &nl;pour une longue liste de logiciels et de systèmes testés <item>Nigel Metheringham, Nigel.Metheringham@theplanet.net &nl;pour sa contribution au IP Packet Filtering et IP Masquerading HOWTO, ce qui fait de ce HOWTO un meilleur document plus technique &nl;section 4.1, 4.2, et autres <item>Keith Owens, kaos@ocs.com.au &nl;pour l'excellent guide d'ipfwadm de la section 4.2 &nl;pour la correction de l'option <tt/ipfwadm -deny/ qui évite un trou de sécurité et a clarifié le statut de <tt/ping/ sous IP Masquerade <item>Rob Pelkey, rpelkey@abacus.bates.edu &nl;pour les sections 3.3.6 et 3.3.7 (configuration de MacTCP et Open Transport) <item>Harish Pillay, h.pillay@ieee.org &nl;pour la section 4.5 (numérotation à la demande avec diald) <item>Mark Purcell, purcell@rmcs.cranfield.ac.uk &nl;pour la section 4.6 sur IPautofw <item>Ueli Rutishauser, rutish@ibm.net &nl;pour la section 3.3.9 sur OS/2 Warp <item>John B. (Brent) Williams, forerunner@mercury.net &nl;pour la section 3.3.7 (configuration d'Open Transport) <item>Enrique Pessoa Xavier, enrique@labma.ufrj.br &nl;pour la suggestion de la configuration de bootp <item>Les développeurs d'IP Masquerade pour cet excellent produit <quote> <itemize> <item>Delian Delchev, delian@wfpa.acad.bg <item>Nigel Metheringham, Nigel.Metheringham@theplanet.net <item>Keith Owens, kaos@ocs.com.au <item>Jeanette Pauline Middelink, middelin@polyware.iaf.nl <item>David A. Ranch, trinity@value.net <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 que l'ont m'envoit dans 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>La page sur Ipfwadm par X/OS <item>Divers HOWTOs liés au réseau sous Linux </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> </article>