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**

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**


Page suivante - Page précédente - Table des matières