Next Previous Contents

8. Conseils pour un démarrage rapide à l'installation du masquage IP avec IPChains

Par Terry 'Mongoose' Hendrix II, stu7440@westga.edu et Anderson Silva, afsilva@liberty.edu

8.1 Avant-propos

Le mois dernier, mon frère et moi avons décidé de mettre en service un petit réseau à mon domicile, afin de pouvoir connecter plus d'un ordinateur à l'Internet avec un seul modem et une ligne téléphonique.

Ma machine est celle qui a le modem, et Linux (serveur) tourne dessus. La machine de mon frère utilise Windows95 (client). J'ai effectué quelques recherches et découvert quelques documentations au sujet des réseaux privés sur la toile. J'ai décidé d'essayer la technique du masquage IP pour le petit réseau de la maison.

La masquage IP est la technique qui permet d'assigner des adresses IP privées internes à vos ordinateurs (dans mon cas 10.0.0.1 pour le serveur et 10.0.0.2 pour le client) et de partager la connexion Internet entre eux sans avoir à leur assigner d'adresses publiques extérieures. J'ai lu beaucoup de documentation et j'ai alors compris le procédé complet, mais je ne parvenais pas à le faire fonctionner correctement sur mon ordinateur. Donc, je suis allé sur le canal IRC #Linux d'Undernet.org et j'ai trouvé un gars surnommé Mongoose pour m'aider.

Il m'a donné un lien vers un bref tutoriel qu'il avait écrit pour faire fonctionner le masquage IP avec Ipchains

Ipchains est un programme fourni avec la RedHat 6.0 et utilisé pour réaliser pares-feux et masquage IP.
en deux temps trois mouvements.

Après avoir lu le tutoriel de Mongoose, j'ai vu mon réseau privé fonctionner en moins de dix minutes. C'est pourquoi je l'ai recontacté et il a été d'accord pour me laisser publier son tutoriel dans la Linux Gazette.

Voici ce tutoriel :

8.2 Remarque

Dans l'exemple suivant :

  • 0.0.0.0 est l'adresse IP de la passerelle vcers l'Internet.
  • 10.0.0.1 est l'adresse IP de l'interface eth0 du serveur.
  • 10.0.0.2 est l'adresse IP de l'interface eth0 du client 0.
  • 10.0.0.2 est l'adresse IP de l'interface eth0 du client 1.
  • 8.3 Configuration de la couche IP du serveur

    1. Chargez le module relatif à la carte ethernet (si nécessaire, chaque type de carte ayant un nom spécifique: pour une carte NE2000 PCI, le nom est ne2kpci) :
      /sbin/modprobe ne2kpci
      

    2. Activez l'interface (à ajouter à /etc/rc.d/rc.local si vous ne disposez pas des scripts d'interface standards).
      /sbin/ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up
      /sbin/route add -net 10.0.0.0 netmask 255.255.255.0 eth0
      /sbin/route add default gw 0.0.0.0 eth0
      

    3. Autorisez vos clients à utiliser votre réseau.
      1. Ajoutez ceci à la fin de /etc/hosts.allow
        ALL: 10.0.0.2
        ALL: 10.0.0.3
        

      2. Ajoutez les adresses IP si la topologie de votre réseau le requiert (je suggère d'utiliser squid comme mandataire ftp/http pour gagner en vitesse.

    8.4 Configuration des clients (client 10.0.0.2)

    1. Chargez le module relatif à la carte ethernet (si nécessaire, chaque type de carte ayant un nom spécifique).
      /sbin/modprobe ne2kpci
      

    2. Activez l'interface (à ajouter à /etc/rc.d/rc.local si vous ne disposez pas des scripts d'interface standards).
      /sbin/ifconfig eth0 10.0.0.2 netmask 255.255.255.0 up
      /sbin/route add -net 10.0.0.0 netmask 255.255.255.0 eth0
      /sbin/route add default gw 10.0.0.1 eth0
      

    8.5 Testez le réseau

    1. Pinguez 10.0.0.1 depuis les clients et vice-versa.
    2. Utilisez /sbin/ifconfig pour vérifier le trafic réseau depuis chaque hôte.
    3. Vous devriez maintenant pouvoir utiliser telnet/ftp entre vos machines. Si vous ne pouvez pas telnetez le serveur depuis les clients, vérifiez le fichier /etc/hosts.allow

    8.6 Configuration du masquage IP sur le serveur

    1. Configuration du routage IP
      1. Autorisez le routage IP sur le serveur.
        echo "1" > /proc/sys/net/ipv4/ip_forward
        

      2. Rendez le routage IP actif dès le démarrage :
        1. Pour une RedHat, modifiez /etc/sysconfig/network comme suit :
          FORWARD_IPV4=true
          

        2. Pour les autres disributions, ajoutez ceci à la fin de /etc/rc.d/rc.local :
          echo "1" > /proc/sys/net/ipv4/ip_forward
          

      3. Pour être sûr que personne ne smurfe votre réseau, ajoutez ceci à /etc/rc.d/rc.local :
        echo "1" > /proc/sys/net/ipv4/tcp_syncookies
        

    2. Et maintenant la configuration du routagenbsp;. Vous pouvez ajoutez ces lignes à votre rc.local pour qu'elles soient lues à chaque démarrage.
      1. Interdisez le routage IP par défaut
        /sbin/ipchains -P forward DENY
        

      2. Autorisez le routage IP pour les machines masquées 10.0.0.2 et 10.0.0.3
        /sbin /ipchains -A forward -s 10.0.0.2/24 -j MASQ
        /sbin/ipchains -A forward -s 10.0.0.3/24 -j MASQ
        

      3. Ajoutez les modules de masquage dont vous pourriez avoir besoin.
        /sbin/modprobe ip_masq_ftp
        /sbin/modprobe ip_masq_quake
        /sbin/modprobe ip_masq_irc
        /sbin/modprobe ip_masq_user
        /sbin/modprobe ip_masq_raudio
        ...
        

    8.7 Conclusion

    Si vous suivez ce tutoriel, votre réseau fonctionnera correctement en peu de temps. Un autre problème que j'ai rencontré après avoir configuré mon masquage IP était que mon client n'accédait aux serveurs que par leur adresse IP. Donc, j'ai installé un DNS sur ma boîte Linux, afin que les clients puisse effectuer une recherche de domaine. La seule chose que vous ayez à faire est d'ajuster /etc/resolv.conf sur votre ou vos serveurs de noms, et de vous assurer que le démon named est activé. Et cela devrait résoudre le problème.
    Et si vous avez suivi chacun de ces pas vous devriez être fin prêts pour exploiter votre réseau interne. Si vous voulez en savoir plus au sujet du masquage IP et de la fonction de pare-feux, merci de bien vouloir vous référer aux documents HOWTO à http://metalab.unc.edu/linux/HOWTO/HOWTO-INDEX-3.html#ss3.1.

    Traduction d'Olivier Le Monnier


    Next Previous Contents