Linux IP Masquerade HOWTO <author>David Ranch, <tt><htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"></>; Ambrose Au, <tt><htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"></>&nl Version Française par Mathieu Arnold, <tt><htmlurl url="mailto:arn_mat@club-internet.fr" name="arn_mat@club-internet.fr"></> <date>v1.77, 27 Juillet 1999 <abstract> Ce document décrit la procédure pour mettre en place la fonctionnalité IP Masquerade sur un ordinateur Linux. L'IP MASQ est une forme de NAT (Network Address Translation, c'est a dire, Translation d'adresse réseau) qui permet de connecter sur Internet des ordinateurs n'ayant pas d'adresses IP réservées, à travers l'IP de votre ordinateur Linux. </abstract> <toc> <!-- Section 1 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Introduction <sect1> Introduction à l'IP Masquerading aka IP MASQ <p> Ce document décrit la façon de mettre en oeuvre l'IP MASQ sur une machine Linux. IP MASQ est une forme de NAT qui permet de connecter sur Internet des ordinateurs n'ayant pas d'adresses IP réservées, à travers l'IP de votre ordinateur Linux. Il est possible de connecter vos machines internes a la machine Linux avec des technologies réseau telles l'Ethernet, le TokenRing, le FDDI, comme d'autres formes de connexions comme une connexion PPP ou SLIP. Ce document utilise l'Ethernet comme exemple car c'est le scénario le plus commun. <quote><em><bf>Ce document est destiné aux utilisateurs utilisant un des noyaux Linux stable~: 2.0.36+ et 2.2.9+ sur un compatible PC. Les noyaux les plus anciens comme les 1.2, 1.3 et 2.1 NE SONT PAS couverts par ce document, et certaines versions sont considérées comme dangereuses. Mettez a jour votre noyau pour utiliser un noyau stable avant de vous mettre a utiliser l'IP MASQ.</></></> <quote><em><bf>Si vous configurez l'IP MASQ pour être utilisé sur un Macintosh, envoyez un email à Taro Fukunaga, <htmlurl url="mail:tarozax@earthlink.net" name="tarozax@earthlink.net"> pour recevoir un exemplaire de sa version de ce HOWTO pour MkLinux.</></></> <sect1> Mise en garde, Feedback et Crédits <p> En tant que débutant, je trouve qu'il est très déroutant de mettre en place l'IP masquerade sur un noyau, (un 1.2 a cette époque là). Bien qu'il y ait une FAQ et une mailing list, il n'y avais pas de documents qui soit spécifiques à cela. Il y avais aussi quelques demandes sur la mailing list pour des documents tels qu'un HOWTO. J'ai donc décidé d'écrire ce document comme un point de départ pour un nouvel utilisateur et peut-être comme une première brique pour que d'autres utilisateurs expérimentés ajoutent leurs briques. Si vous avez la moindre idée a propos de ce document, une correction, n'hésitez pas à nous en faire part afin que nous puissions l'améliorer. Ce document étais a l'origine largement inspiré de la FAQ de Ken Eves, ainsi que de nombreux messages très utiles de la mailing list d'IP Masquerading. Je tiens à adresser des remerciements tout particuliers à M. Matthew Driver qui, par ses messages sur la mailing list, m'a donné envie de mettre en place l'IP Masquerading et d'écrire ce document. Récemment, David Ranch a réécrit ce HOWTO et a ajouté un bon paquet de sections pour rendre ce document encore plus complet possible. N'hésitez pas à nous envoyer tout commentaire à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> pour toute erreur ou tout oubli dans ce document. L'avenir de cet HOWTO sera fortement influencé par les réactions que j'aurais de votre part. <bf>Ce HOWTO a été conçu pour être un guide compréhensible pour que l'IP Masquerading fonctionne chez vous le plus vite possible. Comme ni Ambrose ni David ne sont des techniciens, il se peut que vous trouviez les informations de ce document moins générales et/ou moins objectives. Les dernières nouvelles et informations sur ce HOWTO et l'IP MASQ pourront être trouvées sur le site web de l'<htmlurl name="IP Masquerading Ressource" url="http://ipmasq.cjb.net/">, dont nous nous occupons activement. Si vous désirez poser des questions techniques à propos d'IP Masquerade, veuillez souscrire à la mailing list IP Masquerade au lieu d'envoyer des mails à Ambrose ou David. La majorité des questions se rapportant au masquerading sont bien connues des utilisateurs et trouveront réponse sur la liste. De plus, la réponse donnée sur la liste sera beaucoup plus rapide que si elle est posée à Ambrose ou David.</> La dernière version de ce document peut être obtenue aux adresses suivantes, il y a aussi des versions HTML et PostScript~: <itemize> <item> <htmlurl url="http://ipmasq.cjb.net/" name="http://ipmasq.cjb.net/ : The IP Masquerade Resources"> <item> <htmlurl url="http://ipmasq2.cjb.net/" name="http://ipmasq2.cjb.net/ : The IP Masquerade Resources MIRROR"> <item> <htmlurl url="http://metalab.unc.edu/LDP" name="The Linux Documentation Project"> <item> <htmlurl url="http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html#ipmasq" name="Dranch's Linux page"> <item>Référez vous aussi à <url url="http://ipmasq.cjb.net/index.html#mirror" name="IP Masquerade Resource Mirror Sites Listing"> pour la liste des miroirs proche de vous. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Copyright & Dénégation <p> Ce document est <tt>copyright © 1999 Ambrose Au et David Ranch</>, et est un document GRATUIT. Vous pouvez le redistribuer sous la licence GPL de GNU (General Public Licence). Les informations contenues dans ce document sont correcte dans l'état des connaissances d'Ambrose et David. Toutefois, la fonctionnalité IP MASQ de Linux est écrite par des humains, et donc, il y a des chances que des bugs apparaissent de temps en temps. Personne n'est responsable pour un quelconque dommage sur vos ordinateur(s) ainsi qu'une quelconque autre perte due à l'utilisation des informations contenues dans ce document. C'est à dire~: <quote> <bf>LES AUTEURS ET TOUS LES MAINTENEURS NE SONT EN AUCUN CAS RESPONSABLES DES DOMMAGES OCCASIONNÉS PAR L'USAGE DES INFORMATIONS CONTENUES DANS CE DOCUMENT, QUELS QU'ILS SOIENT.</> </quote> <!-- Section 2 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Connaissances de base <p> <sect1> Qu'est-ce que l'IP Masquerade? <p> LÍP Masquerade est une fonctionnalité réseau de Linux similaire aux nombreuses NAT (Network Address Translation) présents dans beaucoup de par feux commerciaux et de routeurs réseau. Par exemple, une machine Linux connectée a internet via une liaison PPP, Ethernet, etc., l'IP MASQ permet a d'autres ordinateurs connectés a la machine Linux (via PPP, Ethernet, etc.) d'accéder aussi a internet. L'IP MASQ de Linux permet cela même si les machines internes n'ont pas <em>d'adresse IP officielle</>. L'IP MASQ permet a un ensemble de machines d'accéder a internet de manière <em>invisible</> via la passerelle MASQ. Pour les autres machines sur internet, tout le trafic sortant aura comme source la machine Linux IP MASQ elle même. En plus de ces fonctionnalités, l'IP Masquerade fournis les bases de la création d'un environnement réseau totalement sécurisé. Avec un firewall bien intégré, braver la sécurité d'un système utilisant le masquerading ainsi que le réseau interne est peine perdue. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Où cela en est~? <p> L'IP Masquerade est utilisé depuis quelques années et est arrivé a maturité lorsque Linux est arrivé dans les noyaux 2.2. Cette fonctionnalité est supportée en standard depuis la série 1.3. De nombreuses personnes, et même des entreprises l'utilisent, avec des résultats excellents. Les utilisation courantes comme la navigation web, le telnet, ftp, ping, traceroute, etc marche très bien avec l'ip masquerade. D'autres protocoles de communication comme le ftp, l'irc et le RealAudio marchent très bien avec le module IP MASQ approprié. D'autres programmes spécifiques a un réseau comme les stream audio (MP3s, True Speech, etc) marchent aussi. Certains ont même obtenus de bon résultats avec des logiciels de vidéoconférence. Veuillez consulter la section <ref id="Supported Client Software"> pour une liste complète des logiciels supportés. IP Masquerade marche bien comme serveur pour d'autres 'machines clientes' avec différents OS. Il y a eu des échos de succès avec des machines MASQuées utilisant~: <itemize> <item> Unix~: Sun Solaris, *BSD, Linux, Digital UNIX, etc.</> <item> Microsoft Windows 95/98, Windows NT, et Windows pour Workgroups (avec le paquetage TCP/IP)</> <item> IBM OS/2</> <item> Apple Macintosh MacOS avec soit MacTCP soit Open Transport</> <item> Les systèmes basés sur le DOS avec les pilotes packet et le paquetage NCSA Telnet</> <item> Les VAX</> <item> Compaq/Digital Alpha avec Linux ou Windows NT</> <item> même les Amiga avec AmiTCP ou la pile AS225</> </> La liste continue, mais en fait, si votre OS parle TCP/IP, il devrais marcher avec IP Masquerade~! <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> A qui peut être utile IP Masquerade? <p> <itemize> <item> Si vous avez un hôte Linux connecté à Internet et</> <item> si vous avez un ou plusieurs ordinateurs utilisant TCP/IP, connecté à un hôte Linux sur un réseau local, et/ou</> <item> si votre hôte Linux a un ou plusieurs modems et joue le rôle de serveur PPP ou SLIP, et que</> <item> ces <bf>AUTRES</> machines ne possèdent pas d'adresse IP officielle ou publique (c'est a dire, avec une adresse IP privée).</> <item> et bien sûr, si vous désirez que ces <bf>AUTRES</> machines soient également connectées sur Internet sans débourser un centime de plus pour acheter des IP officielles ou publiques a votre FAI et configurer un routeur sous Linux ou même acheter un routeur.</> </> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Qui n'a pas besoin d'IP Masquerade? <p> <itemize> <item> Si votre machine est un hôte isolé, connecté sur Internet, (bien que mettre en place un firewall soit une bonne idée), ou</> <item> si vous avez déjà obtenu des adresses officielles pour vos <bf>AUTRES</> machines,</> <item> et bien sûr, si vous n'aimez pas l'idée de connecter toutes les <bf>AUTRES</> machines gratuitement, de cette manière en utilisant Linux et vous avez plus confiance en utilisant de chers produits commerciaux qui font exactement la même chose...</> </> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment fonctionne IP Masquerade~? <p> D'après la FAQ IP Masquerade originelle, de Ken Eves~: <verb> Voici un schéma du plus simple cas possible~: SLIP/PPP +------------+ +-------------+ vers le FAI | Linux | SLIP/PPP | Peu_importe | <---------- modem1| #1 |modem2 ----------- modem3| | 111.222.333.444 | | 192.168.0.100 | | +------------+ +-------------+ Dans le schéma ci-dessus, un ordinateur sous Linux (Linux #1), utilisant IP_MASQUERADING est connecté à Internet par un lien SLIP ou PPP, utilisant modem1. Il possède l'adresse IP (officielle) 111.222.333.444. Il a aussi un modem2 de branché qui permet aux appelants de se connecter et d'initier une connexion PPP ou SLIP. Le second système (qui n'utilise par forcément Linux comme système d'exploitation) se connecte par modem sur l'hôte Linux #1 et entame une liaison SLIP ou PPP. Il NE possède PAS d'adresse IP officielle donc il utilise l'adresse privée 192.168.0.100 (voir ci-dessous pour plus d'informations). Avec l'option IP Masquerade et un routage configuré correctement, la machine "Peu_importe" peut interagir avec Internet comme si elle était directement connectée (à quelques petites exceptions près). Pour citer Pauline Middlelink~: N'oublie pas de rappeler que la machine "Peu_importe" doit déclarer l'hôte Linux #1 comme passerelle (que cela soit la route par défaut ou juste un sous réseau importe peu). Si la machine "Peu_importe" ne peut pas le faire, l'hôte Linux devra être configurée pour faire du proxy arp pour toutes les adresses routées, mais la mise en place et la configuration du proxy arp est hors du domaine de ce document. Ce qui suit est l'extrait d'un article de comp.os.linux.networking qui a été modifié pour utiliser les noms des machines de l'exemple ci-dessus~: o J'indique à la machine "Peu_importe" que le serveur Linux est sa passerelle. o Quand un paquet en provenance de Peu_importe arrive sur la machine Linux, elle va lui assigner un nouveau numéro de port, et indiquer sa propre adresse IP dans l'entête du paquet, tout en sauvegardant l'entête originale. Le serveur IP MASQ va alors envoyer le paquet modifié à travers son interface SLIP ou PPP, vers Internet. o Lorsqu'un paquet en provenance d'Internet revient sur la machine Linux, Linux regarde si le numéro de port est un de ceux assignés à l'étape précédente, elle va modifier à nouveau l'entête pour y remettre les numéros de port et adresses IP originaux, et alors envoyer le paquet à la machine Peu_importe. o L'hôte qui a envoyé le paquet ne verra jamais la différence. </verb> <p> <bf>Un autre example d'IP Masquerading~:</> <p> Voici ci-dessous le schéma d'un exemple classique~: <verb> +----------+ | | Ethernet | Ordi A |:::::: | |.2 ~:192.168.0.x +----------+ ~: ~: +----------+ lien +----------+ ~: .1| Linux | PPP | | ~::::::| Masq-Gate|:::::::::::::::::// Internet | Ordi B |:::::: | | 111.222.333.444 | |.3 ~: +----------+ +----------+ ~: ~: +----------+ ~: | | ~: | Ordi C |:::::: | |.4 +----------+ | | | | <- Réseau interne -> | | <- Réseau externe -----> | | | </verb> Dans cet exemple, il y a (4) ordinateurs qui nous intéressent. Il y a aussi certainement quelquechose loin a droite ou votre connexion PPP arrive (un serveur, etc.) et qu'il y a une machine distant très très loin a droite sur internet avec laquelle nous voulons communiquer. La machine Linux <bf><tt>Masq-Gate</></> est la passerelle IP MASQ que tout le réseau de machines <bf><tt>Ordi A</></>, <bf><tt>Ordi B</></> et <bf><tt>Ordi C</></> utilisent pour se rendre sur internet. Le réseau interne utilise un des nombreux réseaux privés décrit dans la <htmlurl url="http://www.cis.ohio-state.edu/htbin/rfc/rfc1918.html" name="RFC-1918">, dans ce cas, le réseau de classe C 192.168.0.0. La machine Linux ayant l'adresse TCP/IP 192.168.0.1 alors que les autres ont les adresses~: <itemize> <item>Ordi A~: 192.168.0.2 <item>Ordi B~: 192.168.0.3 <item>Ordi C~: 192.168.0.4 </itemize> Les trois machines <tt>A</>, <tt>B</> et <tt>C</>, qui peuvent utiliser n'importe quel système d'exploitation, du moment qu'elles utilisent TCP/IP - comme par exemple <bf>Windows 95</>, <bf>Macintosh MacTCP ou Open Transport</> ou même une autre <bf>machine Linux</>, peuvent se connecter à n'importe qu'elle machine sur Internet. Toutefois <tt>masq-gate</> convertit toutes leurs connexions de façon à ce qu'elles semblent provenir de <tt>masq-gate</> elle même. MASQ s'arrange pour que toutes les données revenant d'Internet retournent au système qui en est à l'origine. Ainsi, les ordinateurs du réseau interne voient une route directe vers Internet et ne sont pas au courant du fait que leurs données ont été "masqueradées". Cela s'appelle une connexion transparente. NOTE~: Allez voir la <ref id="FAQ"> pour plus de détails sur~: <p> <itemize> <item> La différence entre NAT, MASQ et serveurs Proxy.</> <item> Comme le firewalling de paquets marche.</> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="2.0.x-Requirements"> <sect1> Ce qui est requis pour utiliser IP Masquerade sur un Linux 2.0.x <p> <quote><bf>** Veuillez s'il vous plaît consulter l'<htmlurl url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour les dernières informations.**</></quote> <itemize> <item> Un matériel décent. référez vous a la <ref id="FAQ-Hardware"> pour plus de détails <item> Les sources d'un noyau de la série 2.0, disponibles sur <htmlurl url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/" name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.0/"> &nl; (La majorité des distributions de linux récentes <ref id="MASQ-supported-Distributions"> telle la RedHat 5.2 ont le un noyau modulaire avec toutes les options nécessaires a l'IP Masquerading compilées d'origine. Dans ce genre de cas, il n'y a pas besoin de recompiler le noyau. Si vous METTEZ À JOUR votre noyau, alors, vous devriez savoir ce dont que vous aurez besoin d'installer ou de mettre a jour, nous y reviendrons un peu plus loin). <item> Les modules chargeables à la demande, de préférence la version 2.1.85 (ou ultérieure), disponible sur <htmlurl url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.1/modules-2.1.85.tar.gz" name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.1/modules-2.1.85.tar.gz"> (modules-1.3.57 étant le minimum)</item> <item> Un réseau ou LAN TCP/IP fonctionnant convenablement (se référer à <url url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html" name="Linux NET-3 HOWTO"> (<bf>en français</>) et au <url url="ftp://ftp.ibp.fr/pub/linux/french/books/nag.french.eoit-1.0.tar.gz" name="Network Administrator's Guide">) &nl; Allez aussi faire un tour chez <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri" name="Trinity OS Doc">, une documentation très simple sur Linux et le réseau incluant des sujets comme IP MASQ, sécurité, DNS, DHCP, Sendmail, PPP, DialD, NFS, IPSEC-based VPNs, et des sections sur les performances pour n'en nommer que quelques unes. Plus de 50 sections en tout. <item> Un accès Internet pour votre hôte Linux Se référer à <url url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html" name="Linux ISP Hookup HOWTO"> <url url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="Linux PPP HOWTO">, <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri" name="TrinityOS">, <url url="http://www.freenix.org/unix/linux/HOWTO/mini/DHCP.html" name="Linux DHCP mini-HOWTO"> et à <url url="http://www.freenix.org/unix/linux/HOWTO/mini/Cable-Modem.html" name="Linux Cable Modem mini-HOWTO"> <item> Ipfwadm 2.3, téléchargeable sur <htmlurl url="ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz" name="ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz"> &nl; Plus d'informations sur <url url="http://www.xos.nl/linux/ipfwadm/" name="Linux IPFWADM page"> <item> Si vous etes interessés par l'utilisation d'IPCHAINS sur un noyau 2.0.36+, allez voir <url url="http://www-miaif.lip6.fr/willy/pub/linux-patches/" name="Willy Tarreau's IPCHAINS enabler for 2.0.36"> ou <htmlurl url="http://www.rustcorp.com/linux/ipchains/" name="Rusty's IPCHAINS for 2.0.x kernels"> <item> Sachez configurer, compiler et installer un nouveau noyau Linux comme décrit dans <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> <item> Vous pouvez aussi appliquer divers paths optionnels pour ajouter des fonctionnalités comme~: <itemize> <item> Des redirecteurs de ports~: Avec ces outils, vous pouvez faire marcher quelques programmes non MASQ derriere un serveur MASQ. De plus, vous pouvez configurer un serveur MASQ pour permettre aux utilisateurs d'internet de contacter des serveurs web, telnet, smtp, ftp (avec un patch), etc. Référez vous a la section <ref id="Forwarders"> de ce HOWTO pour plus d'informations. Voici une liste des différents patchs IP MASQ pour les noyaux 2.0~: <itemize> <item> <htmlurl url="http://www.ox.compsoc.org.uk/~steve/portforwarding.html" name="IP PortForwarding (IPPORTFW)"> de Steven Clarke's <bf>RECOMMANDÉ</> <item> <htmlurl url="http://ipmasq.cjb.net/ipautofw.tar.gz" name="IP AutoForward"> et <url url="ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz" name="a mirror"> (IPAUTOFW) - <htmlurl url="http://ipmasq.cjb.net/tcpdeath.html" name="NON recommandé"> <item> <url url="http://ipmasq.cjb.net/redir_0.7.orig.tar.gz" name="REDIR"> pour TCP (REDIR) - NON recommandé <item> <htmlurl url="http://ipmasq.cjb.net/udpred.c.gz" name="UDP redirector"> (UDPRED) - NON recommandé </itemize> <item> PORTFWed FTP: <itemize> <item> Si vous allez faire de la redirection de port pour un serveur FTP interne, vous aurez besoin de <htmlurl url="http://ipmasq.cjb.net/patches/portfw-ftp-patch.tgz" name="Fred Viles's FTP server patch">. Pour plus de détails, allez faire un tour du coté de la section <ref id="Forwarders"> de ce HOWTO. </itemize> <item> X-Windows display forwarders: <itemize> <item> <url url="ftp://sunsite.unc.edu/pub/Linux/X11/compress/dxpc-3.7.0.tar.gz" name="X-windows forwarding (DXCP)"> </itemize> <item> ICQ MASQ module <itemize> <item> <htmlurl url="http://members.tripod.com/~djsf/masq-icq/" name="Andrew Deryabin's ICQ MASQ module "> </itemize> <item> PPTP (GRE) et SWAN (IPSEC) VPNs redirecteur de tunnels~: <itemize> <item><htmlurl url="ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html" name="John Hardin's VPN Masquerade forwarders"> ou le vieux patch pour juste le <url url="http://ipmasq.cjb.net/ip_masq_pptp.patch.gz" name="PPTP Support">. </itemize> <item> Patches spécifiques aux jeux~: <itemize> <item>Le patch Lamb's <url url="ftp://ftp.netcom.com/pub/mu/mumford/loose-udp-2.0.36.patch.gz" name="LooseUDP for 2.0.36+"> de Glenn. Notez que certains navigateurs WWW décompresseront automatiquement ce fichier <tt>.gz</>. Pour télécharger ce fichier, gardez la touche SHIFT enfoncée lorsque vous cliquez sur l'URL ci dessus. Allez aussi faire un tour sur la <url url="http://www.alumni.caltech.edu/˜dank/peer-nat.html" name="page sur le NAT"> de Dan Kegel pour plus d'informations. D'autres informations peuvent aussi être touvées dans la section <ref id="Game-Clients"> et dans la <ref id="FAQ">. </itemize> </itemize> </itemize> Allez faire un tour sur <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour plus de détails sur ces patchs. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="2.2.x-Requirements"> <sect1> Ce qui est requis pour utiliser IP Masquerade sur un Linux 2.2.x <p> <quote> <bf> ** Référez vous à <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour les dernieres informations (en anglais). ** </> </quote> <p> <itemize> <item> Les sources du noyau 2.2.x sont disponibles depuis <htmlurl url="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.2/" name="ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.2/"> &nl; NOTE~: La majorité des distributions de linux récentes <ref id="MASQ-supported-Distributions"> telle la RedHat 5.2 - livrée avec un noyau 2.0.36 - ne sont peut être pas prêtes pour les 2.2. Des outils comme le DHCP, NetUtils, auront a être mis a jour. Plus de détails sont donnés par la suite. <item> Modules chargeables dynamiquement, de préférence avec un 2.1.121 ou plus récent. disponible depuis : <htmlurl url="http://www.pi.se/blox/modules/" name="http://www.pi.se/blox/modules/"> <item> Un réseau ou LAN TCP/IP fonctionnant convenablement (se référer à <url url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html" name="Linux NET-3 HOWTO"> (<bf>en français</>) et au <url url="ftp://ftp.ibp.fr/pub/linux/french/books/nag.french.eoit-1.0.tar.gz" name="Network Administrator's Guide">) &nl; Allez aussi faire un tour chez <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri" name="Trinity OS Doc">, une documentation très simple sur Linux et le réseau incluant des sujets comme IP MASQ, sécurité, DNS, DHCP, Sendmail, PPP, DialD, NFS, IPSEC-based VPNs, et des sections sur les performances pour n'en nommer que quelques unes. Plus de 50 sections en tout. <item> Un accès Internet pour votre hôte Linux Se référer à <url url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html" name="Linux ISP Hookup HOWTO"> <url url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="Linux PPP HOWTO">, <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri" name="TrinityOS">, <url url="http://www.freenix.org/unix/linux/HOWTO/mini/DHCP.html" name="Linux DHCP mini-HOWTO"> et à <url url="http://www.freenix.org/unix/linux/HOWTO/mini/Cable-Modem.html" name="Linux Cable Modem mini-HOWTO"> <item> IP Chains 1.3.8 ou plus récent, disponible sur <htmlurl url="http://www.rustcorp.com/linux/ipchains/" name="http://www.rustcorp.com/linux/ipchains/"> &nl; D'informations additionnelles sur les différentes versions, visitez <url url="http://www.rustcorp.com/linux/ipchains/" name="Linux IP Firewalling Chains page"> <item> Sachez configurer, compiler et installer un nouveau noyau Linux comme décrit dans <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> <item> Vous pouvez aussi appliquer divers paths optionnels pour ajouter des fonctionnalités comme~: <itemize> redirecteur de ports TCP/IP~: <itemize> <item><url url="http://juanjox.kernelnotes.org/" name="IP PortForwarding (IPMASQADM) - RECOMMANDÉ"> ou son vieux <htmlurl url="http://www.geocities.com/SiliconValley/Campus/4869/" name="miroir">. </itemize> </itemize> <p> Module ICQ MASQ <itemize> <item><htmlurl url="http://members.tripod.com/~djsf/masq-icq/" name="Andrew Deryabin's ICQ MASQ module "> </itemize> </itemize> Allez faire un tour sur <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour plus d'informations sur ces patches là et d'autres. <!-- Section 3 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Mise en place d'IP Masquerade <p> <quote> <bf>Si votre réseau privé contient des informations vitales, pensez aux implications de sécurité avant d'utiliser IP Masquerade. Par défaut IP MASQ constitue une passerelle pour vous, pour atteindre Internet, mais la réciproque est vraie et quelqu'un sur Internet pourrait pénétrer sur votre réseau privé.</></quote><quote>Une fois que vous avez un IP MASQ qui marche, il est CHAUDEMENT recommandé d'implémenter de FORTES règles d'IPFWADM/IPCHAINS. Référez vous aux sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> ci dessous pour plus de détails. </quote> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Compiler le noyau pour le support d'IP Masquerade <p> <label id="Kernel-Compile"> <quote> <bf>Si votre distribution de Linux a déjà les fonctionnalités necessaires et les modules de compilés, comme~:</> </quote> <quote> <itemize> <item>IPFWADM/IPCHAINS <item>IP forwarding <item>IP masquerading <item>IP Firewalling <item>etc. </itemize> </quote> <quote> Et tous les modules relatif au MASQ de compilés (la majorité des noyaux auront ce dont vous avez besoin); alors, vous n'aurez pas a recompiler votre noyau. Si vous n'etes pas sru que votre distribution linux est prete pour le MASQ allez voir la section <ref id="MASQ-supported-Distributions"> ou la page <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource"> pour plus de détails. Si vous n'arrivez pas a savoir si votre distribution supporte le MASQ, alors, SUPPOSEZ QU'ELLE NE LE SUPPORTE PAS </quote> <quote> Que votre distribution le supporte ou pas, lire la suite de cette section est chaudement recommandé car elle contient pas mal d'informations interessantes. </quote> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect2> Noyaux Linux 2.0.x <p> <bf>Référez vous a la section <ref id="2.0.x-Requirements"> pour les logiciels, patchs requis.</> <itemize> <item> Vous devez tout d'abord disposer des sources du noyau (de préférence la derniere version 2.0.36 ou plus récente). <item> Si c'est la première fois que vous compilez votre noyau, ne soyez pas effrayé. En fait, c'est plutôt simple, et tout est expliqué dans plusieurs liens dans la section <ref id="2.0.x-Requirements">. <item> Décompressez les sources du noyau dans <tt>/usr/src/</> avec la commande <tt>tar xvzf linux-2.0.x.tar.gz -C /usr/src</>, où x est le numéro de révision du noyau. Une fois terminé, vérifiez qu'il y a un répertoire ou un lien symbolique nommé <tt>/usr/src/linux/</>. <item> Appliquez les patches appropriés et/ou optionnels au sources du noyau. Depuis la version 2.0.36, IP MASQ ne requiert plus de patches spécifiques pour que tout marche. Les fonctionnalités comme IPPORTFW, PPTP, and Redirection Xwindow sont optionnelles. Référez vous à la section <ref id="2.0.x-Requirements"> pour des liens et a la page <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resources"> pour des informations a jours ainsi que les adresses des patchs additionnels. <item> Il y a ici le MINIMUM d'options a etre incluses dans le noyau. Vous aurez aussi a configurer le noyau pour vos interfaces réseau. Consulter le <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> et le fichier README dans le répertoire des sources du noyau pour plus d'informations sur la compilation d'un noyau. <item> Notez les <em><bf>RÉPONSES YES ou NO</></> données aux options suivantes. Toutes les options citées ici ne seront pas disponibles avec un noyau standard, certaines sont issues de l'application d'un patch~: </itemize> <tscreen><verb> * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] - YES : Permet de selectionner l'IP Masquerade (qui est experimental dans les 2.0) * Enable loadable module support (CONFIG_MODULES) [Y/n/?] - YES : Permet de charger les modules IP MASQ * Networking support (CONFIG_NET) [Y/n/?] - YES : Permet l'utilisation du réseau * Network firewalls (CONFIG_FIREWALL) [Y/n/?] - YES : Permet d'utiliser IPFWADM * TCP/IP networking (CONFIG_INET) - YES : Permet d'utiliser le protocole TCP/IP * IP: forwarding/gatewaying (CONFIG_IP_FORWARD) - YES : Permet de faire du relayage / routage de paquets IP - Contrôlé par IPFWADM * IP: syn cookies (CONFIG_SYN_COOKIES) [Y/n/?] - YES : CHAUDEMENT recommandé pour une sécurité réseau de base * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?] - YES : Permet d'utiliser les fonctionnalités de firewall * IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) [Y/n/?] - YES : (OPTIONNEL mais CHAUDEMENT recommandé) : Permet de logger des hits du firewall * IP: masquerading (CONFIG_IP_MASQUERADE [Y/n/?] - YES : Permet a IP MASQ de réadresser les paquets TCP/IP * IP: ipautofw masquerade support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [Y/n/?] - NO : IPAUTOFW est une méthode simple de relayage de port. Bien qu'elle marche, IPPORTFW marche mieux, par conséquent, IPAUTOFW N'EST PAS recommandé * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/n/?] - YES : Cette option n'est disponible qu'après l'application d'un patch pour les noyaux 2.0 Avec cette option, des ordinateurs externes sur internet peuvent communiquer directement avec des machines MASQuée spécifiques. Cette fonctionnalité est typiquement utilisée pour accéder a des serveurs smtp, telnet, web internes. Pour le ftp, un patch supplémentaire sera nécessaire comme il l'est décrit dans la FAQ. De plus amples informations sur le relayage de port se trouve dans la section forwarding de ce HOWTO. * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?] - YES : Permet de masquerader les paquets ICMP. Bien qu'optionnelle, beaucoup de programmes ne fonctionneront pas correctement sans cette fonctionnalité. * IP: loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?] - YES : Cette option n'est disponible qu'après l'application d'un patch pour les noyaux 2.0 Avec cette option, des ordinateurs internes masqués peuvent jouer a des jeux ne supportant pas le NAT sur internet. plus de détails sont donnés dans la FAQ * IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?] - YES : Cette fonctionnalité optimise les connexions IP MASQ - CHAUDEMENT recommandé * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?] - YES : Cela optimise le noyau pour l'utilisation en réseau * IP: Drop source routed frames (CONFIG_IP_NOSR) [Y/n/?] - YES : CHAUDEMENT recommandé pour une sécurité réseau de base * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] - YES : Bien qu'optionnelle, cette fonctionnalité peut aider en cas de problèmes * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] - YES : Requise pour permettre d'autoriser le systeme de relayage </verb></tscreen> NOTE~: Ce sont juste les composants dont vous avez besoin pour l'IP Masquerade. Vous avez aussi à ajouter toute autre option réseau et matérielles nécessaire pour votre configuration personnelle. <itemize> <item> Une fois le noyau compilé, vous avez aussi à compiler et installer les modules~: <tscreen><verb>make modules; make modules_install </verb></tscreen></item> <item> Ensuite, ajoutez quelques lignes dans votre <tt>/etc/rc.d/rc.local</> pour charger le script de configuration de l'IP MASQ automatiquement a chaque démarrage~: <tscreen> <verb> . . . # script rc.firewall - Démarre l'IP MASQ et le firewall /etc/rc.d/rc.firewall . . . </verb> </tscreen> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect2> Noyaus Linux 2.2.x <p> <bf>Référez vous a la section <ref id="2.2.x-Requirements"> pour les logiciels, patchs requis.</> <itemize> <item> Tout d'abord, Vous avez besoin des sources du noyau 2.2.x. De préférence, une version ultérieure au 2.2.1. <item> Si c'est la première fois que vous compilez votre noyau, ne soyez pas effrayé. En fait, c'est plutôt simple, et tout est expliqué dans plusieurs liens dans la section <ref id="2.2.x-Requirements">. <item> Décompressez les sources du noyau dans <tt>/usr/src/</> avec la commande <tt>tar xvzf linux-2.2.x.tar.gz -C /usr/src</>, où x est le numéro de révision du noyau. Une fois terminé, vérifiez qu'il y a un répertoire ou un lien symbolique nommé <tt>/usr/src/linux/</>. <item> Appliquez les patches appropriés et/ou optionnels au sources du noyau. Depuis la version 2.2.1, IP MASQ ne requiert plus de patches spécifiques pour que tout marche. Les fonctionnalités comme PPTP, and Redirection Xwindow sont optionnelles. Référez vous à la section <ref id="2.2.x-Requirements"> pour des liens et a la page <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resources"> pour des informations a jours ainsi que les adresses des patchs additionnels. <item> Il y a ici le MINIMUM d'options a etre incluses dans le noyau. Vous aurez aussi a configurer le noyau pour vos interfaces réseau. Consulter le <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> et le fichier README dans le répertoire des sources du noyau pour plus d'informations sur la compilation d'un noyau. <item> Notez les <em><bf>RÉPONSES YES ou NO</></> données aux options suivantes. Toutes les options citées ici ne seront pas disponibles avec un noyau standard, certaines sont issues de l'application d'un patch~: </itemize> <tscreen><verb> * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] - YES : Bien que n'étant pas nécessaire pour l'IP MASQ, cette option permet de créer certains modules MASQ et de choisir quelques options comme le relayage de ports * Enable loadable module support (CONFIG_MODULES) [Y/n/?] - YES : Permet de charger les modules IP MASQ * Networking support (CONFIG_NET) [Y/n/?] - YES : Permet l'utilisation du réseau * Packet socket (CONFIG_PACKET) [Y/m/n/?] - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet d'utiliser tcpdump pour débugger certains problèmes avec IP MASQ * Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?] - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet de logger des hits du firewall * Routing messages (CONFIG_RTNETLINK) [Y/n/?] - NO : Cette option n'a rien a voir avec les logs du firewall * Network firewalls (CONFIG_FIREWALL) [Y/n/?] - YES : Permet d'utiliser IPCHAINS * TCP/IP networking (CONFIG_INET) [Y/n/?] - YES : Permet d'utiliser le protocole TCP/IP * IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?] - NO : Ce n'est requis que si vous utilisez aussi CONFIG_IP_ROUTE_VERBOSE et des routages spéciaux (indépendants d'ipchains/masq) * IP: verbose route monitoring (CONFIG_IP_ROUTE_VERBOSE) [Y/n/?] - YES : Très utile si vous voulez utiliser le code de routage pour mettre de coté les paquets spoofés (CHAUDEMENT recommandé) et que vous voulez les logger. * IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?] - YES : Permet d'utiliser les fonctionnalités de firewall * IP: firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK) [Y/n/?] - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet d'améliorer les logs du firewall * IP: always defragment (required for masquerading) (CONFIG_IP_ALWAYS_DEFRAG) [Y/n/?] - YES : Cette fonctionnalité est REQUISE si vous voulez avoir accès aux fonctionnalités d'IP MASQ et/ou de proxy transparent. Cette fonctionnalité optimise les connexions IP MASQ * IP: masquerading (CONFIG_IP_MASQUERADE) [Y/n/?] - YES : Permet a IP MASQ de réadresser les paquets TCP/IP * IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?] - YES : Permet de masquerader les paquets icmp (les paquets d'erreur seront masqués de que la réponse soit oui ou non). Cette fonctionnalité est importante si vous rencontrez des problèmes avec vos connexions. * IP: masquerading special modules support (CONFIG_IP_MASQUERADE_MOD) [Y/n/?] - YES : Bien qu'OPTIONNELLE, cette fonctionnalité permet de choisir le relayage de port TCP/IP pour permettre a des ordinateurs externe d'accéder a certaines machines MASQuées. * IP: ipautofw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW) [N/y/m/?] - NO : IPAUTOFW est une méthode simple pour le relayage de ports. C'est juste une grosse bidouille, et il est préférable d'utiliser les modules spécifiques a un protocole. IPAUTOFW N'EST PAS recommandé. * IP: ipportfw masq support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/m/n/?] - YES : Permet le IPPORTFW. Avec cette option, des ordinateurs externes sur internet peuvent communiquer directement avec des machines MASQuée spécifiques. Cette fonctionnalité est typiquement utilisée pour accéder a des serveurs smtp, telnet, web internes. Pour le ftp, un patch supplémentaire sera nécessaire comme il l'est décrit dans la FAQ. De plus amples informations sur le relayage de port se trouve dans la section forwarding de ce HOWTO. * IP: ip fwmark masq-forwarding support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_MFW) [Y/m/n/?] - NO : Permet de configurer le relayage avec IPCHAINS directement. C'est du code expérimental, et la méthode recommandée est d'utiliser IPMASQADM et IPPORTFW. * IP: optimize as router not host (CONFIG_IP_ROUTER) [Y/n/?] - YES : Cela optimise le noyau pour l'utilisation en réseau mais cela ne change pas grand chose en fait. * IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/m/?] - NO : Cette sélection OPTIONNELLE sert a autoriser les tunnels PPTP et GRE via la machine MASQ * IP: TCP syncookie support (not enabled per default) (CONFIG_SYN_COOKIES) [Y/n/?] YES : CHAUDEMENT recommandé pour une sécurité réseau de base * IP: Drop source routed frames (CONFIG_IP_NOSR) [Y/n/?] - YES : CHAUDEMENT recommandé pour une sécurité réseau de base * Network device support (CONFIG_NETDEVICES) [Y/n/?] - YES : Permet d'utiliser la sous couche réseau de Linux * Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] - YES : Bien qu'optionnelle, cette fonctionnalité peut aider en cas de problèmes * /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] - YES : Requise pour permettre d'autoriser le systeme de relayage </verb></tscreen> NOTE~: Voici juste les composants qu'il faut pour que l'IP Masquerade marche, sélectionnez les options spécifiques dont vous avez besoin pour votre système. <itemize> <item> Après avoir compilé le noyau, vous devriez compiler et installer les modules~: <tscreen><verb> make modules; make modules_install </verb></tscreen> <item> Ensuite, ajoutez quelques lignes dans votre <tt>/etc/rc.d/rc.local</> pour charger le script de configuration de l'IP MASQ automatiquement a chaque démarrage~: <tscreen> <verb> . . . # script rc.firewall - Démarre l'IP MASQ et le firewall /etc/rc.d/rc.firewall . . . </verb> </tscreen> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Assignation d'adresse IP pour le réseau local <p> Puisque toutes les machines <bf>INTERNES MASQUÉES</> ne doivent pas d'adresse IP officielle, il doit y avoir une manière spécifique et générale de leur en allouer sans entrer en collisions avec l'adresse IP de quelqu'un d'autre. Selon la FAQ originelle d'IP Masquerade~: Le document officiel qui indique quelles adresses IP assigner à un réseau non connecté ou "privé" est la <htmlurl url="http://www.cis.ohio-state.edu/htbin/rfc/INDEX.rfc.html" name="RFC 1918">. Il existe 3 plages réservées spécialement à cet effet. <tscreen><verb> Section 3~: Adressage de réseaux privés L' "Internet Assigned Numbers Authority" (IANA) a réservé les 3 plages suivantes pour leur utilisation par des réseaux privés~: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 Nous ferons référence à la première en tant que la "plage de 24 bits", la deuxième comme "plage de 20 bits" et la troisième comme "plage de 16 bits". Notez que la première plage n'est rien d'autre qu'un réseau de classe A, la deuxième un ensemble de 16 réseaux de classe B contigus, et la troisième un ensemble de 255 réseaux de classe C contigus. </verb></tscreen> Pour la petite histoire, ma préférence va au réseau 192.168.0.0 avec le masque de sous réseau de classe C 255.255.255.0, et ce HOWYO reflete cela. Bien sur, n'importe quel réseau privé décrit ci dessus est valide, tant que vous utilisez le bon masque de sous réseau. Ainsi, si vous utilisez un réseau de classe C, vous devrez utiliser les adresses IP 192.168.0.1, 1.92.168.0.2, 1.92.168.0.3, ..., 192.168.0.x 192.168.0.1 est habituellement la machine passerelle, qui est ici votre machine Linux se connectant à Internet. Remarquez que 192.168.0.0 et 192.168.0.255 sont respectivement les adresses de réseau et de broadcast (ces adresses sont RÉSERVÉES). Évitez d'utiliser ces adresses sur vos machines ou votre réseau ne fonctionnera pas correctement. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer les règles d'IP Forwarding <p> A ce point du document, vous devriez avoir votre noyau et les autres packages installés. De plus, les adresses IP, la passerelle, et le DNS devraient être installés sur votre serveur MASQ. Si vous ne savez pas comment configurer votre carte réseau, référez vous aux sections <ref id="2.0.x-Requirements"> ou <ref id="2.2.x-Requirements"> Maintenant, la seule chose à faire est de configurer l'outil de firewalling IP (ipfwadm) pour faire suivre / masquer les paquets appropriés à la machine qui convient~: <p> <quote> ** Ceci peut être fait de diverses façons. Les suggestions et exemples suivants fonctionnent pour moi, mais il se peut que vous ayez d'autres idées ou besoins. </> <quote><bf> ** Cette section ne fournis que les rudiments d'un firewall pour faire marcher l'IP MASQ. Une fois que l'IP MASQ a été suffisamment testé (comme décrit plus loin dans ce HOWTO), référez vous aux section <ref id="Strong-IPFWADM-Rulesets"> et/ou <ref id="Strong-IPCHAINS-Rulesets"> pour des regles plus sécurisées. En plus, allez lire les mages man d'IPFWADM (2.0) te IPCHAINS (2.2) pour plus de détails. </></quote> <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="rc.firewall-2.0.x"><sect2> Noyaux Linux 2.0.x <p> Créez le fichier <tt>/etc/rc.d/rc.firewall</> avec l'exemple SIMPLE qui suit~: <tscreen> <verb> #!/bin/sh # # rc.firewall - exemple SIMPLE de configuration IP MASQ pour les noyaux 2.0 avec IPFWADM # # Charge tous les modules MASQ requis # # NOTE : Ne chargez que les modules dont vous avez besoin. Tous les modules IP MASQ # disponibles sont cités ci dessous, mais sont mis en commentaires. # Necessaire pour charger les modules # /sbin/depmod -a # Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT. # /sbin/modprobe ip_masq_ftp # Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA, # mais en mode TCP. Cela peut causer une réduction dans la qualité du son. # #/sbin/modprobe ip_masq_raudio # Supporte le masquerading des transferts IRC DCC. # #/sbin/modprobe ip_masq_irc # Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous avez # plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, II et # III, utilisez le deuxieme exemple. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960 # Supporte le masquerading du systeme de visioconférences CuSeeMe # #/sbin/modprobe ip_masq_cuseeme # Supporte le masquerading du systeme de visioconférences VDO Live # #/sbin/modprobe ip_masq_vdolive # CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le # noyau 2.0.34 # # Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network de : # # FORWARD_IPV4=false # à # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward # Utilisateurs d'IP dynamiques : # # Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option # suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP # dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien plus # facile. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ) # /sbin/ipfwadm -M -s 7200 10 160 # DHCP : Pour Ceux qui recoivent leur IP externe d'un serveur soit DHCP soit BOOTP comme # les utilisateurs d'ADSL ou du Câble, Il est nécessaire d'utiliser la commande # suivante avant le deny. Le "bootp_client_net_if_name" doit être remplacé par le # nom de l'interface qui recevra son IP du serveur DHCP/BOOTP. Cela devrais être # quelque chose comme "eth0", "eth1", etc. # # Cet exemple est pour l'instant commenté. # # #/sbin/ipfwadm -I -a accept -S 0/0 67 -D 0/0 68 -W bootp_clients_net_if_name -P udp # Permettre un forwarding et masquerading IP simple # # NOTE : L'exemple suivant est un exemple pour un réseau dont les adresses sont dans le # réseau 192.168.0.0 avec le masque de sous réseau 255255.255.0, ou 24 bits. # # Changez ces paramètres pour prendre en compte votre configuration locale. # /sbin/ipfwadm -F -p deny /sbin/ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0 </verb> </tscreen> Une fois que vous avez terminé d'éditer votre <tt>/etc/rc.d/rc.firewall</>, rendez le executable en tapant "<tt>chmod 700 /etc/rc.d/rc.firewall</>". Vous pouvez aussi autoriser l'IP MASQ par machine et non en autorisant tout le réseau. Par exemple, vous pourriez vouloir que seules les machines 192.168.0.2 et 192.168.0.8 aient accès a internet, et pas les autres machines. Il suffit de changer la section "Permettre un forwarding et masquerading IP simple" (ci dessus) du fichier <tt>/etc/rc.d/rc.firewall</>. <tscreen> <verb> # Permettre un forwarding et masquerading IP simple # # NOTE : L'exemple suivant est un exemple qui autorise le MASQ pour uniquement les # machines 192.168.0.2 et 192.168.0.6. # # Utilisez l'exemple ci dessous pour spécifier les machines ayant le droit # d'accéder a internet. n'oubliez pas de l'adapter a votre configuration. # /sbin/ipfwadm -F -p deny /sbin/ipfwadm -F -a m -S 192.168.0.2/32 -D 0.0.0.0/0 /sbin/ipfwadm -F -a m -S 192.168.0.8/32 -D 0.0.0.0/0 </verb> </tscreen> Il semble que l'erreur la plus courante soit de faire de la police par défaut le masquerading en tapant~: <verb> ipfwadm -F -p masquerade </verb> <bf>NE FAITE PAS</> de votre configuration par défaut le MASQ. Autrement, quelqu'un de mal intentionné pourrais manipuler ses tables de routage pour créer un tunnel a travers votre passerelle, utilisant le masquerading pour masquer sa propre identité~! Encore une fois, vous pouvez ajouter au fichier <tt>/etc/rc.d/rc.firewall</>, ou l'un des autres fichiers rc, ou même les taper a la main a chaque fois que vous en avez besoin. Allez faire un tour dans les sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement de règles plus strictes. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="rc.firewall-2.2.x"><sect2> Noyaux Linux 2.2.x <p> Notez que <bf>IPFWADM n'est plus l'outil de firewall a utiliser</> pour manipuler les regles d'IP MASQ pour les noyaux 2.1 et 2.2. Ces noyaux utilisent le nouvel outil IPCHAINS. Pour plus de détails sur les raisons de ce changement, référez vous a la <ref id="FAQ">. Créez le fichier <tt>/etc/rc.d/rc.firewall</> avec les règles suivantes~: <tscreen> <verb> #!/bin/sh # # rc.firewall - exemple SIMPLE de configuration IP MASQ pour les noyaux 2.1 et 2.2 avec # IPFWADM # # Charge tous les modules MASQ requis # # NOTE : Ne chargez que les modules dont vous avez besoin. Tous les modules IP MASQ # disponibles sont cités ci dessous, mais sont mis en commentaires. # Necessaire pour charger les modules # /sbin/depmod -a # Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT. # /sbin/modprobe ip_masq_ftp # Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA, # mais en mode TCP. Cela peut causer une réduction dans la qualité du son. # #/sbin/modprobe ip_masq_raudio # Supporte le masquerading des transferts IRC DCC. # #/sbin/modprobe ip_masq_irc # Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous avez # plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, II et # III, utilisez le deuxieme exemple. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960 # Supporte le masquerading du systeme de visioconférences CuSeeMe # #/sbin/modprobe ip_masq_cuseeme # Supporte le masquerading du systeme de visioconférences VDO Live # #/sbin/modprobe ip_masq_vdolive # CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le # noyau 2.0.34 # # Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network de : # # FORWARD_IPV4=false # à # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward # Utilisateurs d'IP dynamiques : # # Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option # suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP # dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien plus # facile. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ) # /sbin/ipchains -M -S 7200 10 160 # DHCP : Pour Ceux qui recoivent leur IP externe d'un serveur soit DHCP soit BOOTP comme # les utilisateurs d'ADSL ou du Câble, Il est nécessaire d'utiliser la commande # suivante avant le deny. Le "bootp_client_net_if_name" doit être remplacé par le # nom de l'interface qui recevra son IP du serveur DHCP/BOOTP. Cela devrais être # quelque chose comme "eth0", "eth1", etc. # # Cet exemple est pour l'instant commenté. # #/sbin/ipchains -A input -j ACCEPT -i bootp_clients_net_if_name -s 0/0 67 -d 0/0 68 -p udp # Permettre un forwarding et masquerading IP simple # # NOTE : L'exemple suivant est un exemple pour un réseau dont les adresses sont dans le # réseau 192.168.0.0 avec le masque de sous réseau 255255.255.0, ou 24 bits. # # Changez ces paramètres pour prendre en compte votre configuration locale. # /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ </verb></tscreen> Une fois que vous avez terminé d'éditer votre <tt>/etc/rc.d/rc.firewall</>, rendez le executable en tapant "<tt>chmod 700 /etc/rc.d/rc.firewall</>". Vous pouvez aussi autoriser l'IP MASQ par machine et non en autorisant tout le réseau. Par exemple, vous pourriez vouloir que seules les machines 192.168.0.2 et 192.168.0.8 aient accès a internet, et pas les autres machines. Il suffit de changer la section "Permettre un forwarding et masquerading IP simple" (ci dessus) du fichier <tt>/etc/rc.d/rc.firewall</>. <tscreen><verb> # Permettre un forwarding et masquerading IP simple # # NOTE : L'exemple suivant est un exemple qui autorise le MASQ pour uniquement les # machines 192.168.0.2 et 192.168.0.6. # # Utilisez l'exemple ci dessous pour spécifier les machines ayant le droit # d'accéder a internet. n'oubliez pas de l'adapter a votre configuration. # /sbin/ipchains -P forward deny /sbin/ipchains -A forward -s 192.168.0.2/32 -j MASQ /sbin/ipchains -A forward -s 192.168.0.8/32 -j MASQ </verb></tscreen> Il semble que l'erreur la plus courante soit de faire de la police par défaut le masquerading en tapant~: <tscreen><verb>/sbin/ipchains -P forward masquerade</verb></tscreen> <bf>NE FAITE PAS</> de votre configuration par défaut le MASQ. Autrement, quelqu'un de mal intentionné pourrais manipuler ses tables de routage pour créer un tunnel a travers votre passerelle, utilisant le masquerading pour masquer sa propre identité~! Encore une fois, vous pouvez ajouter au fichier <tt>/etc/rc.d/rc.firewall</>, ou l'un des autres fichiers rc, ou même les taper a la main a chaque fois que vous en avez besoin. Allez faire un tour dans les sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement de règles plus strictes, référez vous aussi au <htmlurl url="http://www.freenix.org/unix/linux/HOWTO/IPCHAINS-HOWTO.html" name="Linux IP CHAINS HOWTO"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Configurer les autres machines MASQuées internes <p> En plus d'affecter les adresses IP pour chaque machine MASQuée, vous devrez indiquer la bonne adresse de la passerelle et le bon serveur DNS. En général, c'est plutôt simple. Vous entrez juste l'adresse de votre machine Linux (généralement 192.168.0.1) en tant qu'adresse de passerelle. Pour le DNS, vous pouvez utiliser n'importe quel DNS qui soit utilisable. Le plus simple est d'utiliser celui qu'utilise votre serveur Linux. Vous pouvez aussi, si vous le désirez, ajouter des "suffixes d'ordre de recherche" DNS. Après avoir correctement configurées ces adresses IP, n'oubliez pas de relancer leurs services réseaux, ou de les rebooter. Les instructions de configuration qui suivent supposent que vous utilisez un réseau de classe C, et que votre machine Linux a pour adresse 192.168.0.1. Notez que 192.168.0.0 et 192.168.0.255 sont des adresses TCP/IP réservées. Au jour d'aujourd'hui, les plates formes suivantes ont été testés comme machine MASQuées. <itemize> <item> Linux 1.2.x, 1.3.x, 2.0.x, 2.1.x, 2.2.x <item> Solaris 2.51, 2.6, 7 <item> Windows 95, OSR2, 98 <item> Windows NT 3.51, 4.0, 2000 (workstation et server) <item> Windows For Workgroup 3.11 (avec le paquetage TCP/IP) <item> Windows 3.1 (avec ke paquetage Netmanage Chameleon) <item> Novell 4.01 Server avec le service TCP/IP <item> OS/2 (Warp v3 inclu) <item> Macintosh OS (avec MacTCP ou Open Transport) <item> DOS (avec le paquetage NCSA Telnet, DOS Trumpet fonctionne partiellement) <item> Amiga (avec AmiTCP ou AS225-stack) <item> Les VAX 3520 et 3100 avec UCX (la pile TCP/IP pour VMS) <item> Alpha/AXP avec Linux RedHat <item> SCO Openserver (v3.2.4.2 et 5) <item> IBM RS/6000 avec AIX </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer Microsoft Windows 95 <p> <enum> <item> Si vous n'avez pas installé votre carte réseau et son driver, faites le maintenant. La description de cela dépasse le cadre de ce document. <item> Allez dans le <em>'Panneau de configuration'</> --> <em>'Réseau'</>. <item> Cliquez sur <em>'Ajouter'</> --> <em>'Protocole'</> --> <em>'Constructeur~: Microsoft'</> --> <em>'Protocole~: TCP/IP'</> si vous ne l'avez pas déjà. <item> Sélectionnez le TCP/IP lié a votre carte réseau et cliquez sur <em>'Propriétés'</>. Allez maintenant dans l'onglet <em>'adresse IP'</> et mettez comme adresse IP 192.168.0.x (1 < x < 255). Fixez le <em>'Masque de sous réseau'</> à 255.255.255.0 <item> Maintenant, allez dans l'onglet <em>'Passerelle'</>, Entrez 192.168.0.1 comme passerelle et cliquez sur <em>'Ajouter'</>. <item> Dans l'onglet <em>'Configuration DNS'</>, assurez vous de bien avoir mis un nom pour cette machine et entré votre nom de domaine officiel. Si vous n'avez pas de nom de domaine, mettez celui de votre FAI. Maintenant, ajoutez tous les serveurs DNS qui sont configurés sur votre machine Linux (on les trouve dans le fichier <tt>/etc/resolv.conf</>). D'habitude, ces serveurs DNS sont situés chez votre FAI, mais il se peut que vous en aviez un en local pour faire soit votre propre cache ou serveur DNS autoritaire. Vous pouvez aussi ajouter quelques domaines de recherche. <item> Laissez les autres paramètres tels quels, à moins que vous sachiez ce que vous faites. <item> Cliquez sur <em>'OK'</> dans toutes les boîtes de dialogue et relancez le système. <item> <tt>Ping</>uez la machine Linux pour tester la connexion réseau~: <em>'Démarrer'</> --> <em>'Exécuter'</>, tapez: <tt>ping 192.168.0.1</> (C'est seulement un test de connexion locale, vous ne pouvez pas encore <tt>ping</>uer l'extérieur). Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. <item> Vous pouvez éventuellement créer un fichier <tt>HOSTS</> dans le répertoire <tt>c:\windows</>, pour que vous puissiez utiliser les noms d'hôtes des autres machines de votre réseau local sans recourir a un serveur dns. Il y a un exemple nommé <tt>HOSTS.SAM</> dans le répertoire <tt>c:\windows</>. </enum> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer Windows NT <p> <enum> <item> Si vous n'avez pas encore installé votre carte réseau et son driver, faites le maintenant. La description de cela dépasse le cadre de ce document. <item> Allez dans le <em>'Panneau de configuration'</> --> <em>'Réseau'</>. <item> Ajoutez le protocole TCP/IP et les composants qui s'y rattachent depuis le menu <em>'Ajout de logiciels'</> si vous n'avez pas encore installé le service TCP/IP. <item> Dans la section <em>'Logiciel et carte réseau'</>, sélectionnez le <em>'Protocole TCP/IP'</> dans la boite de choix <em>'Logiciels réseaux installés'</>. <item> Dans <em>Configuration TCP/IP</>, sélectionnez l'adaptateur réseau appropriées, par exemple <tt>[1]Novell NE2000 Adapter</>. Entrez l'adresse IP 192.168.0.x (1 < x < 255), positionnez le masque de sous réseau sur 255.255.255.0 et la passerelle par défaut à 192.168.0.1. <item> Ne sélectionnez pas <em>'Configuration automatique DHCP'</>, mettez n'importe quoi dans la case <em>'Serveur WINS'</>, et <em>'Autorisez le relayage de paquets'</> à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez EXACTEMENT ce que vous faites. <item> Cliquez sur <em>'DNS'</>, et remplissez les informations appropriés, maintenant, ajoutez tous les serveurs DNS qui sont configurés sur votre machine Linux (on les trouve dans le fichier <tt>/etc/resolv.conf</>). Cliquez sur <em>'OK'</> une fois que c'est fini. <item> Cliquez sur <em>'Configuration avancée'</>, décochez <em>'Utiliser le DNS pour la résolution de noms'</>, et cochez <em>'Utiliser LMHOSTS'</>, a moins que vous sachiez ce que font ces options. Si vous voulez utiliser un fichier <tt>LMHOSTS</>, il est situé dans <tt>C:\winnt\system32\drivers\etc</>. <item> Cliquez alors sur <em>'OK'</> sur toutes les boites de dialogue, et redémarrez le système. <item> <tt>Ping</>ez la machine Linux pour tester la connexion réseau~: <em>'Fichier'</> --> <em>'Exécuter'</>, taper~: <tt>ping 192.168.0.1</> (C'est juste un test de connexion locale, vous ne pouvez pas encore <tt>ping</>er le monde extérieur). Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. </enum> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer Windows pour Workgroup 3.11 <p> <enum> <item> Si vous n'avez pas encore installé votre carte réseau et son driver, faites le maintenant. La description de cela dépasse le cadre de ce document. <item>Installez le package TCP/IP 32b si ce n'est pas déjà fait. <item> Dans <em>'Groupe Principal'</> --> <em>'Installation'</> --> <em>'Configuration réseau'</>, cliquez sur <em>'Drivers'</>. <item> Sélectionnez <em>'Microsoft TCP/IP-32 3.11b'</> dans la section <em>'Drivers Réseaux'</>. Choisissez <em>Configuration</>. <item> Saisissez l'adresse IP 192.168.0.x (1 < x < 255), et positionnez le masque de sous réseau à 255.255.255.0 et la passerelle par défaut à 192.168.0.1. <item> Ne sélectionnez pas <em>'Configuration automatique DHCP'</> ou mettez n'importe quoi dans la case <em>'Server WINS'</>, à moins que vous ne fassiez partie d'un domaine Windows NT et que vous sachiez ce que vous faites. <item> Cliquez sur <em>'DNS'</>, et remplissez les informations appropriés, ajoutez tous les serveurs DNS qui sont configurés sur votre machine Linux (on les trouve dans le fichier <tt>/etc/resolv.conf</>). Cliquez sur <em>'OK'</> une fois que c'est fini. <item> Cliquez sur <em>'Configuration avancée'</>, cochez <em>'Utiliser le DNS pour la résolution de noms'</>, et <em>'Utiliser LMHOSTS'</> situé dans <tt>c:\windows</>. <item> Cliquez alors sur <em>'OK'</> sur toutes les boites de dialogue, et redémarrez le système. <item> <tt>Ping</>ez la machine Linux pour tester la connexion réseau~: <em>'Fichier'</> --> <em>'Exécuter'</>, taper~: <tt>ping 192.168.0.1</> (C'est juste un test de connexion locale, vous ne pouvez pas encore <tt>ping</>er le monde extérieur. Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. </enum> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configurer les systèmes UNIX <p> <enum> <item> Si vous n'avez pas encore installé votre carte réseau et recompilé votre noyau avec le driver adéquat, faites le maintenant. La description de cela dépasse le cadre de ce document. <item> Installez des outils TCP/IP, comme par exemple le package net-tools, si ce n'est déjà fait. <item> Affectez <em>IPADDR</> à 192.168.0.x (1 < x < 255), puis <em>NETMASK</> à 255.255.255.0, <em>GATEWAY</> à 192.168.0.1 et <em>BROADCAST</> à 192.168.0.255. Par exemple, sur les systèmes RedHat Linux, vous pouvez éditer le fichier <tt>/etc/sysconfig/network-scripts/ifcfg-eth0</>, ou simplement le faire par l'intermédiaire du <em>Control Panel</>. C'est différent sur d'autres unices comme SunOS, BSDi, Slackware Linux, Solaris, SuSe, Debian, etc. Référez vous a la documentation de votre unix pour plus d'informations. <item> Ajoutez l'adresse IP de votre DNS et votre ordre de recherche DNS dans <tt>/etc/resolv.conf</>. Et pour certaines versions d'unix, éditez votre <tt>/etc/nsswitch.conf</> pour autoriser le service DNS. <item> Il sera éventuellement nécessaire de mettre à jout le fichier <tt>/etc/networks</>, selon votre configuration. <item> Redémarrez les services adéquats, ou, plus simplement, redémarrez votre système. <item> Testez votre connexion avec la passerelle en utilisant la commande <tt>ping</>~: <tt>ping 192.168.0.1</>. Ceci est juste un test sur votre réseau local, vous ne pouvez pas encore <tt>ping</>er l'extérieur. Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. </enum> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Configuration sous DOS avec le package NCSA <p> <enum> <item> Si vous n'avez pas encore installé votre carte réseau, faites le maintenant. La description de cela dépasse le cadre de ce document. <item> Chargez le driver adéquat. Par exemple, si vous utilisez une carte ethernet NE2000 configurée pour utiliser le port d'E/S 0x300 et l'IRQ 10, tapez <tt>nwpd 0x60 10 0x300</>. <item> Créez un nouveau répertoire, et décompressez-y l'archive NCSA Telnet~: <tt>pkunzip tel2308b.zip</> <item> Utilisez un éditeur de texte pour ouvrir le fichier <tt>config.tel</>. <item> Affectez <tt>myip=192.168.0.x</> (1 < x < 255), et <tt>netmask=255.255.255.0</>. <item> Dans cet exemple, vous auriez à régler <tt>hardware=packet, interrupt=10, ioaddr=60</>. <item> Vous devriez avoir au moins une seule machine déclarée comme passerelle, à savoir la machine sous Linux~: <tscreen><verb> name=default host=le_nom_de_votre_hote_linux hostip=192.168.0.1 gateway=1 </verb></tscreen> <item> Pour mettre en place le DNS~: <tscreen><verb> name=dns.domain.com~; hostip=123.123.123.123; nameserver=1 </verb></tscreen> NB: remplacez les champs par les informations qu'utilise votre machine Linux. <item> Sauvegardez votre nouveau fichier <tt>config.tel</>. <item> Lancez un telnet vers la machine Linux pour tester la connexion réseau~: <tt>telnet 192.168.0.1</>. Si vous n'obtenez pas un prompt de login, Vérifiez votre configuration réseau. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect1>Configuration des systèmes MacOS utilisant MacTCP <p> <enum> <item> Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça serait une excellente idée de le faire maintenant. La description de cela dépasse le cadre de ce document. <item> Ouvrez le <em>'Tableau de bord MacTCP'</>. Selectionnez le driver réseau adapté (Ethernet, PAS EtherTalk) et cliquez sur le bouton. <item> Dans la section <em>'Obtenir l'adresse'</>, sélectionnez <em>'Manuellement'</>. <item> Dans <em>'Adresse IP'</>, choisissez <em>'class C'</> dans le menu déroulant. Vous pouvez ignorer le reste de cette boite de dialogue. <item> Remplissez la section <em>'Information DNS'</> avec les informations qui conviennent. <item> Dans <em>'Adresse de la passerelle'</>, entrez 192.168.0.1. <item> Cliquez sur <em>'OK'</> pour sauvegarder les changements. Dans la fenêtre principale du <em>'Tableau de bord MacTCP'</>, entrez l'adresse IP de votre Mac (192.168.0.x, 1 < x < 255) dans la zone <em>'Adresse IP'</>. <item> Refermez le <em>'Tableau de bord MacTCP'</>. Si une boite de dialogue vous demande de redémarrer le système, faites le. <item> Vous pouvez si vous le désirez <tt>ping</>er l'hôte Linux pour tester la connexion réseau. Si vous avez le programme freeware <em>'MacTCP Watcher'</>, cliquez sur le bouton <em>Ping</> et entrez l'adresse de votre hôte Linux (192.168.0.1) dans la boîte de dialogue qui apparait. (C'est uniquement une connexion locale, vous ne pouvez pas encore <tt>ping</>er l'extérieur). Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. <item> Vous pouvez, si vous le désirez, créer un fichier <tt>Hosts</> dans votre dossier système, pour pouvoir utiliser les noms d'hôte des machines de votre réseau local. Le fichier devrait déjà exister dans votre dossier système, et contenir quelques exemples commentés, que vous n'avez qu'à modifier pour correspondre à vos besoins. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect1> Configuration des systèmes MacOS utilisant Open Transport <p> <enum> <item> Si vous n'avez pas encore installé le driver pour votre carte Ethernet, ça serait une excellente idée de le faire maintenant. La description de cela dépasse le cadre de ce document. <item> Ouvrez le <em>'Tableau de bord TCP/IP'</> et choisissez <em>'Mode utilisateur...'</> dans le menu <em>'Edition'</>. Assurez nous que le mode utilisateur est mis au niveau <em>'Avancé'</> et cliquez sur le bouton <em>'OK'</>. <item> Choisissez <em>'Configurations...'</> depuis le menu <em>'Fichier'</>. Sélectionnez la configuration <em>'Par défaut'</> et cliquez sur le bouton <em>'Recopier'</>. Entrez 'IP Masq' (ou quelque chose d'autre du moment que vous puissiez etre sur qu'il s'agit d'une configuration spéciale) dans la boite de dialogue <em>'Configuration de copie'</>. Cliquez sur le bouton <em>'OK'</> puis sur <em>'Rendre active'</>. <item> Sélectionnez <em>'Ethernet'</> depuis le menu <em>'Se connecter via...'</>. <item> Sélectionnez l'option qui convient dans le menu <em>'Configuration'</>. Si vous ne savez pas quelle option choisir, vous devriez sans doute resélectionner la configuration par défaut et quitter. Je choisis <em>'Manuellement'</>. <item> Saisissez l'adresse IP de votre Mac (192.168.0.x, 1 < x < 255) dans la zone <em>'Adresse IP'</>. <item> Mettez le <em>'Masque de sous réseau'</> à 255.255.255.0. <item> L'<em>'Adresse de routeur'</> est 192.168.0.1. <item> Remplissez la case <em>'Adresse du DNS'</> en y mettant votre adresse IP. <item> Entrez le nom de votre domaine Internet (par exemple 'microsoft.com') dans la boite de dialogue <em>'Ordre de recherche DNS'</>. <item> La procédure suivante est optionnelle. L'utilisation de valeurs incorrectes peut entrainer des comportements inattendus. Si vous ne savez pas ce que vous faites, il vaut mieux ne pas y toucher, et si nécessaire vider les cases et zones de sélection. Pour ce que j'en sais, il n'est pas possible, par l'intermédiaire des boites de dialogue, de demander au système de ne pas utiliser un fichier "Hosts" sélectionné précédemment. Si vous saviez comment faire, je serais très intéressé. Sélectionnez l'option <em>'802.3'</> si votre réseau nécessite des paquets de type 802.3. <item> Cliquez sur le bouton <em>'Options...'</> pour vous assurer que le TCP/IP est activé. J'utilise l'option <em>'Charger uniquement si besoin'</>. Si vous lancez et quittez des applications utilisant TCP/IP assez souvent, sans relancer votre machine, vous pourrez sans doute désélectionner <em>'Charger uniquement si besoin'</> pour diminuer les effets sur le gestionnaire mémoire de votre machine. Lorsque l'option est désélectionnée, les piles du protocole TCP/IP sont toujours en mémoire et prêtes à l'emploi. Si l'option est cochée, la pile TCP/IP est automatiquement chargée lorsqu'elle est nécessaire, et déchargée sinon. Le processus de la charger et la décharger en mémoire peut fragmenter la mémoire de votre ordinateur. <item> <tt>Ping</>ez la machine Linux pour tester la connexion réseau. Si vous avez le programme freeware <em>MacTCP Watcher</>, cliquez sur le bouton <em>'Ping'</>, et entrez l'adresse de votre machine Linux (192.168.0.1) dans la boite de dialogue qui apparait. (C'est une connexion locale, vous ne pouvez pas encore <tt>ping</>er l'extérieur). Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. <item> Vous pouvez aussi créer un fichier <tt>Hosts</> dans votre dossier Système, pour pouvoir utiliser les noms d'hotes de votre réseau local. Le fichier peut exister ou non dans votre dossier Système. Si c'est le cas, il devrait contenir des exemples (en commentaires) que vous pouvez modifier selon vos souhaits. Sinon, vous pouvez obtenir une copie d'un système utilisant MacTCP, ou juste créer le votre (cela ressemble fortement au fichier <tt>/etc/hosts</> sur un système Unix, qui est décrit dans la RFC 952). Une fois le fichier créé, ouvrez le <em>'Tableau de bord TCP/IP'</>, cliquez sur le bouton <em>'Sélectionner le fichier Hosts...'</>, et ouvrez le fichier <tt>Hosts</>. <item> Cliquez sur <em>'Fermer'</> ou choisissez <em>'Fermer'</> ou <em>'Quitter'</> depuis le menu <em>'Fichier'</>, et cliquez alors sur le bouton <em>'Enregistrer'</> pour enregistrer vos changements. <item> Les changements prennent effet immédiatement, mais cela ne fera pas de mal de rebouter le système. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect1>Configurer un réseau Novell utilisant le DNS <p> <enum> <item> Si vous n'avez pas encore installé le gestionnaire de périphérique de votre adaptateur Ethernet, faites le dès maintenant. La description de cela dépasse le cadre de ce document. <item> Téléchargez tcpip16.exe depuis <url url="ftp://ftp.novell.com/pub/updates/unixconn/lwp5" name="The Novell LanWorkPlace page"> <item> Editez <tt>c:\nwclient\startnet.bat</> (voici une copie du mien)~: <verb> SET NWLANGUAGE=ENGLISH LH LSL.COM LH KTC2000.COM LH IPXODI.COM LH tcpip LH VLM.EXE F: </verb> <item> Editez <tt>c:\nwclient\net.cfg</> (changez le <tt>Link drivers</>, NE2000 dans mon cas)~: <verb> Link Driver KTC2000 Protocol IPX 0 ETHERNET_802.3 Frame ETHERNET_802.3 Frame Ethernet_II FRAME Ethernet_802.2 NetWare DOS Requester FIRST NETWORK DRIVE = F USE DEFAULTS = OFF VLM = CONN.VLM VLM = IPXNCP.VLM VLM = TRAN.VLM VLM = SECURITY.VLM VLM = NDS.VLM VLM = BIND.VLM VLM = NWP.VLM VLM = FIO.VLM VLM = GENERAL.VLM VLM = REDIR.VLM VLM = PRINT.VLM VLM = NETX.VLM Link Support Buffers 8 1500 MemPool 4096 Protocol TCPIP PATH SCRIPT C:\NET\SCRIPT PATH PROFILE C:\NET\PROFILE PATH LWP_CFG C:\NET\HSTACC PATH TCP_CFG C:\NET\TCP ip_address 192.168.0.xxx ip_router 192.168.0.1 </verb> <item> Changez l'adresse IP dans le champ <em>'ip_address'</> (192.168.0.x, 1 < x < 255) et finalement, créez <tt>c:\bin\resolv.cfg</>~: <verb> SEARCH DNS HOSTS SEQUENTIAL NAMESERVER xxx.xxx.xxx.xxx NAMESERVER yyy.yyy.yyy.yyy </verb> <item> Maintenant, éditez les entrées <em>'NAMESERVER'</> et remplacez les par l'adresse ip de votre serveur DNS local. <item> Testez votre connexion avec la passerelle en utilisant la commande <tt>ping</>~: <tt>ping 192.168.0.1</>. Ceci est juste un test sur votre réseau local, vous ne pouvez pas encore <tt>ping</>er l'extérieur. Si vous ne voyez pas de réponses a vos pings, vérifiez votre configuration réseau. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect1> Configurer OS/2 Warp <p> <enum> <item> Si vous n'avez toujours pas configuré votre adaptateur réseau Ethernet, c'est le moment de le faire. La description de cela dépasse le cadre de ce document. <item> Installez le protocole TCP/IP s'il n'est pas déjà présent. <item> Allez dans les paramètres <em>'Programs/TCP/IP(LAN)/TCP/IP'</> <item> Dans <em>'Network'</>, ajoutez votre adresse TCP/IP (192.168.0.x) et configurez votre masque de sous réseau (255.255.255.0) <item> Dans <em>'Routing'</> cliquez sur <em>'Ajouter'</>. Sélectionnez <em>'default'</> pour le <em>Type</> and entrez l'adresse de votre machine Linux dans le champs <em>'Router Address'</> (192.168.0.1). <item> Utilisez la même adresse DNS (Serveur de noms) que celle de votre machine Linux. <item> Fermez le panneau de contrôle de TCP/IP. Répondez oui au (à la) question(s) suivante(s). <item> Reboutez votre système. <item> Vous devriez être en mesure de <tt>ping</>er votre hôte Linux pour tester la configuration réseau. Taper <tt>'ping 192.168.0.1'</> dans une boîte de commande OS/2. Si vous recevez les paquets IP, tout fonctionne correctement. </enum> <!-- - - - - - - - - - - - - - - - - - --> <sect1> Configurer les autres systèmes <p> Ces systèmes devraient suivre la même logique d'installation. Lisez les sections précédentes. Si vous êtes intéressés par l'écriture de la documentation sur n'importe quel système, comme OS/2, ou une variété quelconque de système Unix, envoyez s'il vous plait des instructions détaillées à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> (Note du traducteur~: en anglais bien sûr). <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Tester IP Masquerade <p> <label id="Testing"> Enfin, il est temps de faire un vrai test de votre IP masquerading après tout ce dur labeur. Si vous n'avez pas encore rebooté votre machine Linux, faites le maintenant, et assurez vous que votre machine démarre sans problèmes. Exécutez vos règles dans <tt>/etc/rc.d/rc.firewall</>. Ensuite, assurez vous que votre réseau local fonctionne bien. <p> Maintenant, faites ce qui suit : <p> <enum> <item> Depuis une machine, interne MASQuée, essayez de <tt>ping</>er une machine locale (par exemple~: <em>ping 192.168.0.10</>). C'est pour vérifier que votre TCP/IP marche bien sur cette machine. Si cela ne marche pas, assurez vous de bien avoir configuré le TCP/IP sur le PC MASQué comme décrit plus haut dans ce HOWTO. <item> Sur le serveur MASQ, <tt>ping</>ez des adresses IP internes (par exemple~: <em>ping 192.168.0.10</>). Maintenant, <tt>ping</>ez l'adresse IP externe connectée a internet. Cette adresse IP devrais être votre adresse PPP, Ethernet, etc. connectée a votre FAI. Si vous ne connaissez pas cette adresse IP, lancez la commande <em>"/sbin/ifconfig"</em> depuis votre serveur MASQ pour récupérer votre adresse Internet. Cela confirmera que le serveur MASQ a une connectivité totale a Internet. <item> Revenez sur une machine MASQuée, et essayez de <tt>ping</>er l'adresse IP de la carte Ethernet interne de votre serveur MASQ (par exemple~: <em>ping 192.168.0.1</>). Cela prouvera que le routage de votre réseau interne marche. Si ça ne marche pas, assurez vous que la carte Ethernet de votre serveur a bien le "link". C'est habituellement une diode qui est sur le derriere de la carte Ethernet et aussi sur le hub/switch Ethernet (si vous en utilisez un). <item> Depuis une machine MASQuée, <tt>ping</>ez l'adresse externe de votre serveur MASQ que vous avez déjà testé dans l'item 2 ci dessus. Cette adresse IP devrais être votre adresse PPP, Ethernet, etc. connectée a votre FAI. Ce test de <tt>ping</> prouvera que votre masquerading marche (enfin, le masquerading ICMP au moins). Si ça ne marche pas, assurez vous d'avoir bien coché "ICMP Masquerading" dans la configuration de votre noyau et que vous avez bien "IP Forwarding" dans votre <tt>/etc/rc.d/rc.firewall</>. Assurez vous que les règles de votre <tt>/etc/rc.d/rc.firewall</> sont bien chargées. Essayez de lancer le script <tt>/etc/rc.d/rc.firewall</> manuellement pour vérifier qu'il fonctionne bien. <p> Si ça ne marche toujours pas, allez voir informations données par la sortie des commandes suivantes~: <itemize> <item> "<em>ifconfig</em>"~: Assurez vous que vous avez bien votre connexion internet d'établie et que vous avez la bonne adresse IP pour votre connexion internet. <item> "<em>netstat -rn</em>"~: Assurez vous que votre passerelle par défaut est bien (la colonne avec une adresse IP en gateway) <item> "<em>cat /proc/sys/net/ipv4/ip_forward</em>"~: Assurez vous bien que ça réponde "<tt>1</>" ce qui prouvera que l'ip forwarding est activé <item> "<em>/sbin/ipfwadm -F -l</em>" pour les 2.0 ou "<em>/sbin/ipchains -F -L</em>" pour les 2.2.x~: Assurez vous de bien avoir le MASQ d'intégré </itemize> <item> Pour une machine MASQuée, <tt>ping</>ez une adresse IP statique sur internet (par exemple~: <em>ping 152.19.254.81</em> (c'est <tt>http://metalab.unc.edu/</> maison du LDP). Si ça marche, cela signifie que le masquerading ICMP marche via internet. Si cela n'a pas marché, revérifiez votre connexion Internet. Si ça ne marche toujours pas, assurez vous que les règles de votre rc.firewall sont bien chargées et que vous avec compilé l'"ICMP Masquerading" dans votre noyau. <item> Maintenant, faites un TELNET sur une adresse IP distante (par exemple~: <em>telnet 152.2.254.81</> (metalab.unc.edu - notez que cela peut prendre longtemps avant d'avoir le prompt de login car c'est un serveur très chargé). Vous avez eu le prompt de login~? Si ça a marché, cela signifie que le masquerading TCP marche aussi. Si non, essayez de faire un telnet sur une autre machine qui le supporte comme 198.182.196.55 (www.linux.org). Si ça ne marche toujours pas, vérifiez que vous utilisez bien des règles simples pour l'instant. <item> Maintenant, essayez de faire un telnet sur un nom de machine (par exemple~: <em>"telnet metalab.unc.edu"</> (152.2.254.81)). Si ça marche aussi, cela signifie que le DNS marche aussi. Si ça ne marche pas mais que l'étape 4 a marchée, assurez vous de bien avoir configuré les bons serveurs DNS sur votre ordinateur MASQué <item> Comme dernier test, essayez de naviguer sur quelques sites web sur <em>'Internet'</> depuis l'une de vos machines <bf>MASQuées</>, et voyez si vous pouvez les atteindre. Par exemple, essayez d'accéder au <htmlurl url="http://metalab.unc.edu/LDP" name="site du LDP">. Si ça marche, vous pouvez être fier, tout marche sans problèmes~! </enum> <p> Si vous voyez la page du LDP <bf>FÉLICITATIONS~! Ça marche~!</> Si le site web apparaît bien, les autres outils réseau comme <tt>ping</>, <tt>telnet</>, <tt>ssh</> et avec leurs modules chargés~: <tt>ftp</>, Real Audio, les DCC IRC, Quake I, ][, ]I[, CuSeeme, vdolive, etc. devraient aussi marche~! Si le <tt>ftp</>, l'<tt>irc</>, ou autres marchent mal ou pas du tout, assurez vous que leurs modules respectifs sont bien chargés en lançant <tt>lsmod</> et aussi, assurez vous de bien charger les modules avec les bons ports. Si vous ne voyez pas un module dont vous avez besoin, assurez vous qu'il est bien chargé dans le <tt>/etc/rc.d/rc.firewall</> (par exemple~: enlevez le # qui se trouve au début de la ligne). <!-- Section 4 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Autres sujets relatifs à IP Masquerade et au support logiciel <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Problèmes avec IP Masquerade <p> Certains protocoles TCP/IP propriétaires ne marcheront pas avec l'IP masquerading Linux, soit car ils supposent des choses sur les numéros de port ou soit qu'ils encodent les adresses/ports TCP/IP dans leurs les données. Ces protocoles ont besoin de proxy ou de modules intégrés dans le code du masquerading pour fonctionner. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Services entrants <p> A la base, le masquerading ne peut pas du tout prendre en charge les services entrants mais il y a plusieurs façons de les autoriser Si vous n'avez pas besoin d'une grande sécurité, vous pouvez simplement rediriger ou forwarder les ports. Il y a de nombreuses façons de faire cela toutefois, la meilleur solution est d'utiliser IPPORTFW. Pour plus d'informations, référez vous a la section <ref id="Forwarders">. Si vous désirez avoir des niveaux d'autorisation sur les connexions entrantes, vous aurez alors soit à utiliser les <tt>TCP Wrappers</> soit <tt>Xinetd</> pour autoriser seulement des adresses IP données, ou utiliser d'autre outils. La boîte à outils pour firewall TIS (TIS Firewall Toolkit) est un bon produit pour ceux qui cherchent des outils et des informations. Plus de détails sur la sécurité peuvent être trouvés dans le document <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS"> et sur <url url="http://ipmasq.cjb.net" name="la page de l'IP Masquerade">. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="Supported Client Software"> <sect1> Programmes clients supportés et autres remarques pour la configuration <p> <label id="Clients"> <quote><bf> ** Voyez la <url url="http://dijon.nais.com/~nevo/masq/" name="page"> sur les applications fonctionnant au travers d'IP Masquerading contient plein de bonnes informations. Malheureusement, Cette page n'est plus vraiment mise a jour, si vous voulez vous en occuper, envoyez un mail a <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et/ou <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net">. </></quote> En général, toutes les applications qui utilisent TCP et/ou UDP de manière standard devraient fonctionner. Si vous avez une quelconque suggestion ou question à propos des applications compatibles avec IP masquerade, visitez <url url="http://ipmasq.cjb.net" name="la page de l'IP Masquerade">. <!-- - - - - - - - - - - - - - - - - - --> <sect2> Les clients réseau qui <bf>fonctionnent</> avec l'IP Masq <p>Clients génériques <descrip> <tag> Archie </> toutes les plateformes, client de recherche de fichiers (tous les clients ne fonctionnent pas) ; <tag> FTP </> toutes les plateformes, avec le module <tt>ip_masq_ftp.o</> (tous les sites ne fonctionnent pas avec certains clients~; par exemple, certains sites ne peuvent pas être atteints en utilisant ws_ftp32 mais fonctionnent avec Netscape) ; <tag> Gopher </> toutes les plateformes ; <tag> HTTP </> toutes les plateformes, naviguer sur le web ; <tag> IRC </> toutes les plateformes, avec le module <tt>ip_masq_irc.o</> ; <tag> NNTP </> toutes les plateformes, client news USENET ; <tag> ping </> toutes plateformes, avec le patch ICMP <tag> POP </> toutes les plateformes, clients de courrier électronique ; <tag> SSH </> toutes plateformes, client Telnet/FTP sécurisé ; <tag> SMTP </> toutes les plateformes, clients de courrier électronique ; <tag> Telnet </> toutes les plateformes, sessions distantes ; <tag> traceroute </> surtout les plateformes UNIX, certaines variantes ne devraient pas fonctionner ; <tag> VRML </> Windows (peut être toutes les plateformes), réalité virtuelle ; <tag> WAIS </> toutes les plateformes. </descrip> <p>Clients Multimédia et de communication <descrip> <tag> Alpha Worlds </> Windows, programme client-serveur de discussion 3D <tag> CU-SeeMe </> toutes les plateformes, avec le module cuseeme, voir la section <ref id="CuSeeme"> pour les détails. <tag> ICQ </> Tous clients supportés. Requiert d'avoir compilé le noyau avec IPPORTFW et qu'ICQ soit configuré pour être derrière un proxy non socks. Une description complète de la configuration se trouve dans la section <ref id="ICQ">. <tag> Internet Phone 3.2 </> Windows, communications audio. Vous ne pouvez être contacté que si vous initiez la connexion, mais on ne peut pas vous appeler si vous n'avez pas mis en place un port forwarding spécifique. Référez vous a la section <ref id="Forwarders"> pour plus de détails. <tag> Internet Wave Player </> Windows, flux audio par réseau <tag> Powwow </> Windows, communication audio. Vous ne pouvez être contacté que si vous initiez la connexion, mais on ne peut pas vous appeler si vous n'avez pas mis en place un port forwarding spécifique. Référez vous a la section <ref id="Forwarders"> pour plus de détails. <tag> Real Audio Player 2.0 </> Windows, flux audio par réseau, on obtient une meilleur qualité avec le module <tt>ip_masq_raudio</>. <tag> True Speech Player 1.1b </> Windows, flux audio par réseau <tag> VDOLive </> Windows, avec le patch <em>ip_masq_vdolive</> <tag> Worlds Chat 0.9a </> Windows, programme client-serveur de discussion 3D </descrip> <label id="Game-Clients"> Jeux - Référez vous a la section <ref id="LooseUDP"> pour plus d'informations sur comment utiliser le patch LooseUDP. <descrip> <tag> Battle.net </tag> Fonctionne mais requiert que les ports TCP 116 et 118 et le port UDP 6112 soient IPPORTFW<!--NdT : vi, c'est pas beau du tout un bon point a celui qui fait mieux ;)--> sur la machine qui joue. Référez vous a la section <ref id="Forwarders"> pour plus de détails. Notez que les serveurs FSGS et Bnetd requièrent toujours IPPORTFW car ils n'ont pas été réécrits pour marcher avec le NAT. <tag> BattleZone 1.4 </tag> Fonctionne avec le patch LooseUDP et les nouvelles <htmlurl url="http://us4.alink.activision.com/tmp/nat/" name=".DLLs d'Activision"> qui marchent avec le NAT. <tag> Dark Reign 1.4 </tag> Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118 et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Référez vous a la section <ref id="Forwarders"> pour plus de détails <tag> Diablo </tag> Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118 et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Les dernières version de Diablo utilisent uniquement les ports TCP et UDP 6112. Référez vous a la section <ref id="Forwarders"> pour plus de détails <tag> Heavy Gear 2 </tag> Fonctionne avec le patch LooseUDP ou requiert que les ports TCP 116 et 118 et le port UDP 6112 soient IPPORTFW sur la machine qui joue. Référez vous a la section <ref id="Forwarders"> pour plus de détails <tag> Quake I/][/]I[ </tag> Fonctionne sans problèmes avec le module <em>ip_masq_quake</> si il y a plusieurs joueurs derrière la machine MASQ. Ce module ne supporte que Quake I et QuakeWorld par défaut. Si vous avez besoin d'utiliser Quake ][ ou des ports non standards, regardez comment s'installe le module dans les sections <ref id="rc.firewall-2.0.x"> et <ref id="rc.firewall-2.2.x">. <tag> StarCraft </tag> Fonctionne avec le patch LooseUDP ou requiert que les ports TCP et UDP 6112 soient IPPORTFW sur la machine qui joue. Référez vous a la section <ref id="Forwarders"> pour plus de détails <tag> WorldCraft </tag> Fonctionne avec le patch LooseUDP. </descrip> <p>Autres clients <descrip> <tag> Linux net-acct package </> Linux, package d'administration par réseau <tag> NCSA Telnet 2.3.08 </> DOS, une suite de logiciels contenant telnet, ftp, ping, etc... <tag> PC-anywhere pour Windows </> MS-Windows, controle d'un PC à distance avec TCP/IP, fonctionne uniquement si la machine est un client et non un hôte si vous n'avez pas joué avec IPPORTFW. Référez vous a la section <ref id="Forwarders"> pour plus de détails <tag> Socket Watch </> utilise ntp - network time protocol </descrip> <!-- - - - - - - - - - - - - - - - - - --> <sect2> Clients qui ne fonctionnent pas <p> <descrip> <tag> Tous les programmes H.323 </> MS Netmeeting, Intel Internet Phone Beta 2... Connexion ok, mais la voix ne peut que sortir de votre réseau. Allez faire un tour sur la passerelle H.323 <url url="http://www.equival.com.au/phonepatch/index.html" name="Equivalence's PhonePatch"> qui est une solution possible. <tag> Intel Streaming Media Viewer Beta 1 </> Connexion impossible au serveur. <tag> Netscape CoolTalk </> Connexion à l'hôte distant impossible. <tag> WebPhone </> Ne peut pas fonctionner (il fait des suppositions invalides sur les adresses). </descrip> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Regles ipfwadm plus sures <p> <label id="Strong-IPFWADM-Rulesets"> Cette section constitue un guide plus précis sur l'utilisation de l'outil de reglage du firewall sur les noyaux 2.0, ipfwadm. Allez voire plus bas pour ipchains. Voici un exemple de script d'initialisation pour un système qui fait office de firewall et de masquerading derriere un lien PPP avec une IP statique (des instructions pour les ip dynamiques sont données, mais commentées). L'interface à laquelle on fait confiance est 192.168.0.1 (celle du réseau local) et l'adresse IP de l'interface PPP a été changée pour des raisons de sécurité. Toutes les interfaces sont listées individuellement pour intercepter l'IP spoofing et les routages inexacts. Tout ce qui n'est pas explicitement autorisé est <bf>INTERDIT</> (disons plutôt rejeté). Si machine IP MASQ ne marche plus apres avoir lancé ce script, assurez vous de bien avoir édité le script pour qu'il sont en accord avec votre configuration, allez aussi jeter un coup d'oeil dans votre syslog <tt>/var/log/messages</> ou <tt>/var/adm/messages</> pour y trouver une ou deux erreurs de firewall. Pour des exemples plus précis sur l'implémentation de règles sures pour PPP, modem Câble, etc., référez vous à <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> et <htmlurl url="http://www.greatcircle.com/" name="GreatCircle's Firewall WWW page"> <bf>NOTE~:</bf> Si vous avez une adresse TCP/IP assignée dynamiquement par votre FAI (PPP, ADSL, Câble, etc.), vous <bf>ne pouvez pas charger ce script au boot</>. Vous allez soit avoir a le recharger a chaque fois que vous changez d'adresse IP, soit rendre votre <tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour les utilisateurs de PPP, lisez attentivement et décommentez les lignes qui vous concernent dans la section "Récupération dynamique de l'IP en PPP" ci dessous. Vous pourrez aussi trouver plus de détails dans <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> pour plus de détails sur les règles plus sures avec des IP Dynamiques. <bf>Rappelez vous qu'il y a plein d'outils graphiques pour régler votre Firewall. Référez vous a la section <ref id="FAQ"> pour plus de détails.</> Enfin, si vous utilisez une adresse PPP statique, changez la ligne "ppp_ip = "votre_adresse_ip_statique"" pour refléter votre adresse. <verb> #!/bin/sh # # /etc/rc.d/rc.firewall, un exemple de regles plutot sures de firewall avec ipfwadm # PATH=/sbin:/bin:/usr/sbin:/usr/bin # pour les tests, attend un moment puis efface toutes les règles du # firewall. Décommentez les lignes suivantes si vous voulez que le firewall soit # désactivé automatiquement après 10 minutes. # (sleep 600; \ # ipfwadm -I -f; \ # ipfwadm -I -p accept; \ # ipfwadm -O -f; \ # ipfwadm -O -p accept; \ # ipfwadm -F -f; \ # ipfwadm -F -p accept; \ # ) & ######################################################################################## # Necessaire pour charger les modules # /sbin/depmod -a # Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT. # /sbin/modprobe ip_masq_ftp # Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA, # mais en mode TCP. Cela peut causer une réduction dans la qualité du son. # #/sbin/modprobe ip_masq_raudio # Supporte le masquerading des transferts IRC DCC. # #/sbin/modprobe ip_masq_irc # Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous # avez plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, # ][ et ]I[, utilisez le deuxieme exemple. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960 # Supporte le masquerading du systeme de visioconférences CuSeeMe # #/sbin/modprobe ip_masq_cuseeme # Supporte le masquerading du systeme de visioconférences VDO Live # #/sbin/modprobe ip_masq_vdolive # CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le # noyau 2.0.34 # # Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network # de : # FORWARD_IPV4=false # à : # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward # Utilisateurs d'IP dynamiques : # # Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option # suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP # dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien # plus facile. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Spécifiez votre adresse IP statique ici. # # Si vous utilisez une adresse IP DYNAMIQUE, vous avez besoin de faire comprendre a ce # jeu de règles que votre IP a changée a chaque fois qu'elle change. Pour faire cela, # décommentez le script suivant. (Notez qu'il y a une différence importante entre les # guillemets simples et doubles). # # Vous aurez aussi besoin soit de créer le lien suivant ou que votre /etc/ppp/ip-up # existant lance votre /etc/rc.d/rc.firewall. # # ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up # # Si le fichier /etc/ppp/ip-up existe déjà, vous devriez l'éditer et ajouter une ligne # contenant "/etc/rc.d/rc.firewall" aux alentours de la fin du fichier. # # Si vous ne vous en etes pas encore rendu comptes, le script /etc/ppp/ip-up est # toujours lancé lorsqu'une connexion PPP est établie. Grâce a cela, nous pouvons dire # au script d'aller chercher la nouvelle adresse IP pour pouvoir mettre a jour les # règles sures. # # Utilisateurs PPP : # Le bout de script suivant devrais marcher sans problèmes. # # Utilisateurs de DHCP : # Si vous obtenez votre adresse TCP/IP via DHCP, vous aurez a remplacer le mot # ppp0 par le nom de votre interface via laquelle vous êtes connectés a Internet # (eth0, eth1, etc). Il devrais aussi être noté que le DHCP peut changer votre IP # adresse. Pour régler cela vous devriez configurer votre client DHCP pour # relancer vos règles de firewall a chaque vois que votre bail est # renouvelé. Pour les utilisateurs de DHCPcd, utilisez l'option -c. # #ppp_ip = "`/sbin/ifconfig ppp0 | perl -ne 'if (/inet addr:([^ ]*)/) {print $1}'`" # ppp_ip = "votre_adresse_ip_statique" # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ) # /sbin/ipfwadm -M -s 7200 10 160 ######################################################################################## # Connexions entrantes, efface tout et positionne le comportement par défaut à reject # (refus). En fait, le comportement par défaut est inadéquat puisqu'il y a une règle # pour tout intercepter, avec refus et logging. # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p reject # interface locale, machines locales. Aller n'importe où est autorisé. # /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0 # interface distante, prétendant être une machine locale. C'est de l'IP spoofing, on # refuse. # /sbin/ipfwadm -I -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o # interface distante, n'importe qu'elle source, l'accès à notre adresse PPP est valide # /sbin/ipfwadm -I -a accept -V $ppp_ip -S 0.0.0.0/0 -D $ppp_ip/32 # l'interface loopback est valide. # /sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # une fois toutes les règles faites, toutes les autres connexions entrantes sont # refusées et logguées. # /sbin/ipfwadm -I -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o ######################################################################################## # Connexions sortantes,efface tout et positionne le comportement par défaut à reject # (refus).En fait, le comportement par défaut est inadéquat puisqu'il y a une règle pour # tout intercepter, avec refus et logging. # /sbin/ipfwadm -O -f /sbin/ipfwadm -O -p reject # interface locale, machines locales. N'importe quelle source allant vers le réseau # local est valide. # /sbin/ipfwadm -O -a accept -V 192.168.0.1 -S 0.0.0.0/0 -D 192.168.0.0/24 # destination vers le réseau local à partir de l'interface sortante. C'est du routage # piraté, tout refuser. # /sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o # sortante depuis le réseau local sur l'interface sortante. C'est du masquerading # pirate, tout refuser. # /sbin/ipfwadm -O -a reject -V $ppp_ip -S 192.168.0.0/24 -D 0.0.0.0/0 -o # sortante depuis le réseau local sur l'interface sortante. C'est du masquerading # pirate, tout refuser. # /sbin/ipfwadm -O -a reject -V $ppp_ip -S 0.0.0.0/0 -D 192.168.0.0/24 -o # Tout ce qui sort d'autre de l'interface distante est bon # /sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0 # l'interface loopback est valide. # /sbin/ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # une fois toutes les règles faites, toutes les autres connexions sortantes sont # refusées et logguées. # /sbin/ipfwadm -O -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o ######################################################################################## # Connexions à faire suivre (forwarding), efface tout et positionne le comportement par # défaut à reject (refus). En fait, le comportement par défaut est inadéquat puisqu'il y # a une règle pour tout intercepter, avec refus et logging. # /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p reject # Masquerade depuis le réseau local sur l'interface locale vers n'importe où # /sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0 # une fois toutes les règles faites, toutes les autres connexions à faire suivre sont # refusées et logguées. # /sbin/ipfwadm -F -a reject -S 0.0.0.0/0 -D 0.0.0.0/0 -o </verb> Avec IPFWADM, vous pouvez bloquer le trafic vers ou depuis un site particulier en utilisant -I, -O ou -F appropriées. Souvenez vous que les règles sont analysées de haut en bas, et "<tt>-a</>" signifie ajoute (<em>"append"</>) à l'ensemble des règles existantes. Avec cela en mémoire, toute restriction spécifique doit venir avant les regles globales. Par exemple~: En utilisant les règles -I. Probablement le plus rapide mais stoppe uniquement les machines locales, le firewall peut encore accéder au site "interdit". C'est peut être d'ailleurs le comportement que vous désirez. Dans le <tt>/etc/rc.d/rc.firewall</>~: <verb> ... début des règles -I ... # rejette et loggue l'interface locale et la machine locale allant sur 204.50.10.13 # /sbin/ipfwadm -I -a reject -V 192.168.0.1 -S 192.168.0.0/24 -D 204.50.10.13/32 -o # interface locale, machines locales. Aller n'importe où est autorisé. # /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0 ... fin des règles -I ... </verb> En utilisant les règles -O. C'est le plus lent puisque les paquets passent d'abord à travers le masquerading, mais cette règle empèche même au firewall d'accéder au site interdit. <verb> ... début des règles -O ... # rejette et loggue les connexions sortantes vers 204.50.10.13 # /sbin/ipfwadm -O -a reject -V $ppp_ip -S $ppp_ip/32 -D 204.50.10.13/32 -o # tout le reste, sortant vers l'interface distante est valide # /sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0 ... fin des règles -O ... </verb> En utilisant les règles -F. Probablement plus lent qu'en utilisant les règles -I, et cela stoppe uniquement les machines pour lesquelles on effetue du masquerading (c'est à dire les machines internes). Le firewall peut encore accéder au site interdit. <verb> ... début des règles -F ... # Rejette et loggue les connexions depuis le réseau local sur l'interface PPP vers # 204.50.10.13. # /sbin/ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/24 -D 204.50.10.13/32 -o # Masquerade depuis le réseau local sur l'interface locale vers n'importe où # /sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0 ... fin des règles -F ... </verb> Il n'y a pas besoin d'une règle spéciale pour autoriser 192.168.0.0/24 à se connecter sur 204.50.11.0, ce comportement est inclus dans les règles globales. <p> Il y a plus d'une façon d'écrire les règles précédentes. Par exemple, au lieu de -V 192.168.0.1, vous pouvez utiliser -W eth0, au lieu de -V $ppp_ip, vous pouvez utiliser -W ppp0. Le -V a été supprimé lors du passage a ipchains, mais pour les utilisateurs de ipfwadm, c'est une question de goût personnel. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Chaines IP Firewalling (ipchains) <p> <label id="Strong-IPCHAINS-Rulesets"> Cette section constitue un guide plus précis sur l'utilisation de l'outil de reglage du firewall sur les noyaux 2.2, ipchains. Allez voire plus haut pour ipfwadm. Voici un exemple de script d'initialisation pour un système qui fait office de firewall et de masquerading derriere un lien PPP avec une IP statique (des instructions pour les ip dynamiques sont données, mais commentées). L'interface à laquelle on fait confiance est 192.168.0.1 (celle du réseau local) et l'adresse IP de l'interface PPP a été changée pour des raisons de sécurité. Toutes les interfaces sont listées individuellement pour intercepter l'IP spoofing et les routages inexacts. Tout ce qui n'est pas explicitement autorisé est <bf>INTERDIT</> (disons plutôt rejeté). Si machine IP MASQ ne marche plus apres avoir lancé ce script, assurez vous de bien avoir édité le script pour qu'il sont en accord avec votre configuration, allez aussi jeter un coup d'oeil dans votre syslog <tt>/var/log/messages</> ou <tt>/var/adm/messages</> pour y trouver une ou deux erreurs de firewall. Pour des exemples plus précis sur l'implémentation de règles sures pour PPP, modem Câble, etc., référez vous à <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> et <htmlurl url="http://www.greatcircle.com/" name="GreatCircle's Firewall WWW page"> <bf>NOTE~:</bf> Si vous avez une adresse TCP/IP assignée dynamiquement par votre FAI (PPP, ADSL, Câble, etc.), vous <bf>ne pouvez pas charger ce script au boot</>. Vous allez soit avoir a le recharger a chaque fois que vous changez d'adresse IP, soit rendre votre <tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour les utilisateurs de PPP, lisez attentivement et décommentez les lignes qui vous concernent dans la section "Récupération dynamique de l'IP en PPP" ci dessous. Vous pourrez aussi trouver plus de détails dans <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> pour plus de détails sur les règles plus sures avec des IP Dynamiques. <bf>Rappelez vous qu'il y a plein d'outils graphiques pour régler votre Firewall. Référez vous a la section <ref id="FAQ"> pour plus de détails.</> Enfin, si vous utilisez une adresse PPP statique, changez la ligne "ppp_ip = "votre_adresse_ip_statique"" pour refléter votre adresse. <verb> #!/bin/sh # # /etc/rc.d/rc.firewall: un exemple de regles plutot sures de firewall avec ipchains # PATH=/sbin:/bin:/usr/sbin:/usr/bin # pour les tests, attend un moment puis efface toutes les règles du # firewall. Décommentez les lignes suivantes si vous voulez que le firewall soit # désactivé automatiquement après 10 minutes. # (sleep 600; \ # ipchains -F \ # ipchains -X \ # ) & ######################################################################################## # Necessaire pour charger les modules # /sbin/depmod -a # Supporte le masquerading des transferts de fichiers FTP utilisant la méthode PORT. # /sbin/modprobe ip_masq_ftp # Supporte le masquerading de RealAudio via UDP. Sans ce module, RealAudio FONCTIONNERA, # mais en mode TCP. Cela peut causer une réduction dans la qualité du son. # #/sbin/modprobe ip_masq_raudio # Supporte le masquerading des transferts IRC DCC. # #/sbin/modprobe ip_masq_irc # Supporte le masquerading de Quake et QuakeWorld par défaut. Ce module sert si vous # avez plusieurs utilisateurs derriere le serveur MASQ. Si vous allez jouer a Quake I, # ][ et ]I[, utilisez le deuxieme exemple. # #Quake I / QuakeWorld (ports 26000 et 27000) #/sbin/modprobe ip_masq_quake # #Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960) #/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960 # Supporte le masquerading du systeme de visioconférences CuSeeMe # #/sbin/modprobe ip_masq_cuseeme # Supporte le masquerading du systeme de visioconférences VDO Live # #/sbin/modprobe ip_masq_vdolive # CRITIQUE : Permet le relayage de paquets IP car il est désactivé par défaut depuis le # noyau 2.0.34 # # Utilisateurs RedHat : Vous pouvez aussi changer l'option dans /etc/sysconfig/network # de : # FORWARD_IPV4=false # à : # FORWARD_IPV4=true # echo "1" > /proc/sys/net/ipv4/ip_forward # Utilisateurs d'IP dynamiques : # # Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option # suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP # dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien # plus facile. # #echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Spécifiez votre adresse IP statique ici. # # Si vous utilisez une adresse IP DYNAMIQUE, vous avez besoin de faire comprendre a ce # jeu de règles que votre IP a changée a chaque fois qu'elle change. Pour faire cela, # décommentez le script suivant. (Notez qu'il y a une différence importante entre les # guillemets simples et doubles). # # Vous aurez aussi besoin soit de créer le lien suivant ou que votre /etc/ppp/ip-up # existant lance votre /etc/rc.d/rc.firewall. # # ln -s /etc/rc.d/rc.firewall /etc/ppp/ip-up # # Si le fichier /etc/ppp/ip-up existe déjà, vous devriez l'éditer et ajouter une ligne # contenant "/etc/rc.d/rc.firewall" aux alentours de la fin du fichier. # # Si vous ne vous en etes pas encore rendu comptes, le script /etc/ppp/ip-up est # toujours lancé lorsqu'une connexion PPP est établie. Grâce a cela, nous pouvons dire # au script d'aller chercher la nouvelle adresse IP pour pouvoir mettre a jour les # règles sures. # # Utilisateurs PPP : # Le bout de script suivant devrais marcher sans problèmes. # # Utilisateurs de DHCP : # Si vous obtenez votre adresse TCP/IP via DHCP, vous aurez a remplacer le mot # ppp0 par le nom de votre interface via laquelle vous êtes connectés a Internet # (eth0, eth1, etc). Il devrais aussi être noté que le DHCP peut changer votre IP # adresse. Pour régler cela vous devriez configurer votre client DHCP pour # relancer vos règles de firewall a chaque vois que votre bail est # renouvelé. Pour les utilisateurs de DHCPcd, utilisez l'option -c. # extint = "ppp0" #extip = "`/sbin/ifconfig $extint | perl -ne 'if (/inet addr:([^ ]*)/) {print $1}'`" # extip = "votre_adresse_ip_statique" # L'ip interne e intint="eth0" intnet="192.168.0.1/24" # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 60 sec pour le traffic UDP (Les utilisateurs d'ICQ doivent configurer leur ICQ avec # un timeout de firewall de 30 secondes) # ipchains -M -S 7200 10 60 ######################################################################################## # Connexions entrantes, efface tout et positionne le comportement par défaut à reject # (refus). En fait, le comportement par défaut est inadéquat puisqu'il y a une règle # pour tout intercepter, avec refus et logging. # ipchains -F input ipchains -P input REJECT # interface locale, machines locales. Aller n'importe où est autorisé. # ipchains -A input -i $intint -s $intnet -d 0.0.0.0/0 -j ACCEPT # interface distante, prétendant être une machine locale. C'est de l'IP spoofing, on # refuse. # ipchains -A input -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT # interface distante, n'importe qu'elle source, l'accès à notre adresse PPP est valide # ipchains -A input -i $extint -s 0.0.0.0/0 -d $extip/32 -j ACCEPT # l'interface loopback est valide. # ipchains -A input -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # une fois toutes les règles faites, toutes les autres connexions entrantes sont # refusées et logguées. # ipchains -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT ######################################################################################## # Connexions sortantes,efface tout et positionne le comportement par défaut à reject # (refus).En fait, le comportement par défaut est inadéquat puisqu'il y a une règle pour # tout intercepter, avec refus et logging. # ipchains -F output ipchains -P output REJECT # interface locale, machines locales. N'importe quelle source allant vers le réseau # local est valide. # ipchains -A output -i $intint -s 0.0.0.0/0 -d $intnet -j ACCEPT # destination vers le réseau local à partir de l'interface sortante. C'est du routage # piraté, tout refuser. # ipchains -A output -i $extint -s 0.0.0.0/0 -d $intnet -l -j REJECT # sortante depuis le réseau local sur l'interface sortante. C'est du masquerading # pirate, tout refuser. # ipchains -A output -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT # Tout ce qui sort d'autre de l'interface distante est bon # ipchains -A output -i $extint -s $extip/32 -d 0.0.0.0/0 -j ACCEPT # l'interface loopback est valide. # ipchains -A output -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # une fois toutes les règles faites, toutes les autres connexions sortantes sont # refusées et logguées. # ipchains -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT ######################################################################################## # Connexions à faire suivre (forwarding), efface tout et positionne le comportement par # défaut à reject (refus). En fait, le comportement par défaut est inadéquat puisqu'il y # a une règle pour tout intercepter, avec refus et logging. # ipchains -F forward ipchains -P forward DENY # Masquerade depuis le réseau local sur l'interface locale vers n'importe où # ipchains -A forward -i $extint -s $intnet -d 0.0.0.0/0 -j MASQ # # une fois toutes les règles faites, toutes les autres connexions à faire suivre sont # refusées et logguées. # ipchains -A forward -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT </verb> <!--NdT~: C'est moi ou l'auteur original a juste fait un copier/coller et n'a même pas changé les commandes ?--> Avec IPCHAINS, vous pouvez bloquer le trafic vers ou depuis un site particulier en utilisant les règles "input", "output" et "forward". Souvenez vous que les règles sont analysées de haut en bas, et "<tt>-A</>" signifie ajoute (<em>"append"</>) à l'ensemble des règles existantes. Avec cela en mémoire, toute restriction spécifique doit venir avant les regles globales. Par exemple~: En utilisant les règles "input". Probablement le plus rapide mais stoppe uniquement les machines locales, le firewall peut encore accéder au site "interdit". C'est peut être d'ailleurs le comportement que vous désirez. Dans le <tt>/etc/rc.d/rc.firewall</>~: <verb> ... début des règles "input" ... # rejette et loggue l'interface locale et la machine locale allant sur 204.50.10.13 # /sbin/ipfwadm -I -a reject -V 192.168.0.1 -S 192.168.0.0/24 -D 204.50.10.13/32 -o # interface locale, machines locales. Aller n'importe où est autorisé. # /sbin/ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24 -D 0.0.0.0/0 ... fin des règles -I ... </verb> En utilisant les règles "output. C'est le plus lent puisque les paquets passent d'abord à travers le masquerading, mais cette règle empèche même au firewall d'accéder au site interdit. <verb> ... début des règles "output" ... # rejette et loggue les connexions sortantes vers 204.50.10.13 # /sbin/ipfwadm -O -a reject -V $ppp_ip -S $ppp_ip/32 -D 204.50.10.13/32 -o # tout le reste, sortant vers l'interface distante est valide # /sbin/ipfwadm -O -a accept -V $ppp_ip -S $ppp_ip/32 -D 0.0.0.0/0 ... fin des règles -O ... </verb> En utilisant les règles "forward". Probablement plus lent qu'en utilisant les règles -I, et cela stoppe uniquement les machines pour lesquelles on effetue du masquerading (c'est à dire les machines internes). Le firewall peut encore accéder au site interdit. <verb> ... début des règles "forward" ... # Rejette et loggue les connexions depuis le réseau local sur l'interface PPP vers # 204.50.10.13. # /sbin/ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/24 -D 204.50.10.13/32 -o # Masquerade depuis le réseau local sur l'interface locale vers n'importe où # /sbin/ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/24 -D 0.0.0.0/0 ... fin des règles -F ... </verb> Il n'y a pas besoin d'une règle spéciale pour autoriser 192.168.0.0/24 à se connecter sur 204.50.11.0, ce comportement est inclus dans les règles globales. Contrairement a ipfwadm, il n'y a qu'une seule façon de spécifier l'interface dans ipchains, utilisez "-i interface". <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> MASQuer de multiples sous réseaux internes <p> MASQuer plus d'un sous réseau interne est assez simple. Vous n'avez qu'a vous assurer que tous vos réseaux fonctionnent bien (en interne et avec l'extérieur). Ensuite, vous aurez a autoriser le traffic a passer via vos interface réseaux vers Internet. Ensuite, vous aurez a autoriser les autres interfaces internes, cet exemple montre comment masquer les interfaces eth1 (192.168.0.1) et eth2 (192.168.1.1) derriere eth0. Dans votre <tt>rc.firewall</> juste apres la ligne autorisant le MASQ, ajoutez les lignes~: <itemize> <item>Noyaux 2.0 avec IPFWADM <verb> # Permet aux interfaces internes de communiquer ensemble /sbin/ipfwadm -F -a -V 192.168.0.1 -D 192.168.1.0/24 /sbin/ipfwadm -F -a -V 192.168.1.1 -D 192.168.0.0/24 # Permet aux interfaces internes d'etre MASQuées pour Internet /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.0.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -F -a masq -W eth0 -S 192.168.1.0/24 -D 0.0.0.0/0 </verb> <p> <item>Noyaux 2.2 avec IPCHAINS <verb> #Enable internal interfaces to communication between each other /sbin/ipchains -A forward -i eth1 -d 192.168.1.0/24 /sbin/ipchains -A forward -i eth2 -d 192.168.0.0/24 #Enable internal interfaces to MASQ out to the Internet /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24 -d 0.0.0.0/0 /sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 </verb> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="Diald"> <sect1> L'IP Masquerade et la numérotation à la demande. <p> <enum> <item> Si vous voulez que votre réseau se connecte automatiquement à Internet, soit avec le package <em>diald</> soit avec les dernieres versions du paquetage <em>PPPd</>. Diald est la solution de numérotation à la demande recommandée. <item> Pour mettre en place <em>Diald</>, veuillez vous référer à la page (en anglais) <url url="http://home.pacific.net.sg/~harish/diald.config.html" name="Setting Up Diald for Linux Page"> ou <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 23"> <item> Une fois que diald et IP masq auront été installés, vous pouvez aller sur n'importe laquelle des machines clients et initier une connexion web, telnet ou ftp et cela fera que votre machine Linux se connectera a Internet. <item> Un <em>timeout</> (délai d'attente dépassé) sera inévitable sur la première connexion, mais c'est le lot des modems analogiques. Le temps mis à établir la connexion va provoquer un timeout de votre programme client. Ce n'est quand meme pas quelque chose qui arrive souvent. Il suffit de recommencer, et ça passera. Vous pouvez aussi essayer de faire un <tt>echo "1" > /proc/sys/net/ipv4/ip_dynaddr</> pour aider la premiere utilisation. </enum> <label id="Forwarders"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>IPPORTFW, IPMASQADM, IPAUTOFW, REDIR, UDPRED, et autres outils de redirection de ports <p> IPPORTFW, IPAUTOFW, REDIR, UDPRED, et autres sont des programmes génériques pour faire de la redirection de ports avec Linux IP MASQ. Ces outils sont normalement utilisés en remplacement de modules IP MASQ spécifiques comme les modules FTP ou Quake existant. Avec les redirecteurs de ports, vous pouvez rediriger des connexions arrivant d'Internet vers le réseau interne derriere le serveur MASQ. Cette redirection inclue des protocoles réseaux comme telnet, www, smtp, ftp (avec un patch, voir plus bas), ICQ, et plein d'autres. NOTE~: Si vous n'avez besoin que de la redirection de ports et pas besoin de l'IP MASQ, vous aurez <bf>QUAND MÊME</> à autoriser l'IP MASQ dans le noyau et avec soit IPFWADM soit IPCHAINS pour avoir la possibilité d'utiliser la redirection de ports. Plus tard, lorsque IP Masquerade est devenu mature, ces outils sont remplacés par IPPORTFW qui est une solution plus intelligente. Du fait de la présence d'outils plus récents, il est <bf>HAUTEMENT RECOMMANDÉ</> de ne pas utiliser les vieux outils comme IPAUTOFW et REDIT car ils ne font pas part au noyau de leur présence et leur présence peut même <bf>PLANTER</> votre serveur Linux si la charge monte. Avant de se lancer corps et âme dans l'installation de soit IPPORTFW pour les 2.0 soit IPMASQADM avec le support IPPORTFW pour les 2.2, la sécurité du réseau peut être grandement compromise avec l'utilisation d'un tel outil. La raison est que ces outils créent un trou dans le firewall. Bien que cela ne pose pas de problèmes a votre machine Linux, il se peut que cela en soit un pour la machine interne vers lesquels sont transférés les paquets. Ne vous inquiétez pas trop quand même, Voici ce que Steven Clarke (l'auteur d'IPPORTFW) réponds a cela~: <quote> <tscreen> <verb> "Le relayage de ports est seulement appelé depuis les fonctions de masquerading, Par conséquent, il rentre dans les mêmes règles d'IPFWADM/IPCHAINS. Le masquerading est une extension du relayage IP. Par conséquent, ipportfw ne voit que les paquets qui rentrent dans les règles d'entrée et de sortie." </verb> </tscreen> </quote> Par conséquent, il est important d'avoir de bonnes regles de firewall. Allez lire les sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> pour plus de détails sur l'établissement de bonnes règles. Donc, pour installer IPPORTFW, que ce soit pour les 2.0 ou 2.2, vous aurez a recompiler votre noyau avec le support pour IPPORTFW. <itemize> <item> Les utilisateurs des 2.0 auront a appliquer un patch aux sources de leur noyau (allez lire plus loin). <item> Les utilisateurs des 2.2 ont déjà l'option IPPORTFW disponible via IPMASQADM. </itemize> <sect2>IPPORTFW sur un noyau 2.0 <p> Premièrement, assurez vous que vous avez le dernier noyau 2.0 décompressé dans <tt>/usr/src/linux</>. Si vous n'avez pas encore fait cela allez voir la section <ref id="Kernel-Compile"> pour plus de détails. Ensuite, téléchargez le programme "<tt>ipportfw.c</>" et le "<tt>subs-patch-x.gz</>" depuis la section <ref id="2.0.x-Requirements"> dans le répertoire <tt>/usr/src</> NOTE~: Remplacez le x de "<tt>subs-patch-x.gz</>" par le nom de la dernière version disponible sur le site. Maintenant, copiez le patch IPPORTFW (<tt>subs-patch-x.gz</>) dans le repertorie Linux~: <tscreen> <verb> cp /usr/src/subs-patch-1.37.gz /usr/src/linux </verb> </tscreen> Ensuite, appliquez le patch pour créer l'option IPPORTFW au noyau~: <tscreen> <verb> cd /usr/src/linux zcat subs-patch-1.3x.gz | patch -p1 </verb> </tscreen> Ensuite, Si vous avez dans l'idée de faire du forwarding de trafic FTP vers un serveur interne, appliquez un <bf>NOUVEAU</> <em>IP_MASQ_FTP</> patch de la section <ref id="2.0.x-Requirements">. Plus de détails sont donnés un peu plus loin. Bon, maintenant, il est temps de compiler votre noyau comme il l'est expliqué dans la section <ref id="Kernel-Compile">. Dites bien oui a l'option IPPORTFW qui est maintenant disponible quand vous configurez votre noyau. Une fois que votre noyau est compilé et que vous avz rebooté, revenez ici. Maintenant que vous avez un noyau tout neuf, compilez et installez le programme "<tt>IPPORTFW</>"~: <tscreen> <verb> cd /usr/src gcc ipportfw.c -o ipportfw mv ipportfw /usr/local/sbin </verb> </tscreen> Maintenant, nous allons prendre l'exemple suivant~: rediriger le trafic internet arrivant sur le port 80 d'être transféré a la machine masquée ayant l'adresse IP 192.168.0.10. <bf>NOTE~:</bf> Une fois que vous avez autorisé le relayage de ports sur le port 80, ce port ne peut plus être utilisé par le serveur MASQ. Pour être plus précis, si vous avez un serveur web qui tourne déjà sur le serveur MASQ et que vous avez mis le relayage en place, tous les utilisateurs d'Internet verront les pages web du serveur interne, et non celles du serveur MASQ. La seule parade a cela est de forwarder un autre port, disons par exemple le 8080, vers votre machine interne. Bien que cela marchera, les utilisateurs auront a ajouter un <em>:8080</> a l'URL quand ils voudront contacter le serveur WWW. Quoi qu'il en soit, pour autoriser la redirection de port, éditez le fichier <tt>/etc/rc.d/rc.firewall</>. Et ajoutez les lignes suivantes, assurez vous de bien remplacer le mot <tt>$extip</> par votre adresse internet. <bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre <tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> ou à <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques. <tscreen> <verb> /etc/rc.d/rc.firewall -- #echo "Mise en place d'IPPORTFW vers le LAN externe." # /usr/local/sbin/ipportfw -C /usr/local/sbin/ipportfw -A -t$extip/80 -R 192.168.0.10/80 -- </verb> </tscreen> Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~! Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed: Protocol not available</>", vous avez votre ancien noyau. Assurez vous que vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez. Redirection de ports pour les serveurs FTP~: Si vous avez dans l'idée d'utilise la redirection de ports, les choses se compliquent... La raison est que le module standard <tt>ip_masq_ftp</> du noyau n'a pas été écrit dans ce but. Heureusement, Fred Viles à modifié le module pour que ça marche. Si vous êtes juste curieux de savoir comment ça marche, téléchargez le patch suivant, Fred a mis plein de commentaires dans son code. Notez aussi que ce patch est légèrement expérimental et doit être traité comme tel. Il faut aussi noter que ce patch est disponible uniquement pour les noyaux 2.0. Le portage vers les noyaux 2.2 a été entrepris, si vous voulez aider a terminer ce port, envoyez un email directement à <htmlurl url="mailto:fv@episupport.com" name="Fred Viles - fv@episupport.com"> (en anglais bien sur ;). Donc, Pour faire marcher le patch, vous allez avoir à~: <itemize> <item> Appliquer le patch IPPORTFW au noyau comme indiqué plus haut dans cette section. <item> Télécharger le "<tt>msqsrv-patch-36</>" depuis le serveur ftp de Fred Viles (voir la section <ref id="2.0.x-Requirements">) et mettez le dans <tt>/usr/src/linux</>. <item> Patchez le noyau avec ce nouveau code en tapant : "<tt>cat msqsrv-patch-36 | patch -p1</>". <item> Ensuite, remplacez le fichier "<tt>ip_masq_ftp.c</> du noyau par le nouveau~: <tscreen> <verb> mv /usr/src/linux/net/ipv4/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c.orig mv /usr/src/linux/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c </verb> </tscreen> <item> Enfin, compilez et installez le noyau avec le nouveau code en place. </itemize> Une fois cela fait, éditez le fichier <tt>/etc/rc.d/rc.firewall</> et ajoutez les lignes suivantes (remplacez bien $extip par votre ip externe)~: <bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre <tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> ou à <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques. Cet exemple, comme celui ci dessus, permettra à tout le trafic ftp (sur le port 21) arrivant sur l'adresse IP internet d'être transféré a la machine interne ayant l'adresse IP 192.168.0.10. <bf>NOTE~:</> Une fois que vous avez autorisé le relayage du port 21, ce port ne peut plus être utilisé par le serveur MASQ. Pour être plus spécifique, si vous aviez déjà un serveur ftp sur le serveur MASQ, il ne sera plus accessible de l'extérieur. <tscreen> <verb> /etc/rc.d/rc.firewall -- #echo "Mise en place d'IPPORTFW vers le LAN externe." # /usr/local/sbin/ipportfw -C /usr/local/sbin/ipportfw -A -t$extip/21 -R 192.168.0.10/21 -- </verb> </tscreen> Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~! Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed: Protocol not available</>", vous avez votre ancien noyau. Assurez vous que vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez. Si vous êtes sur de bien utiliser votre nouveau noyau, tapez : "<tt>ls /proc/net</>" et vérifiez qu'il y a bien un "<tt>ip_portfw</>". Si il n'y est pas, vous avez du commettre une erreur dans la configuration du noyau. Essayez encore. <sect2>IPMASQADM avec IPPORTFW pour les noyaux 2.2 <p> Tout d'abord, vérifiez que vous avez bien le dernier noyau 2.2 décompressé <tt>/usr/src/linux</>. Si vous ne l'avez pas encore fait, Allez voir la section <ref id="Kernel-Compile"> pour tous les détails. Ensuite, téléchargez le programme "<tt>ipmasqadm.c</>" depuis la section <ref id="2.2.x-Requirements"> dans le repertoire <tt>/usr/src</>. Ensuite, vous aurez a compiler votre noyau comme il l'est expliqué dans la section <ref id="Kernel-Compile">. Vérifiez que vous avez bien dit YES a l'option IPPORTFW quand vous avez configuré votre noyau. Une fois la compilation terminée et que vous avez rebooté, revenez ici. Maintenant, compilez et installez ipmasqadm~: <tscreen> <verb> cd /usr/src tar xzvf ipmasqadm-x.tgz cd ipmasqadm-x make make install </verb> </tscreen> Maintenant, nous allons prendre l'exemple suivant~: rediriger le trafic internet arrivant sur le port 80 d'être transféré a la machine masquée ayant l'adresse IP 192.168.0.10. NOTE~: Actuellement, le module <tt>ip_masq_ftp</> modifié ne marche pas pour les noyaux 2.2. Si vous vous sentez l'âme expérimentale, essayez de le porter et envoyez vos résultats a Ambrose et David. <bf>NOTE~:</bf> Une fois que vous avez autorisé le relayage de ports sur le port 80, ce port ne peut plus être utilisé par le serveur MASQ. Pour être plus précis, si vous avez un serveur web qui tourne déjà sur le serveur MASQ et que vous avez mis le relayage en place, tous les utilisateurs d'Internet verront les pages web du serveur interne, et non celles du serveur MASQ. Quoi qu'il en soit, pour autoriser la redirection de port, éditez le fichier <tt>/etc/rc.d/rc.firewall</>. Et ajoutez les lignes suivantes, assurez vous de bien remplacer le mot <tt>$extip</> par votre adresse internet. <bf>NOTE~:</bf> Si vous avez une IP dynamique, vous aurez a rendre votre <tt>/etc/rc.d/rc.firewall</> plus intelligent. Pour ce faire, référez vous aux sections <ref id="Strong-IPFWADM-Rulesets"> et <ref id="Strong-IPCHAINS-Rulesets"> ou à <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10"> pour plus de détails sur les ip dynamiques. <tscreen> <verb> /etc/rc.d/rc.firewall -- #echo "Mise en place d'IPPORTFW vers le LAN externe." # /usr/sbin/ipmasqadm portfw -f /usr/sbin/ipmasqadm portfw -a -P tcp -L $extip 80 -R 192.168.0.10 80 -- </verb> </tscreen> Et voilà~! Relancez votre <tt>/etc/rc.d/rc.firewall</> et testez~! Si vous avez un message d'erreur comme "<tt>ipfwadm: setsockopt failed: Protocol not available</>", vous avez votre ancien noyau. Assurez vous que vous avez bien installé le nouveau noyau, lancez <tt>lilo</> et rebootez. Si vous êtes sur de bien utiliser votre nouveau noyau, tapez : "<tt>ls /proc/net</>" et vérifiez qu'il y a bien un "<tt>ip_portfw</>". Si il n'y est pas, vous avez du commettre une erreur dans la configuration du noyau. Essayez encore. <label id="CuSeeme"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> CU-SeeMe et Linux IP-Masquerade <p> L'ip masquerade supporte CuSeeMe via le module "<tt>ip_masq_cuseeme</>" du noyau. Ce module devrais être chargé depuis le script <tt>/etc/rc.d/rc.firewall</>. Une fois que le module est chargé, tous devriez etre capable d'établir et recevoir des connexions CuSeeMe vers des serveurs et/ou des utilisateurs. NOTE~: Il est recommandé d'utiliser IPPORTFW plutôt que IPAUTOFW pour utiliser CuSeeMe. Si vous avez besoin de plus d'explications sur la configuration de CuSeeMe, allez voire <url url="http://www.swampgas.com/vc/ipmcus.htm" name="Michael Owings's CuSeeMe page"> pour un Mini HOWTO ou <htmlurl url="http://ipmasq.cjb.net/" name="The IP Masquerade Resources"> pour un miroir du mini HOWTO. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="ICQ"> <sect1>Mirabilis ICQ <p> Il y a deux méthodes pour faire marcher ICQ derrière un serveur MASQ. L'une de ces méthodes est d'utiliser le nouveau module ICQ MASQ, et l'autre est d'utiliser IPPORTFW. Le module ICQ a quelques bénéfices et quelques limitations. Il permet d'avoir plusieurs utilisateurs ICQ derriere le serveur MASQ. Il ne requiert pas de changements dans la configuration des clients. Toutefois, il ne permet pas les transferts de fichiers et les chat en temps réel. Avec IPPORTFW, Vous aurez a faire quelques changements a votre machine Linux et aux clients ICQ, mais tous les types de messages ICQ (urls, chat, transferts de fichiers) marcheront. Si vous etes interessés par le module ICQ d'Andrew Deryabin's <htmlurl url="mailto:djsf@usa.net" name="djsf@usa.net"> pour les noyaux 2.2, référez vous a la section <ref id="2.2.x-Requirements"> pour plus de détails. Si vous préférez utiliser la méthode classique pour faire marcher ICQ derriere votre serveur MASQ, suivez les étapes suivantes~: <itemize> <item> Tout d'abord, vous avez besoin d'avoir l'IPPORTFW de compilé. Référez vous a la section <ref id="Forwarders"> pour plus de détails. <item> Ensuite, vous aurez besoin d'ajouter les lignes suivantes a votre fichier <tt>/etc/rc.d/rc.firewall</>. Cet exemple suppose que 10.1.2.3 est votre adresse internet externe et que votre machine utilisant ICQ est 192.168.0.10~: <itemize> <item> Voici ce qu'il faut mettre pour un noyau 2.0 avec IPFWADM~· <tscreen> <verb> J'ai inclus deux exemples pour l'utilisateur, les deux marchent tres bien : Exemple #1 -- /usr/local/sbin/ipportfw -A -t10.1.2.3/2000 -R 192.168.0.10/2000 /usr/local/sbin/ipportfw -A -t10.1.2.3/2001 -R 192.168.0.10/2001 /usr/local/sbin/ipportfw -A -t10.1.2.3/2002 -R 192.168.0.10/2002 /usr/local/sbin/ipportfw -A -t10.1.2.3/2003 -R 192.168.0.10/2003 /usr/local/sbin/ipportfw -A -t10.1.2.3/2004 -R 192.168.0.10/2004 /usr/local/sbin/ipportfw -A -t10.1.2.3/2005 -R 192.168.0.10/2005 /usr/local/sbin/ipportfw -A -t10.1.2.3/2006 -R 192.168.0.10/2006 /usr/local/sbin/ipportfw -A -t10.1.2.3/2007 -R 192.168.0.10/2007 /usr/local/sbin/ipportfw -A -t10.1.2.3/2008 -R 192.168.0.10/2008 /usr/local/sbin/ipportfw -A -t10.1.2.3/2009 -R 192.168.0.10/2009 /usr/local/sbin/ipportfw -A -t10.1.2.3/2010 -R 192.168.0.10/2010 /usr/local/sbin/ipportfw -A -t10.1.2.3/2011 -R 192.168.0.10/2011 /usr/local/sbin/ipportfw -A -t10.1.2.3/2012 -R 192.168.0.10/2012 /usr/local/sbin/ipportfw -A -t10.1.2.3/2013 -R 192.168.0.10/2013 /usr/local/sbin/ipportfw -A -t10.1.2.3/2014 -R 192.168.0.10/2014 /usr/local/sbin/ipportfw -A -t10.1.2.3/2015 -R 192.168.0.10/2015 /usr/local/sbin/ipportfw -A -t10.1.2.3/2016 -R 192.168.0.10/2016 /usr/local/sbin/ipportfw -A -t10.1.2.3/2017 -R 192.168.0.10/2017 /usr/local/sbin/ipportfw -A -t10.1.2.3/2018 -R 192.168.0.10/2018 /usr/local/sbin/ipportfw -A -t10.1.2.3/2019 -R 192.168.0.10/2019 /usr/local/sbin/ipportfw -A -t10.1.2.3/2020 -R 192.168.0.10/2020 -- Exemple #2 -- port=2000 while [ $port -lt 2020 ] do /usr/local/sbin/ipportfw -A t10.1.2.3/$port -R 192.168.0.10/$port port=$((port+1) done -- </verb> </tscreen> <item> Et voila ce qu'il faut mettre pour un noyau 2.2 avec IPCHAINS~: <tscreen> <verb> J'ai inclus deux exemples pour l'utilisateur, les deux marchent tres bien : Exemple #1 -- /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2000 -R 192.168.0.10 2000 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2001 -R 192.168.0.10 2001 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2002 -R 192.168.0.10 2002 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2003 -R 192.168.0.10 2003 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2004 -R 192.168.0.10 2004 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2005 -R 192.168.0.10 2005 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2006 -R 192.168.0.10 2006 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2007 -R 192.168.0.10 2007 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2008 -R 192.168.0.10 2008 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2009 -R 192.168.0.10 2009 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2010 -R 192.168.0.10 2010 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2011 -R 192.168.0.10 2011 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2012 -R 192.168.0.10 2012 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2013 -R 192.168.0.10 2013 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2014 -R 192.168.0.10 2014 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2015 -R 192.168.0.10 2015 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2016 -R 192.168.0.10 2016 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2017 -R 192.168.0.10 2017 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2018 -R 192.168.0.10 2018 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2019 -R 192.168.0.10 2019 /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 2020 -R 192.168.0.10 2020 -- Exemple #2 -- port=2000 while [ $port -lt 2020 ] do /usr/local/sbin/ipmasqadm portfw -a -P tcp -L 10.1.2.3 $port -R 192.168.0.10 $port port=$((port+1) done -- </verb> </tscreen> </itemize> <item> Une fois que votre nouveau <tt>rc.firewall</> est pret, rechargez le en tapant "<tt>/etc/rc.d/rc.firewall</>". Si vous avez des erreurs, soit vous n'avez pas IPPORTFW dans votre noyau, soit vous avez faite une faute de frappe dans le script. <item> Maintenant, il est temps d'aller configurer ICQ, allez dans les préférences --> connection, configurez pour avoir <em>'I am using a permanent internet connection (LAN)'</> et <em>'I am behind a firewall or proxy'</>, maintenant, cliquez sur <em>'Firewall Settings'</> et choisissez <em>'I don't use a SOCKS Proxy server...'</>. Notez aussi qu'il étais recommandé de mettre 30 secondes dans <em>'Firewall session time out after'</> MAIS beaucoup d'utilisateurs ont trouvé qu'ICQ devenait peu fiable. ICQ est bien plus fiable avec l'option par défaut (ne cochez donc pas cette option) et changez le timeout du serveur MASQ a 160 secondes. Vous pouvez voir comment changer ce timeout dans les sections <ref id="rc.firewall-2.0.x"> et <ref id="rc.firewall-2.2.x">. Finalement, cliquez sur <em>'Next'</> et configurez ICQ pour <em>'Use the following TCP listen ports...'</> de 2000 à 2020. Cliquez sur <em>'Done'</>. Maintenant, ICQ vous dit que vous avez a redémarrer ICQ pour que les changements soit pris en compte. Pour être honnête j'ai du redémarrer la machine Windows 9x pour que ça marche, mais d'autre personnes disent que cela n'a pas été la peine. Donc, essayez les deux... <item> Un utilisateur m'a aussi rapporté que le fait de rediriger le port 4000 vers sa machine ICQ marche sans problèmes. Il a dit que tout fonctionnais (chat, transferts de fichiers, etc) SANS AVOIR a reconfigurer ICQ. Il se peut que ça marche, c'est pour cela que je vous en fait part. </itemize> <label id="LooseUDP"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Joueurs~: Le patch LooseUDP <p> Le patch LooseUDP permet aux jeux comprenant le NAT qui utilisent des connexions UDP de marcher et même bien derrière un serveur MASQ. Actuellement, LooseUDP est disponible comme patch pour les noyaux 2.0.36+ et est intégré dans les noyaux 2.2.3+. Pour le faire marcher, quelques petites choses sont nécessaires~: <itemize> <item> Ayez la dernière version des source du noyau décompressées dans <tt>/usr/src/linux</>. <item> Pour les 2.0, il est NÉCESSAIRE d'installer IPPORTFW (voir la section <ref id="2.0.x-Requirements">) comme expliqué dans la section <ref id="Forwarders">. <item> Téléchargez le patch LooseUDP depuis la section <ref id="2.0.x-Requirements">. </itemize> Maintenant, mettez le patch LooseUDP dans le répertoire <tt>/usr/src/linux</>. Quand c'est fait, tapez~: <tscreen>Pour un patch compressé~: zcat loose-udp-2.0.36.patch.gz | patch -p1</tscreen> <tscreen>Pour un patch non compressé~: cat loose-udp-2.0.36.patch | patch -p1</tscreen> Maintenant, suivant la version du "patch", vous verrez le texte suivant~: <tscreen> <verb> patching file `CREDITS' patching file `Documentation/Configure.help' patching file `include/net/ip_masq.h' patching file `net/ipv4/Config.in' patching file `net/ipv4/ip_masq.c' </verb> </tscreen> Si vous voyez le texte "Hunk FAILED" une fois et une seule au début du patch, ne vous inquiétez pas, vous avez probablement une vieille version du patch (ça à été réparé depuis) mais ça marche quand même. Si ça plante complètement, vérifiez que vous avez appliqué le patch IPPORTFW en PREMIER. Une fois que le patch est installé, reconfigurer le noyau comme c'est expliqué dans la section <ref id="Kernel-Compile"> et dites bien YES à l'option "IP: loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP) [Y/n/?]". Une fois que vous tournez avec le patch LooseUDP, vous devriez pouvoir jouer a un bon paquet de jeux. Quelques URL se trouvent dans la section <ref id="Game-Clients"> pour savoir comment pouvoir utiliser des jeux comme BattleZone et d'autre. <!-- Section 5 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Foire Aux Questions <p> <label id="FAQ"> Si vous avez des suggestions a faire, envoyez les à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> (NdT~: en anglais). S'il vous plait, poser clairement la question et la réponse appropriée. Merci ! <!--NdT : ça veux dire ce que j'ai traduit ou pas~?--> <label id="MASQ-supported-Distributions"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Quelles sont les distributions de Linux qui sont livrées avec les fonctionnalités d'IP MASQ a la base~? <p> Si votre distribution de Linux ne supporte pas l'IP MASQ a la base, ne vous inquiétez pas. Tout ce que vous aurez a faire est de recompiler votre noyau comme il l'est expliqué plus haut dans ce HOWTO a la section <ref id="Kernel-Compile">. NOTE~: Si vous pouvez nous aider a remplir cette table, envoyez un email à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> ou <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net"> (NdT~: en anglais). <verb> Caldera < v1.2 : NON - ? Caldera v1.3 : OUI - basé sur un 2.0.35 Caldera v2.2 : OUI - basé sur un 2.2.5 Debian v1.3 : NON - ? Debian v2.0 : NON - ? Debian v2.1 : NON - basé sur un 2.2.1 DLX Linux v? : ? - ? DOS Linux v? : ? - ? Hal91 Linux v? : ? - ? Linux Mandrake v5.3 : OUI - ? Linux Mandrake v6.0 : OUI - basé sur un 2.2.5 Linux PPC vR4 : NON - ? Linux Pro v? : ? - ? LinuxWare v? : ? - ? MkLinux v? : ? - ? MuLinux v3rl : OUI - ? Redhat < v4.x : NON - ? Redhat v5.0 : OUI - ? Redhat v5.1 : OUI - ? Redhat v5.2 : OUI - basé sur un 2.0.36 Redhat v6.0 : OUI - basé sur un 2.2.5 Slackware v3.0 : ? - ? Slackware v3.1 : ? - basé sur un 2.0.29 Slackware v3.2 : ? - ? Slackware v3.3 : ? - basé sur un 2.0.34 Slackware v3.4 : ? - ? Slackware v3.5 : ? - ? Slackware v3.6 : ? - ? Slackware v3.9 : ? - basé sur un 2.0.37pre10 Slackware v4.0 : ? - ? Stampede Linux v? : ? - ? SuSE v5.2 : OUI - ? SuSE v5.3 : OUI - ? SuSE v6.0 : OUI - ? SuSE v6.1 : OUI - basé sur un 2.2.5 Tomsrbt Linux v? : ? - ? TriLinux v? : ? - ? TurboLinux v? : ? - ? Yggdrasil Linux v? : ? - ? </verb> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <label id="FAQ-Hardware"> <sect1> Quel est le minimum requis et quelles sont les limitations de l'IP MASQ~? Est ce que ça marche bien~? <p> Un 486/66 avec 16 Mo de RAM, étais largement suffisant pour masquerader les 1.54 Mo/s d'une T1~! Le MASQ est aussi connu pour marcher très bien sur un 386SX-16s avec 8 Mo de RAM. Bon, il faut aussi savoir que l'IP Masq commence a déconner<!--NdT : trash, j'ai pas mieux--> a partir de 500 connexions MASQ. La seule application qui est connue pour bloquer temporairement une machine Linux est GameSpy. Pourquoi~? Quand il raffraichis ses listes, il crée 10000 petites connexions dans très peu de temps. Jusqu'à ce que les sessions timeout<!--NdT : C'est pas joli, ou alors, on conjugue : timeoutent ?-->, la table des connexion MASQ est pleine. Allez visiter la section <ref id="No-Free-Ports"> pour plus de détails. Tant qu'on y est~: Il y a une limite en dur dans le noyau à 4096 connexions TCP ou UDP. Cette limite peut être changée en changeant les valeurs dans <tt>/usr/src/linux/net/ipv4/ip_masq.h</>. Jusqu'à 32000, ça doit être bon. Si vous voulez changer cette limite, vous aurez besoin de changer les valeurs de PORT_MASQ_BEGIN & PORT_MASQ_END pour avoir un espace suffisant au dessus de 32K et en dessous de 64K. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai vérifié toute ma configuration, et je n'arrive toujours pas a faire marcher l'IP MASQ. Que faire~? <p> <itemize> <item> Restez calme. Allez vous chercher une tasse de thé, café, soda, etc., et allez faire une sieste. Une fois que votre esprit est plus clair, essayez les suggestions ci dessous. La mise en place de l'ip masquerading n'est PAS une chose difficile, mais il y a pas mal de concepts qui sont nouveaux pour vous. <item> Encore une fois, refaites toutes les étapes de la section <ref id="Testing">. 99% du temps, vous n'êtes même pas allés lire cette section. <item> Allez lire <url url="http://www.indyramp.com/lists/masq/" name="IP Masquerade Mailing List Archives">, il est tres probable que la réponse a votre question trouvera réponse en faisant une simple recherche dans les archives. <item> Allez parcourir le document <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS">. Il couvre l'IP MASQ pour les noyaux 2.0 et 2.2 et beaucoup d'autres sujets comme PPPd, DialD, DHCP, DNS, Sendmail, etc. <item> Assurez vous que vous n'avez pas lancés les démons ROUTED ou GATED. Pour vérifiez, tapez "<tt>ps aux | grep -e routed -e gated"</>" <item> Posez votre question sur la liste IP MASQ (allez voir la section suivante de la FAQ pour plus de détails). S'il vous plaît, ne posez votre question sur la liste que si vous n'avez pas trouvé la réponse dans les archives. Assurez vous de bien inclure toutes les informations requises dans la section <ref id="Testing"> dans votre email~! <item> Posez votre question sur un newsgroup en rapport avec Linux. <item> Envoyez un email à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et/ou <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net">. Mais vous aurez plus de chance d'obtenir une réponse venant de la liste IP MASQ que de nous. <item> Vérifiez votre configuration une fois de plus :-) </itemize> <label id="Masq-List"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Comment est ce que je m'inscrit a la liste IP MASQ et/ou a la liste IP MASQ developers, et ou puis-je trouver leurs archives~? <p> Il y a deux moyens de s'inscrire aux deux listes IP MASQ. La première est d'envoyer un email à <htmlurl url="mailto:masq-request@indyramp.com" name="masq-request@indyramp.com">. Pour vous inscrire a la liste IP MASQ developers, envoyez un email à <htmlurl url="mailto:masq-dev-request@indyramp.com" name="masq-dev-request@indyramp.com">. Voyez ci dessous pour plus de détails. <itemize> <item> Inscription par email~: Mettez le mot "<tt>subscribe</>" soit dans le sujet soit dans le corps du message. Si vous voulez juste vous inscrire à la liste en mode digest (tous les emails vous sont envoyés chaque semaine en une seule fois dans un gros message), mettez les mots "<tt>subscribe digest</>" dans le sujet ou le corps. <item> Une fois que le serveur a reçu votre inscription, il vous inscrira a la liste en question et vous enverra un mot de passe. Gardez ce mot de passe car vous en aurez besoin plus tard pour vous désinscrire ou changer vos options. </itemize> La deuxième méthode est de passer via un navigateur web et de s'inscrire depuis le formulaire <htmlurl url="http://www.indyramp.com/masq-list/" name="http://www.indyramp.com/masq-list/"> pour la liste principale ou sur <htmlurl url="http://www.indyramp.com/masq-dev-list/" name="http://www.indyramp.com/masq-dev-list/"> pour la liste developers. Une fois inscrit, vous recevrez les mails des listes ou vous vous êtes inscrits. Notez aussi qu'il n'est pas nécessaire d'être inscrit pour consulter les archives des deux listes. Pour ce faire, allez visiter les adresses ci dessus. Enfin, notez que vous ne pouvez poster des messages que depuis des adresses depuis lesquelles vous êtes inscrits. Si vous avez un quelconque problème en rapport avec les listes de diffusions, contactez <htmlurl url="mailto:masq-owner@indyramp.com" name="Robert Novak">. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> En quoi est ce que IP MASQ diffère des services NAT/Proxy~? <p> <verb> Proxy: Serveurs proxy sont disponibles pour : Win95, NT, Linux, Solaris, etc. Pour : + (1) adresse IP ; économique + Possibilité de cache pour de meilleurs performances (WWW, etc.) Contre : - Toutes les applications utilisées derrière le proxy doivent supporter les services SOCKS et être configurés pour utiliser les services du Proxy. - Explose les statistiques et compteurs Web Un serveur proxy utilise seulement une adresse IP, comme IP MASQ, et sert de passerelle entre les clients sur le réseau privé (navigateur Web, etc.). Ce proxy reçoit des requêtes comme TELNET, FTP, WWW, etc. du réseau interne sur une interface. Il initie a son tour une requête comme si quelqu'un sur le proxy faisait la requête. Une fois que le serveur distant a répondu, il transfert les adresses TCP/IP au client MASQ interne et envoie la requête a la machine interne. C'est pour cela que ça s'appelle un serveur PROXY. Note : Toutes les applications que vous voudrez utiliser sur le réseau interne doivent supporter un serveur proxy comme Netscape et quelques bons clients TELNET et FTP. Ceux qui ne supportent pas un serveur proxy ne fonctionneront pas. Une autre chose sympa a propos des serveurs proxy est que certains d'entre eux cachent aussi leurs données (Squid pour le WWW). Donc, imaginons que vous avez 50 clients qui lancent Netscape en même temps, si ils ont toujours la page par défaut de configurée, vous auriez 50 copies de la même page chargée 50 fois via la connexion internet. Avec un proxy cache, seule une copie de la page serais téléchargée via la connexion internet et elle serais ensuite distribuée a la demande aux machines internes. Non seulement ca sauvegarde la bande passante de la connexion internet mais en plus, les machines internes ont un acces beaucoup plus rapide au net. MASQ: Le masquerading est disponible sous Linux, et certains routeurs RNIS tels OU les Zytel Prestige128, Cisco 770, NetGear ISDN routers, etc. 1:+ NAT Pour : + Seule une adresse IP est necessaire (économique) + Ne requiert pas de support dans les applications. + Utilise des logiciels de firewall, ce qui permet de rendre votre réseau plus sur. Contre : - Requiert une machine Linux ou un routeur RNIS dédié (d'autres produits peuvent l'avoir toutefois...) - Le trafic entrant ne peut pas accéder a votre réseau interne, a moins que votre LAN n'initie le trafic, ou qu'un logiciel de redirection de ports soit installé. Beaucoup de serveurs NAT ne savent pas le faire. - Certains protocoles doivent être pris en charge uniquement via des redirecteurs de firewall, etc. Linux supporte tout cela (FTP, IRC, etc.) mais beaucoup de routeurs ne le font PAS (NetGear le fait). MASQ ou 1:+ NAT est similaire a un serveur proxy dans le sens que le serveur fera de la translation d'adresse IP pour tromper les serveurs distants (WWW par exemple) comme si le serveur MASQ avait fait la requête et non pas une machine interne. La différence majeure entre le MASQ et un PROXY est que le serveur MASQ n'a pas besoin de changer la configuration des machines clientes. Configurez les juste pour utiliser la machine Linux comme étant leur passerelle par défaut et tout marchera sans problemes. Vous aurez besoin d'installer des modules Linux spéciaux sur le serveur pour certains services (RealAudio, FTP, etc. pour que cela marche) ! Beaucoup de gens utilisent un serveur MASQ pour faire du TELNET, du FTP, etc. *ET* mettent aussi en place un serveur proxy cache pour le trafic WWW pour augmenter les performances. NAT: Des serveurs NAT sont disponibles pour Windows 95/98/NT/2000, Linux, Solaris, et certains bons routeurs RNIS (pas les Ascend). Pour : + Très configurable + Pas de logiciels vraiment nécessaires. Contre : - Requiert un sous réseau de votre FAI (cher) Le NAT (translation d'adresses réseau) est le nom d'une machine ayant a sa disposition un certain nombre d'adresses IP valides qu'il peut utiliser. Lorsqu'une connexion vers l'extérieur est requise par un utilisateur interne, cette machine associe une adresse IP valide disponible a l'IP privée qui requiert la connexion. Apres ca, tout le traffic est réécrit de l'adresse IP NAT publique pour l'adresse IP NAT privée. Lorsqu'une adresse NAT publique reste sans être utilisée pendant un certain laps de temps, l'adresse IP publique retourne dans le groupe des IP publiques disponibles. Le problème principal du NAT est qu'une fois que toutes les adresses IP publiques sont utilisées, ceux qui veulent obtenir une connexion ensuite ne le pourront pas tant qu'une adresse ne se libère pas. </verb> <!-- Ndt : Tout est clair ? --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Existe-t-il des outils de configuration de firewall graphiques ? <p> Oui ! Il y a un peu de tout. Mais la majorité est faite pour marcher avec IPFWADM. Voici une courte liste des outils disponibles par ordre alphabétique. Si vous n'en connaissez pas d'autres, ou que vous avez des remarques (bonnes/mauvaise/méchantes) sur ceux qui sont ici, envoyez un email a Ambrose ou David. <p> <itemize> <item> John Hardin's <htmlurl url="http://www.wolfenet.com/~jhardin/ipfwadm.html" name="IPFWADM Dot file generator"> - Une version IPCHAINS est en cours. <item> Sonny Parlin's <url url="http://www.mindstorm.com/˜sparlin/fwconfig.shtml" name="FWCONFIG"> pour IPFWADM et IPCHAINS <item> William Stearns's <url url="http://www.pobox.com/˜wstearns/mason/" name="Mason"> - Un système de création de règles a la volée.<!-- NdT : A Build-a-ruleset on-the-fly type system --> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Est-ce que IP Masquerade marche avec une IP dynamique~? <p> Oui, bien sur que cela marche avec une adresse IP dynamique assignée par votre FAI, d'habitude, via un serveur DHCP. Aussi longtemps que vous avez une adresse Internet valide, cela devrait marcher. Bien entendu, les IP statiques conviennent aussi. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Puis-je utiliser des modems cable, DSL, liaison satellite, etc pour me connecter à Internet en utilisant IP masquerading~? <p> Bien sûr, tant que Linux supporte l'interface réseau, cela marchera. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Puis-je utiliser DialD ou la fonctionnalité de connexion à la demande de PPPd avec IP MASQ ? <p> Bien sur ! IP MASQ est totalement transparent à DialD ou PPP. La seule chose qui peut poser problème si vous avez des règles de firewall méchantes et que vous avez une adresse dynamique. Référez vous a l'item de la FAQ "Est-ce que IP Masquerade marche avec une IP dynamique~?" ci dessus pour plus de détails. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Quels sont les programmes qui fonctionnent avec l'IP Masquerade~? <p> Il est très difficile d'avoir une liste exhaustive des "programmes qui marchent". Toutefois, la majorité des applications internet sont supportées, telles que surfer sur Internet (Netscape, MSIE, etc.), ftp (comme WS_FTP), Real Audio, telnet, SSH, POP3 (courrier entrant - pine, Outlook), SMTP (courrier sortant), etc. Les programmes qui impliquent des protocoles plus compliqués ou des méthodes de connexion spéciales necessitent des outils d'aide spéciaux. Pour plus de détails, référez vous à cette page : <url url="http://dijon.nais.com/~nevo/masq/" name="programmes qui marchent avec le Linux IP masquerading"> par Lee Nevo. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment puis-je faire marcher l'IP Masquerading sur une RedHat, une Debian, une Slackware, etc~? <p> La distribution de Linux que vous avez, les procédures pour mettre en place l'IP masquerading mentionnées dans ce HOWTO devraient suffire. Certaines distributions auront peut être des programmes graphiques ou des fichiers de configuration spéciaux pour rendre les réglages plus simples. Nous faisons en sorte de rendre ce HowTo aussi simple que possible. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Mes connexions TELNET semblent mourrir si je ne les utilise pas pendant quelques temps. Pourquoi ? <p> Par défaut, IP MASQ à un time out de connexion pour les sessions TCP, les TCP FIN et le traffic UDP qui est a 15 minutes. Il est recommendé d'utiliser les valeurs suivantes (comme elles le sont dans le fichier <tt>/etc/rc.d/rc.firewall</> décrit dans ce HOWTO) : <p> Linux 2.0.x avec IPFWADM: <p> <verb> # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 160 sec pour le traffic UDP (Important pour les utilisateurs d'ICQ) # /sbin/ipfwadm -M -s 7200 10 160 </verb> <p> Linux 2.2.x avec IPCHAINS: <p> <verb> # Durée de vie des connexion MASQuées # # 2 hrs pour une session TCP # 10 sec apres qu'un paquet "FIN" soit passé # 60 sec pour le traffic UDP (Les utilisateurs d'ICQ doivent configurer leur ICQ avec # un timeout de firewall de 30 secondes) # ipchains -M -S 7200 10 60 </verb> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Lorsque ma connexion Internet arrive, rien ne marche, ensuite, si je recommence, tout marche. Pourquoi~? <p> La raison est que vous utilisez une adresse dynamique et que lorsque votre connexion internet arrive, IP Masquerade ne connaît pas son adresse IP. Il existe une solution. Dans votre jeu de règles <tt>/etc/rc.d/rc.firewall</>, ajoutez la ligne suivante~; <p> <verb> # Utilisateurs d'IP dynamiques : # # Si vous avez une adresse IP dynamique via SLIP, PPP ou DHCP, décommentez l'option # suivante. Elle permet d'utiliser une bidouille dans l'IP MASQ qui sert pour les IP # dynamiques, ce qui rends la vie avec DialD, PPPd et les programmes similaires bien # plus facile. # echo "1" > /proc/sys/net/ipv4/ip_dynaddr </verb> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> L'IP MASQ semble fonctionner comme un charme, mais certains sites ne marchent pas. Cela se produit le plus souvent avec des sites WWW ou FTP. <p> Il y a deux raisons possibles à cela. La première est très commune, le deuxième, très peu. <p> <itemize> <item> A partir des noyaux 2.0.36 et 2.2.9, il y a un BUG dans le code MASQ qui a qui a à voir avec les paquets qui ont le bit DF ou "Don't Fragment" (ne pas découper) de positionné. En gros, lorsque la machine MASQ se connecte à internet avec un MTU inférieur a 1500, quelques paquets auront le bit DF de positionné. Bien que changer le MTU de votre Linux à 1500 semblera résoudre le problème, le bug est toujours là. Le problème semble venir du fait que le code MASQ ne réécrit pas correctement les paquets ICMP avec le code ICMP 3.4 revenant a l'ordinateur MASQ à la source. A cause de cela, le paquet est détruit. Si vous êtes un programmeur réseau et que vous pensez pouvoir le faire... ESSAYEZ~! Ne vous inquietez pas trop quand même. Pour contourner ce bug, changez le MTU de votre lien Internet à 1500. Certains utilisateurs crieront car cela peut créer quelques latences avec des programmes comme TELNET ou des jeux, mais l'impact est vraiment faible. D'un autre coté, la majorité du trafic HTTP et FTP deviendra plus rapide ! Pour réparer cela, regardez quel est le MTU de votre lien Internet. Pour le savoir, lancez "<tt>/sbin/ifconfig</>". Maintenant, regardez les lignes correspondant a votre connexion Internet et regardez le MTU. Il doit être a 1500. Pour l'Ethernet, c'est la valeur par défaut, mais sur un lien PPP, la valeur par défaut est de 576. <item> Pour règler ce probleme de MTU sur votre lien PPP, éditez votre fichier <tt>/etc/ppp/options</> et mettez y les lignes "<tt>mtu 1500</>" et "<tt>mru 1500</>". Sauvez et relancez votre lien PPP. Comme ci dessus, vérifiez que votre lien PPP à bien les valeurs correctes pour MTU et MRU. <p> <item> Pour réparer un probleme de MTU sur un lien Ethernet vers votre modem ADSL, Cable, etc, vous allez devoir éditer vos scripts de démarrage. Allez consulter <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 16"> pour plus d'informations. <p> <item> Enfin, bien que ce ne soit pas un probleme tres commun, certaines personnes ont trouvé leur solution. avec les utilisateurs PPP, sur quel port se connecte PPPd~? À un port <tt>/dev/cua*</> ou un <tt>/dev/ttyS*</>~? Il doit se connecter sur un port <tt>/dev/ttyS*</>. Les vieux cua font se comporter les connexions de manières bizarres. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> IP Masquerading semble être lent. <p> Il peut y avoir quelques raisons a cela~: <itemize> <item> Assurez vous que vous n'avez pas les réseaux internes et externes lancés sur la même carte réseau avec de l'IP alias. Si vous le faites, vous devriez vraiment aller dépenser 100F dans une deuxième carte réseau pour que chaque réseau ait la sienne. <item> Si vous avez un modem externe, assurez vous d'avoir un bon câble. Beaucoup de PC ont ces cables plats qui connectent le port série a la carte mère ou la carte d'E/S. Si vous avez un câble comme cela, assurez vous qu'il est dans de bonnes conditions. J'ai personnellement un anneau de ferrite (ces espèces anneaux en métal gris/noir) autour de tous mes cables plats. <item> Assurez vous que votre MTU est a 1500 comme il l'est décrit ci dessus. <item> Assurez vous que votre port série est à un UARL 16550A ou mieux. Lancez "<tt>dmesg | less</>" pour vérifier. <item> Assurez vous que le port série sur lequel votre connexion tourne est a 115200 (ou plus rapide si votre modem et votre port série le supportent... comme les adaptateurs RNIS). <itemize> <item> Noyaux 2.0~: Ces noyaux sont un peu vieux et ne peuvent pas obliger le noyau a passer le port série à 115200. Par conséquent, dans l'un de vos scripts de démarrage comme <tt>/etc/rc.d/rc.local</> ou <tt>/etc/rc.d/rc.serial</>, lancez les commandes suivantes si votre modem se trouve sur le COM2 : <itemize> <item> <tt>setserial /dev/ttyS1 spd_vhi</> <item> dans votre script PPPd, éditez la ligne pour inclure la vitesse de 38400 d'après la page man de pppd. </itemize> <item> Noyaux 2.2~: Contrairement aux 2.0, les 2.1 et 2.2 n'ont pas besoin d'utiliser setserial. <itemize> <item> Donc, dans votre script PPPd, éditez la ligne lançant pppd et ajoutez la vitesse de 115200. </itemize> </itemize> <item> Réglez la fenêtre de réception TCP à au moins 8192. <itemize> <item> Bien que cela soit COMPLÈTEMENT hors du sujet de ce document, cela peut aider un petit peu dans certaines conditions.<!--NdT : heu, je trouve rien de joli pour l'original anglais--> Pour plus de détails, référez vous a la section optimisation des réseaux de <htmlurl url="http://www.ecst.csuchico.edu/˜dranch/Linux/TrinityOS.wri" name="TrinityOS - Section 16">. </itemize> <item> Réglez IRQ-Tune pour vos ports séries. <itemize> <item> Sur la majorité du matériel PC, l'utilisation de <url url="http://www.best.com/˜cae/irqtune/" name="IRQTUNE"> de Craig Estey's accroît de manière significative les performances des ports pour les connexions PPP et SLIP. </itemize> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Maintenant que j'ai l'IP MASQ qui marche, j'ai plein de notifications et d'erreurs bizarres dans mon SYSLOG. Comment comprendre les erreurs IPFWADM/IPCHAINS dans le texte ? <p> Il y a probablement deux choses normales que vous allez voire~: <itemize> <item> <bf>MASQ: Failed TCP Checksum error:</bf> Vous verrez cette erreur lorsqu'un paquet venant de l'Ethernet a sa section de données corrompue alors que le reste du paquet semble bon. Lorsque votre machine Linux reçoit ce paquet, il calcule le CRC du paquet et détermine qu'il est corrompu. Sur la plupart des machines tournant sur des OS comme Microsoft Windows, le paquet est juste mis silencieusement a la poubelle, la seule différence est que Linux le dit. Si vous avez beaucoup de paquets de ce genre a travers votre lien PPP, allez déjà lire l'entrée précédente de la FAQ sur les lenteurs. <item> Si toutes les astuces ne servent a rien, essayez d'ajouter la ligne "<tt>-vj</>" a votre <tt>/etc/ppp/options</> et redémarrez PPPd. <item> <bf>Firewall hits</bf>~: Vous êtes connectés a Internet avec un firewall décent, vous allez voir le nombre de gens qui tentent de pénétrer votre machine Linux~! Alors, qu'est ce que ces logs signifient~? D'après <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 10">~: <p> <verb> Dans les règles suivantes, les lignes ayant soit DENY soit REJECT ont aussi un "-o" pour dire au firewall d'envoyer les messages au SYSLOG. Tout cela est stocké soit dans : Redhat: /var/log Slackware: /var/adm Si vous regardez a vos logs de firewall, vous verrez des choses comme cela~: --------------------------------------------------------------------- IPFWADM: Feb 23 07:37:01 Roadrunner kernel: IP fw-in rej eth0 TCP 12.75.147.174:1633 100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254 IPCHAINS: Packet log: input DENY eth0 PROTO=6 12.75.147.174:1633 100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254 --------------------------------------------------------------------- Il y a beaucoup d'informations sur ces lignes. Découpons donc tout cela pour que vous puissiez comprendre ce qui s'est passé sur votre machine. Notez que cet exemple explique pour IPFWADM, bien qu'il soit compréhensible aux utilisateurs d'IPCHAINS. -------------- - Ce "hit" du firewall est arrivé le "Feb 23 07:37:01". - Sur l'ordinateur "RoadRunner". - Il est arrivé sur le protocole IP ou TCP/IP. - Il est arrivé dans ("fw-in") le firewall * d'autres logs pourraient dire "fw-out" pour la sortie ou "fw-fwd" pour le forwarding - Ensuite, le hit a été "rejETÉ". * d'autres logs pourraient dire "deny" ou "accept" - Ce hit du firewall est arrivé sur l'interface "eth0" (lien Internet). - C'était un paquet "TCP". - Ce hit est arrivé de l'adresse IP "12.75.147.174" avec comme port de retour "1633". - Ce hit étais adressé a l'IP "100.200.0.212" sur le port "23" ou TELNET. * Si vous ne saviez pas que le port 23 correspondait au TELNET, allez jeter un coup d'oeil au fichier /etc/services. - Ce paquet faisait "44" octets de long. - Ce paquet n'avais aucun TOS (type de service) --Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie... vous n'avez pas envie de savoir. * pour IPCHAINS, il faut diviser ce nombre par 4. - Ce paquet avec comme "IP ID" "18". --Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie... vous n'avez pas envie de savoir. - Ce paquet avec avais un fragment de décalage de 16 bits incluant tout paquet TCP/IP avec comme drapeau "0x0000". --Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie... vous n'avez pas envie de savoir. * Une valeur commençant par "0x2..." ou "0x3..." aurais signifié que le drapeau "Autres Fragments" était positionné et que d'autres morceaux de paquets étaient a venir pour compléter cet ÉNORME paquet. * Une valeur de "Ox4..." et "Ox5..." signifie que le drapeau "Ne pas fragmenter" est positionné. * Toutes les autres valeurs est le décalage du fragment (divisé par 8) pour être réassemblé plus tard. - Ce paquet avais un TTL de 20. * Chaque saut au travers d'Internet soustrait 1 de ce nombre. En général, les paquets commencent leur vie avec un TTL de 255 et si jamais ce nombre arrive a zéro, cela signifie que ce paquet a été perdu et qu'il sera supprimé. </verb> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Puis-je configurer IP MASQ pour permettre a des utilisateurs externes de contacter directement des machines masquées ? <p> Bien sur~! avec IPPORTFW, vous pouvez autoriser TOUT ou juste certaines machines sur Internet a contacter toutes vos machines masquées. <bf>Ce sujet est développé dans la section <ref id="Forwarders"> de ce HOWTO.</bf> <label id="No-Free-Ports"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai des "kernel: ip_masq_new(proto=UDP): no free ports." qui apparaissent dans mon SYSLOG. Que se passe-t-il ? <p> L'une de vos machines internes crée un nombre anormalement haut de paquets a destination d'Internet. Comme l'IP MASQ construit une table et transmet ces paquets sur Internet, la table se remplis vite. Une fois cette table pleine, vous aurez droit à cette erreur. La seule application que je connaisse et qui crée cette situation temporairement est un programme de jeu appelé "GameSpy". Pourquoi~? Car il récupère une liste de serveurs et ensuite, ping chaque serveur de la liste (environ 1000 serveurs). En créant tous ces pings, il crée une dizaine de milliers de connexions dans un très court laps de temps. Jusqu'à ce que les sessions expirent grâce aux timeout de l'IP MASQ, la table MASQ est pleine. Que faire alors~? Franchement, n'utilisez pas de programme comme cela. Si vous avez cette erreur dans vos logs, trouvez le programme, et stoppez le. Si vous aimez beaucoup GameSpy, ne rafraîchissez pas la liste des serveurs trop souvent. Une fois que vous arrêtez ce genre de programmes, l'erreur MASQ s'en ira quand les connexions commenceront a expirer. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai des "ipfwadm: setsockopt failed: Protocol not available" lorsque j'essaye d'utiliser IPPORTFW~! <p> Si vous obtenez ce message d'erreur, alors que vous venez d'installer un nouveau noyau, assurez vous de bien avoir copié le noyau et de bien avoir relancé LILO. Référez vous à la fin de la section <ref id="Forwarders"> pour plus de détails. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Les partages Microsoft ne marchent pas a travers l'IP MASQ~! <p> Pour supporter convenablement le protocole SMB, un module IP MASQ aurais besoin d'être écrit, mais il y a trois façons de contourner ce problème. Allez lire <htmlurl url="http://support.microsoft.com/support/kb/articles/q172/2/27.asp" name="cet article de la base de connaissances de Microsoft">. La première façon est de configurer IPPORTFW et de rediriger les ports TCP 137, 138 et 139 vers la machine masquée. Bien que cette solution marche, elle ne permet d'accéder qu'a UNE seule machine interne. La deuxieme solution est d'installer et configurer <htmlurl url="http://www.samba.org" name="Samba"> sur le serveur MASQ. Avec Samba, vous pouvez mapper vos partages internes sur le serveur et les exporter aux clients externes. La configuration de Samba est entièrement décrite dans le SMB HOWTO et dans TrinityOS. La troisième solution est de configurer un VPN (réseau privé virtuel) entre les deux machines ou entre les deux réseaux. Cela peut être fait soit avec PPTP, soit avec IPSEC. Il y a un patch <ref id="PPTP"> pour Linux et aussi une implémentation complete d'IPSEC pour les noyaux 2.0 et 2.2. Cette solution est probablement la plus sure des trois solutions. Toutes ces solutions ne sont pas décrites dans ce HOWTO. Je vous recommande d'aller lire TrinityOS pour de l'aide sur IPSEC et la page de John Hardin's sur PPTP pour plus d'informations. <em>S'IL VOUS PLAÎT, comprenez bien que le protocole SMB de Microsoft n'est PAS sur du TOUT. A cause de cela, faire transiter des fichiers, impressions et ouvertures de sessions SMB via Internet n'est PAS une bonne idée.</> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> L'IRC ne marche pas correctement pour les utilisateurs MASQ. Pourquoi~? <p> La raison la plus probable est que la majorité des distributions Linux ont un serveur IDENT qui n'arrive pas a prendre en charge les liens MASQ. Ne vous inquiétez pas, il y a des IDENT de par le monde qui fonctionnent. L'installation de ces logiciels est hors de propos dans ce HOWTO, mais chacun a sa propre documentation. Voici quelques adresses~: <itemize> <item> <url url="ftp://ftp.code.org/pub/linux/midentd/" name="Mident"> est largement utilisé par la majorité des utilisateurs d'IRC. <item> <url url="http://insecurity.net/sidentd.gz" name="Sident"> <item> <url url="ftp://sunsite.unc.edu/pub/Linux/system/network/daemons/" name="Autres Idents incluant Oidentd"> </itemize> Notez que certains serveurs IRC n'autoriseront pas de multiples connexions d'une machine, même si les ident sont différents et que les utilisateurs le sont aussi. Plaignez vous a l'administrateur du serveur IRC. :-) <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> mIRC n'arrive pas a faire des DCC send. <p> C'est un problème de configuration de votre copie de mIRC. Pour réparer cela, déconnectez vous du serveur IRC. Maintenant, dans mIRC, allez dans fichier/options/Connect, cliquez sur Edit et vérifiez que vous vous connectez bien sur le port 6667. Si vous avez besoin d'accéder via d'autres ports, allez voir plus bas. Ensuite, allez dans Fichier/options/Local Info et effacez le nom de machine ainsi que l'adresse IP, ensuite, sélectionnez "local host" et "ip adress" (ip adress sera peut être coché mais désactivé). Ensuite, dans "Lookup Method", configurez le pour "normal". Cela ne marchera PAS si vous avez coché "server". Voilà. Reconnectez vous au serveur irc. Si vous avez besoin de vous connecter a des serveurs irc sur un autre port que 6667 (par exemple 6969), vous allez avoir besoin d'éditer le fichier <tt>/etc/rc.d/rc.firewall</> a l'endroit ou vous chargez les modules IP MASQ. Éditez la ligne "modprobe ip_masq_irc" et ajoutez "ports=6667,6969". Vous pouvez ajouter autant de ports que vous voulez tant qu'ils sont séparés par des virgules. Ensuite, déconnectez tous les clients IRC de toutes les machines masquées et rechargez le module IP MASQ IRC : <verb> /sbin/rmmod ip_masq_irc /etc/rc.d/rc.firewall </verb> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Est ce que l'IP MASQ peut marcher avec une seule carte réseau (IP Aliasing)~? <p> <bf>Oui et non</>. La fonctionnalité "IP Alias" du noyau sert a mettre en place plusieurs interfaces comme eth0:0, eth0:1, etc mais il n'est pas recommandé d'utiliser des interfaces aliasées pour faire de l'IP Masquerading. Pourquoi~? Réaliser un firewall sécurisé devient plus dur avec une seule interface réseau. De plus, vous allez rencontrer un nombre anormalement élevé d'erreurs car les paquets reçus seront quasiment réenvoyés au même moment. A cause de cela, et aussi vu qu'une carte réseau coûte moins de 100 F, je recommande grandement d'acheter une deuxième carte réseau. Vous devriez aussi comprendre que l'IP MASQ ne marchera en sortie que sur une interface physique comme ppp0, eth0, etc... Masquer une interface aliasée comme eth0:0, eth1:2, etc ne marchera PAS. En d'autres termes, cela NE MARCHERA PAS~: <itemize> <item> /sbin/ipfwadm -F -a m -W eth0:1 -S 192.168.0.0/24 -D 0.0.0.0/0 <item> /sbin/ipchains -A forward -i eth0:1 -s 192.168.0.0/24 -j MASQ" </itemize> Si vous êtes toujours intéressés par le fait d'utiliser des interfaces aliasées, vous allez avoir à autoriser la fonctionnalité "IP Alias" du noyau. Recompilez et redémarrez. Une fois que vous avez votre nouveau noyau, vous allez devoir configurer Linux pour utiliser la nouvelle interface (eth0:0, etc). Après cela, vous pourrez la traiter comme n'importe quelle interface avec quelques restrictions comme celle ci dessus. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'essaye d'utiliser NETSTAT pour montrer mes connexions masquées, mais ça ne marche pas. <p> Il y a un problème dans le programme netstat. Après avoir rebooté linux, lancer un <tt>netstat -M</> fonctionne, mais après qu'un ordinateur MASQué ai fait un peu de trafic ICMP comme un ping ou un traceroute, etc. Vous verrez peut être la chose suivante~: <verb> masq_info.c: Internal Error `ip_masquerade unknown type'. </verb> Pour contourner ce problème, utilisez la commande "<tt>/sbin/ipfwadm -M -l</>". Vous noterez aussi qu'une fois que les entrées ICMP masquées expirent, netstat remarche. <label id="PPTP"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je voudrais réussir a faire marcher Microsoft PPTP (tunnel GRE) et/ou des tunnels IPSEC (Linux SWAN) à travers l'IP MASQ. <p> C'EST possible. Toutefois, c'est légèrement hors de propos ici. Allez consulter la page <htmlurl url="ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html" name="PPTP Masq"> de John Hardin pour plus de détails. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je veux faire marcher le jeu en réseau XYZ à travers IP MASQ, mais cela ne marche pas~! <p> Tout d'abord, allez faire un tour sur <url url="http://dijon.nais.com/˜nevo/masq/" name="Lee Nevo's MASQ Applications page">. Si la solution a votre probleme ne s'y trouve pas, essayez de patcher votre noyau avec le patch <url url="ftp://ftp.netcom.com/pub/mu/mumford/loose-udp-2.0.36.patch.gz" name="LooseUDP"> qui est décrit dans la section <ref id="LooseUDP">. Allez aussi faire un tour sur la <url url="http://www.alumni.caltech.edu/˜dank/peer-nat.html" name="NAT Page"> de Dan Kegel pour plus d'informations. Si vous en avez le courage et les capacités, utilisez "<tt>tcpdump</>" pour écouter votre réseau. Essayez de découvrir quels protocoles et ports votre jeu XYZ utilise. Avec ces informations en main, inscrivez vous a la liste <htmlurl url="mailto:masq-subscribe@tiffany.indyramp.com" name="IP Masq email list"> et envoyez les résultats pour de l'aide. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> IP MASQ marche très bien, et puis au bout d'un certain temps, il s'arrête de marcher. Un reboot semble corriger le problème pour un certain temps. Pourquoi~? <p> Je parie que vous utilisez IPAUTOFW et/ou que vous l'avez compilé dans votre noyau, non~? C'est un problème bien connu d'IPAUTOFW. Il est recommandé de ne même pas configurer IPAUTOFW dans le noyau et d'utiliser IPPORTFW à la place. Tout cela est couvert dans la section <ref id="Forwarders">. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Les machines masquées ne peuvent pas envoyer ni recevoir des emails~! <p> Bien que cela ne soit pas un problème de masquerading, mais que cela arrive a pas mal de gens, ce problème mérite d'être mentionné. SMTP~: Le problème est que vous utilisez certainement une machine Linux comme serveur de mail et vous avez l'erreur suivante~: <tscreen> "error from mail server: we do not relay" </tscreen> Les dernières version de Sendmail et d'autres MTA (mail transfer agents) désactivent le relayage par défaut (c'est une bonne chose). Donc, faites les chose suivante~: <itemize> <item> Sendmail~: Autoriser un relayage spécifique pour vos machines internes en éditant le fichier <tt>/etc/sendmail.cw</> et ajoutez le nom de la machine et le nom du domaine de votre machine masquée. Vous devriez aussi vérifier que l'IP et le nom complet de la machine en question se trouvent dans le fichier <tt>/etc/hosts</>. Une fois que cela a été fait, vous aurez a redémarrer Sendmail pour qu'il relise son fichier de configuration. Tout cela est expliqué dans <url url="http://www.ecst.csuchico.edu/˜dranch/LINUX/TrinityOS.wri" name="TrinityOS - Section 25"> </itemize> POP-3~: Certains utilisateurs configurent leurs ordinateurs masqués pour aller récupérer leurs emails sur des serveurs POP-3 externes. Cela ne devrais pas poser de problèmes, mais certains serveurs essayent de faire des requêtes IDENT sur le port 113. La majorité des systèmes de part le monde ont comme police par défaut mise a DENY. Ce n'est pas bien du tout. Réglez la a REJECT et relancez votre <tt>rc.firewall</>. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai besoin que différents réseaux sortent sur des adresses IP différentes (IPROUTE2) <p> Disons que vous avez le problème suivant : <tscreen><verb> LAN ----------> IP officielle 192.168.1.x --> 123.123.123.11 192.168.2.x -->123.123.123.12 </verb></tscreen> Tout d'abord, vous devez comprendre que IPFWADM et IPCHAINS entrent en jeu apres que le système de routage aie décidé ou envoyer le paquet. Cela devrais être écrit en grosses lettres rouges dans toutes les documentations IPFWADM/IPCHAINS/IPMASQ. Vous aurez donc tout d'abord a bien faire votre routage et ensuite, ajouter IPFWADM/IPCHAINS, et/ou MASQ. Dans le cas précédent, Vous allez devoir persuader le système de routage de diriger les paquets de 192.168.1.x vers 123.123.123.11 et les paquets de 192.168.2.x vers 123.123.123.12. C'est la partie la plus ardue. Ajouter du MASQ par dessus un routage correct est assez aisé. Pour faire de routage bizarre, vous allez utiliser IPROUTE2. Le site FTP principal est~: <itemize> <item> <htmlurl url="ftp://ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.inr.ac.ru/ip-routing"> Les miroirs sont~: </itemize> <itemize> <item> <htmlurl url="ftp://linux.wauug.org/pub/net" name="ftp://linux.wauug.org/pub/net"> <item> <htmlurl url="ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/"> <item> <htmlurl url="ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/" name="ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/"> <item> <htmlurl url="ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/ (STM1 to USA)"> <item> <htmlurl url="ftp://sunsite.icm.edu.pl/pub/Linux/iproute/" name="ftp://sunsite.icm.edu.pl/pub/Linux/iproute/"> <item> <htmlurl url="ftp://ftp.sunet.se/pub/Linux/ip-routing/" name="ftp://ftp.sunet.se/pub/Linux/ip-routing/"> <item> <htmlurl url="ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/" name="ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/"> <item> <htmlurl url="ftp://ftp.crc.ca/pub/systems/linux/ip-routing/" name="ftp://ftp.crc.ca/pub/systems/linux/ip-routing/"> <item> <htmlurl url="ftp://ftp.paname.org" name="ftp://ftp.paname.org (France)"> <item> <htmlurl url="ftp://donlug.ua/pub/mirrors/ip-route/" name="ftp://donlug.ua/pub/mirrors/ip-route/"> <item> <htmlurl url="ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/" name="ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/"> </itemize> Des RPM sont disponibles sur~: <itemize> <item> <htmlurl url="ftp://omni.rk.tusur.ru/Tango/" name="ftp://omni.rk.tusur.ru/Tango/"> <item> <htmlurl url="ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/" name="ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/"> </itemize> NOTE~: Les instructions suivantes sont données uniquement car il n'y a que peu d'informations disponibles sur IPROUTE2. Allez lire <htmlurl url="http://www.compendium.com.ar/policy-routing.txt" name="http://www.compendium.com.ar/policy-routing.txt"> pour avoir le début d'un HOWTO sur d'IPROUTE2. Les commandes "<tt>iprules</>" et "<tt>iproute</>" sont les mêmes que "<tt>ip rules</>" et "<tt>ip route</>" (Je préfère les premières car elles sont plus facile a retrouver). Toute les commandes ci dessous n'ont pas été testées, si elles ne marchent pas, contactez l'auteur d'IPROUTE2... Pas David Ranch, Ambrose Au, ou qui que ce soit sur la liste Masq, car cela n'a rien a voir avec l'IP Masquerading. Les premières commandes sont à exécuter une fois au boot, disons dans <tt>/etc/rc.d/rc.local</>. <tscreen> <verb> # Autoriser les deux LAN a communiquer, sans masq. /sbin/iprule add from 192.168.0.0/16 to 192.168.0.0/16 table main pref 100 # Tout le trafic restant de 192.168.1.x va sortir, on le prends en charge via la table 101. /sbin/iprule add from 192.168.1.0/24 to 0/0 table 101 pref 102 # Tout le trafic restant de 192.168.2.x va sortir, on le prends en charge via la table 102. /sbin/iprule add from 192.168.2.0/24 to 0/0 table 102 pref 102 </verb> </tscreen> Ces commandes doivent être lancées lorsque eth0 est configurée, par exemple, dans <tt>/etc/sysconfig/network-scripts/ifup-post</> (pour les RedHat). Assurez vous les lancer a la main pour être sur qu'elles marchent. <tscreen> <verb> # La table 101 force tous les paquets y arrivant à être envoyés via 123.123.123.11 /sbin/iproute add table 101 via 62123.123.123.11 # La table 102 force tous les paquets y arrivant à être envoyés via 123.123.123.12 /sbin/iproute add table 102 via 62123.123.123.12 </verb> </tscreen> A cette étape, vous devriez voir les paquets venant de 192.168.1.x a destination du monde extérieur sont routés via 123.123.123.11, et que les paquets de 192.168.2.x le sont via 123.123.123.12. Une fois que le routage est correct, vous pouvez ajouter vos règles d'IPFWADM ou d'IPCHAINS. Pour IPCHAINS, on pourrais mettre~: <tscreen> <verb> /sbin/ipchains -A forward -i ppp+ -j MASQ </verb> </tscreen> Si tout s'est bien passé, le code MASQ devrais voir les paquets routés sur 123.123.123.11 et 123.123.123.12, et utiliser ces adresses comme adresses source de MASQ. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Pourquoi est ce que les noyaux 2.1 et 2.2 utilisent IPCHAINS et non plus IPFWADM~? <p> IPCHAINS inclu plus de fonctionnalités qu'IPFWADM, dont~: <itemize> <item> La "Qualité de Service" (QoS) <item> Un système en arbre contrairement au système linéaire d'IPFWADM (par exemple, cela permet des choses comme "si ça vient de ppp0, va directement a cette règle (qui contient ses règles propres)"). <item> IPCHAINS est plus souple a configurer. Par exemple, il inclue la commande "replace" (en plus d'"insert" et "add"). Il est aussi possible de nier des règles (par exemple "ignorer tous les paquets sortant qui ne viennent pas de mon IP" pour ne pas être la source d'une attaque spoofée). <item> IPCHAINS peut filtrer n'importe quel protocole IP, pas seulement TCP, UDP et ICMP. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je viens de passer a un noyau 2.2 et ça ne marche plus. <p> Il y a plusieurs raisons qui peuvent faire que cela ne marche plus, en supposant que vous avez une bonne connection à Internet et à votre LAN~: <itemize> <item> Assurez vous que vous avez les fonctionnalités et les modules nécessaires compilés et chargés. Référez vous aux sections précedentes pour cela. <item> Vérifiez <tt>/usr/src/linux/Documentation/Changes</> et assurez vous que vous avez les bonnes versions des outils réseau installés. <item> Assurez vous d'avoir bien activé l'IP forwarding. Essayez de lancer <tt>echo "1" > /proc/sys/net/ipv4/ip_forwarding</>. <item> Assurez vous d'avoir bien suivi tous les tests de la section <ref id="Testing"> de ce howto. <item> Vous devez utiliser <url url="http://www.rustcorp.com/linux/ipchains/" name="ipchains"> pour manipuler les regles ipmasq et firewal. <item> IPPORTFW et IPAUTOFW ont été remplacés par <url url="http://juanjox.kernelnotes.org/" name="IPMASQADM">. Vous allez devoir appliquer des patchs au noyau, et à le recompiler, compiler le nouvel outil IPMASQADM, et ensuite, convertir vos anciennes regles IPAUTOFW/IPPORTFW pour utiliser la nouvelle syntaxe. Tout cela est intégrallement décrit dans la section <ref id="Forwarders">. <item> Refaites toute la préparation et la configuration encore ! La plupart du temps, c'est juste une erreur de typo ou une erreur stupide que vous verrez facilement. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je viens de mettre à jour mon noyau avec un 2.0.36 ou plus récent et ça ne marche plus~! <p> Il y a plusieurs chose que vous devriez vérifier, en supposant que vous avez une bonne connection à Internet et à votre LAN~: <itemize> <item> Assurez vous que vous avez bien toutes les fonctionnalités et modules de compilés et chargés. Référez vous aux sections précédentes pour plus de détails. <item> Verifiez dans <tt>/usr/src/linux/Documentation/Changes</> que vous avez bien mis a jour le minimum pour survivre. <item> Assurez vous de bien avoir activé l'IP forwardinf. Essayez <tt>echo "1" > /proc/sys/net/ipv4/ip_forward</>. <item> Assurez vous d'avoir bien suivi tous les tests de la section <ref id="Testing"> de ce howto. <item> Vous devriez utiliser <url url="http://www.xos.nl/" name="ipfwadm"> pour manipuler les regles ipmasq et firewall. Vous aurez a patcher les noyaux 2.0.x pour utiliser ipchains. <item> Refaites toute la préparation et la configuration encore ! La plupart du temps, c'est juste une erreur de typo ou une erreur stupide que vous verrez facilement. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai besoin de faire marcher des connexions EQL avec l'IP MASQ. <p> L'EQL n'a rien a voir avec l'IP MASQ bien qu'ils soient souvent utilisés ensembles sur des machines Linux. A cause de cela, je vous recommenderais d'aller récupérer la derniere version de l'<htmlurl url="http://home.indyramp.com/masq/eql/eql.html" name="EQL HOWTO de Robert Novak"> qui devrais répondre a toutes vos questions. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je n'arrive pas à faire marcher l'IP Masquerade ! Quelles sont les possibilités pour le faire avec Windows ? <p> Ok, c'est vous qui l'avez voulu. Si vous voulez une solution Windows NAT/proxy, voici une liste décente. Je n'ai aucune préférence entre ces différents utilitaires, vu que je n'en ai utilisé aucun. (NdT~: j'utilise souvent Winroute et il est très bien). <itemize> <item> Firesock (des créateurs de Trumpet Winsock) <itemize> <item> Joue le role de proxy <item> <htmlurl url="http://www.trumpet.com.au" name="http://www.trumpet.com.au"> </itemize> <item> Iproute <itemize> <item> Programme DOS fait pour tourner sur un 286. <item> Requiert une machine Linux pour le MASQ. <item> <htmlurl url="http://www.mischler.com/iproute/" name="http://www.mischler.com/iproute/"> </itemize> <item> Microsoft Proxy <itemize> <item> Requiert Windows NT Server <item> Assez cher <item> <htmlurl url="http://www.microsoft.com" name="http://www.microsoft.com"> </itemize> <item> NAT32 <itemize> <item> Compatible Windows 95/98/NT <item> <htmlurl url="http://www.nat32.com" name="http://www.nat32.com"> <item> Coûte $25 pour Win9x et $47 pour Win9x et WinNT. </itemize> <item> SyGate <itemize> <item> <htmlurl url="http://www.sygate.com" name="http://www.sygate.com"> </itemize> <item> Wingate <itemize> <item> Joue le role de proxy <item> Coûte $30 pour 2-3 IP. <item> <htmlurl url="http://www.wingate.com" name="http://www.wingate.com"> </itemize> <item> Winroute <itemize> <item> Fait du NAT. <item> <htmlurl url="http://www.winroute.cz/en/" name="http://www.winroute.cz/en/"> </itemize> </itemize> Mais ne dites pas que c'est moi qui vous y envoie~! <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment je m'inscris à la liste IP Masquerade~? <p> Pour s'inscrire à la liste IP Masquerading envoyez un mail à <htmlurl url="mailto:masq-subscribe@indyramp.com" name="masq-subscribe@indyramp.com">. Le sujet et le corps de ce message sont <bf>ignorés</>. Ceci vous permet de recevoir tous les messages de la liste alors qu'ils arrivent. Vous avez la possibilité de recevoir les messages sous cette forme, mais si vous pouviez plutot vous abonner au condensé (digest), choisissez le plutôt. Le digest charge moins les machines qui servent les listes. Notez aussi qu'il n'est possible de poster qu'à partir de l'adresse où vous êtes enregistrés. Pour plus de commandes, envoyez un email à <htmlurl url="mailto:masq-help@tori.indyramp.com" name="masq-help@tori.indyramp.com">. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je veux aider au développement de l'IP Masquerading. Comment faire~? <p> Abonnez vous à la liste de développement de l'IP Masquerading, et contactez les grands développeurs là-bas, en envoyant un email à <htmlurl url="mailto:masq-dev-subscribe@tori.indyramp.com" name="masq-dev-subscribe@tori.indyramp.com"> (ou pour le digest <htmlurl url="mailto:masq-dev-digest-subscribe@tori.indyramp.com" name="masq-dev-digest-subscribe@tori.indyramp.com">). NE posez pas de questions n'ayant pas de rapport avec le développement sur cette liste !! <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Où puis-je trouver plus d'informations sur l'IP Masquerading~? <p> Vous pouvez trouver plus d'informations sur l'IP Masquerading à <url url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource"> que David et moi maintenons. référez vous a la section 6.2 pour la disponibilité. Vous pouvez aussi trouver plus d'informations à <url url="http://www.indyramp.com/masq/" name="The Semi-Original Linux IP Masquerading Web Site"> maintenu par Indyramp Consulting, qui fournissent aussi les listes ipmasq. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Je veux traduire ce HOWTO dans une autre langue. Comment faire~? <p> Assurez vous que le langage dans lequel vous voulez traduire n'est pas déjà couvert par quelqu'un d'autre; une liste des traductions faites est disponible sur <url url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource">. Envoyez un email à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et je vous enverrais la derniere version du SGML de ce HOWTO. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Ce HOWTO semble à l'abandon, vous vous en occupez toujours~? Pouvez vous inclure plus d'informations sur~...~? Comptez vous l'améliorer~? <p> Oui, ce HOWTO est toujours maintenu. Il fut un temps ou j'étais coupable d'être trop occupé à travailler sur deux boulots et je n'ai pas beaucoup de temps pour travailler dessus, toutes mes excuses. Toutefois, avec l'arrivée de David Ranch et tant que mainteneur aux alentours de la version 1.5, les choses ont pas mal bougées. Si vous pensez à un sujet qui devrais être inclus dans ce HOWTO, envoyez nous un email à <htmlurl url="mailto:ambrose@writeme.com" name="ambrose@writeme.com"> et <htmlurl url="mailto:dranch@trinnet.net" name="dranch@trinnet.net">. Cela serais encore mieux si vous pouviez nous fournir cette information. David et moi inclurons cette information dans le HOWTO si elle nous semble appropriée. Et merci pour votre contribution. Nous avons beaucoup de nouvelles idées et de plans pour mettre à jour ce HOWTO, comme des études de cas, qui couvreraient differentes configurations réseau mettant en jeu l'IP Masquerading, plus de choses sur la sécurité, l'utilisation d'ipchains, des exemples sur ipfwadm/ipchains, plus de FAQ, plus de choses sur les utilitaires de forwarding de port et de protocoles tels masqasmin, etc. Si vous pensez que vous pouvez aider, faites le. Merci. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> J'ai reussi à faire marcher l'IP Masquerade, c'est génial~! Qu'est ce que je pourrais faire pour vous remercier~? <p> <itemize> <item> Pouvez vous traduire ce HOWTO dans une nouvelle langue ? <item> Remerciez les développeurs, et appréciez le temps et les efforts qu'ils ont passés dessus. <item> Inscrivez vous a la liste IP MASQ et aidez les nouveaux arrivants. <item> Envoyez nous un email pour nous faire savoir que vous êtes contents. <item> Faites connaitre Linux autour de vous, et aidez les gens qui ont des problèmes. </itemize> <!-- Section 6 --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Divers <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Ressources utiles <p> Note du Traducteur~: Tous les documents cités dans cette section sont en anglais, à moins d'une mention spéciale de ma part. <itemize> <item> <url url="http://ipmasq.cjb.net/" name="IP Masquerade Resource page"> devrait contenir assez d'information pour l'installation d'IP Masquerade sur les noyaux 2.0, 2.2 et même les 1.2~! <item> L'<url url="http://www.indyramp.com/masq/list/" name="archive de la mailing list IP Masquerade"> contient certains des messages envoyés récement sur la liste. <item> Ce document, en anglais~: <url url="http://ipmasq.cjb.net/ipmasq-HOWTO.html" name="Linux IP Masquerade mini HOWTO"> pour les noyaux 2.2.x et 2.0.x. <item> Le <url url="http://ipmasq.cjb.net/ipmasq-HOWTO-1.2.x.txt" name="IP Masquerade HOWTO pour les noyaux 1.2.x"> si vous utilisez un vieux noyau <item> La <url url="http://www.indyramp.com/masq/ip_masquerade.txt" name="FAQ IP Masquerade"> contient des informations générales <item> <url url="http://www.freenix.org/unix/linux/HOWTO-vo/IPCHAINS-HOWTO.html" name="Linux IPCHAINS HOWTO"> et <htmlurl url="http://www.rustcorp.com/linux/ipchains/" name="http://www.rustcorp.com/linux/ipchains/"> contiennent plein d'informations sur l'utilisation d'ipchains, ainsi que les sources et les binaires pour ipchains. <item> La page <url url="http://www.xos.nl/linux/ipfwadm/" name="X/OS Ipfwadm page"> contient les sources, binaires, de la documentation et d'autres informations sur le package <tt>ipfwadm</>. <item> Une page sur les <url url="http://dijon.nais.com/~nevo/masq/" name="applications qui marchent avec l'IP Masquerading de Linux"> par Lee Nevo fournis des trucs et astuces pour faire marcher tout ça avec l'IP Masquerading. <item> Le <url url="http://metalab.unc.edu/mdw/LDP/nag/nag.html" name="LDP Network Administrator's Guide"> est incontournable pour les débutants essayant d'installer un réseau. <item> <url url="http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri" name="Trinity OS Doc">, Une documentation très complete sur l'utilisation de Linux en réseau. <item> Le <url url="http://www.freenix.org/unix/linux/HOWTO/NET-3-HOWTO.html" name="Linux NET-3 HOWTO"> (<bf>en français</>) contient aussi beaucoup d'informations utiles sur l'utilisation du réseau sous Linux. <item> Le <url url="http://www.freenix.org/unix/linux/HOWTO/ISP-Hookup-HOWTO.html" name="Linux ISP Hookup HOWTO"> (<bf>en français</>) et le <url url="http://www.freenix.org/unix/linux/HOWTO/PPP-HOWTO.html" name="PPP HOWTO"> (<bf>en français</>) vous donnent des informations pour connecter votre hôte Linux sur Internet. <item> Le <url url="http://www.freenix.org/unix/linux/HOWTO/Ethernet-HOWTO.html" name="Linux Ethernet-Howto"> (<bf>en français</>) est une bonne source d'informations sur la mise un place d'un réseau local utilisant Ethernet. <item> Vous pouvez également être intéressé par le <url url="http://www.freenix.org/unix/linux/HOWTO/Firewall-HOWTO.html" name="Linux Firewalling and Proxy Server HOWTO"> (<bf>en français</>) <item> Le <url url="http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> (<bf>en français</>) vous guidera pour pour la recompilation de votre noyau. <item> D'autres HOWTOs, en <url url="http://www.freenix.org/unix/linux/HOWTO/" name="français">, ou en <url url="http://www.caldera.com/LDP/HOWTO/HOWTO-INDEX-3.html" name="anglais">. <item> Poster dans les newsgroups USENET~: <htmlurl url="news:comp.os.linux.networking" name="comp.os.linux.networking">, ou, en français, <htmlurl url="news:fr.comp.os.linux.configuration" name="fr.comp.os.linux.configuration"> ou <htmlurl url="news:fr.comp.os.linux.moderated" name="fr.comp.os.linux.moderated"> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Ressources sur l'IP Masquerade <p> Le site <url url="http://ipmasq.cjb.net/" name="Linux IP Masquerade Resource "> est dédié à l'IP Masquerading, aussi maintenu par David Ranch et moi. Les dernières informations y sont toujours disponibles, et il peut y avoir des choses non disponibles dans ce HOWTO. Vous trouverez les ressources sur l'IP Masquerading aux endroits suivants~: <itemize> <item> <htmlurl url="http://ipmasq.cjb.net/" name="http://ipmasq.cjb.net/">, site primaire, redirigé sur <htmlurl url="http://www.tor.shaw.wave.ca/~ambrose/" name="http://www.tor.shaw.wave.ca/~ambrose/"> <item> <htmlurl url="http://ipmasq2.cjb.net/" name="http://ipmasq2.cjb.net/">, site secondaire, redirigé sur <htmlurl url="http://www.geocities.com/SiliconValley/Heights/2288/" name="http://www.geocities.com/SiliconValley/Heights/2288/"> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Remerciements <p> En ordre alphabétique~: <itemize> <item> Gabriel Beitler, gbeitler@aciscorp.com &nl; section 3.3.8 sur Novell. <item> Juan Jose Ciarlante, irriga@impsat1.com.ar &nl; Pour son travail sur IPMASQADM, son travail sur le code des 2.1 et 2.2, le patch LooseUDP original, etc... <item> Steven Clarke, steven@monmouth.demon.co.uk &nl; pour ses contributions à IPPORTFW. <item> Andrew Deryabin, djsf@usa.net &nl; pour ses contributions au module ICQ MASQ. <item> Ed Doolittle, dolittle@math.toronto.edu &nl; pour ses suggestions sur l'option <tt>-V</> d'<tt>ipfwadm</> pour accroître la sécurité. <item> Matthew Driver, mdriver@cfmeu.asn.au &nl; Pour avoir aidé sur ce HOWTO, et avoir fourni la section 3.3.1 (mise en place de Windows 95). <item> Ken Eves, ken@eves.com &nl; pour la FAQ qui fournis des informations essentielles à ce HOWTO. <item> John Hardin, jhardin@wolfenet.com &nl; pour ses outils de forwarding PPTP et IPSEC. <item> Glenn Lamb, mumford@netcom.com &nl; pour le patch LooseUDP <item> Ed. Lott, edlott@neosoft.com &nl; pour une longue liste de systèmes et logiciels testés. <item> Nigel Metheringham, Nigel.Metheringham@theplanet.net &nl; Pour avoir apporté sa version de l'IP Packet Filtering et IP Masq HOWTO, qui rends ce HOWTO encore meilleur. &nl; les section 4.1, 4.2, et d'autres. <item> Keith Owens, kaos@ocs.com.au &nl; pour son excellent guide sur ipfwadm de la section 4.2 &nl; pour une correction à <tt>ipfwadm -deny</> qui évitais un trou de sécurité, et clarifiait le status des <tt>ping</> via IP MASQ. <item> Michael Owings, mikey@swampgas.com &nl; pour avoir fournis la section a propos de CU-SeeMe et le Linux IP-Masquerade Teeny How-To <item> Rob Pelkey, rpelkey@abacus.bates.edu &nl; pour avoir fournis les sections 3.3.6 et 3.3.7 (mise en place de MacTCP et Open Transport) <item> Harish Pillay, h.pillay@ieee.org &nl; pour la secion 4.5 (dial-on-demand avec Diald) <item> Mark Purcell, purcell@rmcs.cranfield.ac.uk &nl; pour la section 4.6 (IPautofw) <item> David Ranch, dranch@trinnet.net &nl; pour son aide a maintenir ce HOWTO, la page Linux IP Masquerade Resource, le document TrinityOS, ... , trop de choses pour tout mettre ici :-) <item> Paul Russell, rusty@rustcorp.com.au &nl; pour son travail sur IPCHAINS, des patchs IP MASQ, etc. <item> Ueli Rutishauser, rutish@ibm.net &nl; pour la section 3.3.9 (mise en place d'OS/2 Warp) <item> Fred Viles, fv@episupport.com &nl; pour ses patchs FTP. <item> John B. (Brent) Williams, forerunner@mercury.net &nl; pour la section 3.3.7 (mise en place d'Open Transport) <item> Enrique Pessoa Xavier, enrique@labma.ufrj.br &nl; Pour une suggestion sur BOOTp. <item> Tous les habitués de la liste IP MASQ, masq@tiffany.indyramp.com &nl; pour avoir fournis leur aide aux utilisateurs de Linux. <item> D'autres programmeurs ou rédacteurs de documentations~: <quote> <itemize> <item> Delian Delchev, delian@wfpa.acad.bg <item> David DeSimone (FuzzyFox), fox@dallas.net <item> Jeanette Pauline Middelink, middelin@polyware.iaf.nl <item> Miquel van Smoorenburg, miquels@q.cistron.nl <item> Jos Vos, jos@xos.nl <item> Et tous ceux que j'ai pu oublier (faites-le moi savoir !) </itemize> </quote> <item> tous les utilisateurs envoyant des suggestions et des critiques à la mailing list, et plus particulièrement ceux qui m'ont fait part d'erreurs dans ce document et les clients supportés ou non. <item> Je vous demande pardon si je n'ai pas inclus les informations que certains utilisateurs m'ont envoyées. De nombreuses idées et suggestions me sont envoyées, mais je n'ai pas le temps de les vérifier, ou je les égare. J'essaie de faire de mon mieux pour incorporer toutes les informations qu'on m'envoye pour rédiger ce HOWTO. Je vous remercie pour votre effort, et j'espère que vous comprenez ma situation. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Réference <p> <itemize> <item> IP masquerade FAQ de Ken Eves <item> Archive de la mailing list IP Masquerade de Indyramp Consulting <item> Le site WWW IP Masquerade d'Ambrose Au <item> La page sur Ipfwadm par X/OS <item> Divers HOWTOs liés au réseau sous Linux <item> Certains sujets abordés dans TrinityOS de David Ranch </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> </article>