Linux IP Masquerade HOWTO (version française) David Ranch (version orginale), dranch@trinnet.net Pejvan AHMAD-BEIGUI (traduction - v1.95-b : le 28 juin 2001), pejvan.ahmad-beigui@ensimag.imag.fr v1.95, November 14, 2000 _________________________________________________________________ _Ce document décrit la mise en application de l'IP Masquerading sur une machine Linux. IP Masq est une forme de Traduction d'Adresse Reseau (Network Address Translation ou NAT en anglais) qui permet à un ou plusieurs ordinateurs qui ne possédent pas d'adresses IP, de communiquer sur Internet grâce à l'unique adresse IP d'une machine Linux. Ces ordinateurs étant connectés de manière interne sur le serveur Linux._ _________________________________________________________________ 1. Introduction 1.1 Introduction à l'IP Masquerading ou IP MASQ en abrégé Ce document décrit la mise en application de l'IP Masquerading sur une machine Linux. IP Masq est une forme de Traduction d'Adresse Reseau (Network Address Translation ou NAT en anglais) qui permet à un ou plusieurs ordinateurs, qui ne possèdent pas d'adresses IP, de communiquer sur Internet grâce à l'unique adresse IP d'une machine Linux. Ces ordinateurs étant connectés de manière interne sur le serveur Linux. Cette connexion peut se faire avec les différentes techonologies LAN (Local Area Networks ou en français, réseaux locaux) tels que Ethernet, TokenRing, FDDI mais aussi par d'autres types de connexions tels que le PPP ou le SLIP. Ce document utilisera Ethernet comme exemple principal puisque c'est le scenario le plus commun. _Ce document se destine aux utilisateurs d'un des deux noyaux stable Linux : 2.0.38+ et 2.2.17+ sur un compatible PC (NDT : j'utilise comme routeur linux un vieux Sparc Classic et ca fonctionne parfaitement). Les noyaux plus anciens tels que 1.2.x, 1.3.x, et 2.1.x NE sont PAS traités dans ce document et, peuvent être considérés comme défectueux pour certaines versions. Nous vous recommandons de faire la mise à jour vers un des noyaux Linux stables avant d'utiliser l'IP Masquerading. Les nouveaux noyaux 2.3 et 2.4 avec le nouveau code NetFilter ne sont pas encore traités mais les URLs sont fournis ci-dessous. Une fois que les caractéristiques de Netfilter seront finalisées, le nouveau code sera traité dans ce HOWTO._ _Si vous voulez configurer IP Masq sur un Macintosh, contactez par email (en anglais) Taro Fukunaga, tarozax@earthlink.net pour recevoir une copie de sa version abregée du HOWTO pour MkLinux._ 1.2 Avant-Propos, Feedback & Credits En tant que nouvel utilisateur, j'ai trouvé la configuration de l'IP masquerade sous Linux très déroutante (noyau 1.2.x à cette époque). Bien qu'il y ait eu une FAQ et une mailing list, il n'avait pas de document dedié. Il y avait aussi de la demande sur la mailing list pour un tel HOWTO. J'ai alors decidé d'écrire ce HOWTO comme point de départ pour les nouveaux utilisateurs et de poser les fondations qui permettraient aux autres utilisateurs de l'étoffer dans le futur. Si vous avez des suggestions, des corrections, etc. à nous soumettre au sujet de ce document pour nous permettre de l'améliorer, n'hesitez pas. Ce document était basé sur la FAQ originale de Ken Eves, et des nombreux messages salutaires de la mailing list de l'IP Masquerade. Je remercie tout particulierement M. Matthew Driver dont le message sur la mailing list m'a inspiré l'organisation et finalement la rédaction de ce document. Dernièrement, David Ranch a réécrit ce HOWTO et a ajouté un nombre conséquent de sections pour le rendre aussi complet que possible. Envoyez nous vos feedbacks et commentaires (en anglais) à ambrose@writeme.com et dranch@trinnet.net si vous avez des corrections à nous soumettre ou si des information/URLS/etc. manquent. Si vous avez des commentaires sur la traduction de ce document, ou des erreurs/améliorations à signaler, vous pouvez me contacter a : pejvan.ahmad-beigui@ensimag.imag.fr. Votre aide inestimable va certainement influencer la prochaine version de ce HOWTO ! _Ce HOWTO est destiné à être aussi complet que possible pour permettre la mise en place de votre réseau ipmasqueradée aussi rapidement que possible. David n'est pas un rédacteur technique professionnel. Vous pourrez donc trouver les informations de ce document pas assez généraux et/ou objectifs. Les dernières news et infos concernant ce HOWTO et les autres détails sur l'IP MASQ se trouvent à l' IP Masquerade Resource, site web que nous mettons à jour activement. Si vous avez des questions techniques sur l'IP Masquerade, contactez SVP la Mailing List plutôt que d'envoyer un email à David. La plupart des problèmes sur l'IP MASQ sont les mêmes pour TOUS et peuvent être facilement résolus par quelqu'un sur la Mailing List. De plus, la réponse vous parviendra bien plus rapidement sur la liste que le reply de David._ La dernière version de ce document se trouve (sous differents formats dont l'HTML et le PostScript) sur les sites suivants * http://ipmasq.cjb.net/: The IP Masquerade Resources * http://ipmasq2.cjb.net/: The IP Masquerade Resources MIRROR * The Linux Documentation Project * Dranch's Linux page * Vous pouvez aussi consulter l' IP Masquerade Resource Mirror Sites Listing pour obtenir la liste de nos sites mirroirs. 1.3 Copyright & Désistement Ce document est copyright(c) 2000 David Ranch pour la version originale et copyright(c) 2001 Pejvan AHMAD-BEIGUI pour la version française et est un document GRATUIT. Vous pouvez le redistribuer suivant les termes de la GNU General Public License. Les informations contenues dans ce document, sont à notre connaissance, corrects. Cependant, lIP Masquerading de Linux est écrits par des humains et peut donc contenir des erreurs, bugs, etc. Aucune personne, groupe ou autre organisme ne peut etre tenu responsable des dommages causés à votre (vos) ordinateur(s) ou des pertes dus à l'utiisations des informations de ce document. i.e : _LES AUTHEURS ET LES PERSONNES PARTICIPANT AU DEVELOPPEMENT DE CE DOCUMENT NE PEUVENT ETRE TENUS RESPONSABLES DES DOMMAGES CAUSES PAR L'UTILISATION DES INFORMATIONS CONTENUES DANS CE DOCUMENT._ Ok, avec tout ca dernière nous... que le spectacle commence. 2. Connaissances Préliminaires 2.1 Qu'est-ce que l'IP Masquerade? L'IP Masquerade est une fonctionnalité réseau de Linux similaire à la Translation d'Adresse Réseau un-vers-plusieurs que l'on trouve dans beaucoup de firewalls et de routeurs commerciaux. Par exemple, si une machine Linux est connectée à Internet via PPP, Ethernet, etc., l'IP Masquerading permet aux ordinateurs "internes" connectés à cette machine Linux (via PPP, Ethernet, etc.) d'accéder aussi à Internet. L'IP Masquerading fonctionne même si ces machines internes n'ont pas d'_adresses IP officielles_. MASQ permet à un groupe de machines d'avoir accès à Internet via la passerelle MASQ de manière _transparente_. Pour les autres ordinateurs connectés à Internet, tout le traffic généré va sembler provenir du serveur Linux IP MASQ lui-même. En plus de ces fonctionnalités, IP Masquerade fournit les bases de la création d'un environnement réseau de HAUTE sécurité. Avec un firewall bien configuré, casser la securité d'un système de masquerading et d'un LAN interne bien configuré devrait être très difficile. Si vous voulez savoir en quoi MASQ diffère des solutions 1:1 NAT and Proxy, reportez vous à la partie what-is-masq de la FAQ. 2.2 Situation Actuelle IP Masquerade est sorti il y a plusieurs années maintenant et il est plutôt mature depuis les noyaux 2.2.x. Depuis le noyau 1.3.x, Linux est fourni avec MASQ. Aujourd'hui de nombreuses personnes et entreprises l'utilisent avec d'excellents résultats. Les utilisations courantes du réseau tels que la navigation Web, les TELNET, PING, TRACEROUTE, etc. fonctionnent bien avec IP Masquerade. D'autres types de communications, tels que FTP, IRC, et Real Audio fonctionnent bien avec les modules IP MASQ appropriés chargés en memoire. Certains programmes réseaux tels que les streaming audio (MP3s, True Speech, etc.) fonctionnent aussi. Quelques personnes sur la mailing list ont même réussi à obtenir de bons résultats avec des logiciels de video conferencing. A noter aussi que faire de l'IP Masquerading avec UNE seule carte réseau (NIC) pour MASQuer entre des réseaux Ethernet interne et externe N'est PAS recommandé. Pour plus de détails, reportez vous SVP à la partie aliasing de la FAQ. Dans tous les cas, reportez vous SVP à la partie Supported Client Software pour une liste plus complète des logiciels fonctionnant sous IP MASQ. IP Masquerade fonctionne bien comme serveur pour des 'machines clientes' tournant sous différents systèmes d'exploitations (operating sytems ou OS en anglais) et différents materiels dont : * Unix: Sun Solaris, *BSD, Linux, Digital UNIX, etc. * Microsoft Windows 2000, NT (3.x et 4.x), 95/98/ME, Windows for Workgroups (avec le package TCP/IP) * IBM OS/2 * ordinateurs Apple Macintosh sous MacOS avec soit MacTCP soit Open Transport * systèmes sous DOS avec les packet drivers et le package NCSA Telnet * VAXen * Compaq/Digital Alpha sous Linux et NT * même les ordinateurs Amiga avec AmiTCP ou la pile AS225. Cette liste continue encore et toujours mais ce qu'il faut bien comprendre, c'est que si votre OS comprend le TCP/IP, il devrait fonctionner avec l'IP Masquerade ! 2.3 Qui Peut Profiter de l'IP Masquerade? * Si vous avez un serveur Linux connecté à Internet * Si vous avez des ordinateurs connectés à ce serveur dans un sous-réseau local et si ces ordinateurs "parlent" le TCP/IP et/ou * si votre serveur Linux a un ou plusieurs modems et se comporte comme un serveur PPP ou SLP pour connecter d'autres ordinateurs * ces _AUTRES_ ordinateurs n'ont pas d'adresses IP officielles ou publiques (i.e. avec des adresses privées). * Et bien sûr, si vous voulez que ces _AUTRES_ ordinateurs communiquent sur Internet sans depenser d'argent supplémentaire pour l'acquisition d'adresses IP publiques / officielles ou, soit configurer Linux pour en faire un routeur soit acheter un routeur externe. 2.4 Qui n'a pas besoin d'IP Masquerade ? * Si vous avez une ordinateur Linux isolé connecté à Internet (bien que mettre en place un firewall serait une bonne idée), ou * si vous avez déjà des adresses IP publiques pour vos _AUTRES_ machines, et * et bien sûr, si vous n'aimez pas trop l'idée de devoir utiliser Linux en 'free ride' et vous vous sentez plus à l'aise avec des outils commerciaux mais chers qui font exactement la même chose. 2.5 Comment fonctionne IP Masquerade ? Tiré de la FAQ sur l'IP Masquerade de Ken Eves: Voici un dessin de la configuration la plus simple: SLIP/PPP +------------+ +-------------+ vers votre FAI | Linux | SLIP/PPP | un | <---------- modem1| #1 |modem2 ----------- modem3| ordinateur | 111.222.121.212 | | 192.168.0.100 | | +------------+ +-------------+ Sur le dessin ci-desus, une machine Linux, Linux #1, avec IP_MASQUERADING d 'installe est connecte a Internet par le modem1 via SLIP/ou/PPP. Elle a une adresse I P publique : 111.222.121.212. Elle a aussi un modem2 qui permet a l'appelant des connexi ons SLIP/ou/PPP. La seconde machine (qui n'a pas besoin de tourner sous Linux) ce connecte a la machine Linux #1 et commence une session SLIP/ou/PPP. Elle N'a PAS d'adresse IP pub lique sur Internet c'est pourquoi elle utilise l'adresse privee 192.168.0.100 (vo ir ci-dessous). Avec IP Masquerade et une configuration de routage correcte, la machine "un ordinateur" peut interagir avec Internet comme si elle y etait directement connectee (a quelques petites exceptions pres). Citons Pauline Middelink: N'oublions pas de mentionner le fait que la machine "un ordinateur" doit avoi r Linux #1 configure comme sa passerelle (que ca soit la route par defaut ou juste un so us reseau n'a pas d'importance). Si la machine "un ordinateur" ne peut pas faire ca, al ors la machine Linux doit etre configuree de telle sorte que le proxy arp fonctionne pour toute les adresses de routage. Mais la mise en place et la configuration d'un proxy arp depasse le cadre de ce document. L'extrait suivant est tire d'un post sur comp.os.linux.networking qui a ete mod ifie de facon a tenir compte des noms utilises dans l'exemple precedent : o Je dis a la machine "un ordinateur" que mon Linux, connecte via PPP ou SLI P, est sa passerelle. o Quand un paquet provenant d"un ordinateur" arrive a ma machine Linux, elle va lui assigner un nouveau numero de port source TCP/IP et va coller sa propre adre sse IP dans l'entete du paquet, tout en sauvegardant l'entete originale. Le server MASQ va ensuite envoyer le paquet ainsi modifie sur Internet via son interface SL IP/PPP. o Quand un paquet arrive d'Internet vers la machine Linux, Linux va examiner si son numero de port est l'un des numeros qu'il avait assigne precedement. Si c'e st le cas, le server MASQ va recuperer le port et l'adresse IP originale et les remett re dans l'entete de paquet qui est revenu. Enfin Linux va renvoyer ce paquet a la m achine "un ordinateur". o La machine qui a envoye le paquet ne fera pas la difference. _Un Autre Exemple d'IP Masquerading :_ Un exemple typique est donné dans le diagramme ci-dessous : +----------+ | | Ethernet | A |:::::: | |.2 : 192.168.0.x +----------+ : : +----------+ PPP +----------+ : .1 | Linux | link | | :::::::| Masq-Gate|:::::::::::::::::::// Internet | B |:::::: | | 111.222.121.212 | |.3 : +----------+ +----------+ : : +----------+ : | | : | C |:::::: | |.4 +----------+ | | | | <- Reseau Interne --> | | <- Reseau Externe ----> | | | Dans cet exemple, il y a (4) ordinateurs qui méritent notre attention. Il y a aussi sans doute quelque chose tout à droite d'où provient votre connexion PPP à Internet (serveur terminal, etc.) et il y a aussi un serveur distant (très très loin de la droite de cette page) sur Internet avec qui vous voulez communiquer. Le serveur Linux _Masq-Gate_ est la passerelle d'IP Masquerading pour TOUT le réseau interne constitué des machines _A_, _B_ et _C_. C'est par là que se fera leur accès à Internet. Le réseau interne utilise une des adresses reservées pour les réseaux privés par le RFC-1918. Dans notre cas, c'est les adresses de Classe C 192.168.0.0. Le serveur Linux a l'adresse 192.168.0.1 alors que les autres ordinateurs ont les adresses suivantes : * A: 192.168.0.2 * B: 192.168.0.3 * C: 192.168.0.4 Les trois machines, A, B et C, peuvent tourner sous n'importe quel système d'exploitation pour peu qu'ils puissent communiquer par TCP/IP. Les OS tels que _Windows 95_, _Macintosh MacTCP ou OpenTransport _et _Linux_ peuvent se connecter à d'autres machines sur Internet. Lorsqu'il est lancé, le serveur IP Masquerade ou portail MASQ convertit toutes les connexions internes de telle sorte qu'ells semblent provenir du passerelle MASQ lui même. MASQ reconvertit ensuite les données qui lui reviennent sur un port masqueradé et ces données sont renvoyées vers la machine qui en est à l'origine. A cause de cela, les ordinateurs du réseau interne voient une route directe vers Internet et ne sont pas au courant que leurs données sont masqueradées. C'est ce que l'on appelle une connexion "transparente". NB: Vous pouvez vous reporter à FAQ pour de plus amples détails sur les sujets tels que : * les différences entre NAT, MASQ, et les serveurs Proxy. * le fonctionnement des firewalls pour les trames 2.6 Configurations Requises pour IP Masquerade sous Linux 2.2.x _** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**_ * Les sources du noyau 2.2.x disponible sur le site : http://www.kernel.org/ NOTE #1: Les noyaux Linux 2.2.x inférieurs à 2.2.16 ont un trou de sécurité (TCP root exploit) et les versions inférieures à 2.2.11 ont un bug de fragmentation dans IPCHAINS. Pour cette raison, les personnes qui utilisent des règles IPCHAINS très restrictives sont attaquables. Mettez à jour votre noyau vers une version corrigée. NOTE #2: La plupart des nouvelles distributions compatibles MASQ-supported-Distributions tels que Redhat 5.2 peuvent ne pas correspondre à l'installation de Linux 2.2.x requise. Des utilitaires tels que DHCP, NetUtils, etc. vont devoir être mis à jour. Vous pourrez trouver plus de details dans ce HOWTO. * Modules noyau, de préférénce 2.1.121 ou mieux, disponibles sur les sites suivants : http://www.pi.se/blox/modutils/index.html or ftp://ftp.ocs.com.au/pub/modutils/ * Un réseau fonctionnant sous TCP/IP ou un LAN traité dans Linux NET-3-4 HOWTO et le Network Administrator's Guide Vous pouvez aussi regarder le document TrinityOS. TrinityOS est un guide très complet pour le réseau sous linux. Il traite de nombreux thèmes dont : l'IP MASQ, la sécurité,les DNS, DHCP, Sendmail, PPP, Diald, NFS, VPNs basés sur IPSEC et possède une section sur les performances. Il contient plus de 50 sections au total ! * La connexion de votre machine Linux à Internet est traitée dans : Linux ISP Hookup HOWTO, Linux PPP HOWTO, TrinityOS, Linux DHCP mini-HOWTO, Linux Cable Modem mini-HOWTO and http://www.linuxdoc.org/HOWTO/mini/ADSL.html * IP Chains 1.3.9 ou supérieur est disponible ici : http://netfilter.filewatcher.org/ipchains/. Des informations supplémentaires sur les versions requises et les dernières mises à jour de IPCHAINS HOWTO etc. se trouvent à l'URL suivant : Linux IP Chains page * La configuration, la compilation et l'installation d'un nouveau noyau Linux sont expliquées dans le Linux Kernel HOWTO * Vous pouvez télécharger de nombreux utilitaires optionnels pour IP Masquerade qui permettent des fonctionnalités supplémentaires tels que : + port-forwarder ou re-diriger des ports TCP/IP : o IP PortForwarding (IPMASQADM) - RECOMMENDED ou l'ancien mirror. module ICQ MASQ + module ICQ MASQ d'Andrew Deryabin Solutions de PORTFW pour FTP: * Les deux noyaux 2.2.x et 2.0.x ont un Module MASQ pour PORTFWer un FTP vers une machine MASQuée. Reportez vous SVP à la page relative aux applications ( IPMASQ WWW site) pour les détails complets. * Il y a un proxy FTP complet fait par SuSE qui possède une fonction similaire au PORTFWing pour accéder à un serveur FTP interne. Pour plus de details, reportez vous SVP à l'URL : SuSe Proxy URL IPROUTE2 pour la vraie 1:1 NAT, le routage basé sur la source (Policy-based / source routing), et le façonnage du Traffic : * ftp://ftp.inr.ac.ru/ip-routing * La documentation se trouve ici : http://www.compendium.com.ar/policy-routing.txt * L' Advanced Routing HOWTO * http://defiant.coinet.com/iproute2/ Voici quelques serveurs mirroirs pour le code source: ftp://linux.wauug.org/pub/net ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/ ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/ ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/ (STM1 to USA) ftp://sunsite.icm.edu.pl/pub/Linux/iproute/ ftp://ftp.sunet.se/pub/Linux/ip-routing/ ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/ ftp://ftp.crc.ca/pub/systems/linux/ip-routing/ ftp://ftp.paname.org (France) ftp://donlug.ua/pub/mirrors/ip-route/ ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/ les RPMs sont disponibles ici : ftp://omni.rk.tusur.ru/Tango/ et la : ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/ Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres éventuels patches. 2.7 Configurations Requises pour IP Masquerade sous Linux 2.3.x and 2.4.x _** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**_ * Les nouveaux noyaux 2.3.x et 2.4.x utilisent un nouveau système appelé NetFilter (un peu à la manière des noyaux 2.2.x qui utilisèrent IPCHAINS). Heureusement, _contrairement_ à la migration vers IPCHAINS, le nouvel utilitaire NetFilter arrive avec des modules noyaux qui permettent d'utiliser de façon NATIVE la syntaxe d'IPCHAINS et d'IPFWADM et donc il n'est pas nécessaire de réecrire tous vos anciens scripts. Mais il pourrait y avoir quelques avantages à le faire (vitesse, nouvelles fonctionnalités, etc.) mais tout ca dépend de la qualité de vos anciennes règles. De nombreux changements d'architectures ont eu lieu dans ce nouveau code et permettent beaucoup plus de flexibilité, et de fonctionnalités à venir, etc. Voici quelques avantages et inconvenients des nouvelles fonctionnalités : _avantages:_ + VRAIE 1:1 NAT pour ceux qui veulent avoir des sous-reseaux TCP/IP et qui veulent jouer avec + PORTFWing integré. IPMASQADM n'est donc plus obligatoire + le PORTFWing integré fonctionne pour le traffic externe et interne. Ce qui signifie que les utilisateurs qui utilisaient PORTFW pour le traffic externe et le REDIR pour le traffic interne ne vont plus avoir à utiliser deux utilitaires ! + Capacité de routage Policy-Based complète (routage d'adresse TCP/IP base sur la source) + Compatible avec les capacités FastRoute de Linux pour obtenir un packet forwarding beaucoup plus rapide (changement de réseau Linux) + compatibilité complète avec TCP/IP v4, v6, et même DECnet (ack!) + compatible avec les wildcard pour les noms d'interface comme : ppp* pour PPP0, PPP1, etc. + permet le filtrage des entrées et des sorties sur les INTERFACES + Filtrage Ethernet MAC + limitation du taux des paquets de type Denial of Service (DoS) + fonctionnalité très simple, générique, de type stateful d'inspection + la fonction Packet REJECT possède maintenant un renvoie de messages ICMP configurable par l'utilisateur + Différents niveaux de logging (différents paquets peuvent aller dans differents niveaux de SYSLOG) _inconvénients:_ * Puisque NetFilter est une architecture toute neuve, la plupart des anciens modules noyaux de MASQ vont devoir être réécrits. C'est à dire que pour le moment, seul le module FTP a été mis à jour et les modules suivants ont encore besoin de l'eêtre : ip_masq_cuseeme.o ip_masq_icq.o ip_masq_quake.o ip_masq_user.o ip_masq_irc.o ip_masq_raudio.o ip_masq_vdolive.o Il existe un document expliquant comment faire ce portage ici : http://netfilter.kernelnotes.org/unreliable-guides/netfilter-hacki ng-HOWTO-5.html, Si vous avez le temps, votre talent serait d'une grande aide pour porter ces modules plus rapidement. Dans la version actuelle de ce HOWTO, NetFilter N'est PAS traité. Une fois que les fonctionnalité de NetFilter seront fixées, NetFilter sera traité dans -ce- HOWTO ou peut être éventuellement dans un nouveau HOWTO. D'ici là, vous pouvez vous tournez vers ces liens pour la documentation de NetFilter. Pour le moment, la configuration et la résolution des conflits et problèmes du nouveau NetFilter va être similaire à 95% à celles du IPCHAINS actuel. En raison de tout ça, ce HOWTO va être utile aux utilisateurs de firewall NetFilter et de NAT. http://netfilter.filewatcher.org/unreliable-guides/index.html et plus spécifiquement http://netfilter.filewatcher.org/unreliable-guides/NAT-HOWTO.html Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres eventuels patches. 2.8 Configurations Requises pour IP Masquerade sous Linux 2.0.x _** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**_ * Tout ordinateur convenable. Reportez vous SVP à la section FAQ-Hardware pour de plus amples détails. * les sources du noyau 2.0.x disponibles ici : http://www.kernel.org/ (La plupart des Linux modernes MASQ-supported-Distributions tels que RedHat 5.2 ont un noyau modulaire compilé avec toutes les options nécessaires à IP Masquerade. Dans de tels cas, il n'y a pas besoin de recompiler un nouveau noyau. Si vous UPGRADEZ votre noyau, il est possible que d'autres programmes puissent être requis et/ou mis à jour (ces programmes sont mentionnés plus loin dans ce HOWTO). * Modules noyaux, de préférénce 2.1.85 ou mieux, disponible sur les sites suivants : http://www.pi.se/blox/modutils/index.html ou ftp://ftp.ocs.com.au/pub/modutils/ (les modules-1.3.57 sont le minimum requis) * Un réseau fonctionnant sous TCP/IP ou un LAN traité dans Linux NET-3-4 HOWTO et le Network Administrator's Guide Vous pouvez aussi regarder le document TrinityOS. TrinityOS est un guide très complet pour le réseau sous linux. Il traite de nombreux thèmes dont : l'IP MASQ, la sécurité, les DNS, DHCP, Sendmail, PPP, Diald, NFS, VPNs basés sur IPSEC et contient une section sur les performances. Il contient plus de 50 sections au total ! * La connexion de votre machine Linux à Internet est traitée dans : Linux ISP Hookup HOWTO, Linux PPP HOWTO, TrinityOS, Linux DHCP mini-HOWTO, Linux Cable Modem mini-HOWTO et http://www.linuxdoc.org/HOWTO/mini/ADSL.html * Ipfwadm 2.3 ou supérieur est disponible ici : ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz Des informations supplémentaires sur les versions requises sont disponible ici : Linux IPFWADM page + Si vous voulez faire tourner IPCHAINS sur un noyau 2.0.38+, reportez vous ici : Willy Tarreau's IPCHAINS enabler for 2.0.36 ou ici : Rusty's IPCHAINS for 2.0.x kernels * Savoir configurer, compiler, et installer un nouveau noyau Linux comme expliqué ici : Linux Kernel HOWTO * Vous pouvez aussi appliquer plusieur patches optionnel à IP Masquerade pour lui 'apprendre' des fonctionnalités telles que : + port-forwarder ou re-diriger des ports TCP/IP : Avec ces utilitaires, vous pouvez faire fonctionner des programmes qui normalement ne fonctionne pas dernière un server MASQ. De plus, vous pouvez configurer le server MASQ de façon à permettre aux internautes de contacter des servers WWW, TELNET, SMTP, FTP (avec un patch), etc. internes. Reportez vous SVP à la section Forwarders de ce HOWTO pour de plus amples informations. Voici une liste des différents patches IP Masquerade disponibles pour le noyau 2.0.x : o Steven Clarke's IP PortForwarding (IPPORTFW) - _RECOMMANDE_ o IP AutoForward et un mirroir (IPAUTOFW) - NON Recommande o REDIR pour TCP (REDIR) - NON Recommandé o UDP redirector (UDPRED) - NON Recommandé Solutions de PORTFW pour FTP: : + Si vous voulez utiliser le PORTFW pour renvoyer le traffic FTP vers un server FTP interne, vous aurez sans doute besoin de : Fred Viles's FTP server patch via HTTP ou Fred Viles's FTP server patch via FTP. De plus amples details sont disponibles à la section Forwarders de ce HOWTO. forwarder des écrans X-Window : * X-windows forwarding (DXCP) module MASQ ICQ : * Andrew Deryabin's ICQ MASQ module forwarders PPTP (GRE) et VPNs SWAN (IPSEC) tunneling : * John Hardin's VPN Masquerade forwarders ou bien l'ancien patch uniquement pour le PPTP. Patches spécifiques aux jeux: * Glenn Lamb's LooseUDP for 2.0.36+ patch. Jetez un coup d'oeil à la Page NAT de Dan Kegel pour plus d'informations. De plus amples informations se trouvent à la section Game-Clients et dans la section FAQ . Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres éventuels patches. 3. Installer IP Masquerade _Si votre réseau privé contient quelqu'information vitale, vous devez soigneusement réflechir en terme de SECURITE avant d'utiliser IP Masquerade. Par defaut, IP MASQ devient une passerelle pour vous permettre d'acceder à Internet mais il peut aussi permettre à quelqu'un de s'introduire à partir d'Internet sur votre réseau interne._ Une fois que vous avez IP MASQ qui fonctionne, il est VIVEMENT recommandé d'utiliser un jeu de règles du sécurité largement supérieur, que nous appellerons STRONG (STRONG IPFWADM/IPCHAINS firewall ruleset en anglais) dans la suite. Vous pouvez vous reportez aux sections Strong-IPFWADM-Rulesets et Strong-IPCHAINS-Rulesets plus loin dans le texte pour plus de détails. 3.1 Compiler un noyau avec les fonctionnalités d'IP Masquerade _Si votre distribution Linux possède déjà toutes les fonctions nécessaires tels que :_ * IPFWADM/IPCHAINS * IP forwarding * IP masquerading * IP Firewalling * etc. et que tous les modules relatif à MASQ y soient compilés (la plupart des noyaux modulaires vont avoir ce dont vous avez besoin), vous N'aurez PAS besoin de recompiler un noyau. Si vous ne savez pas si votre distribution Linux est pret pour MASQ, reportez vous à la section MASQ-supported-Distributions . Si vous ne faites pas confiance à cette liste, ou que votre distribution n'y est pas listée, essayez les tests suivants : * logguez vous sur votre machine linux et lancez la commande suivante : "ls /proc/sys/net/ipv4". * Regardez si les fichiers tels que "ip_forward", "ip_masq_debug", "ip_masq_udp_dloose"(optionnel), et "ip_always_defrag"(optionnel) existent. Si oui, c'est que votre noyau est fin pret ! Si vous ne trouvez aucun des fichiers précités ou si votre distribution ne permet pas l'IP Masquerading par défaut, SUPPOSEZ QU'IL NE PERMET PAS l'utilisation de MASQ par defaut ! Dans ce cas, vous allez devoir compiler un noyau... mais ne vous inquietez pas, ce n'est pas difficile. Que la compatibilité soit native ou pas sur votre distribution, la lecture de cette section est VIVEMENT recommandée parce qu'elle contient d'autres informations utiles. Noyaux Linux 2.2.x _Reportez vous à la section 2.2.x-Requirements pour les logiciels nécessaires, les patches, etc._ * D'abord, vous aurez besoin des sources du noyau 2.2.x (de préférence la dernière version 2.2.16 ou mieux) NB #1: Les noyaux Linux 2.2.x inférieurs à 2.2.16 ont un trou de securité (TCP root exploit) et les versions inférieurs à 2.2.11 ont un bug de fragmentation dans IPCHAINS. Pour cette raison, les personnes qui utilisent des jeux de règles IPCHAINS très restrictives sont attaquables. Mettez à jour votre noyau vers une version corrigée. NB #2: Pendant les mises à jour des noyaux 2.2.x, les options de compilations n'ont cessé de changer. Ici nous allons vous montrer les réglages pour la version 2.2.15. Si vous utilisez une version antérieure du noyau, les dialogues peuvent paraître différents. Nous vous recommandons de faire la mise à jour vers la dernière version du noyau en raison des nouvelles fonctionnalités et de la stabilité accrue qu'elle procure. * Ne soyez pas effrayé si c'est la première fois que vous compilez un noyau. En fait c'est plutôt facile et plusieurs URLs que vous trouverez dans la section 2.2.x-Requirements traitent de ça. * Decompressez les sources du noyau dans le répertoire /usr/src/ en utilisant la commande tar xvzf linux-2.2.x.tar.gz -C /usr/src ou "x" représente la version de votre noyau 2.2. Une fois ceci terminé, vérifiez que le dossier ou le lien symbolique vers /usr/src/linux/ existe bien. * Appliquez tous les patches, optionnels ou non, au source de votre noyau. Pour le 2.2.1, IP Masq n'a pas pas besoin de patch pour fonctionner correctement. Des fonctionnalités telles que PPTP ou le forwarding de X-Window sont optionnels. Vous pouvez vous reporter à la section 2.2.x-Requirements pour les URLs et à l' IP Masquerade Resources pour les informations les plus récentes et les liens vers les patches. * Voici les options de compilations MINIMALES dont vous allez avoir besoin lors de la compilation de votre noyau. Vous aurez aussi besion de configurer votre noyau pour utiliser vos interfaces reseaux. Reportez vous au Linux Kernel HOWTO et le fichier README qui se trouve dans le dossier des sources du noyau pour de plus amples informations sur la compilation du noyau. Répondez par _YES ou NO_ aux questions suivantes. Toutes les options ne seront pas disponibles si votre noyau n'est pas patché convenablement comme décrit ci-dessous dans ce HOWTO : * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] - YES: Bienque non requis par IP MASQ, cette option permet au noyau de cree r les modules MASQ et d'activer l'option 'port forwarding' -- Les options ne correspondant a MASQ sont omis -- * Enable loadable module support (CONFIG_MODULES) [Y/n/?] - YES: Permet de charger les modules noyau d'IP MASQ -- Les options ne correspondant a MASQ sont omis -- * Networking support (CONFIG_NET) [Y/n/?] - YES: Active les capacites reseau -- Les options ne correspondant a MASQ sont omis -- * Sysctl support (CONFIG_SYSCTL) [Y/n/?] - YES: vous donne le pouvoir d'activer/desactiver des options tels que le f orwarding, les IP dynamiques, le LooseUDP, etc. -- Les options ne correspondant a MASQ sont omis -- * Packet socket (CONFIG_PACKET) [Y/m/n/?] - YES: Bienque ca soit OPTIONNEL, il est recommande d'activer cette fontion nalite qui permet d'utiliser TCPDUMP pour debugguer les eventuels problems d'IP MASQ * Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?] - YES: Bienque ca soit OPTIONNEL, cette fonctionnalite permet de creer des logs des problemes du firewall avance tel que le routage des messages etc. * Routing messages (CONFIG_RTNETLINK) [Y/n/?] - NO: Cette option n'a rien a voir avec les logs du packet firewall -- Les options ne correspondant a MASQ sont omis -- * Network firewalls (CONFIG_FIREWALL) [Y/n/?] - YES: Permet de configurer le noyau avec l'utilitaire de firewall IPCHAINS * Socket Filtering (CONFIG_FILTER) [Y/n/?] - OPTIONAL: Bienque cette option n'ai rien a voir avec IPMASQ, si vous comptez installer un serveur DHCP sur votre reseau interne, vous AUREZ beso in de cette option. * Unix domain sockets (CONFIG_UNIX) [Y/m/n/?] - YES: Active les mecanismes de sockets TCP/IP d'UNIX. * TCP/IP networking (CONFIG_INET) [Y/n/?] - YES: Active les protocoles TCP/IP -- Les options ne correspondant a MASQ sont omis -- * IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?] - YES: Permet de configurer les options avances de MASQ que nous verrons pl us loins * IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) [N/y/?] - NO: Pas necessaire pour MASQ mais les utilisateurs qui ont besoin de fonc tions avancees telles que le source address-based TCP/IP ou le routage par TOS doivent activer ce tte option. * IP: equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH) [N/y/?] - NO: Pas necessaire pour les fonctions usuelles de MASQ * IP: use TOS value as routing key (CONFIG_IP_ROUTE_TOS) [N/y/?] - NO: Pas necessaire pour les fonctions usuelles de MASQ * IP: verbose route monitoring (CONFIG_IP_ROUTE_VERBOSE) [Y/n/?] - YES: Necessaire si vous voulez utiliser les codes de routage pour elimine r les paquets IP spoofes (vivement recommande) et si vous voulez les mettres dans les log s. * IP: large routing tables (CONFIG_IP_ROUTE_LARGE_TABLES) [N/y/?] - NO: Pas necessaire pour les fonctions usuelles de MASQ * IP: kernel level autoconfiguration (CONFIG_IP_PNP) [N/y/?] ? - NO: Pas necessaire pour les fonctions usuelles de MASQ * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?] - YES: Active les capacites de firewalling. * IP: firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK) [Y/n/?] - OPTIONAL: Bienqu'OPTIONNELLE, cette fonction permet a IPCHAINS de copier quelques paquets vers l'utilitaire UserSpace pour des verifications supplementaires. * IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY) [N/y/?] - NO: Pas necessaire pour les fonctions usuelles de MASQ * IP: masquerading (CONFIG_IP_MASQUERADE) [Y/n/?] - YES: Permet a IP Masquerade de readresser certains paquets TCP/IP specifi ques de l'interieur vers l'exterieur * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?] - YES: Permet de masquerader les paquets ICMP de ping (dans tous les cas, l es codes d'erreur d'ICMP sont MASQues). Cette fonction est importante pour regler les problem es de connexion. * IP: masquerading special modules support (CONFIG_IP_MASQUERADE_MOD) [Y/n/?] - YES: Bienqu'OPTIONNELLE, cette option permet d'activer plus loin le port forwarding de TCP/IP qui permet aux ordinateurs exterieurs de ce connecter vers des machi nes MASQuees specifiques (donc internes). * IP: ipautofw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [N /y/m/?] - NO: IPautofw est une methode heritee du port forwardinf. C'est essentiell ement du vieux code qui est reconnu pour avoir des problemes. NON recommande. * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y /m/n/?] - YES: Active IPPORTFV qui permet a des ordinateurs externe se trouvant sur Internet de communiquer avec un ordinateur MASQue interne specifique. Cette fonctionnal ite est typiquement utilisee pour acceder a des serveurs SMTP, TELNET et WWW. Le port forwardin g pour le FTP aura besoin d'un patch supplementaire dont nous avons donne la description dans la FAQ de ce HOWTO. Des informations supplementaires sont disponibles dans la section Forwards de ce HOWTO. * IP: ip fwmark masq-forwarding support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_ MFW) [Y/m/n/?] - OPTIONAL: C'est une nouvelle methode pour faire du PORTFW. Avec elle, IPC HAINS peut marquer les paquets sur lesquels il faut faire du travail supplementaire. Avec l'ut ilitaire UserSpace, qui ressemble a IPMASQADM ou IPPORTFW, IPCHAINS pourra alors automatiquemen t readresser les paquets. Pour le moment, cette partie du code est moins testee que PORTFW mais reste neanmoins tres prometteur. Nous vous recommandons d'utiliser pour le l'instant IPMASQADM e t IPPORTFW. Si vous avez des reflexions sur MFW, envoyez les moi par email SVP. * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?] - YES: Optimise le noyau pour le reseau bienque nous ne sachions pas si les gains de performance sont significatives ou pas. * IP: tunneling (CONFIG_NET_IPIP) [N/y/m/?] - NO: OPTIONNEL pour le tunneling IPIP a traver IP Masq. Si vous avez besoi n de fonctionnalites VPN/tunneling, il est recommande d'utiliser soit les tunnels GRE soit les t unnels IPSEC * IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/m/?] - NO: OPTIONNEL. Permet l'activation de tunnels GRE et PPTP a travers IP MA SQ. -- Les options ne correspondant a MASQ sont omis -- * IP: TCP syncookie support (not enabled per default) (CONFIG_SYN_COOKIES) [Y /n/?] - YES: VIVEMENT recommande pour la securite TCP/IP de base. -- Les options ne correspondant a MASQ sont omis -- * IP: Allow large windows (not recommended if <16Mb of memory) * (CONFIG_SKB_ LARGE) [Y/n/?] - YES: Ceci est recommande pour optimiser les fenetres TCP de Linux -- Les options ne correspondant a MASQ sont omis -- * Network device support (CONFIG_NETDEVICES) [Y/n/?] - YES: active la sous couche materielle du reseau sous Linux -- Les options ne correspondant a MASQ sont omis -- * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] - YES: Bienqu'OPTIONNELLE, cette option peut aider pendant le debuggage == N'oubliez pas d'activer les drivers de votre carte reseau !! == -- Les options ne correspondant a MASQ sont omis -- == N'oubliez pas d'actiner la comptabiliter PPP/SLIP si vous voulez un modem RPC ou PPPoE/DSL !! == -- Les options ne correspondant a MASQ sont omis -- * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] - YES: Necessaire pour activer le system de forwarding sous Linux NB: Nous n'avons activé ici que les options nécessaires pour l'IP Masquerade. Vous devez sélectionner en plus les options spécifiques à votre installation. * Apres la compilation du noyau, vous devrez compiler et installer les modules IP MASQ grâce aux commandes : make modules; make modules_install * Vous devrez ensuite ajouter quelques lignes à votre fichier /etc/rc.d/rc.local pour charger automatiquement les modules IP Masquerades et activer IP MASQ après chaque redémarrage : . . . #rc.firewall script - Lance IPMASQ et le firewall /etc/rc.d/rc.firewall . . . Noyaux Linux 2.0.x _Reportez vous à la section 2.0.x-Requirements pour les logiciels nécessaires, les patches, etc._ * D'abord, vous aurez besoin des sources du noyau 2.0.x (de préférence la dernière version 2.0.38 ou mieux) * Ne soyez pas effrayé si c'est la première fois que vous compilez un noyau. En fait c'est plutôt facile et plusieurs URLs que vous trouverez dans la section 2.2.x-Requirements traitent de ca. * Décompressez les sources du noyau dans le repertoire /usr/src/ en utilisant la commande tar xvzf linux-2.2.x.tar.gz -C /usr/src ou "x" représente la version de votre noyau 2.2. Une fois ceci terminé, vérifiez que le dossier ou le lien symbolique vers /usr/src/linux/ existe. * Appliquez tous les patches, optionnels ou non, au source de votre noyau. Des fonctionnalites telles que PPTP ou le forwarding de X-Window sont optionnels. Vous pouvez vous reporter à la section 2.0.x-Requirements pour les URLs et à l' IP Masquerade Resources pour les informations les plus récentes et les liens vers les patches. * Voici les options de compilations MINIMALES dont vous allez avoir besoin lors de la compilation de votre noyau. Vous aurez aussi besion de configurer votre noyau pour utiliser vos interfaces reseaux. Reportez vous au Linux Kernel HOWTO et le fichier README qui se trouve dans le dossier des sources du noyau pour de plus amples informations sur la compilation du noyau. Repondez par _YES ou NO_ aux questions suivantes. Toutes les options ne seront pas disponibles si votre noyau n'est pas patché convenablement comme décrit ci-dessus dans ce HOWTO : * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] - YES: cette option permet selectionner les fonctionnalites IP Masquerade * Enable loadable module support (CONFIG_MODULES) [Y/n/?] - YES: Permet de charger les modules noyau d'IP MASQ * Networking support (CONFIG_NET) [Y/n/?] - YES: Active les capacites reseau * Network firewalls (CONFIG_FIREWALL) [Y/n/?] - YES: Active l'utilitaire de firewall IPFWADM * TCP/IP networking (CONFIG_INET) - YES: Active les protocoles TCP/IP * IP: forwarding/gatewaying (CONFIG_IP_FORWARD) - YES: Permet le forwarding et le routage des paquets - Controle par IPFWAD M * IP: syn cookies (CONFIG_SYN_COOKIES) [Y/n/?] - YES: VIVEMENT recommande pour la securite TCP/IP de base. * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?] - YES: Active les capacites de firewalling. * IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) [Y/n/?] - YES: (OPTIONNEL mais VIVEMENT recommande): Permet de rapporter les chocs contre le firewall * IP: masquerading (CONFIG_IP_MASQUERADE [Y/n/?] - YES: Permet a IP Masquerade de readresser certains paquets TCP/IP specifi ques de l'interieur vers l'exterieur * IP: ipautofw masquerade support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTO FW) [Y/n/?] - NO: IPautofw est une methode heritee du port forwardinf. C'est essentiel lement du vieux code qui est reconnu pour avoir des problemes. NON recommande. * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y /n/?] - YES: Cette option est DISPONIBLE UNIQUEMENT GRACE A UN PATCH pour les noy aux 2.0.x Cette option permet a des ordinateurs externe se trouvant sur Internet d e communiquer avec un ordinateur MASQue interne specifique. Cette fonctionnalite est t ypiquement utilisee pour acceder a des serveurs SMTP, TELNET et WWW. Le port forwar ding pour le FTP aura besoin d'un patch supplementaire dont nous avons donne la descr iption dans la FAQ de ce HOWTO. Des informations supplementaires sont disponibles da ns la section Forwards de ce HOWTO. * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?] - YES: Permet de masquerader les paquets ICMP. Bienqu'optionnelles, de nomb reux programmes ne vont PAS fonctionnement correctement sans cette option. * IP: loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/ ?] - YES: Cette option est DISPONIBLE UNIQUEMENT GRACE A UN PATCH pour les noy aux 2.0.x Avec cette option, des ordinateurs internes (ie MASQues) pourrons jouer au jeux compatibles NAT sur Internet. Des details supplementaires sont don nes dans la section FAQ de ce HOWTO. * IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?] - YES: Cette option optimise les connexions IP MASQ - VIVEMENT recommande * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?] - YES: Optimise le noyau pour le reseau * IP: Drop source routed frames (CONFIG_IP_NOSR) [Y/n/?] - YES: HIGHLY recommended for basic network security * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] - YES: VIVEMENT recommande pour la securite TCP/IP de base. * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] - YES: Necessaire pour activer les capacites de forwarding de Linux NB: Nous n'avons activé ici que les options nécessaire pour IP Masquerade. Vous devez sélectionner en plus les options spécifiques à votre installation. * Après la compilation du noyau, vous devrez compiler et installer les modules IP MASQ grâce aux commandes : make modules; make modules_install * Vous devrez ensuite ajouter quelques lignes à votre fichier /etc/rc.d/rc.local pour charger automatiquement les modules IP Masquerades et activer IP MASQ après chaque redémarrage : . . . #rc.firewall script - Lance IPMASQ et le firewall /etc/rc.d/rc.firewall . . . Noyaux Linux 2.3.x / 2.4.x _Les noyaux 2.3.x et 2.4.x ne sont PAS traités dans ce HOWTO pour le moment. Reportez vous à la section 2.3.x/2.4.x-Requirements pour les URLs etc. jusqu'à ce que ces noyaux soient traités dans un nouveau HOWTO._ 3.2 Affecter des adresses IP privées au LAN interne Puisque toutes les machines _INTERNES MASQées_ ne devraient pas avoir d'adresses IP officielles, il doit exister une façon spécifique et reconnue d'affecter des adresses à ces machines sans entrer en conflit avec l'adresse IP de quelqu'un d'autre. Tiré de la FAQ IP Masquerade originelle : RFC 1918 est un document officiel traitant des adresses IP qui doivent être utilisées pour des réseaux non-connectés ou "privés". Il y a 3 blocs de nombres mis de côtés exprès dans ce but. Section 3: L'espace des Adresses Privees L'Internet Assigned Numbers Authority (IANA) a reserve les trois blocs d'adress es IP suivants pour les 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 Le premier bloc sera designe comme le "24-bit block", le second comme "20-bit b lock", et le dernier comme "16-bit block". Remarquez que le premier bloc n'est rien d'autres qu'un simple reseau de Classe A, alors que le second est un espace de 16 reseaux contigus de classe B, et le troisieme est un blocs de 255 reseaux contigus de Classe C. Je préfère utiliser le réseau 192.168.0.0 avec un masque de sous-réseau de classe C : 255.255.255.0 et ce HOWTO refléte cette préférence. Mais, chacun des réseaux privés ci-dessus est valide. Assurez vous simplement d'utiliser le bon masque de sous-réseau. Donc, si vous utiliser le réseau de Classe C, vous devrez numéroter vos machines TCP/IP ainsi : 192.168.0.1, 192.168.0.2, 192.168.0.3, ..., 192.168.0.x 192.168.0.1 est habituellement la passerelle interne ou la machine MASQ Linux. Notez aussi ques les adresses 192.168.0.0 et 192.168.0.255 sont les adresses du réseau et de broadcast respectivement (et sont donc RESERVES). Evitez d'utiliser ces adresses sur vos machines sinon votre réseau risque de ne pas fonctionner correctement. 3.3 Politiques de configuration de l'IP FORWARDING A partir d'ici, vous devrez avoir votre noyau et les autres packages nécessaires d'installés. Toutes les adresses IP du réseau, la passerelle, et le DNS devront aussi être configurés dans votre serveur Linux MASQ. Si vous ne savez pas configurer vos cartes réseau, reportez vous SVP aux HOWTOs listés dans les sections 2.0.x-Requirements ou 2.2.x-Requirements . Maintenant, la seule chose qui reste à faire, c'est de configurer l'IP firewalling pour permettre le FORWARD et le MASQUERADE des paquets appropriés vers les machines appropriées : ** Ceci peut être accomplis de différentes façons. Les suggestions et les examples suivants ont fonctionné chez moi, mais vous aurez peut-être des besoins ou des idées différents. ** Cette section fournit seulement le MINIMUM de règles de firewall pour faire fonctionner l'IP Masquerade. Une fois que vous aurez testé IP MASQ (comme décrit plus loin dans ce HOWTO), reportez vous aux sections Strong-IPFWADM-Rulesets et Strong-IPCHAINS-Rulesets pour des jeux de règles de firewalling plus sûres. Vous pouvez aussi lire en plus les manuels de IPFWADM (2.0.x) et/ou IPCHAINS(2.2.x) pour de plus amples détails. Noyaux Linux 2.2.x NB : _IPFWADM n'est plus un utilitaire de firewall _qui permette de manipuler les règles d'IP Masquerade pour les noyaux 2.1.x et 2.2.x. Ces nouveaux noyaux utilisent maintenant l'utilitaire IPCHAINS. Pour de plus amples détails sur les raisons de ce changement, vous pouvez vous reporter à la section FAQ . Créez le fichier /etc/rc.d/rc.firewall avec les règles naives suivantes : #!/bin/sh # # rc.firewall - test IP Masquerade naif pour les noyaux 2.1.x et 2.2.x # avec IPCHAINS # # Charge les modules necessaires a IP MASQ # # NB: Charger uniquement les modules IP MASQ dont vous avez besoin. Tous les modules # IP MASQ actuels sont montres ci-dessous mais sont commentes pour les empech er # de se charger. # Necessaire pour le chargement initial des modules # /sbin/depmod -a # Permet le masquerading correct des transfert de fichier par FTP avec la metho de PORT /sbin/modprobe ip_masq_ftp # Permet le masquerading de RealAudio par UDP. Sans ce module, # RealAudio FONCTIONNERA mais en mode TCP. Ce qui peu causer une baisse # dans la qualite du son # #/sbin/modprobe ip_masq_raudio # Permet le masquerading des transferts de fichier par DCC pour les IRC #/sbin/modprobe ip_masq_irc # Permet le masquerading de Quake et QuakeWorld par defaut. Ce module est # necessaire pour les utilisateurs multiples derriere un server Linux MASQ. S i vous voulez jouer # a Quake I, II, et III, utilisez le second exemple. # # NB: si vous rencontrez des ERREURs lors de chargement du module QUAKE, c'e st que vous utilisez # un ancien noyau buggue. Mettez a jour votre noyau pour supprimer l'erreur. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960 # Permet le masquerading du logiciel CuSeeme pour la video conference # #/sbin/modprobe ip_masq_cuseeme # Permet le masquerading du logiciel VDO-live pour la video conference # #/sbin/modprobe ip_masq_vdolive #CRITIQUE: Active l'IP forwarding puisqu'il est desactive par defaut # # Utilisateurs Redhat: vous pourrez essayer en changeant les options dans # /etc/sysconfig/network de: # # FORWARD_IPV4=false # a # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward #CRITIQUE: Active automatiquement l'IP defragmenting puisqu'il est desactive p ar defaut # dans les noyaux 2.2.x. Ceci etait une option de compilation mais ca a change # depuis le noyau 2.2.12 # echo "1" > /proc/sys/net/ipv4/ip_always_defrag # Utilisateurs d'IP Dynamiques: # # Si vous recevez votre adresse IP de maniere dynamique a partir d'un server SLIP, PPP, # ou DHCP, activez option suivante qui active le hacking (au bon sens du term e NDT) des # adresses IP dynamique dans IP MASQ, rendant ainsi les choses plus faciles p our les # programmes du type Diald. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Active le patch LooseUDP dont certains jeux reseaux ont besoin # # Si vous etes en train d'essayer de faire fonctionner un jeu sur Internet au travers votre # serveur MASQ, et vous l'avez configure le mieux que vous pouviez mais que ca fonctionne # toujours pas, essayez d'activer cette option (en supprimant le # en debut de ligne). # Cette option est desactivee par defaut pour eviter une probable vulnerabilit e au port # scanning UDP en interne. # #echo "1" > /proc/sys/net/ipv4/ip_masq_udp_dloose # MASQ timeouts # # timeout de 2 heures pour les sessions TCP # timeout de 10 sec pour le traffic apres que le paquet TCP/IP "FIN" est recu # timeout de 160 sec pour le traffic UDP (Important pour les utilisateur d'ICQ MASQues) # /sbin/ipchains -M -S 7200 10 160 # DHCP: Pour les personnes qui recoivent leur adresse IP externe par DHCP ou # BOOTP tels que les utilisateurs d'ADSL ou Cable, il est necessaire de lancer cette # commande avec celle du 'deny'. "nom_interface_cliente_bootp" # doit etre remplace par le nom de l'interface qui va recevoir l'adresse externe par # le serveur DHCP/BOOTP. C'est souvent quelquechose du style "eth0", # "eth1", etc. # # Cet exemple est commante (desactive) ici : # #/sbin/ipchains -A input -j ACCEPT -i nom_interface_cliente_bootp -s 0/0 67 -d 0/0 68 -p udp # Active l'IP forwarding et Masquerading simpliste # # NB: L'exemple suivant est donne pour le LAN interne 192.168.0.x avec un m asque # de sous reseau de 255.255.255.0 soit un masque de sous reseau "24 bit s" # connecte a Internet par l'interface eth0. # # ** Changez les adreesse reseau et masque de sous reseau, et l'interfa ce de # ** votre connexion a Internet de telle sorte qu'ils correspondent aux reglages de votre LAN # /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ Une fois que vous aurez terminé de rédiger les règles de /etc/rc.d/rc.firewall, rendez ce dernier exécutable en tapant chmod 700 /etc/rc.d/rc.firewall Maintenant que vos règles de firewall sont prêts, vous devez faire en sorte qu'ils soient actifs après chaque redémarrage. Vous pouvez soit décider de le lancer à la main à chaque fois (une vraie galère) ou bien de le rajouter dans vos scripts de boot. Nous vous montrons comment faire pour chacune des deux methodes ci-dessous : * Pour les distribs RedHat ou derivées de la RedHat: * Il y a deux manières de faire charger des trucs dans RedHat : /etc/rc.d/rc.local ou le mettre le script d'init dans /etc/rc.d/init.d/. La première méthode est la plus simple. Tout ce que vous avez à faire c'est de rajouter cette ligne : + echo "Chargement des regles de rc.firewall..." /etc/rc.d/rc.firewall à la fin de votre /etc/rc.d/rc.local et c'est tout. Le problème de cette approche est que si vous tournez avec le jeu de règles STRONG du firewall, le firewall n'est pas actif avant les dernières phases du démarrage. La meilleure approche est d'avoir le firewall chargé juste après que le réseau est lancé. A partir de ce point, ce HOWTO ne traite que de l'approche /etc/rc.d/rc.local. Si vous voulez le système STRONG, je vous recommande de vous reportez à la section 10 de TrinityOS dont vous trouverez le lien à la fin de ce HOWTO. * Slackware : * Il y a deux manière de faire charger des trucs dans la Slackware: /etc/rc.d/rc.local ou modifier le fichier /etc/rc.d/rc.inet2. La première methode est la plus simple. Tout ce que vous avez à faire c'est de rajouter cette ligne : + echo "Chargement des regles de rc.firewall..." /etc/rc.d/rc.firewall à la fin de votre /etc/rc.d/rc.local et c'est tout. Le problème de cette aproche est que si vous tournez avec les jeux de règles STRONG du firewall, le firewall n'est pas actif avant les dernières phases du demarrage. La meilleure approche est d'avoir le firewall chargé juste après que le réseau est lancé. A partir de ce point, ce HOWTO ne traite que de l'approche /etc/rc.d/rc.local. Si vous voulez le système STRONG, je vous recommande de vous reporter à la section 10 de TrinityOS dont vous trouverez le lien à la fin de ce HOWTO. _Remarques sur la manière dont les utilisateurs doivent s'y prendre s'il veulent modifier les règles de firewall que nous avons vues ci-dessus :_ Vous pouvez aussi activer l'IP Masquerading sur une base de cas par cas suivant la machine au lieu de la methode ci-dessus qui active le reseau TCP/IP entier. Par exemple, disons que je veux que seuls les machines 192.168.0.2 et 192.168.0.8 puissent accéder à Internet et AUCUN autre ordinateur interne. Je changerais les règles dans la section "Active l'IP forwarding et Masquerading simpliste" (voir ci-dessus) dans les règles qui se trouvent dans le fichier /etc/rc.d/rc.firewall. #!/bin/sh # # Active l'IP forwarding et Masquerading simpliste # # NB: L'exemple suivant est donne pour l'activation de l'IP Masquerading po ur les # machines 192.168.0.2 et 192.1680.0.8 avec un masque # de sous reseau de 255.255.255.0 soit un masque de sous reseau "24 bit s" # connecte a Internet par l'interface eth0. # # ** Changez les adreesse reseau et masque de sous reseau, et l'interfa ce de # ** votre connexion a Internet de telle sorte qu'ils correspondent aux reglages de votre LAN # /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -i eth0 -s 192.168.0.2/32 -j MASQ /sbin/ipchains -A forward -i eth0 -s 192.168.0.8/32 -j MASQ _Erreurs courantes :_ Une erreur qui paraît courante pour les nouveaux utilisateurs d'IP Masq est de faire de la commande suivante : /sbin/ipchains -P forward masquerade la premiere commande. Ne faites _PAS_ du MASQUERADING votre politique par defaut. Sinon une personne qui peut manipuler ses tables de routage sera capable de s'infiltrer directement à travers votre passerelle, en l'utilisant pour masquerader sa propre identité ! Encore une fois, vous pouvez ajouter ces lignes dans votre fichier /etc/rc.d/rc.firewall, ou bien dans l'un de vos autres fichiers rc de votre convenance, ou bien le lancer manuellement à chaque fois que vous avez besoin de l'IP Masquerade. Reportez vous SVP aux sections Strong-IPFWADM-Rulesets et Strong-IPCHAINS-Rulesets pour un guide detaillé d'IPCHAINS et un exemple de règles STRONG pour IPCHAINS. Pour des détails supplémentaires sur l'utilisation d'IPCHAINS, vous pouvez vous reporter au site principal d'IPCHAINS http://netfilter.filewatcher.org/ipchains/ ou au site Linux IP CHAINS HOWTO Backup. Noyau Linux 2.0.x Créez le fichier /etc/rc.d/rc.firewall avec les règles naives suivantes : # rc.firewall - Initial SIMPLE IP Masquerade setup for 2.0.x kernels using # IPFWADM # rc.firewall - test IP Masquerade naif pour les noyaux 2.0.x # avec IPFWADM # # Charge les modules necessaires a IP MASQ # # NB: Charger uniquement les modules IP MASQ dont vous avez besoin. Tous les modules IP MASQ # actuels sont montres ci-dessous mais sont commentes pour les empecher d e se charger. # # Necessaire pour le chargement initial des modules # /sbin/depmod -a # Permet le masquerading correct des transfert de fichier par FTP avec la metho de PORT /sbin/modprobe ip_masq_ftp # Permet le masquerading de RealAudio par UDP. Sans ce module, # RealAudio FONCTIONNERA mais en mode TCP. Ce qui peu causer une baisse # dans la qualite du son # #/sbin/modprobe ip_masq_raudio # Permet le masquerading des transferts de fichier par DCC pour les IRC #/sbin/modprobe ip_masq_irc # Permet le masquerading de Quake et QuakeWorld par defaut. Ce module est # necessaire pour les utilisateurs multiples derriere un server Linux MASQ. S i vous voulez jouer # a Quake I, II, et III, utilisez le second exemple. # # NB: si vous rencontrez des ERREURs lors de chargement du module QUAKE, c'e st que vous utilisez # un ancien noyau buggue. Mettez a jour votre noyau pour supprimer l'erreur. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960 # Permet le masquerading du logiciel CuSeeme pour la video conference # #/sbin/modprobe ip_masq_cuseeme # Permet le masquerading du logiciel VDO-live pour la video conference # #/sbin/modprobe ip_masq_vdolive #CRITIQUE: Active l'IP forwarding puisqu'il est desactive par defaut # # Utilisateurs Redhat: vous pourrez essayer en changeant les options dans # /etc/sysconfig/network de: # # FORWARD_IPV4=false # a # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward #CRITIQUE: Active automatiquement l'IP defragmenting puisqu'il est desactive p ar defaut # dans les noyaux 2.2.x. Ceci etait une option de compilation mais ca a change # depuis le noyau 2.2.12 # echo "1" > /proc/sys/net/ipv4/ip_always_defrag # Utilisateurs d'IP Dynamiques: # # Si vous recevez votre adresse IP de maniere dynamique a partir d'un server SLIP, PPP, # ou DHCP, activez option suivante qui active le hacking (au bon sens du term e NDT) des # adresses IP dynamique dans IP MASQ, rendant ainsi les choses plus faciles p our les # programmes du type Diald. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # MASQ timeouts # # 2 hrs timeout for TCP session timeouts # 10 sec timeout for traffic after the TCP/IP "FIN" packet is received # 160 sec timeout for UDP traffic (Important for MASQ'ed ICQ users) # /sbin/ipchains -M -S 7200 10 160 # DHCP: For people who receive their external IP address from either DHCP or # BOOTP such as ADSL or Cablemodem users, it is necessary to use the # following before the deny command. The "bootp_client_net_if_name" # should be replaced the name of the link that the DHCP/BOOTP server # will put an address on to? This will be something like "eth0", # "eth1", etc. # # This example is currently commented out. # # #/sbin/ipchains -A input -j ACCEPT -i bootp_clients_net_if_name -s 0/0 67 -d 0/ 0 68 -p udp # Active l'IP forwarding et Masquerading simpliste # # NB: L'exemple suivant est donne pour le LAN interne 192.168.0.x avec un m asque # de sous reseau de 255.255.255.0 soit un masque de sous reseau "24 bit s" # connecte a Internet par l'interface eth0. # # ** Changez les adreesse reseau et masque de sous reseau, et l'interfa ce de # ** votre connexion a Internet de telle sorte qu'ils correspondent aux reglages de votre LAN # /sbin/ipfwadm -F -p deny /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.0/24 -D 0.0.0.0/0 Une fois que vous aurez terminé de rédiger les règles de /etc/rc.d/rc.firewall, rendez le exécutable en tapant chmod 700 /etc/rc.d/rc.firewall Maintenant que vos règles de firewall sont prêts, vous devez faire en sorte qu'ils soient actifs après chaque redémarrage. Vous pouvez soit décider de le lancer à la main à chaque fois (une vraie galère) ou bien de le rajouter dans vos scripts de boot. Nous vous montrons comment faire pour chacune des deux methodes ci-dessous : * Pour les distribs RedHat ou derivées de la RedHat: * Il y a deux manières de faire charger des trucs dans RedHat : /etc/rc.d/rc.local ou le mettre le script d'init dans /etc/rc.d/init.d/. La première methode est la plus simple. Tout ce que vous avez à faire c'est de rajouter cette ligne : + echo "Chargement des regles de rc.firewall..." /etc/rc.d/rc.firewall à la fin de votre /etc/rc.d/rc.local et c'est tout. Le problème de cette approche est que si vous tournez avec les règles de STRONG firewall, le firewall n'est pas actif avant les dernières phases du démarrage. La meilleure approche est d'avoir le firewall chargé juste après que le reseau est lancé. A partir de ce point, ce HOWTO ne traite que de l'approche /etc/rc.d/rc.local. Si vous voulez le système STRONG, je vous recommande de vous reporter à la section 10 de TrinityOS dont vous trouverez le lien à la fin de ce HOWTO. * Slackware : * Il y a deux manières de faire charger des trucs dans la Slackware: /etc/rc.d/rc.local ou modifier le fichier /etc/rc.d/rc.inet2. La première methode est la plus simple. Tout ce que vous avez à faire c'est de rajouter cette ligne : + echo "Chargement des regles de rc.firewall..." /etc/rc.d/rc.firewall à la fin de votre /etc/rc.d/rc.local et c'est tout. Le problème de cette aproche est que si vous tournez avec les règles de STRONG firewall, le firewall n'est pas actif avant les dernières phases du démarrage. La meilleure approche est d'avoir le firewall chargé juste apres que le reseau est lancé. A partir de ce point, ce HOWTO ne traite que de l'approche /etc/rc.d/rc.local. Si vous voulez le système STRONG, je vous recommande de vous reporter à la section 10 de TrinityOS dont vous trouverez le lien à la fin de ce HOWTO. _Remarques sur la manière dont les utilisateurs doivent s'y prendre s'il veulent modifier les règles de firewall que nous avons vues ci-dessus :_ Vous pouvez aussi activer l'IP Masquerading sur une base de cas par cas suivant la machine au lieu de la methode ci-dessus qui active le reseau TCP/IP entier. Par exemple, disons que je veux que seuls les machines 192.168.0.2 et 192.168.0.8 puisssent accéder à Internet et AUCUN autre ordinateur interne. Je changerais les règles dans la section "Active l'IP forwarding et Masquerading simpliste" (voir ci-dessus) dans les règles qui se trouvent dans le fichier /etc/rc.d/rc.firewall. #!/bin/sh # # Active l'IP forwarding et Masquerading simpliste # # NB: L'exemple suivant est donne pour l'activation de l'IP Masquerading po ur les # machines 192.168.0.2 et 192.1680.0.8 avec un masque # de sous reseau de 255.255.255.0 soit un masque de sous reseau "24 bit s" # connecte a Internet par l'interface eth0. # # ** Changez les adresse reseau et masque de sous reseau, et l'interfac e de # ** votre connexion a Internet de telle sorte qu'ils correspondent aux reglages de votre LAN # /sbin/ipfwadm -F -p deny /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.2/32 -D 0.0.0.0/0 /sbin/ipfwadm -F -a m -W eth0 -S 192.168.0.8/32 -D 0.0.0.0/0 _Erreurs courrantes :_ Une erreur qui parait courante pour les nouveaux utilisateurs d'IP Masq est de faire de la commande suivante : ipfwadm -F -p masquerade la premiere commande. Ne faites _PAS_ du MASQUERADING votre politique par défaut. Sinon une personne qui peut manipuler ses tables de routage sera capable de s'infiltrer directement à travers votre passerelle, en l'utilisant pour masquerader sa propre identité ! Encore une fois, vous pouvez ajouter ces lignes dans votre fichier /etc/rc.d/rc.firewall, ou bien dans l'un de vos autres fichiers rc de votre convenance, ou bien le lancer manuellement à chaque fois que vous avez besoin de l'IP Masquerade. Vous pouvez vous reporter aux sections Strong-IPCHAINS-Rulesets et Strong-IPFWADM-Rulesets pour un guide detaillé et des examples de règles STRONG pour IPCHAINS et IPFWADM. 4. Configurer les autres machines internes qui doivent être MASQuées En plus des réglages d'adresses IP appropriés pour chaque machine MASQuée, vous devez régler pour chaque machine interne l'adresse IP de la passerelle (le serveur Linux MASQ) et les adresses des serveurs DNS. En général, ca découle de source. Vous entrez simplement l'adresse IP de votre serveur Linux (192.168.0.1 en général) dans le champ réservé à la passerelle. Pour les Domain Name Service (Service de Nom de Domaine ou DNS en anglais), vous pouvez utiliser n'importe quel serveur DNS disponible. Le plus évident, c'est celui qu'utilise votre serveur Linux. Vous pouvez aussi ajouter n'importe quel domaine de recherche (facultatif). Apres avoir reconfiguré correctement les machines internes MASQuées, n'oubliez pas de relancer leurs 'network services' (pour tenir compte des changements) ou bien de les redémarrer. Les instructions suivantes supposent que vous utilisez un réseau de Classe C avec 192.168.0.1 comme IP pour votre serveur Linux MASQ. Rappelez vous aussi que les adresses sont des adresses 192.168.0.0 et 192.168.0.255 TCP/IP reservées. Les plateformes ci-dessous ont été testées comme machines internes MASQuées. Voici juste un EXEMPLE de tous les systèmes d'exploitations compatibles : * ordinateurs Apple Macintosh sous MacOS avec soit MacTCP soit Open Transport * Commodore Amiga avect AmiTCP ou la pile AS225 * Stations Digital VAX 3520 et 3100 avec UCX (pile TCP/IP pour VMS) * Digital Alpha/AXP sous Linux/Redhat * IBM AIX sur un RS/6000 * IBM OS/2 (dont Warp v3) * IBM OS400 sur un AS/400 * Linux 1.2.x, 1.3.x, 2.0.x, 2.1.x, 2.2.x * Microsoft DOS (avec les packet drivers et le package NCSA Telnet, DOS Trumpet fonctionne partiellement) * Microsoft Windows 3.1 (avec le package Netmanage Chameleon) * Microsoft Windows For Workgroup 3.11 (avec le package TCP/IP) * Microsoft Windows 95, OSR2, 98, 98se * Microsoft Windows NT 3.51, 4.0, 2000 (workstation et server) * Novell Netware 4.01 Server avec les services TCP/IP * SCO Openserver (v3.2.4.2 et 5) * Sun Solaris 2.51, 2.6, 7 4.1 Configuration de Microsoft Windows 95 NDT : je n'ai accès à AUCUN windows, je ne peux donc pas tester ce que je traduis. Merci de me faire parvenir les incorrections. Ceci reste valable pour toute la suite de ce document. Merci de ne pas m'en tenir rigueur. 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Allez dans _'Panneaux de Configuration'_ --> _'Network'_. 3. Cliquez sur _Ajouter_ --> _Protocole_ --> _Manufacture: Microsoft_ --> _Protocole:_ _'TCP/IP protocol'_ Si vous ne l'avez pas encore. 4. Selectionnez le TCP/IP sur votre carte réseau de Windows95 et sélectionnez _'Proprietes'_. Maintenant allez sur _'IP Adresse IP'_ et rentrez comme Adresse IP 192.168.0.x, (1 < x < 255), et comme Masque de sous-réseau 255.255.255.0 5. Maintenant sélectionnez _"Passerelle"_ et ajoutez 192.168.0.1 comme passerelle dans _'Passerelle'_ et cliquer sur "Ajouter". 6. Sous la languette _'Configuration DNS'_, mettez un nom pour votre machine et entrez le nom de domaine officiel. Si vous ne savez pas quel est votre nom de domaine, mettez celui de votre FAI. Maintenant, ajoutez tous les serveurs DNS que votre serveur Linux utilise (vous pouvez les trouver en général dans /etc/resolv.conf). En general, ces serveurs DNS sont ceux de votre FAI, bienque vous puissiez utiliser vos propres CACHING ou serveur Authoritative DNS sur votre seveur Linux MASQ. Vous pouvez aussi ajouter n'importe quel domaine de recherche (facultatif). 7. Laissez tous les autres réglages inchangés à moins que vous sachiez ce que vous faites. 8. Cliquez sur _'OK'_ sur toutes les fenêtres de dialogues et rédemarrez votre ordinateur. 9. Pinguez le serveur Linux pour tester la connexion réseau: _'Executer'_, entrez: ping 192.168.0.1 (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde exterieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 10. Vous pouvez aussi créer un fichier HOSTS dans the C:\Windows et pouvoir ainsi utiliser des noms de machines de votre LAN sans avoir besoin de serveur DNS. Il y a un exemple appelé HOSTS.SAM dans le repertoire C:\windows. 4.2 Configuring Windows NT NDT : je n'ai accès à AUCUN Windows, je ne peux donc pas tester ce que je traduis. Merci de me faire parvenir les incorrections. Ceci reste valable pour toute la suite de ce document. Merci de ne pas m'en tenir rigueur. 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Allez dans _'Panneaux de Configuration'_ --> _'Network'_. 3. Cliquez sur _Ajouter_ --> _Protocole_ --> _Manufacture: Microsoft_ --> _Protocole:_ _'TCP/IP protocol'_ Si vous ne l'avez pas encore. 4. Dans la section _'Logiciels et Cartes Reseaux'_, sélectionnez le _'Protocle TCP/IP'_ dans la boite de sélection_'Logiciels Reseaux Insatalles'_. 5. Dans _'Configuration TCP/IP'_, selectionnez la carte appropriee, i.e. [1]Novell NE2000 Adapter. Reglez ensuite l'adresse IP : 192.168.0.x (1 < x < 255), et le masque de sous-réseau : 255.255.255.0 et la Passerelle par Défaut à 192.168.0.1 6. N'activez aucune des options suivantes (à moins que vous sachiez exactement ce que vous faites) : + _'Configuration Automatique DHCP'_ : A moins que vous ayiez un serveur DHCP sur votre réseau. + Rentrez n'importe quoi dans _'Sever WINS'_ champs d'entrée : A moins que vous ayiez configuré un ou plusieurs serveurs WINS. + _Activer l'IP Forwarding_ : A moins que vous routiez vers votre serveur NT et que vous sachiez vraiment -VRAIMENT- ce que vous faites PRECISEMENT. 7. Cliquez sur _'DNS'_, saisissez les informations que votre serveur Linux utilise (généralement dans /etc/resolv.conf) et cliquez sur _'OK'_quand vous avez fini. 8. Cliquez sur _'Advances'_, et DESACTIVEZ _'DNS pour la Résolution des Noms Windows'_ et _'Activer la Recherche LMHOSTS'_ à moins que vous sachiez ce que font ces options. Si vous voulez utiliser un fichier LMHOSTS, ils sont rangés dans C:\winnt\system32\drivers\etc. 9. Cliquez sur _'OK'_ sur toutes les boites de dialogue et redémarrer votre ordinateur. 10. Pinguez le serveur Linux pour tester la connexion réseau: _'Executer'_, entrez: ping 192.168.0.1 (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde extérieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 4.3 Configuration de Windows for Workgroup 3.11 NDT : je n'ai accès à AUCUN Windows, je ne peux donc pas tester ce que je traduis. Merci de me faire parvenir les incorrections. Ceci reste valable pour toute la suite de ce document. Merci de ne pas m'en tenir rigueur. 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Installez le package TCP/IP 32b si vous ne l'avez pas encore fait. 3. Dans _'Main'/'Reglages Windows'/'Reglages Reseaux'_, cliquez sur _'Drivers'_. 4. Sélectionnez _'Microsoft TCP/IP-32 3.11b'_ dans la section _'Drivers Reseaux'_, cliquez sur _'Regler'_. 5. Réglez ensuite l'adresse IP : 192.168.0.x (1 < x < 255), et le masque de sous-réseau : 255.255.255.0 et la Passerelle par Défaut a 192.168.0.1 6. N'activez aucune des options suivantes (à moins que vous sachiez exactement ce que vous faites) : + _'Configuration Automatique DHCP'_ : A moins que vous ayiez un serveur DHCP sur votre réseau. + Rentrez n'importe quoi dans _'Sever WINS'_ champs d'entree : A moins que vous ayiez configuré un ou plusieurs serveurs WINS. 7. Cliquez sur _'DNS'_, saisissez les informations que votre serveur Linux utilise (généralement dans /etc/resolv.conf) et cliquez sur _'OK'_quand vous avez fini. 8. Cliquez sur _'Avances'_, activez _'DNS pour la Resolution des Noms Windows'_ et _'Activer la Recherche LMHOSTS'_ que vous trouverez dans c:\windows. 9. Cliquez sur _'OK'_ sur toutes les boites de dialogue et redémarrer votre ordinateur. 10. Pinguez le serveur Linux pour tester la connexion réseau: _'Executer'_, entrez: ping 192.168.0.1 (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde extérieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 4.4 Configuration des Systèmes Basés sur UNIX 1. Si vous n'avez pas encore installé votre carte réseau et recompilé votre noyau avec les drivers correspondants, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Installez le réseau TCP/IP, tel que le package net-tools, si vous ne l'avez pas encore fait. 3. Changez _IPADDR_ en 192.168.0.x (1 < x < 255), et changez ensuite _NETMASK_ en 255.255.255.0, _GATEWAY_ en 192.168.0.1, et _BROADCAST_ en 192.168.0.255 Par exemple avec les Linux Redhat, vous pouvez modifier le fichier /etc/sysconfig/network-scripts/ifcfg-eth0, ou simplement le faire grâce au Tableau de Bord. Ces changement se font différemment sur les autres UNIXes tels que SunOS, BSDi, Slackware Linux, Solaris, SuSe, Debian, etc.). Reportez vous à la documentation de votre UNIX pour de plus amples informations. 4. Ajoutez votre DNS et votre domaine de recherche dans /etc/resolv.conf et suivant la version de votre UNIX, modifiez le fichier /etc/nsswitch.conf pour activer les DNS. 5. Vous pouvez aussi mettre à jour votre fichier /etc/networks suivant vos reglages. 6. Redémarrer les services consernés ou plus simplement, redémarrez votre machine. 7. Faites un ping : ping 192.168.0.1 pour tester votre connexion avec la passerelle. (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde exterieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 4.5 Configuration de DOS avec le package NCSA Telnet 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Chargez les drivers correspondants. Par exemple : pour la carte Ethernet NE2000 sur le port d'E/S 300 et d'IRQ 10, tappez nwpd 0x60 10 0x300 3. Créez un nouveau répertoire et dezippez le package NCSA Telnet : pkunzip tel2308b.zip 4. Utilisez un éditeur de texte pour ouvrir le fichier config.tel 5. Modifiez myip=192.168.0.x (1 < x < 255), et netmask=255.255.255.0 6. Dans cet exemple, vous devriez mettre : hardware=packet, interrupt=10, ioaddr=60 7. Vous devriez avoir au moins une machine comme passerelle, i.e. la machine Linux : name=default host=votreMachineLinux hostip=192.168.0.1 gateway=1 8. Entrez aussi les spécifications de votre serveur DNS : name=dns.domain.com ; hostip=123.123.123.123; nameserver=1 NB : remplacez les information ci-dessus par les informations DNS qu'utilisent le serveur Linux 9. Sauvegarder votre fichier config.tel 10. Faites un telnet vers le serveur linux pour tester la connexion reseau : telnet 192.168.0.1. Si vous ne recevez pas de réponse, vérifiez votre configuration réseau. 4.6 Configuration d'une machine tournant sous MacOS et MacTCP 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Ouvrez le _tableau de bord MacTCP_. Sélection les bons drivers réseaux (Ethernet, PAS EtherTalk) et cliquez sur le bouton _'More...'_. 3. Dans _'Obtain Address:'_, cliquez sur _'Manually'_. 4. Dans _'Adresse IP:'_, sélectionnez _class C_ du menu déroulant. Ignorez le reste de cette boite de dialogue. 5. Remplissez les informations nécessaires dans _'Adresses Serveurs de Noms :'_. 6. Dans _'Adresse Passerelle :'_, entrez 192.168.0.1 7. Cliquez sur _'OK'_ pour sauvegarder vos réglages. Dans la fenêtre principale de _MacTCP_, entrez l'adresse IP de votre Mac (192.168.0.x, 1 < x < 255) dans le champs _'Adresse IP :'_. 8. Fermez le _Tableau de Bord MacTCP_. Si un dialogue vous demande de redémarrer, faites le. 9. Vous pouvez aussi faire un ping vers le serveur Linux pour tester la connexion de votre réseau. Si vous avez le freeware _MacTCP Watcher_, cliquez sur le bouton _'Ping'_, et entrez l'adresse de votre serveur linux (192.168.0.1) dans le dialogue qui apparaît. (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde exterieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 10. Vous pouvez eventuellement créer un fichier Hosts dans le Dossier Système pour pouvoir utiliser des noms de machines sur votre LAN. Ce fichier existe probablement déjà dans votre Dossier Système et devrait contenir quelques exemples (en commentaire donc désactives) que vous pouvez modifier suivant vos besoins. 4.7 Configuration d'une machine tournant sous MacOS et Open Transport 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Ouvrez le _Tableau de Bord TCP/IP_ et choisissez _'Mode Utilisateur...'_ dans le menu _Edit_. Verifiez que le mode en cours est au moins sur _'Avancé'_ et cliquez sur le bouton _'OK'_. 3. Choisissez ensuite _'Configurations...'_ dans le menu _Fichier_. Sélectionnez la configuration _'Par Defaut'_ et cliquer sur _'Dupliquer...'_. Entrez 'IP Masq' (ou quelquechose que vous reconnaitrez comme une configuration spéciale) dans le dialogue de _'Dupliquer la Configuration'_, qui vous dit sans doute quelquechose du style _'Par Defaut copie'_. Cliquez ensuite sur le bouton _'OK'_, et finalement sur le bouton _'Selectionner'_ 4. Selectionnez _'Ethernet'_ dans le menu deroulant _'Connexion :'_. 5. Selectonnez l'article approprié dans le menu déroulant _'Configuration:'_. Si vous ne savez pas ce qu'il faut choisir, c'est que vous devez probablement choisir le même article celui de votre configuration _'Par Defaut'_ et quittez. Moi j'utilise _'Manuellement'_. 6. Entrez l'adresse IP de votre Mac (192.168.0.x, 1 < x < 255) dans le champ _'Adresse IP :'_. 7. Entrez 255.255.255.0 dans le champ _'Masque sous-reseau :'_. 8. Entrez 192.168.0.1 dans le champ _'Adresse du Routeur :'_. 9. Entrez les Adresses IP de vos serveurs DNS dans le champ _'Adr. Serv. de Noms :'_. 10. Entrez votre nom domaine de recherche Internet (ex : 'microsoft.com') dans le champ _'Domaine de Départ'_ en dessous de _'Domaine de recherche implicite :'_. 11. Les procédures qui suivent sont optionnels. Des valeurs incorrects peuvent causer un comportement erratique. Si vous n'êtes pas sûr de ce que vous faites, c'est sans doute plus sûr de les laisser vides, non-cochés et/ou non sélectionnés. Retirez les informations de ces champs si nécessaire. A ma connaissance, il n'est pas possible, au travers des dialogues de TCP/IP, de dire au système de ne pas utiliser un fichier "Hosts" précédement sélectionné. Si vous savez comment faire, faites moi en part. Cochez la case _'802.3'_ si votre réseau a besoin des fenêtres de type 802.3. 12. Cliquez sur _'Options...'_et vérifiez que TCP/IP est actif. J'utilise l'option _'Charger uniquement au besoin'_. Si vous lancez et quittez souvent des applications TCP/IP sans redémarrer, vous trouverez sans doute, que décocher l'option _'Charger uniquement au besoin'_va empêcher/réduire les effets de la gestion de la mémoire sur vos machines. Quand cette option est décochée, les piles du protocole TCP/IP sont toujours chargées et disponibles. Quand cette option est cochée, les piles TCP/IP sont chargées automatiquement quand il le faut et sont ensuite déchargées (unloaded). C'est ce chargement/déchargement qui provoque la fragmentation de la mémoire de vos machines. 13. Vous pouvez aussi faire un ping vers le serveur Linux pour tester la connexion de votre réseau. Si vous avez le freeware _MacTCP Watcher_, cliquez sur le bouton _'Ping'_, et entrez l'adresse de votre serveur linux (192.168.0.1) dans le dialogue qui apparaît. (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde extérieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 14. Vous pouvez eventuellement créer un fichier Hosts dans le Dossier Système pour pouvoir utiliser des noms de machines sur votre LAN. Ce fichier existe probablement déjà dans votre Dossier Système et devrait contenir quelques exemples (en commentaire donc désactivés) que vous pouvez modifier suivant vos besoins. Sinon, vous pouvez récupérer une copie d'une machine qui tourne sous MacTCP ou simplement créer le votre (il suit un sous format des fichiers UNIX /etc/hosts, décrit dans la RFC952). Une fois ce fichier créé, ouvrez le _Tableau de Bord TCP/IP_, cliquez sur bouton _'Choisir un fichier "Hosts"...'_, et choisissez le fichier Hosts. 15. Cliquez sur la case de fermeture ou choisissez _'Fermer'_ ou _'Quitter'_ dans le menu _Fichier_, et cliquez ensuite sur _'Sauvegarder'_ pour enregistrer vos changements. 16. Les changements prennent effet immediatement mais un petit redémerrage ne ferait pas de mal non plus. 4.8 Configuration du réseau Novell sous DNS 1. Si vous n'avez pas encore installé votre carte réseau ou ses drivers, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Téléchargez tcpip16.exe ici : The Novell LanWorkPlace page 3. edit 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. edit c:\nwclient\net.cfg : (changer le lien du driver vers le votre i.e. NE2000) Link Driver KTC2000 Protocol IPX 0 ETHERNET_802.3 Frame ETHERNET_802.3 Frame Ethernet_II FRAME Ethernet_802.2 NetWare DOS Requester FIRST NETWORK DRIVE = F USE DEFAULTS = OFF VLM = CONN.VLM VLM = IPXNCP.VLM VLM = TRAN.VLM VLM = SECURITY.VLM VLM = NDS.VLM VLM = BIND.VLM VLM = NWP.VLM VLM = FIO.VLM VLM = GENERAL.VLM VLM = REDIR.VLM VLM = PRINT.VLM VLM = NETX.VLM Link Support Buffers 8 1500 MemPool 4096 Protocol TCPIP PATH SCRIPT C:\NET\SCRIPT PATH PROFILE C:\NET\PROFILE PATH LWP_CFG C:\NET\HSTACC PATH TCP_CFG C:\NET\TCP ip_address 192.168.0.xxx ip_router 192.168.0.1 Changez votre adresse IP dans le champs "ip_address" si dessus (192.168.0.x, 1 < x < 255) et créez enfin le fichier c:\bin\resolv.cfg: SEARCH DNS HOSTS SEQUENTIAL NAMESERVER xxx.xxx.xxx.xxx NAMESERVER yyy.yyy.yyy.yyy 5. Maintenant modifiez les entrées "NAMESERVER" et remplacez less avec les adresses IP correctes pour votre serveur DNS local. 6. Faites un ping : ping 192.168.0.1 pour tester votre connexion avec la passerelle. (Ceci est juste un test du LAN INTERNE, vous ne pouvez pas encore pinguer le monde extérieur.) Si vous ne recevez pas de réponses de vos PINGs, vérifiez votre configuration réseau. 4.9 Configuration d'OS/2 Warp NDT : je ne connais pas OS/2 et ne sais pas s'il existe une version francaise de ce système. 1. Si vous n'avez pas encore installé votre carte réseau et recompilé votre noyau avec les drivers correspondants, faites le maintenant. L'explication de ces étapes sort du cadre de ce document. 2. Installez le protocole TCP/IP si vous ne l'avez pas déjà fait. 3. Allez dans _Programs/TCP/IP (LAN) / TCP/IP_ Settings 4. Dans le champ _'Network'_ ajoutez votre Adresse TCP/IP (192.168.0.x) et réglez votre masque de sous-réseau (255.255.255.0) 5. Sous _'Routing'_ cliquez sur _'Add'_. Comme _Type_ mettez _'default'_ et tappez l'Adresse IP de votre serveur Linux dans le champ _'Router Address'_. (192.168.0.1). 6. Mettez les adresses des serveurs DNS (Serveurs de Noms) qu'utilisent votre serveur Linux dans _'Hosts'_. 7. Fermez le tableau de bord TCP/IP. Répondez par oui aux questions qui suivent. 8. Redémarrez votre système 9. Vous pouvez faire un ping vers votre serveur Linux pour tester votre configuration réseau. Tappez 'ping 192.168.0.1' dans la fenetre de prompt d'OS/2. Si vous recevez les packets ping, c'est que tout ce passe bien. 4.10 Configuration d'OS/400 sur un IBM AS/400 La configuration de TCP/IP sur OS/400 version V4R1M0 sur un AS/400 dépasse le cadre de ce document. 1) Pour pouvoir configurer toute tâche de communication sur votre AS/400, vous devez avoir le privilège spécial *IOSYSCFG (I/O System Configuration) dans votre profile utilisateur. Vous pouvez verifier les caractéristiques de votre profil utilisateur avec la commande DSPUSRPRF 2) Tappez la commande GO CFGTCP pour accéder au menu de configuration de TCP/IP. 3) Selectionnez Option 2 - Work with TCP/IP Routes. 4) Entrer un 1 dans le champs Opt pour ajouter une route * dans Route Destination (Route de Destination) tappez *DFTROUTE * dans Subnet Mask (Masque de sous reseau) tappez *NONE * dans Type of Service (Type de Service) tappez *NORMAL * dans Next Hop (Prochain saut) tappez l'adresse IP de votre passerelle (le serveur linux) 4.11 Configuration des autres Systèmes La même logique devrait s'appliquer pour les réglages sur les autres plateformes. Consultez les sections précédentes. Si vous êtes intéréssés par la rédaction des méthodes pour les systèmes qui n'ont pas encore été traités, vous pouvez envoyer par email les instructions détaillés à ambrose@writeme.com et dranch@trinnet.net. 5. Tester IP Masquerade Enfin, il est temps de faire un essai officiel de l'IP Masquerading après ce dur labeur. Si vous n'avez pas encore redémarré votre serveur Linux, faites le pour être sur que la machine démarre bien, exécute les scripts /etc/rc.d/rc.firewall etc. Ensuite, vérifiez que les connexions internes de votre LAN et les connexions de votre serveur Linux avec Internet fonctionnent bien. Faites ces -10- tests pour être sur que les différents aspects de votre configuration MASQ fonctionnent correctement : 5.1 Tester les connexions locales * _Première Etape : Tester les connexions locales entre les PC_ A partir d'un ordinateur MASQué interne, essayez de pinguer sa propre adresse IP locale (i.e. _ping 192.168.0.10 _). Ce test va vérifier que TCP/IP fonctionne bien sur la machine locale. Presque tous les systèmes d'exploitation modernes ont une commande ping integrée. Si ce ping ne fonctionne pas, vérifiez que vous avez correctement configuré le PC MASQué comme décrit plus tôt dans la section Configuring-clients de ce HOWTO. L'output devrait ressembler à ça (faire Control-C pour arrêter le ping) : _____________________________________________________________ masq-client# ping 192.168.0.10 PING 192.168.0.10 (192.168.0.10): 56 data bytes 64 bytes from 192.168.0.10: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.10: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.10 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms _____________________________________________________________ 5.2 Tester les connexions internes du serveur Linux * _Deuxième Etape : Tester les connexions internes du serveur Linux_ Sur le serveur MASQ lui-même, pinguez l'adresse IP de l'interface réseau du serveur MASQ (i.e. _ping 192.168.0.1_). L'outpout devrait ressembler à ça (faire Control-C pour arreter le ping) : _____________________________________________________________ masq-client# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms _____________________________________________________________ 5.3 Tester la Connection Externe du serveur Linux * _Troisième Etape : Tester la Connection Externe du serveur Linux_ Ensuite pinguez l'adresse IP de l'interface réseau externe (carte réseau connectée à Internet). Cette adresse peut être reçue par PPP, Ethernet, etc. C'est la connexion vers votre FAI. Si vous ne connaissez pas cette adresse IP, executez la commande Linux _"/sbin/ifconfig"_ sur le serveur MASQ Linux. L'output devrait ressembler à ça (nous cherchons l'adresse IP de l'interface eth0) : _____________________________________________________________ eth0 Link encap:Ethernet HWaddr 00:08:C7:A4:CC:5B inet addr:12.13.14.15 Bcast:64.220.150.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6108459 errors:0 dropped:0 overruns:0 frame:0 TX packets:5422798 errors:8 dropped:0 overruns:0 carrier:8 collisions:4675 txqueuelen:100 Interrupt:11 Base address:0xfcf0 _____________________________________________________________ Nous pouvons voir dans cet example que l'adresse IP externe est "12.13.14.15". Bon, maintenant que vous avez votre adresse IP après avoir lancé la commande "ifconfig", pinguez votre adresse IP externe. Nous aurons ainsi la confirmation que le serveur MASQ a bien toutes les connexions réseaux. L'outpout devrait ressembler à ça (faire Control-C pour arrêter le ping) : _____________________________________________________________ masq-server# ping 12.13.14.15 PING 12.13.14.15 (12.13.14.15): 56 data bytes 64 bytes from 12.13.14.15: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 12.13.14.15: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=3 ttl=255 time=0.5 ms --- 12.13.14.15 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms _____________________________________________________________ Si l'un de ces tests ne fonctionne pas, vous devez repartir en arrière et vérifier une seconde fois vos cablages, et vérifier que vos deux NICs du serveur MASQ sont vu dans "dmesg". Un exemple de l'output se trouve vers la fin (END) de la commande "dmesg" : _____________________________________________________________ . . PPP: version 2.3.7 (demand dialling) TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered. 3c59x.c:v0.99H 11/17/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/ vortex.html eth0: 3Com 3c905 Boomerang 100baseTx at 0xfe80, 00:60:08:a7:4e:0e, IRQ 9 8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface. MII transceiver found at address 24, status 786f. Enabling bus-master transmits and whole-frame receives. eth1: 3Com 3c905 Boomerang 100baseTx at 0xfd80, 00:60:97:92:69:f8, IRQ 9 8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface. MII transceiver found at address 24, status 7849. Enabling bus-master transmits and whole-frame receives. Partition check: sda: sda1 sda2 < sda5 sda6 sda7 sda8 > sdb: . . _____________________________________________________________ N'oubliez pas non plus de vérifier les configurations NIC de votre distrib Linux etc. suivant les recommandations qui se trouvent au début de ce HOWTO. 5.4 Tester les connexions locales des PC vers le serveur Linux * _Quatrième Etape : Tester les connexions locales des PC vers le serveur Linux_ Sur un ordinateur interne MASQué, essayez de pinguer l'adresse IP de la carte Ethernet interne du serveur de Masquerading, (i.e. _ping 192.168.0.1_). On va ainsi vérifier que le réseau interne et le routage sont corrects. L'outpout devrait ressembler à ça (faire Control-C pour arrêter le ping) : _____________________________________________________________ masq-client# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms _____________________________________________________________ Si le test échoue, vérifiez les connexions entre les cartes Ethernet sur le serveur MASQ et les ordinateurs MASQués. En général il y a une LED derrière chaque carte Ethernet et il y en aussi sur les hub/switch Ethernet (si vous en utiliser un). Si c'est ça le problème, vérifiez que l'ordinateur MASQué interne est configuré correctement comme indiqué dans la section Configuring-clients . Si le client MASQué est correctement configuré, vérifiez une seconde fois votre cablage réseau et vérifiez que les LED s'allument bien de chaque côté des cables (carte Ethernet des clients et cartes Ethernet INTERNES du serveur Linux). 5.5 Tester le forwarding des paquets internes MASQ ICMP * _Cinquième Etape : Tester le forwarding des paquets internes MASQ ICMP_ A partir d'un ordinateur MASQué interne, pinguez l'adresse IP externe du serveur MASQ optenue à l'étape TROIS ci-dessus. Cette adresse est votre adresse PPP, Ethernet, etc. fournie par votre FAI. Ce ping va prouver que le masquerading fonctionne (spécifiquement ICMP Masquerading). Si ca ne marche pas, vérifiez d'abord que la "Passerelle par Defaut" du PC MASQué pointe vers l'adresse IP du serveur MASQ interne. Vérifiez aussi que le script /etc/rc.d/rc.firewall a fonctionné sans erreurs. Juste pour faire un test, lancer de nouveau le script /etc/rc.d/rc.firewall pour voir si tout se passe bien. Vérifiez aussi, puisque la plupart des noyaux le gérent par defaut, que vous avez activé l'"ICMP Masquerading" dans la configuration noyau et que vous avez aussi activé l'"IP Forwarding" dans votre script /etc/rc.d/rc.firewall. Si vous ne pouvez toujours pas faire fonctionner tout ça, jetez un coup d'oeil à l'output de cette commande sur votre serveur Linux MASQ : + "_ifconfig_" : Vérifiez que l'interface de votre connexion Internet (ppp0, eth0, etc.) est UP (en route) et que vous avez la bonne adresse IP pour votre connexion à Internet. Un exemple d'output est donne a l'ETAPE TROIS ci-dessus. + "_netstat -rn_" : Vérifiez que la passerelle par defaut (le .1 avec les adresses IP dans la colonne Gateway) est active. Par exemple, l'output devrait ressembler à ca : ________________________________________________________ masq-server# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.1 0.0.0.0 255.255.255.255 UH 0 16384 0 eth1 12.13.14.15 0.0.0.0 255.255.255.255 UH 0 16384 0 eth0 12.13.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 16384 0 lo 0.0.0.0 12.13.14.1 0.0.0.0 UG 0 16384 0 eth0 ________________________________________________________ Vous avez remarqué que la DERNIERE ligne commençait par 0.0.0.0? Vous avez remarqué qu'il y a une adresse IP dans le champ "Gateway" ? Vous devriez mettre une adresse IP pour votre propre configuration dans ce champ. + "_cat /proc/sys/net/ipv4/ip_forward_" : Vérifiez que vous avez un "1" qui montre que le forwarding sous Linux fonctionne + Lancez la commande "_/sbin/ipchains -n -L_" pour les utilisateurs du 2.2.x ou "_/sbin/ipfwadm -F -l_" pour les utilisateurs du 2.0.x. Regardez aussi la section sur le FORWARDing pour vérifier que vous avez activé MASQ. Voici un exemple de l'output d'IPCHAINS pour les utilisateurs des règles naives rc.firewall : ________________________________________________________ . . Chain forward (policy REJECT): target prot opt source destination ports MASQ all ------ 192.168.0.0/24 0.0.0.0/0 n/a ACCEPT all ----l- 0.0.0.0/0 0.0.0.0/0 n/a . . ________________________________________________________ 5.6 Tester le forwarding de paquets MASQ ICMP externes * _Sixième Etape : Tester le forwarding de paquets MASQ ICMP externes_ Essayer de pinguer à partir d'un ordinateur MASQué interne une IP static d'Internet (i.e. _ping 152.19.254.81_ (c'est le - http://metalab.unc.edu - home of MetaLabs' Linux Archive). Si ca ne fonctionne pas, vérifiez de nouveau votre connexion à Internet. Si ca ne marche toujours pas, vérifier que vous utilisez bien les règles naives rc.firewall et que vous avez bien compilé l'ICMP Masquerading dans votre noyau linux. Vérifiez aussi que vos règles qui activent IP MASQ pointent vers la bonne interface EXTERNE. 5.7 Tester le fonctionnement de MASQ sans DNS * _Septième Etape : Tester le fonctionnement de MASQ sans DNS_ Maintenant essayez de vous connecter par Telnet à une adresse IP distante (i.e. _telnet 152.2.254.81_ (metalab.unc.edu - NB : ca peut prendre du temps avant que vous ne voyiez apparaître le prompt de login parce que c'est un serveur TRES chargé). Avez vous reçu le prompt du login après un certain laps de temps ? Si ça a marché, c'est que le TCP Masquerading fonctionne bien. Si ça n'a pas marché, essayez de faire un Telnet vers un autre serveur qui pourrait accepter les TELNET, comme 198.182.196.55 (www.linux.org). Si ca ne fonctionne toujours pas, vérifiez que vous utilisez bien les règles naives rc.firewall. Un exemple de ce que vous devriez voir est donne ici (pressez Control-D pour sortir de TELNET) : _____________________________________________________________ masq-client# telnet 152.2.254.81 Trying 152.2.254.81... Connected to 152.2.254.81. Escape character is '^]'. SunOS 5.7 ******************** Welcome to MetaLab.unc.edu ******************* To login to MetaLab as a user, connect to login.metalab.unc.edu. This machine allows no public telnet logins. login: Connection closed by foreign host. _____________________________________________________________ 5.8 Tester le fonctionnement de MASQ avec DNS * _Huitième Etape : Tester le fonctionnement de MASQ avec DNS_ Maintenant essayez de faire un TELNET vers un HOSTNAME (i.e. _"telnet metalab.unc.edu"_ (152.2.254.81). Si ça marche, c'est que le DNS fonctionne bien aussi. Si ça ne marche pas mais que l'etape SIX fonctionnait, vérifiez que vous avez entré des DNS valides dans votre ordinateur MASQué comme le montre la section Configuring-clients . 5.9 Tester plus de fonctionnalités de MASQ avec DNS * _Neuvième Etape : Tester plus de fonctionnalités de MASQ avec DNS_ Comme dernier test, essayez de surfer sur quelques sites _'INTERNET'_ WWW à partir des vos machines _MASQuées_, et regardez si ca fonctionne. Par exemple, accedez au site Linux Documentation Project. Si ça marche, vous pouvez être presque sûr que tout fonctionne BIEN ! Si certains sites ne fonctionnent pas bien la où les autres semblent fonctionner correctement, regardez les étapes suivantes pour essayer de trouvez les causes. Si vous voyez la page d'accueil de la The Linux Documentation Project, alors, _FELICITATIONS ! Ca marche !_ Si ce site Web s'affiche correctement, alors tous les autres protocoles réseaux standards tels que PING, TELNET, SSH, et avec leurs modules IP MASQ respectifs chargés : FTP, Real Audio, IRC DCCs, Quake I/II/III, CuSeeme, VDOLive, etc. devraient aussi fonctionner correctement ! Si FTP, IRC, RealAudio, Quake I/II/III, etc. ne fonctionnent pas correctement, ou de manière peu performante, vérifiez que leurs modules Masquerading associés sont chargés en lancant la commande "lsmd" et vérifiez aussi que vous chargez les modules quand les ports ne sont pas les ports par défaut. Si vous ne voyez pas les modules dont vous avez besoin, vérifiez que le script /etc/rc.d/rc.firewall les charge bien (i.e. enlevez les caractères # pour un module IP MASQ donné). 5.10 S'il reste des problèmes de fonctionnement, performances etc. * _Dixième Etape : S'il reste des problèmes de fonctionnement, performances etc._ Si votre système a passé avec succès tous les tests mais que quelques trucs genre le surf sur les sites WWW, le FTP, et d'autres types de traffic ne sont pas fiables, je vous recommande de lire l'entrée MTU-issues de la FAQ dans la Section 7. Il peut aussi y avoir d'autres éléments de la FAQ qui puissent vous aider autant que les nombreux utilisateurs qu'ils ont aidés par le passé. 6. Autres problèmes relatifs à IP Masquerade et à la compatibilité logicielle 6.1 Problèmes avec IP Masquerade Certaines applications des protocoles TCP/IP ne fonctionnent pas actuellement avec l'IP Masquerading sous Linux parce que soit ils supposent des choses sur les numéros de port soit ils encodent sur les adresses TCP/IP et/ou les numéros de port dans leur flux de données. Ces derniers protocoles ont besoin de proxies ou de modules IP MASQ spécifiques pour fonctionner correctement dans le code de masquerading. 6.2 Services entrant Par défaut, Linux IP Masquerading ne peut pas du tout prendre en charge les services entrant mais il y a quelques façons de les lui faire accepter. Si vous n'avez pas besoin de beaucoup de securité, vous pouvez simplement forwarder ou rédiriger les ports IP. Il y a plusieurs façon de faire ça mais la plus stable est d'utiliser IPPORTFW. Pour plus d'informations, reportez vous à la section Forwarders . Si vous désirez avoir un certain niveau d'autorisation sur les connexions entrantes, vous aurez besoin de configurer soit des TCP-wrappers, soit Xinetd pour permettre la connexion d'adresses IP specifiques. Un bon endroit où trouver des utilitaires et de la documentation est le TIS Firewall Toolkit. De plus amples détails sur la securité entrante peuvent être trouvés dans le document TrinityOS et a l' IP Masquerade Resource. 6.3 Compatibilité Logicielle et autres notes sur la configuration _** La Linux Masquerade Application list a une tonne d'informations au sujet des applications qui fonctionnent à travers l'IP Masquerading sous Linux. Ce site a récemment été pris en charge par Steve Grevemeyer qui l'a doté d'une base de données complète. C'est une source exceptionnelle !_ En général, toute application qui utilise le TCP et l'UDP standards devrait fonctionner. Si vous avez des suggestions, des indications etc. reportez vous à l' IP Masquerade Resource pour de plus amples détails. Clients Réseaux qui -Fonctionnent- avec IP Masquerade Clients Généraux: _Archie_ toutes les plateformes compatibles, clients pour la recherche de fichiers (tous les clients archie ne sont pas compatibles) _FTP_ toutes les plateformes compatibles, avec le module noyau _ip_masq_ftp.o_ pour les connexions FTP actives. _Gopher client_ toutes les plateformes compatibles _HTTP_ toutes les plateformes compatibles, WWW surfing _IRC_ toutes les plateformes compatibles, DCC est compatible via le module _ip_masq_irc.o_ _NNTP (USENET)_ toutes les plateformes compatibles, USENET news client _PING_ toutes les plateformes compatibles, avec le module noyau ICMP Masquerading _POP3_ toutes les plateformes compatibles, clients email _SSH_ toutes les plateformes compatibles, TELNET/FTP clients sécurisés _SMTP_ toutes les plateformes compatibles, serveurs d'email tels que Sendmail, Qmail, PostFix, etc. _TELNET_ toutes les plateformes compatibles, session distante _TRACEROUTE_ versions sous UNIX et Windows, quelques variantes pourraient ne pas fonctionner (NDT : fonctionne aussi sous MacOS) _VRML_ Windows(peut-être toutes les plateformes compatibles), virtual reality surfing _client WAIS_ toutes les plateformes compatibles Clients Multimedia et Communication: _Toutes les applications H.323_ - MS Netmeeting, Intel Internet Phone Beta , et autres applications H.323 - Il y a maintenant deux façons de faire fonctionner ces clients aux travers de connexions MASQuées : Il y a un module BETA stable disponible sur le MASQ WWW site ou sur http://www.coritel.it/projects/sofia/nat.html pour utiliser Microsoft Netmeeting v3.x sous les noyaux 2.2.x. Il y aussi un autre module sur le site Web de MASQ spécifique à Netmeeting 2.x pour les noyaux 2.0.x mais il n'est pas compatible avec Netmeeting v3.x. Une autre solution, commerciale, et la passerelle Equivalence's PhonePatch H.323. _Alpha Worlds_ Windows, Client-Serveur 3D programme de tchatche _CU-SeeMe_ toutes les plateformes compatibles, avec le module _ip_masq_cuseeme_ chargé, reportez vous SVP à la section CuSeeme pour de plus amples détails. _ICQ_ Tous les clients sont compatibles. Requiert un noyau compilé avec la compatibilité IPPORTFW et ICQ configuré comme étant derrière un proxy NON-SOCKS. Une description complète de cette configuration est disponible à la section ICQ . _Internet Phone 3.2_ Windows, communications audio Peer-to-peer, vous pouvez entrer en communication avec quelqu'un seulement si vous êtes l'appelant, vous ne pouvez être appelé sans un port forwarding spécifique. Reportez vous à la section Forwarders pour de plus amples détails. _Internet Wave Player_ Windows, streaming audio par Internet _Powwow_ Windows, communications textuelles peer-to-peer, vous pouvez entrer en communication avec quelqu'un seulement si vous êtes l'appelant, vous ne pouvez être appelé sans un port forwarding spécifique. Reportez vous à la section Forwarders pour de plus amples détails. _Real Audio Player_ Windows, streaming audio par Internet, vous obtiendrez de meilleurs résultats avec le module UDP _ip_masq_raudio_ _True Speech Player 1.1b_ Windows, streaming audio par Internet _VDOLive_ Windows, avec le patch _ip_masq_vdolive_ _Worlds Chat 0.9a_ Windows, Client-Serveur 3D programme de tchatche Jeux - Reportez vous à la section LooseUDP pour de plus amples détails sur le patch LooseUDP _Battle.net_ Fonctionne mais requiert les ports TCP 116 et 118 et les ports UDP 6112 IPPORTFWés vers la machine de jeu. reportez vous à la section Forwarders pour de plus amples détails. Veuillez notez que les serveurs FSGS et Bnetd requièrent toujours IPPORTFW puisqu'ils n'ont pas été réécrits pour être compatibles NAT. _BattleZone 1.4_ Fonctionne avec le patch LooseUDP et les nouveaux .DLLs Activision compatibles NAT. _Dark Reign 1.4_ Fonctionne avec le patch LooseUDP ou requiert les ports TCP 116 et 118 et les ports UDP 6112 IPPORTFWés vers la machine de jeu. Reportez vous à la section Forwarders pour de plus amples détails. _Diablo_ Fonctionne avec le patch LooseUDP ou requiert les ports TCP 116 et 118 et les ports UDP 6112 IPPORTFWés vers la machine de jeu. Les nouvelles versions de Diablo n'utilisent que le port TCP 6112 et le port UDP 6112. Reportez vous à la section Forwarders pour de plus amples détails. _Heavy Gear 2_ Fonctionne avec le patch LooseUDP ou requiert les ports TCP 116 et 118 et les ports UDP 6112 IPPORTFWés vers la machine de jeu. Reportez vous à la section Forwarders pour de plus amples détails. _Quake I/II/III_ Fonctionne directement mais requiert le module _ip_masq_quake_ s'il y a plus d'un joueur de Quake I/II/III derrière le serveur MASQ. Ce module n'est compatible qu'avec Quake I et QuakeWorld par défaut. Si vous voulez utiliser Quake II ou des ports non standard pour le server, reportez vous à la section d'installation des modules dans les jeux de règles rc.firewall-2.0.x et rc.firewall-2.2.x . _StarCraft_ Fonctionne avec le patch LooseUDP ou requiert les ports TCP et UDP 6112 IPPORTFWés vers la machine de jeu. Reportez vous à la section Forwarders pour de plus amples détails. _WorldCraft_ Fonctionne avec le patch LooseUDP Autres Clients: _package Linux net-acct _ Linux, package d'administration des comptes à distance _NCSA Telnet 2.3.08_ DOS, une suite contenant telnet, ftp, ping, etc. _PC-anywhere pour Windows _ MS-Windows, Controle à distance un PC par TCP/IP, fonctionne uniquement si c'est un client. Ne fonctionne pas sans un port forwarding spécifique si c'est le serveur. Reportez vous à la section Forwarders pour de plus amples details. _Socket Watch_ utilise NTP - protocole d'horloge réseau Clients qui ne sont pas entièrement compatibles avec IP MASQ : _Intel Streaming Media Viewer Beta 1_ Impossible de se connecter au serveur _Netscape CoolTalk_ Impossible de se connecter a l'hôte distant _WebPhone_ Ne fonctionne pas (Il fait des suppositions erronnées au sujet des adresses). 6.4 Jeux de règles de d'IP Firewall (IPFWADM) plus résistants (Stronger) Cette section fournit un guide plus detaillé d'utilisation de l'outil de firewall pour 2.0.x, IPFWADM. Reportez vous si dessous pour les règles d'IPCHAINS. Voici un exemple d'un système de firewall/masquerade derrière une connexion PPP avec une adresse PPP statique (les instructions pour les connexions PPP dynamiques sont incluses mais désactivées). L'interface de confiance est 192.168.0.1 et l'adresse IP de l'interface PPP a été changée pour protéger le coupable :). J'ai listé chaque interface entrante et sortante pour détecter aussi bien les IP spoofings que les faux routage et/ou masquerading. Tout ce qui n'est pas explicitement permis est _INTERDIT_ (euh... rejeté en fait). Si votre serveur IP MASQ ne fonctionne plus après avoir implémenté ce script rc.firewall, vérifiez que vous l'avez modifié pour votre propre configuration et contrôlez votre fichier SYSLOG /var/log/messages ou /var/adm/messages pour trouver d'éventuels erreurs de firewall. Pour des exemples plus exhaustifs de règles Ôstrong' d'IPFWADM IP Masqueradé pour PPP, modem pour cable, etc., vous pouvez vous référer à TrinityOS - Section 10 et GreatCircle's Firewall WWW page _NB:_ Si vous avez une adresse TCP/IP assignée de facon dynamique par votre FAI (PPP, aDSL, Cable, etc.) vous _NE POUVEZ PAS CHARGER_ ces règles Ôstrong' au moment du boot. Vous aurez soit à relancer le jeu de règles de ce firewall à CHAQUE FOIS que vous avez une nouvelle adresse IP soit faire un /etc/rc.d/rc.firewall plus intelligent. Pour faire ceci pour les utilisateurs de PPP, lisez attentitevement et enlever les marques de commentaires les lignes correspondantes dans la section Òrecuperation d'IP PPP dynamiqueÓ ci-dessous. Vous pouvez aussi trouver de plus amples détails dans le documentation TrinityOS - Section 10 sur les jeux de règles ÔStrong' et les adresses IP dynamiques. _Veuillez aussi noter qu'il existe plusieurs utilitaires de création de Firewall qui possèdent des interfaces graphiques. Vous pouvez vous reporter à la section FAQ pour des détails complets._ Enfin, si vous utilisez une adresse IP STATIQUE obtenue par PPP, changez la ligne "ppp_ip="votre.adresse.PPP.statique" par votre adresse. ---------------------------------------------------------------- #!/bin/sh # # /etc/rc.d/rc.firewall: Un exemple de jeu de regles d'un firewall IPFWADM semi -STRONG IPFWADM # PATH=/sbin:/bin:/usr/sbin:/usr/bin # on teste, attendre un peu puis effacer toutes les regles de firewall # enlever les marques de commentaire des lignes qui suivent si vous voulez que # le firewall se desactive automatiquement au bout de 10 mins. # (sleep 600; \ # ipfwadm -I -f; \ # ipfwadm -I -p accept; \ # ipfwadm -O -f; \ # ipfwadm -O -p accept; \ # ipfwadm -F -f; \ # ipfwadm -F -p accept; \ # ) & # Charge les modules necessaires a IP MASQ # # NB: Charger uniquement les modules IP MASQ dont vous avez besoin. Tous les modules # IP MASQ actuels sont montres ci-dessous mais sont commentes pour les empech er de se charger. # Necessaire pour le chargement initial des modules # /sbin/depmod -a # Permet le masquerading correct des transfert de fichier par FTP avec la metho de PORT # /sbin/modprobe ip_masq_ftp # Permet le masquerading de RealAudio par UDP. Sans ce module, # RealAudio FONCTIONNERA mais en mode TCP. Ce qui peu causer une baisse # dans la qualite du son # #/sbin/modprobe ip_masq_raudio # Permet le masquerading des transferts de fichier par DCC pour les IRC # #/sbin/modprobe ip_masq_irc # Permet le masquerading de Quake et QuakeWorld par defaut. Ce module est # necessaire pour les utilisateurs multiples dirriere un server Linux MASQ. S i vous voulez # jouer a Quake I, II, et III, utilisez le second exemple. # # NB: si vous rencontrez des ERREURs lors de chargement du module QUAKE, c'e st que vous utilisez # un ancien noyau buggue. Mettez a jour votre noyau pour supprimer l'erreur. # #Quake I / QuakeWorld (ports 26000 and 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake 26000,27000,27910,27960 # Permet le masquerading du logiciel CuSeeme pour la video conference # #/sbin/modprobe ip_masq_cuseeme # Permet le masquerading du logiciel VDO-live pour la video conference # #/sbin/modprobe ip_masq_vdolive #CRITIQUE: Active l'IP forwarding puisqu'il est desactive par defaut # # Utilisateurs Redhat: vous pourrez essayer en changeant les options dans # /etc/sysconfig/network de: # # FORWARD_IPV4=false # to # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward #CRITIQUE: Active automatiquement l'IP defragmenting puisqu'il est desactive p ar defaut # dans les noyaux 2.2.x. Ceci etait une option de compilation mais ca a change # depuis le noyau 2.2.12 # echo "1" > /proc/sys/net/ipv4/ip_always_defrag # Utilisateurs d'IP Dynamiques: # # Si vous recevez votre adresse IP de maniere dynamique a partir d'un server SLIP, PPP, ou # DHCP, activez option suivante qui active le hacking (au bon sens du terme N DT) des # adresses IP dynamique dans IP MASQ, rendant ainsi les choses plus faciles p our les # programmes du type Diald. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Specifiez ici votre adresse IP statique. # # Si vous avez une adresse IP DYNAMIQUE, vous devez faire trouver a ce jeu # de regles votre adresse IP a chaque fois que vous avez une nouvelle. Dans ce but, # activez le script d'une ligne qui suit. # # utilisateurs de DHCP : # ---------------------- # Si vous recevez votre adresse TCP/IP, **vous devez** activer les commandes # #ées sous la section PPP ET remplacer le mot "ppp0" par le nom de votre # de votre connexion Internet EXTERNE (eth0, eth1, etc). Notez aussi que le s erver # DHCP peut changer votre adresse IP. Pour resoudre ce probleme, les utilisat eurs # doivent configurer leur client DHCP de sorte qu'il relance le jeu de regles du firewall # chaque fois que leur bail DHCP est renouvele. # # NB #1: Quelques clients DHCP comme l'ancienne version de "pump" (les nou velles # versions ont ete corrigees) n'avaient pas la capacité de relanc er # les scripts apres une renouvellement de bail. Pour cette raison , vous # aurez besoin de le remplacer par quelquechose du style "dhcpcd" ou "dhclient". # # NB #2: La syntaxe de "dhcpcd" a changé dans les versions recentes. # # Les anciennes version avaient une syntaxe du type: # dhcpcd -c /etc/rc.d/rc.firewall eth0 # # Les versions plus recentes ont une syntaxe du type: # dhcpcd eth0 /etc/rc.d/rc.firewall # # NB #3: Pour les utilisateurs de Pump, ajouter cette ligne de commande da ns votre # fichier /etc/pump.conf: # # script /etc/rc.d/rc.firewall # # utilisateurs de PPP : # --------------------- # Si vous n'etes pas deja au courant, le script /etc/ppp/ip-up est toujours l ance quand # une connexion PPP arrive. A cause de ca, on peut demander au jeu de regles d'aller recuperer # la nouvelles adresse IP PPP et de mettre a jour notre jeu de regles du stro ng firewall. # # Si le fichier /etc/ppp/ip-up existe deja, vous devez le modifier et ajouter une ligne # contenant "/etc/rc.d/rc.firewall" pres de la fin du fichier. # # Si vous n'avez pas encore de script /etc/ppp/ip-up, vous devez creer le lie n suivant # pour lancer le script /etc/rc.d/rc.firewall. # # ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up # # * Vous devez ensuite activer les commandes #ees si dessous * # # # Utilisateurs de PPP et DHCP : # ----------------------------- # Enlevez le # de la ligne si dessous et placez un # sur la ligne suivante. # #ppp_ip="`/sbin/ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e 's /.*://'`" # ppp_ip="your.static.PPP.address" # MASQ timeouts # # timeout de 2 heures pour les sessions TCP # timeout de 10 sec pour le traffic apres que le paquet TCP/IP "FIN" est recu # timeout de 160 sec pour le traffic UDP (Important pour les utilisateur d'ICQ MASQues) # /sbin/ipfwadm -M -s 7200 10 60 ############################################################################# # Entrée (incoming), flush et politique par defaut de rejet. En fait la politiq ue par defaut # est inapplicable parce qu'il y une regle qui attrape tout, refuse et logue. # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p reject # interface locale, machines locales, on peut allez n'importe ou # /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0 # interface distance, pretendant etre une machine locale, IP spoofing, tire toi # /sbin/ipfwadm -I -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o # interface distante, toute source, peut aller a l'adresse PPP permanante # /sbin/ipfwadm -I -a accept -V $ppp_ip -S 0.0.0.0/0 -D $ppp_ip/32 # boucler sur l'interface est valide. # /sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # regle qui attrape tout, refuse tout autre entrée et le logue. Dommage qu'il n 'y ait pas # d'options pour le log sur cette politique mais ceci va faire le travail : # /sbin/ipfwadm -I -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o ############################################################################# # Sortie (outgoing), flush et politique par defaut de rejet. En fait la politiq ue par defaut # est inapplicable parce qu'il y une regle qui attrape tout, refuse et logue. # /sbin/ipfwadm -O -f /sbin/ipfwadm -O -p reject # interface locale, toute source allant vers le reseau local est valide # /sbin/ipfwadm -O -a accept -V 192.168.0.1 -S 0.0.0.0/0 -D 192.168.0.0/24 # sortie vers le reseau local d'une interface distance, routage bizarre, rejet # /sbin/ipfwadm -O -a re