Les HOWTO Linux...
Page suivante - Page précédente - Table des matières
2. Connaissances Préliminaires
2.1 Qu'est-ce que l'IP Masquerade?
L'IP Masquerade est une fonctionnalité réseau de Linux similaire à la Translation d'Adresse Réseau un-vers-plusieurs que l'on trouve dans beaucoup de firewalls et de routeurs commerciaux. Par exemple, si une machine Linux est connectée à Internet via PPP, Ethernet, etc., l'IP Masquerading permet aux ordinateurs "internes" connectés à cette machine Linux (via PPP, Ethernet, etc.) d'accéder aussi à Internet. L'IP Masquerading fonctionne même si ces machines internes n'ont pas d'adresses IP officielles.
MASQ permet à un groupe de machines d'avoir accès à Internet via la passerelle MASQ de manière transparente. Pour les autres ordinateurs connectés à Internet, tout le traffic généré va sembler provenir du serveur Linux IP MASQ lui-même. En plus de ces fonctionnalités, IP Masquerade fournit les bases de la création d'un environnement réseau de HAUTE sécurité. Avec un firewall bien configuré, casser la securité d'un système de masquerading et d'un LAN interne bien configuré devrait être très difficile.
Si vous voulez savoir en quoi MASQ diffère des solutions 1:1 NAT and Proxy, reportez vous à la partie what-is-masq de la FAQ.
2.2 Situation Actuelle
IP Masquerade est sorti il y a plusieurs années maintenant et il est plutôt mature depuis les noyaux 2.2.x. Depuis le noyau 1.3.x, Linux est fourni avec MASQ. Aujourd'hui de nombreuses personnes et entreprises l'utilisent avec d'excellents résultats.
Les utilisations courantes du réseau tels que la navigation Web, les TELNET, PING, TRACEROUTE, etc. fonctionnent bien avec IP Masquerade. D'autres types de communications, tels que FTP, IRC, et Real Audio fonctionnent bien avec les modules IP MASQ appropriés chargés en memoire. Certains programmes réseaux tels que les streaming audio (MP3s, True Speech, etc.) fonctionnent aussi. Quelques personnes sur la mailing list ont même réussi à obtenir de bons résultats avec des logiciels de video conferencing.
A noter aussi que faire de l'IP Masquerading avec UNE seule carte réseau (NIC) pour MASQuer entre des réseaux Ethernet interne et externe N'est PAS recommandé. Pour plus de détails, reportez vous SVP à la partie aliasing de la FAQ.
Dans tous les cas, reportez vous SVP à la partie Supported Client Software pour une liste plus complète des logiciels fonctionnant sous IP MASQ.
IP Masquerade fonctionne bien comme serveur pour des 'machines clientes' tournant sous différents systèmes d'exploitations (operating sytems ou OS en anglais) et différents materiels dont :
- Unix: Sun Solaris, *BSD, Linux, Digital UNIX, etc.
- Microsoft Windows 2000, NT (3.x et 4.x), 95/98/ME, Windows for Workgroups (avec le package TCP/IP)
- IBM OS/2
- ordinateurs Apple Macintosh sous MacOS avec soit MacTCP soit Open Transport
- systèmes sous DOS avec les packet drivers et le package NCSA Telnet
- VAXen
- Compaq/Digital Alpha sous Linux et NT
- même les ordinateurs Amiga avec AmiTCP ou la pile AS225.
Cette liste continue encore et toujours mais ce qu'il faut bien comprendre, c'est que si votre OS comprend le TCP/IP, il devrait fonctionner avec l'IP Masquerade !
2.3 Qui Peut Profiter de l'IP Masquerade?
- Si vous avez un serveur Linux connecté à Internet
- Si vous avez des ordinateurs connectés à ce serveur dans un sous-réseau local et si ces ordinateurs "parlent" le TCP/IP et/ou
- si votre serveur Linux a un ou plusieurs modems et se comporte comme un serveur PPP ou SLP pour connecter d'autres ordinateurs
- ces AUTRES ordinateurs n'ont pas d'adresses IP officielles ou publiques (i.e. avec des adresses privées).
- Et bien sûr, si vous voulez que ces AUTRES ordinateurs communiquent sur Internet sans depenser d'argent supplémentaire pour l'acquisition d'adresses IP publiques / officielles ou, soit configurer Linux pour en faire un routeur soit acheter un routeur externe.
2.4 Qui n'a pas besoin d'IP Masquerade ?
- Si vous avez une ordinateur Linux isolé connecté à Internet (bien que mettre en place un firewall serait une bonne idée), ou
- si vous avez déjà des adresses IP publiques pour vos AUTRES machines, et
- et bien sûr, si vous n'aimez pas trop l'idée de devoir utiliser Linux en 'free ride' et vous vous sentez plus à l'aise avec des outils commerciaux mais chers qui font exactement la même chose.
2.5 Comment fonctionne IP Masquerade ?
Tiré de la FAQ sur l'IP Masquerade de Ken Eves:
Voici un dessin de la configuration la plus simple: SLIP/PPP +------------+ +-------------+ vers votre FAI | Linux | SLIP/PPP | un | <---------- modem1| #1 |modem2 ----------- modem3| ordinateur | 111.222.121.212 | | 192.168.0.100 | | +------------+ +-------------+ Sur le dessin ci-desus, une machine Linux, Linux #1, avec IP_MASQUERADING d'installe est connecte a Internet par le modem1 via SLIP/ou/PPP. Elle a une adresse IP publique : 111.222.121.212. Elle a aussi un modem2 qui permet a l'appelant des connexions SLIP/ou/PPP. La seconde machine (qui n'a pas besoin de tourner sous Linux) ce connecte a la machine Linux #1 et commence une session SLIP/ou/PPP. Elle N'a PAS d'adresse IP publique sur Internet c'est pourquoi elle utilise l'adresse privee 192.168.0.100 (voir ci-dessous). Avec IP Masquerade et une configuration de routage correcte, la machine "un ordinateur" peut interagir avec Internet comme si elle y etait directement connectee (a quelques petites exceptions pres). Citons Pauline Middelink: N'oublions pas de mentionner le fait que la machine "un ordinateur" doit avoir Linux #1 configure comme sa passerelle (que ca soit la route par defaut ou juste un sous reseau n'a pas d'importance). Si la machine "un ordinateur" ne peut pas faire ca, alors la machine Linux doit etre configuree de telle sorte que le proxy arp fonctionne pour toute les adresses de routage. Mais la mise en place et la configuration d'un proxy arp depasse le cadre de ce document. L'extrait suivant est tire d'un post sur comp.os.linux.networking qui a ete modifie de facon a tenir compte des noms utilises dans l'exemple precedent : o Je dis a la machine "un ordinateur" que mon Linux, connecte via PPP ou SLIP, est sa passerelle. o Quand un paquet provenant d"un ordinateur" arrive a ma machine Linux, elle va lui assigner un nouveau numero de port source TCP/IP et va coller sa propre adresse IP dans l'entete du paquet, tout en sauvegardant l'entete originale. Le server MASQ va ensuite envoyer le paquet ainsi modifie sur Internet via son interface SLIP/PPP. o Quand un paquet arrive d'Internet vers la machine Linux, Linux va examiner si son numero de port est l'un des numeros qu'il avait assigne precedement. Si c'est le cas, le server MASQ va recuperer le port et l'adresse IP originale et les remettre dans l'entete de paquet qui est revenu. Enfin Linux va renvoyer ce paquet a la machine "un ordinateur". o La machine qui a envoye le paquet ne fera pas la difference.
Un Autre Exemple d'IP Masquerading :
Un exemple typique est donné dans le diagramme ci-dessous :
+----------+ | | Ethernet | A |:::::: | |.2 : 192.168.0.x +----------+ : : +----------+ PPP +----------+ : .1 | Linux | link | | :::::::| Masq-Gate|:::::::::::::::::::// Internet | B |:::::: | | 111.222.121.212 | |.3 : +----------+ +----------+ : : +----------+ : | | : | C |:::::: | |.4 +----------+ | | | | <- Reseau Interne --> | | <- Reseau Externe ----> | | |
Dans cet exemple, il y a (4) ordinateurs qui méritent notre attention.
Il y a aussi sans doute quelque chose tout à droite d'où provient votre
connexion PPP à Internet (serveur terminal, etc.) et il y a aussi un
serveur distant (très très loin de la droite de cette page) sur Internet
avec qui vous voulez communiquer. Le serveur Linux Masq-Gate
est la passerelle d'IP Masquerading pour TOUT le réseau interne constitué des
machines A
, B
et C
. C'est
par là que se fera leur accès à Internet. Le réseau interne utilise une des
adresses reservées pour les réseaux privés par le RFC-1918. Dans notre cas,
c'est les adresses de Classe C 192.168.0.0. Le serveur Linux a l'adresse 192.168.0.1
alors que les autres ordinateurs ont les adresses suivantes :
- A: 192.168.0.2
- B: 192.168.0.3
- C: 192.168.0.4
Les trois machines, A
, B
et C
, peuvent tourner
sous n'importe quel système d'exploitation pour peu qu'ils puissent communiquer
par TCP/IP. Les OS tels que Windows 95, Macintosh MacTCP ou OpenTransport et Linux peuvent se connecter à d'autres machines sur Internet.
Lorsqu'il est lancé, le serveur IP Masquerade ou portail MASQ
convertit toutes
les connexions internes de telle sorte qu'ells semblent provenir du passerelle MASQ
lui même. MASQ reconvertit ensuite les données qui lui reviennent sur un port masqueradé
et ces données sont renvoyées vers la machine qui en est à l'origine.
A cause de cela, les ordinateurs du réseau interne voient une route directe vers Internet
et ne sont pas au courant que leurs données sont masqueradées. C'est ce que l'on appelle
une connexion "transparente".
NB: Vous pouvez vous reporter à FAQ pour de plus amples détails sur les sujets tels que :
- les différences entre NAT, MASQ, et les serveurs Proxy.
- le fonctionnement des firewalls pour les trames
2.6 Configurations Requises pour IP Masquerade sous Linux 2.2.x
** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**
- Les sources du noyau 2.2.x disponible sur le site :
http://www.kernel.org/
NOTE #1: Les noyaux Linux 2.2.x inférieurs à 2.2.16 ont un trou de sécurité (TCP root exploit) et les versions inférieures à 2.2.11 ont un bug de fragmentation dans IPCHAINS. Pour cette raison, les personnes qui utilisent des règles IPCHAINS très restrictives sont attaquables. Mettez à jour votre noyau vers une version corrigée.NOTE #2: La plupart des nouvelles distributions compatibles MASQ-supported-Distributions tels que Redhat 5.2 peuvent ne pas correspondre à l'installation de Linux 2.2.x requise. Des utilitaires tels que DHCP, NetUtils, etc. vont devoir être mis à jour. Vous pourrez trouver plus de details dans ce HOWTO.
- Modules noyau, de préférénce 2.1.121 ou mieux, disponibles sur les sites suivants : http://www.pi.se/blox/modutils/index.html or ftp://ftp.ocs.com.au/pub/modutils/
- Un réseau fonctionnant sous TCP/IP ou un LAN traité dans
Linux NET-3-4 HOWTO et le
Network Administrator's Guide
Vous pouvez aussi regarder le document TrinityOS. TrinityOS est un guide très complet pour le réseau sous linux. Il traite de nombreux thèmes dont : l'IP MASQ, la sécurité,les DNS, DHCP, Sendmail, PPP, Diald, NFS, VPNs basés sur IPSEC et possède une section sur les performances. Il contient plus de 50 sections au total ! - La connexion de votre machine Linux à Internet est traitée dans : Linux ISP Hookup HOWTO, Linux PPP HOWTO, TrinityOS, Linux DHCP mini-HOWTO, Linux Cable Modem mini-HOWTO and http://www.linuxdoc.org/HOWTO/mini/ADSL.html
- IP Chains 1.3.9 ou supérieur est disponible ici :
http://netfilter.filewatcher.org/ipchains/.
Des informations supplémentaires sur les versions requises et les dernières mises à jour de IPCHAINS HOWTO etc. se trouvent à l'URL suivant : Linux IP Chains page - La configuration, la compilation et l'installation d'un nouveau noyau Linux sont expliquées dans le Linux Kernel HOWTO
- Vous pouvez télécharger de nombreux utilitaires optionnels pour IP Masquerade qui permettent des fonctionnalités supplémentaires tels que :
- port-forwarder ou re-diriger des ports TCP/IP :
- IP PortForwarding (IPMASQADM) - RECOMMENDED ou l'ancien mirror.
module ICQ MASQ
Solutions de PORTFW pour FTP:
- Les deux noyaux 2.2.x et 2.0.x ont un Module MASQ pour PORTFWer un FTP vers une machine MASQuée. Reportez vous SVP à la page relative aux applications ( IPMASQ WWW site) pour les détails complets.
- Il y a un proxy FTP complet fait par SuSE qui possède une fonction similaire au PORTFWing pour accéder à un serveur FTP interne. Pour plus de details, reportez vous SVP à l'URL : SuSe Proxy URL
IPROUTE2 pour la vraie 1:1 NAT, le routage basé sur la source (Policy-based / source routing), et le façonnage du Traffic :
- ftp://ftp.inr.ac.ru/ip-routing
- La documentation se trouve ici : http://www.compendium.com.ar/policy-routing.txt
- L' Advanced Routing HOWTO
- http://defiant.coinet.com/iproute2/
Voici quelques serveurs mirroirs pour le code source:
ftp://linux.wauug.org/pub/netftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/ftp://ftp.gts.cz/MIRRORS/ftp.inr.ac.ru/ftp://ftp.funet.fi/pub/mirrors/ftp.inr.ac.ru/ip-routing/ (STM1 to USA)ftp://sunsite.icm.edu.pl/pub/Linux/iproute/ftp://ftp.sunet.se/pub/Linux/ip-routing/ftp://ftp.nvg.ntnu.no/pub/linux/ip-routing/ftp://ftp.crc.ca/pub/systems/linux/ip-routing/ftp://ftp.paname.org (France)ftp://donlug.ua/pub/mirrors/ip-route/ftp://omni.rk.tusur.ru/mirrors/ftp.inr.ac.ru/ip-routing/
les RPMs sont disponibles ici : ftp://omni.rk.tusur.ru/Tango/ et la : ftp://ftp4.dgtu.donetsk.ua/pub/RedHat/Contrib-Donbass/KAD/
Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres éventuels patches.
- port-forwarder ou re-diriger des ports TCP/IP :
2.7 Configurations Requises pour IP Masquerade sous Linux 2.3.x and 2.4.x
** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**
- Les nouveaux noyaux 2.3.x et 2.4.x utilisent un nouveau système appelé NetFilter (un peu à la manière des noyaux 2.2.x qui
utilisèrent IPCHAINS). Heureusement, contrairement à la migration vers IPCHAINS, le nouvel utilitaire NetFilter arrive avec des modules noyaux qui permettent d'utiliser de façon NATIVE la syntaxe d'IPCHAINS et d'IPFWADM et donc il n'est pas nécessaire de réecrire tous vos anciens scripts. Mais il pourrait y avoir quelques avantages à le faire (vitesse, nouvelles fonctionnalités, etc.) mais tout ca dépend de la qualité de vos anciennes règles. De nombreux changements d'architectures ont eu lieu dans ce nouveau code et permettent beaucoup plus de flexibilité, et de fonctionnalités à venir, etc.
Voici quelques avantages et inconvenients des nouvelles fonctionnalités :
avantages:
- VRAIE 1:1 NAT pour ceux qui veulent avoir des sous-reseaux TCP/IP et qui veulent jouer avec
- PORTFWing integré. IPMASQADM n'est donc plus obligatoire
- le PORTFWing integré fonctionne pour le traffic externe et interne. Ce qui signifie que les utilisateurs qui utilisaient PORTFW pour le traffic externe et le REDIR pour le traffic interne ne vont plus avoir à utiliser deux utilitaires !
- Capacité de routage Policy-Based complète (routage d'adresse TCP/IP base sur la source)
- Compatible avec les capacités FastRoute de Linux pour obtenir un packet forwarding beaucoup plus rapide (changement de réseau Linux)
- compatibilité complète avec TCP/IP v4, v6, et même DECnet (ack!)
- compatible avec les wildcard pour les noms d'interface comme : ppp* pour PPP0, PPP1, etc.
- permet le filtrage des entrées et des sorties sur les INTERFACES
- Filtrage Ethernet MAC
- limitation du taux des paquets de type Denial of Service (DoS)
- fonctionnalité très simple, générique, de type stateful d'inspection
- la fonction Packet REJECT possède maintenant un renvoie de messages ICMP configurable par l'utilisateur
- Différents niveaux de logging (différents paquets peuvent aller dans differents niveaux de SYSLOG)
inconvénients:
- Puisque NetFilter est une architecture toute neuve, la plupart des anciens modules noyaux de MASQ vont devoir
être réécrits. C'est à dire que pour le moment, seul le module FTP a été mis à jour et les modules suivants ont encore besoin de l'eêtre :
ip_masq_cuseeme.o ip_masq_icq.o ip_masq_quake.o ip_masq_user.o ip_masq_irc.o ip_masq_raudio.o ip_masq_vdolive.o
Il existe un document expliquant comment faire ce portage ici : http://netfilter.kernelnotes.org/unreliable-guides/netfilter-hacking-HOWTO-5.php, Si vous avez le temps, votre talent serait d'une grande aide pour porter ces modules plus rapidement.
Dans la version actuelle de ce HOWTO, NetFilter N'est PAS traité. Une fois que les fonctionnalité de NetFilter seront fixées, NetFilter sera traité dans -ce- HOWTO ou peut être éventuellement dans un nouveau HOWTO. D'ici là, vous pouvez vous tournez vers ces liens pour la documentation de NetFilter. Pour le moment, la configuration et la résolution des conflits et problèmes du nouveau NetFilter va être similaire à 95% à celles du IPCHAINS actuel. En raison de tout ça, ce HOWTO va être utile aux utilisateurs de firewall NetFilter et de NAT.
http://netfilter.filewatcher.org/unreliable-guides/index.html et plus spécifiquement http://netfilter.filewatcher.org/unreliable-guides/NAT-HOWTO.html
Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres eventuels patches.
2.8 Configurations Requises pour IP Masquerade sous Linux 2.0.x
** Reportez vous SVP à l' IP Masquerade Resource pour les informations les plus récentes**
- Tout ordinateur convenable. Reportez vous SVP à la section FAQ-Hardware pour de plus amples détails.
- les sources du noyau 2.0.x disponibles ici :
http://www.kernel.org/
(La plupart des Linux modernes MASQ-supported-Distributions tels que RedHat 5.2 ont un noyau modulaire compilé avec toutes les options nécessaires à IP Masquerade. Dans de tels cas, il n'y a pas besoin de recompiler un nouveau noyau. Si vous UPGRADEZ votre noyau, il est possible que d'autres programmes puissent être requis et/ou mis à jour (ces programmes sont mentionnés plus loin dans ce HOWTO). - Modules noyaux, de préférénce 2.1.85 ou mieux, disponible sur les sites suivants :
http://www.pi.se/blox/modutils/index.html ou
ftp://ftp.ocs.com.au/pub/modutils/
(les modules-1.3.57 sont le minimum requis) - Un réseau fonctionnant sous TCP/IP ou un LAN traité dans
Linux NET-3-4 HOWTO et le
Network Administrator's Guide
Vous pouvez aussi regarder le document TrinityOS. TrinityOS est un guide très complet pour le réseau sous linux. Il traite de nombreux thèmes dont : l'IP MASQ, la sécurité, les DNS, DHCP, Sendmail, PPP, Diald, NFS, VPNs basés sur IPSEC et contient une section sur les performances. Il contient plus de 50 sections au total ! - La connexion de votre machine Linux à Internet est traitée dans : Linux ISP Hookup HOWTO, Linux PPP HOWTO, TrinityOS, Linux DHCP mini-HOWTO, Linux Cable Modem mini-HOWTO et http://www.linuxdoc.org/HOWTO/mini/ADSL.html
- Ipfwadm 2.3 ou supérieur est disponible ici :
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz
Des informations supplémentaires sur les versions requises sont disponible ici : Linux IPFWADM page- Si vous voulez faire tourner IPCHAINS sur un noyau 2.0.38+, reportez vous ici : Willy Tarreau's IPCHAINS enabler for 2.0.36 ou ici : Rusty's IPCHAINS for 2.0.x kernels
- Savoir configurer, compiler, et installer un nouveau noyau Linux comme expliqué ici : Linux Kernel HOWTO
- Vous pouvez aussi appliquer plusieur patches optionnel à IP Masquerade pour lui 'apprendre' des fonctionnalités telles que :
- port-forwarder ou re-diriger des ports TCP/IP : Avec ces utilitaires, vous pouvez faire fonctionner des programmes qui normalement ne fonctionne pas dernière un server MASQ. De plus, vous pouvez configurer le server MASQ de façon à permettre aux internautes de contacter des servers WWW, TELNET, SMTP, FTP (avec un patch), etc. internes. Reportez vous SVP à la section
Forwarders de ce HOWTO pour de plus amples informations. Voici une liste des différents patches IP Masquerade disponibles pour le noyau 2.0.x :
- Steven Clarke's IP PortForwarding (IPPORTFW) - RECOMMANDE
- IP AutoForward et un mirroir (IPAUTOFW) - NON Recommande
- REDIR pour TCP (REDIR) - NON Recommandé
- UDP redirector (UDPRED) - NON Recommandé
Solutions de PORTFW pour FTP: :
- Si vous voulez utiliser le PORTFW pour renvoyer le traffic FTP vers un server FTP interne, vous aurez sans doute besoin de : Fred Viles's FTP server patch via HTTP ou Fred Viles's FTP server patch via FTP. De plus amples details sont disponibles à la section Forwarders de ce HOWTO.
forwarder des écrans X-Window :
module MASQ ICQ :
forwarders PPTP (GRE) et VPNs SWAN (IPSEC) tunneling :
- John Hardin's VPN Masquerade forwarders ou bien l'ancien patch uniquement pour le PPTP.
Patches spécifiques aux jeux:
- Glenn Lamb's
LooseUDP for 2.0.36+ patch.
Jetez un coup d'oeil à la Page NAT de Dan Kegel pour plus d'informations. De plus amples informations se trouvent à la section Game-Clients et dans la section FAQ .
Reportez vous SVP à l' IP Masquerade Resource pour plus d'informations sur ces patches ou d'autres éventuels patches.
- port-forwarder ou re-diriger des ports TCP/IP : Avec ces utilitaires, vous pouvez faire fonctionner des programmes qui normalement ne fonctionne pas dernière un server MASQ. De plus, vous pouvez configurer le server MASQ de façon à permettre aux internautes de contacter des servers WWW, TELNET, SMTP, FTP (avec un patch), etc. internes. Reportez vous SVP à la section
Forwarders de ce HOWTO pour de plus amples informations. Voici une liste des différents patches IP Masquerade disponibles pour le noyau 2.0.x :
Page suivante - Page précédente - Table des matières