L'IP Masquerade est une fonctionnalité réseau de Linux. Si un hôte Linux est
connecté à Internet avec l'option IP Masquerade en place, alors les
ordinateurs se connectant à celui-ci (que cela soit sur le réseau local ou par
modem) peuvent atteindre Internet aussi, même s'il n'ont pas d'adresse IP
officielle.
Cela permet à un ensemble de machines d'accéder de manière invisible
à Internet, caché derrière une passerelle, qui apparaît comme étant le seul
système utilisant la connexion Internet. Il devrait être énormément plus
difficile de contourner un système basé sur le masquerade, s'il est bien
configuré, que de passer outre un bon firewall effectuant du filtrage de
paquets (en supposant qu'il n'y a de bogues chez aucun des deux).
L'IP Masquerade est utilisé depuis quelques années et murit alors que Linux
arrive dans les 2.2.x. Les noyaux, depuis la série 1.3.x, supportent en
standard cette fonctionnalité. De nombreuses personnes, et même des
entreprises l'utilisent, avec des résultats satisfaisants.
L'utilisation d'IP Masquerade pour parcourir le web, ou pour le telnet est
tout à fait satisfaisante. FTP, IRC, et l'écoute de Real Audio fonctionnent en
utilisant certains modules. D'autres technologies de flux audio par réseau,
telles que True Speech et Internet Wave fonctionnent également. Certaines
personnes, abonnées à la mailing list ont même essayé des logiciels de
vidéo-conférence. Ping fonctionne à présent, avec le nouveau patch
pour ICMP.
Veuillez consulter la section 4.3 pour une liste complète des logiciels
supportés.
L'IP masquerade fonctionne convenablement avec des 'machines clientes'
utilisant divers systèmes d'exploitation et différentes plate-formes. On a
enregistré des succès pour des systèmes utilisant Unix, Windows 95, Windows
NT, Windows pour Workgroups (avec l'extension TCP/IP), OS/2, MacOS avec Mac
TCP, Mac Open Transport, DOS avec le package NCSA Telnet, VAX, Alpha sous
Linux, et même Amiga avec AmiTCP ou la pile AS225. La liste continue à n'en
plus finir, en réalité, si votre systeme d'exploitation parle TCP/IP, cela
marcher avec l'IP Masquerade.
- Si vous avez un hôte Linux connecté à Internet, et
- si vous avez un ou plusieurs ordinateurs utilisant TCP/IP, connecté à cet hôte
Linux sur un réseau local, et/ou
- si votre hôte Linux a un ou plusieurs modems et joue le rôle de serveur PPP ou
SLIP, et que
- ces AUTRES machines ne possèdent pas d'adresse IP officielle (ces
machines seront désormais référencées sous le nom de AUTRES).
- et bien sûr, si vous désirez que ces AUTRES machines soient également
connectées sur Internet sans débourser un centime de plus :-)
- Si votre machine est un hôte isolé, connecté sur Internet, alors c'est inutile
de mettre en place l'IP Masquerading, ou
- si vous avez déjà obtenu des adresses officielles pour vos AUTRES
machines, alors vous n'avez pas besoin d'IP Masquerade pour faire un
firewall,
- et bien sûr, si vous n'aimez pas l'idée de connecter toutes les AUTRES
machines gratuitement, de cette manière.
D'après la FAQ IP Masquerade, de Ken Eves :
Voici un schéma du plus simple cas possible~:
SLIP/PPP +------------+ +-------------+
vers le provider | Linux | SLIP/PPP | Peu_importe |
<---------- modem1| |modem2 ----------- modem | |
111.222.333.444 | | 192.168.1.100 | |
+------------+ +-------------+
Dans le schéma ci-dessus, un ordinateur sous Linux, utilisant
ip_masquerading est connecté à Internet par un lien SLIP ou PPP, utilisant
modem1. Il possède l'adresse IP (officielle) 111.222.333.444. Il est
configuré de telle façon que modem2 permet aux appelants de se connecter
et d'initier une connexion PPP ou SLIP.
Le second système (qui n'utilise par forcément Linux comme système
d'exploitation) se connecte par modem sur l'hôte Linux et entame une
liaison SLIP ou PPP. Il NE possède PAS d'adresse IP officielle donc il
utilise 192.168.1.100 (voir ci-dessous).
Avec l'option ip_masquerade et un routage configuré correctement, la
machine Peu_importe peut interagir avec Internet comme si elle était
réellement connectée (à quelques exceptions près).
Pour citer Pauline Middlelink~: N'oublie pas de rappeler que la machine
Peu_importe doit déclarer l'hôte Linux comme passerelle (que cela soit la
route par défaut ou juste un sous réseau importe peu). Si Peu_importe ne peut
pas le faire, l'hôte Linux devra faire du proxy arp pour toutes les adresses
routées, mais la mise en place du proxy arp est hors du domaine de ce
document.
Ce qui suit est l'extrait d'un article de comp.os.linux.networking qui a été
modifié pour utiliser les noms des machines de l'exemple ci-dessus~:
o J'indique à la machine Peu_importe que le serveur Linux est sa
passerelle.
o Quand un paquet en provenance de Peu_importe arrive sur la machine Linux,
elle va lui assigner un nouveau numéro de port, et indiquer sa propre
adresse IP dans l'entête du paquet, tout en sauvegardant l'entête
originale. Elle va alors envoyer le paquet modifié à travers son
interface SLIP ou PPP, vers Internet.
o Lorsqu'un paquet en provenance d'Internet arrive sur la machine Linux, si
le numéro de port est un de ceux assignés à l'étape précédente, elle va
modifier à nouveau l'entête pour y remettre les numéros de port et
adresses IP originaux, et alors envoyer le paquet à la machine
Peu_importe.
o L'hôte qui a envoyé le paquet ne verra jamais la différence.
Un example d'IP Masquerading
Voici ci-dessous le schéma d'un exemple classique :
+----------+
| | Ethernet
| Ordi A |::::::
| |2 ~:192.168.1.x
+----------+ ~:
~: +----------+ lien
+----------+ ~: 1| Linux | PPP
| | ~::::| masq-gate|:::::::::// Internet
| Ordi B |:::::: | |
| |3 ~: +----------+
+----------+ ~:
~:
+----------+ ~:
| | ~:
| Ordi C |::::::
| |4
+----------+
<-Réseau interne->
Il y a dans cet exemple 4 ordinateurs qui nous intéressent (il y a sûrement
sur la droite quelque chose sur laquelle aboutit notre connexion, et encore
plus à droite une autre machine avec laquelle nous échangeons des
données). L'ordinateur sous Linux masq-gate est la passerelle qui
effectue le masquerading pour le réseau interne des ordinateurs A,
B, et C, afin de les relier à Internet. Le réseau interne utilise
une des adresses assignées des réseaux privés, à savoir dans ce cas le réseau
de classe C 192.168.1.0, l'ordinateur Linux ayant l'adresse 192.168.1.1 et les
autres ordinateurs ayant d'autres adresses sur ce réseau.
Les trois machines A, B et C (qui peuvent utiliser n'importe
quel système d'exploitation, du moment qu'elles utilisent IP - comme par
exemple Windows 95, Macintosh MacTCP ou même un autre Linux)
peuvent se connecter à n'importe qu'elle machine sur Internet, mais
masq-gate convertit toutes leurs connexions de façon à ce qu'elles
semblent provenir de masq-gate, et s'arrange pour que toutes les
données revenant d'Internet retournent au système qui en est à
l'origine. Ainsi, les ordinateurs du réseau interne voient une route directe
vers Internet et ne sont pas au courant du fait que leurs données ont été
"masqueradées".
** Référez vous à
IP Masquerade Resource pour les dernieres informations (en anglais). **
- Les sources du noyau 2.2.x sont disponibles depuis
ftp://ftp.lip6.fr/pub/linux/kernel/sources/v2.2/
(La majorité des
distributions de linux récentes telle la RedHat 5.2 - livrée avec un noyau
2.0.36 - ont le un noyau modulaire avec toutes les options nécessaires a l'IP
Masquerading compilées. Dans ce genre de cas, il n'y a pas besoin de
recompiler le noyau. Si vous mettez a jour votre noyau, alors vous devriez
savoir ce dont vous avez besoin, nous y reviendrons un peu plus loin).
- Modules chargeables dynamiquement, de préférence avec un 2.1.121 ou plus
récent.
- Ainsi qu'un réseau TCP/IP en bon état de marche
tout ceci est décrit dans
Linux NET-3 HOWTO et dans le
Guide de l'administrateur réseau Allez aussi faire un tour chez
Trinity OS Doc, une documentation tres simple sur Linux et le reseau.
- Connectivity to Internet for your Linux host
Décrit dans
Linux ISP Hookup HOWTO,
Linux PPP HOWTO,
Linux DHCP mini-HOWTO et
Linux Cable Modem mini-HOWTO
- IP Chains 1.3.8 ou plus récent, disponible sur
http://www.rustcorp.com/linux/ipchains/
Plus d'informations sur
les différentes versions, visitez
Linux IP Firewalling Chains page
- Pour d'autres options, référez vous à
Linux IP Masquerade Resource
** Veuillez s'il vous plaît consulter l'
IP Masquerade Resource pour les dernières
informations.**
- Les sources d'un noyau de la série 2.x, disponibles sur
ftp://ftp.ibp.fr/pub/linux/kernel/sources/v2.0/
(La majorité des
distributions de linux récentes telle la RedHat 5.2 ont le un noyau modulaire
avec toutes les options nécessaires a l'IP Masquerading compilées. 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 vous avez besoin, nous y
reviendrons un peu plus loin).
- Les modules chargeables à la demande, de préférence la version 2.0.0 (ou
ultérieure), disponible sur
ftp://ftp.ibp.fr/pub/linux/kernel/sources/v2.0/modules-2.0.0.tar.gz
(modules-1.3.57 étant le minimum)
- Un réseau TCP/IP fonctionnant convenablement
(se référer à
Linux NET-3 HOWTO (en français) et au
Network Administrator's Guide) Allez aussi faire un tour chez
Trinity OS Doc, une documentation très simple sur Linux et le réseau.
- Un accès Internet pour votre hôte Linux
Se référer à
Linux ISP Hookup HOWTO
Linux PPP HOWTO,
Linux DHCP mini-HOWTO et à
Linux Cable Modem mini-HOWTO
- Ipfwadm 2.3, téléchargeable sur
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz
Plus
d'informations sur
Linux IPFWADM page
- Vous pouvez, si vous le souhaitez, appliquer certains patches pour mettre en
place certaines fonctionnalités. Vous trouverez plus d'informations sur la
page des
IP Masquerade Resources
(ces patches s'appliquent à tout noyau de la série 2.0.x).
|