Configurer le masquage d'IP (IP-Masquerading)

ArticleCategory:

System Administration

AuthorImage:

[Photo de l'auteur]

TranslationInfo:[Author and translation history]

original in en Guido Socher

en to fr Jean Peyratout

AboutTheAuthor:

Guido est un adepte Linux de longue date. Sa page personnelle Linux se trouve à www.oche.de/~bearix/g/.

Abstract:[Here you write a little summary]

Le masquage d'IP offre la possibilité de connecter plusieurs ordinateurs à l'Internet en utilisant un ordinateur sous Linux avec une seule adresse IP. Cela signifie que vous pouvez connecter tout un réseau privé à l'Internet, alors que votre fournisseur d'accès à l'Internet ne pense que vous ne connectez qu'une seule machine. Cet article expliquera comment configurer le masquage d'IP avec un noyau 2.2.x. Il n'explique pas comment monter un réseau. Pour avoir une idée générale à propos des réseaux informatiques, je recommande de lire également l'article du numéro de janvier 2000 au sujet des réseaux domestiques.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Généralités

Pour utiliser le masquage d'IP comme indiqué dans cet article, il vous faut au moins un ordinateur sous Linux avec un noyau 2.2.x. Cette machine est utilisée pour configurer la connexion à l'Internet. L'usage de Linux sur la machine destinée au partage de la connexion à l'Internet ne vous oblige pas à utiliser Linux sur votre réseau interne. Linux fonctionne très bien avec Windows, des Macs ou d'autres types d'Unix.
Cet ordinateur assurant le partage de la connexion est ce qui nous préoccupe dans cet article. Il se connecte d'un côté à l'Internet et d'un autre côté à votre réseau privé. Cet ordinateur a donc au moins deux interfaces et également au moins deux adresses IP. L'une des adresses IP est une adresse publique qui peut être routée sur l'Internet. Cette adresse IP vous est en général fournie par votre fournisseur d'accès à Internet juste au moment de la connexion par modem (ou par un quelconque autre moyen). L'autre adresse IP est une adresse privée que vous pouvez choisir dans les valeurs suivantes :
Cet article n'explique pas comment configurer votre réseau. Je suppose que votre réseau privé est déjà installé et correctement configuré.

Les principes du masquage d'IP

La base du fonctionnement du masquage d'IP est de traduire des adresses IP internes en adresses IP externes. Cette opération est appelée NAT (Network Address Translation = traduction d'adresse de réseau) et Linux opère en utilisant ce que l'on appelle des numéros de port. Depuis le monde extérieur, toutes les connexions sembleront provenir de votre ordinateur Linux. Vous pouvez trouver une explication détaillée dans un article du numéro de janvier.

Dans certains cas, parfois, les paquets IP sont d'une nature particulière et le masquage d'IP ne fonctionnera pas pour toutes les applications, mais ça marche la plupart du temps. Il existe des modules pour ICQ, FTP et Quake qu'il faut insérer dans le noyau afin de permettre à ces applications particulières de fonctionner correctement depuis le réseau interne. En général cependant, tout ce qui n'utilise que le HTTP (les navigateurs Web), TELNET, SSH ou SMTP (le courier électronique) fonctionnera bien.

Configurer le noyau

Les gens qui utilisent un noyau préconfiguré livré avec l'une des distributions Linux majeures (Redhat, Mandrake, Debian, Suse...) peuvent sauter ce chapitre car leur noyau est déjà prêt à utiliser le masquage d'IP.

Je fais d'habitude une sauvegarde de /usr/src/linux/.config après la compilation d'un noyau qui marche correctement. La fois suivante où je dois compiler un noyau je me contente de charger cette configuration et j'ai déjà la configuration de mon noyau précédent en place. Il est alors relativement simple de configurer des changements mineurs comme le masquage d'IP.

Pour utiliser le masquage d'IP, répondez oui aux questions suivantes lorsque vous configurez le noyau. Ce ne sont que les composants nécessaire pour le maszquage d'IP, sélectionnez toutes les autres options dont vous avez besoin pour votre configuration particulière !

Configurer le masquage d'IP

Nous allons écrire un petit script pour automatiser la configuration du masquage d'IP. Vous pouvez mettre le script suivant dans /etc/rc.d/init.d/ et le nommer ipmasq. Changez les permissions avec chmod 755 ipmasq afin de le rendre exécutable. Le script ci-dessous (dont les commentaires sont traduits en français) suppose que vous utilisez l'adresse IP statique 192.168.0.1 pour la carte réseau connectée à votre réseau interne (ifconfig eth0 192.168.0.1 netmask 255.255.255.0). Veuillez transformer le script si vous utilisez autre chose. Cette image montre le plan du réseau que nous utilisons.
plan du réseau
#!/bin/sh
echo "Configuration de l'IP masquerading ..."
# Les personnes qui utilisent encore Windows pour surfer sur le Web doivent 
# convertir ce fichier en fichier texte UNIX avant de l'utiliser.
#
# Support du masquerading de transfert de fichier FTP.
/sbin/modprobe ip_masq_ftp
#
#--------------
# Note: les modules ci-desous sont commentés par un # et ne seront pas chargés.
# Enlevez le signe de commentaire (#) si vous souhaitez utiliser les applications 
# correspondantes sur l'un des ordinateurs de votre réseau interne.
#
# Support du masquerading de RealAudio par-dessus UDP. 
#/sbin/modprobe ip_masq_raudio
#
# Support du masquerading des transferts de fichiers IRC DCC
#/sbin/modprobe ip_masq_irc
#
# Support du masquerading de Quake et QuakeWorld 
# Quake I / QuakeWorld (ports 26000 and 27000)
#/sbin/modprobe ip_masq_quake
#
# Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960
#
# Support du masquerading du logiciel CuSeeme de vidéoconférence
#/sbin/modprobe ip_masq_cuseeme
#
#Support du masquerading du logiciel VDO-live de vidéoconférence
#/sbin/modprobe ip_masq_vdolive
#--------------
# Important: Autoriser la transmission d'IP. Il est désactivé par défaut
# dans les noyaux 2.2.x
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# NOTE: Voilà un exemple pour une adresse réseau interne de 
# 192.168.0.x Le masque de réseau est 255.255.255.0 ou "24" bit
# Veuillez transformer cela si vous utilisez des adresses IP internes différentes. 
#
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ
#
#--- fin de fichier
Pour le tester, assurez-vous que vous avez configuré tous les ordinateurs de votre réseau interne de façon à ce qu'ils utilisent une passerelle par défaut à l'adresse 192.168.0.1 (l'ordinateur Linux de masquage). Puis lancez le script en tant que root sur la machine de masquage. Ensuite, envoyez un ping depuis une machine de votre réseau vers une machine sur l'Internet (par exemple ping 195.53.25.18)
Si ça marche, alors le masquage fonctionne. Essayez aussi ping www.linuxfocus.org. Cela devrait vous donner le même résultat que le ping précédent. Si cela ne fonctionne pas, vérifiez le fichier /etc/resolv.conf sur vos clients. Il doit exister sur chaque ordinateur de votre réseau et notifier le serveur DNS de votre fournisseur d'accès.
Une fois que le ping fonctionne, tout le reste fonctionne aussi (par exemple la navigation Web).

Il est temps maintenant de changer votre configuration pour que votre script /etc/rc.d/init.d/ipmasq soit exécuté automatiquement à chaque démarrage de votre ordinateur Linux de connexion. La meilleure façon de faire cela à mon avis est d'éditer le fichier /etc/rc.d/init.d/network (ce fichier devrait déjà exister) et d'exécuter /etc/rc.d/init.d/ipmasq À LA FIN de la section de démarrage dans le fichier init.d/network. Cherchez une déclaration d'argument puis le "start".

Conclusion

Comme vous l'avez vu, il n'est pas difficile de configurer le masquage d'IP. Ce n'est à la base que la mise en route de la traduction d'adresses IP et deux commandes ipchains. Le masquage d'IP est une application très puissante pour des petits réseaux domestiques, des réseaux d'école, de PME, etc.

Pour des informations plus amples et plus détaillées, je recommande la lecture (en français) du IP-Masquerading mini howto et du IPCHAINS-HOWTO.

Pour utiliser le masquage d'IP il faut bien sûr que vous ayez configuré correctement le réseau. Ce point n'est pas couvert par cet article. L' article sur les réseaux domestiques, vous donnera un peu de vocabulaire. Le Net 4 howto (en français) ou le NAG - Network Administrator Guide (en anglais) expliquent en détail comment bâtir un réseau. Je me propose aussi d'écrire un autre article sur les réseaux plus tard cette année mais vous ne voudrez peut-être pas attendre aussi longtemps :-)

(NdT : Vous trouverez l'ensemble des HOW-TO en français sur le site Freenix)