Configuration de base d'un petit réseau

Avertissement ! Il s'agit ici de donner quelques exemples basiques pour la configuration d'un petit réseau Linux, ce document a pour but avant tout d'aborder le plus clairement et simplement possible des notions dont l'approche dans les documents techniques peu paraître rebutante tant que l'on n'a pas réussi quelques manipulation simples que j'espère réussir à décrire ici. (spécialistes, passez votre chemin, il n'y a rien pour vous). En aucun cas, les problèmes de sécurité ne seront traités ici.

À partir d'exemples simples et minimaux, je vous proposerai de voir ici comment configurer un partage de ressources entre 2 machines Linux (RedHat ou Mandrake). Nous verrons :

      1) La configuration des cartes réseau
      2) La configuration de base des machines - Connexion avec telnet
      3) La configuration de NFS - Le montage des systèmes de fichiers exportés
      4) Le partage d'imprimantes
      5) Le partage de connexion Internet avec IP chains (pour les noyaux 2.2.x)
      6) Des références pour aller plus loin.

Description du matériel utilisé :
      1 K6-2 3D now à 380 Mhz, 64 Mo RAM équipé d'une carte ethernet sur bus ISA16, 3 com (3C509) et exploité sous Mandrake 6.1 kernel 2.2.13-7mdk
      1 486 DX2 à 66 Mhz, 40 Mo RAM équipé d'une carte ethernet sur bus ISA16, SMC83C690LJ et exploité sous RedHat 5.1, kernel 2.0.35-2
      1 modem U.S. Robotics 56K externe
      1 câble croisé avec connecteurs RJ 45 5m (! cette donnée est importante, car je crois que la longueur minimale est de 1,6 m)

1) La configuration des cartes réseau

Problèmes rencontrés :
      Sur mon ordinateur précédant, je n'avais pas pu utiliser une carte SMC UltraChip, ces cartes ne s'accordent pas avec certaines cartes mères.
      Les cartes 3C509 disposent de 3 ports (BNC, AUI et RJ45). Le port à utiliser se sélectionne par logiciel sous DOS (Si je l'avais su dès le départ, j'aurais gagné du temps).

Remarque : Ces cartes étant en IRQ 10 sur bus ISA, j'ai du, dans le setup du BIOS réserver l'IRQ 10 pour les périphériques ISA.

            I - Préliminaires : On admettra que tous les "ingrédients" nécessaires sont inclus dans le noyau et/ou disponibles sous forme de modules ; tous les packages requis pour la gestion des réseaux sont installés (en particulier, les nettools). Si comme moi vous utilisez une distribution de type RedHat ou Mandrake, tout est O.K. ; continuez !
           II - Configuration des cartes ethernet
Dans le cas de la Mandrake ou de la RedHat, on peut :
            - installer "à la main" les modules correspondant avec modprobe ou insmod
            - utiliser netconf en mode console ou netcfg sous X
      a) test de la carte 3com : cette carte est un grand classique, elle est gérée par 1 seul module, le 3c509.o
      saisissez : modprope 3c509
            2 ou 3 petites lignes vous indiquent le module chargé, son IRQ, son adresse... Tout est bon, continuez !
            2 ou 3 lignes vous indiquent : Périphérique ou ressource occupé ; insmod 3c509 failed... Il y a un problème :
                  - Il n'y a pas de carte ethernet sur votre ordinateur (Si si, ça peut arriver quand on travaille sur plusieurs machines à la fois...)
                  - vous n'avez pas une 3com 3c509 (Prenez une loupe et relisez ce qui est écrit sur la puce de la carte)
                  - votre carte est H.S. (Faites-lui les honneurs d'une benne de tri sélectif "composants électroniques", eu égard à son rang)
                  - vous avez oublié quelque chose en recompilant votre Noyau (si vous l'avez recompilé)
                  - L'IRQ n'est pas libre (vérifiez le positionnement des cavaliers sur la carte ; vérifiez que vous avez réservé la bonne IRQ dans le setup du BIOS à la section Périphériques ; vérifiez qu'une autre carte n'utilise pas déjà cette IRQ.)
                  - autre chose, une liste d'emmerdements possibles n'étant hélas jamais exhaustive.
      b) test de la carte SMC83C690 à 2 petits détails près, c'est la même chose que pour la carte 3com. Le nom du module à charger n'a pas grand rapport avec le nom de la carte. Il y a même 2 modules à charger, le wd.o et le 8390.o. (J'ai eu ces renseignements en lisant l'ETHERNET-HOWTO-5).
      saisissez donc : modprobe wd (modprobe se chargera d'installer le module 8390, une base des dépendances (modules.dep) étant mise à jour à chaque démarrage du système par le programme depmod).
Tout marche ? Bravo !
Vous pouvez d'ores et déjà lancer netconf (ou netcfg sous X)
Entrez dans le menu "Configuration de base de la machine" et à la section "module noyau" saisissez : 3c509 pour la carte 3com ; et wd pour la carte SMC.
Ne quittez pas netconf, nous allons continuer avec.

2) Configuration de base du réseau - Connexion avec telnet
            I - Préliminaires : Nous allons avoir à donner un nom de machine et une adresse IP à chacun de nos ordinateurs, un nom de domaine à notre réseau.
            Le K6 aura ici pour nom : hepgarcon et le 486 : roi
            L'adresse IP de hepgarcon sera : 192.168.1.1 ; roi aura 192.168.1.2 pour adresse IP
            Le nom de domaine sera : troquet et le masque du réseau : 255.255.255.0
            ATTENTION : à moins d'avoir une adresse IP enregistrée auprès du NIC (Network Information Center) , vous serez contraints de choisir une adresse réservée aux réseaux à usage privé, soit : 10.0.0.0 pour les réseaux de classe A ; 172.16.0.0 à 172.31.0.0 pour la classe B et 192.168.0.0 à 192.168.255.0 pour la classe C.
           II - Configuration de base
            Puisque nous n'avons pas quitté netconf, nous allons remplir les champs du menu "Configuration de base de la machine" comme indiqué dans le tableau ci-dessous.
 
Machines
hepgarcon
roi
nom de machine hepgarcon.troquet roi.troquet
[   ] Activé
coher pour activer l'interface réseau au démarrage du système coher pour activer l'interface réseau au démarrage du système
Mode de configuration (o)   Manuel ... (o)   Manuel ...
nom principal + domaine hepgarcon.troquet roi.troquet
Alias hepgarcon roi
adresse IP 192.168.1.1 192.168.1.2
Masque de réseau 255.255.255.0 255.255.255.0
Interface réseau eth0 eth0
Module noyau 3c509 wd

Maintenant, choisissez Accepter, puis Quitter et validez "Activer les changements" (pour que les daemons réseau soit relancés) après quelques secondes...
Vous êtes en mesure d'établir vos premières communications entre vos deux machines.
Vous pouvez vérifier sur chaque machine que les interfaces réseau sont bien montées, en saisissant la commane ifconfig. Les interfaces lo et eth0 devraient apparaître.
Si tel n'était pas le cas, saisissez : ifup eth0 (la commande symétrique étant : ifdown eth0)

          III - Test du réseau avec : ping
            Depuis hepgarcon, saisissez : ping 192.168.1.1 Ça marche ? hepgarcon "pingue" sur lui même, continuons.
            Depuis roi, saisissez : ping 192.168.1.2 Ça re-marche ? roi "pingue" sur lui même, continuons, continuons.
            Depuis hepgarcon, saisissez : ping 192.168.1.2 Ça marche toujours? Chouette ! les paquets circulent entre hepgarçon et roi, continuons encore.
            Depuis roi, saisissez : ping 192.168.1.1 Ça a re-marché ? Bravo ! les paquets circulent bien entre les 2 machines, vous avez un réseau de base.

            Vous n'avez désormais plus envie de saisir l'adresse IP de la machine chaque fois que vous voulez la "pinguer" !
            Nous allons éditer le fichier /etc/host
            Sur hepgarcon, vous devriez avoir déjà les 2 lignes suivantes divisées en 3 champs séparés par des tabulations ; adresse IP ; nom de machine ; Alias:
            127.0.0.1            localhost.localdomain            localhost
            192.168.1.1         hepgarcon.troquet                hepgarcon
            ajoutez-y donc la ligne suivante :
            192.168.1.2         roi.troquet                            roi

            Faites de même en éditant /etc/host sur roi et en ajoutant la ligne :
            192.168.1.1          hepgarcon.troquet                hepgarcon
            Depuis hepgarcon saisissez : ping roi et depuis roi : ping hepgarcon. Dans les deux cas, cela devrait fonctionner.

          IV - Connexion avec telnet
            Nous considèrerons maintenant que roi possède le compte utilisateur charles et hepgarcon le compte edouard ; Nous aurons au préalable vérifié que les paquetages telnet sont installés sur les 2 machines. Attention telnet peut-être subdivisé en 2 paquetages : client et serveur.
            Depuis roi, composez : telnet hepgarcon (ou telnet 192.168.1.1)
            Si tout va bien vous devriez être invités à vous "loguer" ; saisissez : edouard, puis le mot de passe du compte edouard sur hepgarcon.
            Vous pouvez saisir les commandes que vous voulez, comme si vous travailliez devant hepgarcon.
            Teztez vous même le manip dans l'autre sens. Vous devez savoir, que par défaut, vous ne pouvez pas vous connecter directement sur le compte du 'root', le serveur telnet devrait vous refuser l'accès. Si vous avez des travaux d'administration à effectuer via telnet, connectez-vous sur un compte utilisateur et passez par su.
            Remarque : telnet ayant la (mauvaise) réputation d'être peu sécurisé, renseignez-vous sur ssh si vous avez à gérer un réseau dont les exigeances sécurité sont élevées.

3) Configuration de NFS
            I - Préliminaires
            Pour la suite des opérations, le client est roi, et hepgarconle serveur.
            Le package knfsd doit être installé sur le serveur (cas de la Mandrake 6.1 ; dans tous les cas, rpc.mountd, rpc.nfsd, /etc/exports doivent être présents sur le système).
            Le package portmap devra aussi être installé sur le serveur.

           II - Configuration du serveur
            a) Tests
            - Présence de portmap : ps aux | grep portmap (s'il n'est pas présent, saisir : /sbin/portmap)
            - Présence de mountd : ps aux | grep mountd (s'il n'est pas présent, saisir : /usr/sbin/rpc.mountd)
            - Présence de nfsd : ps aux | grep nfsd (s'il n'est pas présent, saisir : /usr/sbin/rpc.nfsd)
            - Vous pouvez ensuite saisir : rpcinfo -p, ce qui vous indiquera si tout fonctionne correctement.

            Remarque : pour rendre automatique le lancement de NFS à chaque démarrage du système, il vous faudra bricoler /etc/rc.d/ ... Si votre système dispose d'un configurateur de services lancés au démarrage, il bricolera cela pour vous. J'ai utilisé : /usr/sbin/ntsysv.
            b) Configuration des systèmes de fichiers exportés
            - Nous allons les répertoires /home/public, /home/roi puis /mnt/cdrom
      Créez d'abord le répertoire /home/public (md /home/public) et modifiez-en les droit d'accès si vous désirez que tout le monde puisse le voir, y rechercher et y écrire (chmod 777 /home/public). De la même façon, créez le répertoire /home/roi
      éditez le fichier /etc/exports et ajoutez-y les 3 lignes ci-dessous :

            /home/public      *.troquet(rw)      # ce répertoire sera exporté vers toutes les machines du domaine troquet et disponible en lecture et écriture
            /home/roi           roi.troquet(ro)    # ce répertoire sera exporté vers roi uniquement et ne sera disponible qu'en lecture
            /mnt/cdrom         (ro)                 # le cdrom sera exporté vers tous les réseaux et ne sera disponiple qu'en lecture

      Saisissez maintenant : exportfs -a, afin que mountd et nfsd soient relancés, et le fichier /var/lib/nfs/xtab mis à jour.
      Saisissez : exportfs, les systèmes de fichiers exportés devraient être listés avec leurs caractéristiques.
Désormais, le serveur NFS est fonctionnel.

          III - Configuration du client
            Hormis le fait que le système de fichier NFS doit être reconnu par le noyau, rien d'autre ne semble nécessaire. (même pas portmap)
            Il suffit donc de :
            a) créer les points de montage nécessaire (eg : /mnt/public ; /mnt/roi ; /mnt/cdrom_nfs)
            b) monter les systèmes de fichiers (eg : mount -o rsize=1024,wsize=1024 hepgarcon:/home/public /mnt/public)
            c) REMARQUES :
                  Il sera très certainement pratique de modifier le fichier /etc/fstab en y ajoutant les 3 lignes suivantes :

             hepgarcon:/home/public      /mnt/public           nfs      rsize=1024,wsize=1024      0      0
                  hepgarcon:/home/roi           /mnt/roi                nfs      rsize=1024,wsize=1024      0      0
                  hepgarcon:/mnt/cdrom        /mnt/cdrom_nfs    nfs      rsize=1024,wsize=1024      0      0

                  ce qui permet, par exemple, le montage par la commande : mount /mnt/public et le démontage par : umount /mnt/public

                  De plus, il vous sera possible de monter ces systèmes de fichiers à chaque démarrage du client. Vous devez alors bidouiller dans /etc/rc.d..., mais encore une fois, ntsysv (ou autre) bidouiillera à votre place. (dans ntsysv, vous activerez le service nfsfs)

            Astuce : Si le CD-ROM exporté par NFS a été monté (même si par la suite il a été démonté) sur un client, il sera par la suite impossible de le démonter/éjecter directement sur le serveur (périphérique occupé...)
            Il faudra donc préalablement utiliser l'option u (unexport) d'exportfs.
            Dans notre cas, vous pourrez saisir : exportfs -u roi.troquet:/mnt/cdrom ; puis saisir la commande eject ou umount /mnt/cdrom
            NB1 : la commande exportfs -ua "désexporte" tous les systèmes de fichiers exportés
            NB2 : la commande exportfs liste les fichiers exportés et utilisés par les clients

4) Partage d'imprimante UNIX distante (utilisant lpd)

            I - Préliminaires
            Mêmes remarques que pour NFS, à ceci près, que vous n'avez pas besoin de nfsd et mountd. Par contre, lpd doit tourner sur les deux machines. (nous considérons évidemment que l'imprimante est physiquement attachée sur le port parallèle de hepgarcon.) Et comme nous sommes fainéants, nous utiliserons le programme printtool (serveur X nécessaire).

           II - configuration du serveur
            Pensons tout de suite à déclarer le client dans /etc/hosts.lpd (y ajouter la ligne ci-dessous ; et s'il n'existe pas, le créer : touch /etc/hosts.lpd)
             192.168.1.2
                  roi
            Si ce n'est déjà fait, configurer l'imprimante attachée à hepgarcon. (Rappel : nous utilisons ici printtool sous X et compte administrateur [root])
            Lancez printtool, dans le menu "Ajouter", choisissez "imprimantelocale" validez à chaque question pour accepter les valeurs par défaut et enfin, sélectionnez le filtre correspondant à votre imprimante. (pour une HP LaserJet 5L, j'ai choisi le filtre HP LaserJet séries 4/5/6)
            Depuis le menu "Test", envoyez votre (vos) page(s) de test. Ça fonctionne ? Passons à l'étape suivante.

          III - configuration du client
            Vous n'aurez qu'à configurer une imprimante Unix distante - Dans cet exemple, l'imprimante utilisée sur le serveur est l'imprimante lp  (HP LaserJet 5L) ; le client possède déjà une imprimante locale (lp) (Canon BJ - 10e) et c'est donc l'imprimante distante (lp0) que nous allons configurer (HP LaserJet 5L).
            Difficulté rencontrée : vous verrez dans le masque de saisie de printtool le champ "File distante" ; Il est tentant de le renseigner en y inscrivant le chemin absolu du répertoire de spool sur le serveur (eg : /var/spool/lpd/lp). Ce serait une erreur, c'est le nom de l'imprimante sur le serveur qui doit renseigner ce champ (eg : lp) - Après quelques heures de galère, c'est en comparant le PRINTING-HOWTO avec mon fichier /etc/printcap, que j'ai pu dénouer ce noeud quelque peu irritant à défaut d'être gordien.
            Lancez printtool, dans le menu "Ajouter", choisissez "File Unix distante (lpd)".
            Les 3 premiers champs seront renseignés par des valeurs par défaut (ici, respectivement : lp0 ; /var/spool/lpd/lp0 et 0). Vous renseignerez le champ "Hôte distant" par : hepgarcon (ou son adresse IP : 192.168.1.1) ; le champ "File distante" par lp et vous choisirez le filtre "HP LaserJet séries 4/5/6 pour renseigner le champ "Filtre d'entrée - Sélectionner" (le filtre d'entrée est facultatif, mais il est préférable de le préciser, sinon, il pourrait y avoir des distorsions d'échelle).
            Envoyez vos pages de test. Ça marche ?
                                    Youpi !!!

5) Partage de connexion InterNet avec IPChains (Cas des Kernels 2.2.x)
       AVERTISSEMENT ! : Services Portmap, Telnet, NFS, R* ... disponibles. Voilà tout ce qu'il faut pour que votre système soit une véritable passoire sur le plan de la sécurité. Si vous avez l'intention d'utiliser le partage de connexion Internet sur un véritable réseau, vous devrez consacrer un ordinateur à l'usage d'IP Chains. Vous aurez soin de vous renseigner au préalable sur IP chains (par le menu détail) et sur le "firewalling". À titre expérimental, nous allons configurer ici IP chains sur hepgarcon. Mais auparavant, nous aurons soin de désactiver les services dangereux sus-cités.
            1) INET : /etc/rc.d/init.d/inet stop
            2) PORTMAP : /etc/rc.d/init.d/portmap stop
            3) NFS : /etc/rc.d/init.d/nfs stop
            4) ROUTED : /etc/rc.d/init.d/routed stop
            5) RUSERSD : /etc/rc.d/init.d/ruserd stop
            6) RWALLD : /etc/rc.d/init.d/rwalld stop
            7) RWHOD : /etc/rc.d/init.d/rwhod stop
            8) Tout autre service réseau non nécessaire au fonctionnement d'IP Chains (SAMBA, NIS, SENDMAIL...)

            Remarque : Ce serait un luxe extrême que d'utiliser un K6-2 380 pour configurer une passerelle IP Chains dans un cadre pratique, quand un bon vieux 486 avec 16 Mo suffit largement. (à condition toutefois de ne pas lancer de serveur X.)

            I - Configuration du serveur
            a - Pour commencer, le serveur devra être capable d'établir une connexion InterNet (Dans notre exemple, le FAI est Free)
            * Nous allons à nouveau utiliser netconf :
            - Choisissez le menu PPP/SLIP/PLIP ; le sous menu "Ajouter" et sélectionnez PPP.
            - Dans le masque de saisie qui vous est proposé :
                  renseignez le numéro de téléphone de votre FAI (eg : 0860912002 pour le serveur Picardie/Champagne de free)
                  renseignez votre port modem (eg : /dev/modem -si le lien est correctement établi vers le port d'attache de votre modem ou /dev/ttyS0 ou /dev/ttyS1 ... selon votre cas.)
                  cochez la case [ o ] "Utiliser l'authentification PAP" (C'est en général ce qu'utilisent les FAI)
                  renseignez les champs Nom de connexion et Mot de passe par respectivement le "login" et le mot de passe fournis par votre FAI
            - Sélectionnez le bouton "Accepter", Validez et Quittez.
            - Vous êtes à nouveau devant le menu principal de netconf (Cette solution me semble préférable car elle ne nécéssite pas l'usage d'un serveur X dont beaucoup de passerelles sont dépourvues pour cause de ressources système. Si toutefois, vous tenez à utiliser kppp, pensez à sélectionner l'option : "Désactiver les serveurs DNS existants pendant la connexion")
            - Choisissez le menu : Résolution des noms (DNS) - (il s'agit de mettre à jour le fichier /etc/resolv.conf)
                  renseignez le champ "nom de domaine 1" avec le DNS 1 de votre FAI (eg : 212.27.32.5 - pour ma connexion à free)
                  renseignez le champ "nom de domaine 2 (opt)" avec le DNS 2 de votre FAI (eg : 212.27.32.6 - pour ma connexion à free) (facultatif)
                  renseignez aussi le champ "domaine de recherche 1 (opt)" par le nom de domaine de votre FAI (eg : free.fr - ici) (facultatif)
            Vous devriez être en mesure de vous connecter :
                  Lancez la connexion par la commande ifup ppp0 ; le modem devrait se mettre à numéroter. Si tout s'est bien passé, quelques secondes après le retour au silence du mdem, lancez la commande : ifconfig ; une ligne mentionnant ppp0 devrait apparaître. (Pour être informé de l'évolution de la tentative de connexion, vous pouvez saisir la commande : tail -f /var/log/messages qui vous listera les dernières lignes de message reçues. - quitter par Ctrl + c). Lancez un navigateur WEB (lynx par exemple) et vérifiez que vous pouvez naviguer.

            b - Filtrage des paquets avec IP chains
            Rappel : la manipulation décrite dans ce document ne l'étant qu'à titre de test, pour une première approche d'IP Chains, vous devez savoir que le nombre de modules concernant le masquerading ne se limite pas à ip_masq_ftp et ip_masq_user et que si une seule règle est définie ici, il est possible (nécéssaire) d'en préciser une multitude.
            Maintenant, il faut activer le masquerading sur hepgarcon
            Dans le fichier /etc/sysconfig/network doit se trouver la ligne : 
             FORWARD_IPV4=true
            sinon, la machine ne sera pas prête à envoyer les paquets.
            On vérifie : cat /proc/sys/net/ipv4/ip_forward      La valeur 1 est retournée, tout est OK, continuez ! Sinon, saisissez : echo 1 > /proc/sys/net/ipv4/ip_forward
            Installez maintenant les modules ip_masq_ftp et ip_masq_user :
             modprobe ip_masq_ftp
                  modprobe ip_masq_user
            Exécutez maintenant la commande de sécurisation du réseau :
             ipchains -P forward DENY
            puis mettez la masquerade IP permettant aux machines de sortir du réseau :
                  ipchains -A forward -s 192.168.1.0/24 -j MASQ

           II - Configuration du client
            Il n'y a que 2 choses à faire : (bien sûr, vous pouvez utiliser netconf au lieu d'éditer les 2 fichiers suivants)
            Mettre à jour le fichier /etc/resolv.conf ; ajoutez-y les 3 lignes suivantes : (à adapter selon votre FAI)
             nameserver 212.27.32.5
                  nameserver 212.27.32.6      # facultatif
                  search free.fr      # facultatif
            Indiquer la passerelle à utiliser dans le fichier /etc/sysconfig/network :
             GATEWAY="192.168.1.1
                  GATEWAYDEV="eth0"
Lancez maintenant votre navigateur préféré.
            Ça marche ?
                  Re-Youpi !!!

Voir aussi les documents annexes de Lenny Cartier :
Installer une connexion ADSL sous Linux         Partager un accès ADSL sous Linux

6) Références - Aller plus loin
      N'ayant pas inventé tout celà, loin s'en faut, il faut bien à un moment ou un autre citer ses sources.
      a) S'il est un réflexe qu'il faut avoir très tôt sous LINUX, c'est bien celui de consulter (toujours) les pages de man (eg : man netstat) et les Howtos (personnellement, j'en aime bien la version HTML que je consulte avec Netscape ou avec lynx.
      Je me suis servi de : l'Ethernet Howto ; le NFS Howto ; le Printing Howto ; l'IP Chains Howto
      Bouquins : "Le système LINUX -2e édition" chez O'REILLY ; "Le grand livre LINUX" chez MicroApplication
      Sites : "Linux par un Nuls" (Partager un accès ADSL - ci après) ; Linux par l'exemple
      b) Vous avez envie d'en savoir plus, vous avez d'autres besoins ?
      Relisez les Howtos (en essayant de les comprendre ce coup-ci) !
            Si vous avez un réseau hétérogène ; commencez par le Samba Howto (Le réseau sous Linux Façon WinNT)
            La connexion internet est un peu lente sur le réseau ; renseignez-vous sur Squid
            Vous aurez peut-être aussi besoin de réaliser un serveur WEB avec appache ou de gérer le courrier avec sendmail ou Qmail...
            Vous avez soif de théorie, vous êtes préoccupés par les problèmes de sécurité ; "Administration réseau sous LINUX" chez O'Reilly (toujours) ; "La bible LINUX" chez Microapplication (encore)
            Sites : "Linux par un Nul" (ce site est désormais archivé) ; "Léa" ; "Linux En Réseau" ; "le site de l'AFUL" ; "Page personnelle de Rémi Poissonnier"
 

                                   ÉPILOGUE : Hep Garçon ! une bière virtuelle s'iouplet ?
                                                     Tout de suite, le client est roi !

Frantz ORJOLLET le 22/10/2000
 
Installer une connexion ADSL sous Linux

Note :Je tiens tout d'abord à remercier Olivier Barbut de l'association Infolibre qui a réalisé lui aussi un HowTo qui m'a bien aidé ainsi que de nombreuses autres personnes. Il a aussi contribué à la diffusion du client pptp patché. Que cette association en soit ici remerciée.

Introduction

Bon, le technicien de France Télécom est venu vous installer la ligne...oh...deux boitiers, rien de bien grave, bien évidemment il n'a pas installé votre connexion sous Linux mais avec Windows car vous avez un dual boot. La configuration de l'adsl sous linux est très simple vous allez voir...
Les packages
Il faut tout d'abord attribuer une adresse IP à votre carte réseau. Par défaut celle ci doit étre 10.0.0.10. En gros l'adresse IP c'est une sorte d'identifiant pour savoir avec quelle carte réseau et donc quelle machine on "discute". Le plus simple consiste à utiliser linuxconf, un front-end pour l'édition des fichiers de configuration.
Commencez par activer la carte réseau (cliquez sur Activé), dans le champ "adresse IP" entrez l'adresse par défaut (10.0.0.10), le masque de réseau est 255.255.255.0, la première carte réseau est eth0 et ainsi de suite (eth1 pour la seconde...) N'oubliez pas de choisir le bon module pour votre carte, celui ci porte en général le nom du chipset présent sur celle-ci.Cela aurait pu se faire en mode console par la commande ifconfig eth0 10.0.0.10 netmask 255.255.255.0, mais pour cette partie cela est plus simple de se servir de Linuxconf.Par contre déclarer les hôtes se fait facilement en mode console, éditez le fichier etc/hosts de cette façon :127.0.0.1 localhost localhost.localdomain
10.0.0.10 192.168.1.1 dell
192.168.1.2 master
10.0.0.138 alcatel
Maintenant que cela est fait un ping alcatel devrait donner quelquechose comme cela :

La machine connectée sur l'ADSL est celle portant le nom de "dell", la 192.168.1.2 est une seconde machine, j'en parle dans mon article consacré au masquerading. Enfin "alcatel" représente le modem. Ce fichier est une table de correspondance entre adresses IP et machines. Ici lors d'un ping alcatel c'est l'adresse 10.0.0.138 qui sera visée.Il faut maintenant éditer le fichier /etc/resolv.conf, celui ci contient les serveurs DNS de votre fournisseur d'accès, ces renseignements sont en général donnés avec la feuille sur laquelle est inscrit vos mots de passe et identifiants :domain domaine.fr
nameserver 212.10.25.6
nameserver 212.10.25.7
L'identifiant est à renseigner dans le fichier /etc/ppp/options :lock
noipdefault
name mon-nom@monfai.fr
noauth
defaultroute
Le mot de passe, lui, est à renseigner dans chap-secrets : mon-nom@mon-fai * motdepasse * Respectez les espaces et les caractères "*". De plus vous devrez éventuellement mettre des commentaires (des signes dièses "#") devant les paramètres d'une précédente connection internet.Pour pouvoir se connecter par ADSL il faut utiliser un client PPTP dont les sources ont du étre modifiées car le modem fourni par France Télécom est buggé. Le nom de ce client est pptp-adsl-fr-1.0.2-2mdk.i586.rpm, vous pouvez le trouver sur tous les sites mirroirs de la Linux Mandrake 7.0, comme ftp.free.frUne fois ce client installé (rpm -ivh pptp-adsl-fr-1.0.2-2mdk.i586.rpm), vous pouvez lancer la connection par :pptp alcatelAprès quelques instants (10~20 sec) la connection est active, vous pouvez vérifier cela en tapant ifconfig :

Ne vous intéressez pas pour l'instant au paragraphe eth1, nous j'en parle dans l'article sur le Masquerading. Normalement votre connexion ADSL est maintenant opérationnelle.Pour l'arréter saisissez :killall pptp
killall pppd

Votre connexion ADSL doit maintenant fonctionner, bon surf...

Copyright 2000, Lenny Cartier

Révisé le 12/04/2000

Partager un accès ADSL sous Linux

Introduction
L'intérêt d'une connexion ADSL est qu'elle permet pour un coût relativement modeste de disposer d'une bande passante jusqu'alors inédite dans le domaine de l'accès internet personnelLors du partage d'une connexion, une machine tiendra le rôle de routeur, celle ci contient deux cartes réseau, l'une reçoit/envoie des données de/vers l'internet, l'autre interface est branchée sur un hub sur lequel viennent se connecter les postes clients. Le routeur "tricote" les données circulant par son interface externe (vers l'Internet) et fait comme si une seule machine était connectée. Quand il reçoit des données il sait aussi à quelle machines elles sont destinées.
Activer le masquerading
Dans ma configuration l'une de mes cartes, eth0 à une adresse IP de 10.0.0.10, l'autre eth1 est en 192.168.1.1. Celle tournée vers le net est donc eth0, l'autre eth1 vers le réseau local (hub).Pour activer le masquerading sur le routeur, deux choses: 
- Dans /etc/sysconfig/network, une ligne FORWARD_IPV4="true" - Le fichier /proc/sys/net/ipv4/ip_forward doit contenir le chiffre "1", pour cela la ligne suivante :
echo "1" > /proc/sys/net/ipv4/ip_forward
sera placée à la fin de votre fichier /etc/rc.d/rc.local
Il faut ensuite s'assurer que toutes les données à destination et au départ de vos postes clients soient correctement forwardées. Il faut pour cela charger des modules et spécifier le comportement que le routeur doit tenir face aux paquets. Modifiez votre fichier /etc/rc.d/rc.local en plaçant ces lignes à la fin :### Ip masquerade
 echo "1" > /proc/sys/net/ipv4/ip_forward
 /sbin/depmod -a
 /sbin/modprobe ip_masq_ftp
 /sbin/modprobe ip_masq_user
 ipchains -A forward -s 192.168.1.0/2 -d 0.0.0.0/0 -j MASQ
J'ai repris la ligne mettant le ip_forward à "1" pour étre bien sur de l'activation au démarrage. Les modules sont chargés par modprobe, ici je charge le module pour le ftp, et le module général pour les utilisateurs. Il existe d'autres modules pour l'irc, le streaming...
Enfin je définis une règle de masquerading à l'aide d'IPCHAINS. La première adresse définit une classe d'adresse, ici 192.168.1.1.0/2 autorise les machines de 192.168.1.0 à 192.168.1.2 à envoyer et recevoir des données de l'internet par l'intermédiaire de la machine routeur. Redémarrer la machine, vous devriez voir des messages vous annonçant que l'IP masquerading est activé.
Les clients
Les postes clients doivent avoir bien sur une adresse ip différente du serveur, donc ici différente de 192.168.1.1. Sur ces postes la seule manipulation à effectuer est d'éditer le fichier /etc/resolv.conf en y plaçant l'adresse IP du serveur de noms :
nameserver 193.252.19.3
search free.fr
domain free.fr
Cela permettra aux clients d'accéder au net par l'intermédiaire de la machine routeur, remplacez "free.fr" par le domaine de votre FAI.Editez le fichier /etc/sysconfig/network, deux lignes du style :
GATEWAY="192.168.1.1"
GATEWAYDEV="eth0"
doivent etre présentes. Cela permet de spécifier à la machine la passerelle à employer.
En résumé :
Deux machines :
- Un routeur : 2 cartes réseau, eth0 en 10.0.0.10 sur le modem ADSL et eth1 192.168.1.1 sur le HUB, masquerading activé. Connectée à l'Internet.
- Un client : 1 carte réseau 192.168.1.2 connectée au HUB.
Voila, un accès, plusieurs machines...

Copyright 2000, Lenny Cartier

Révisé le 01/03/2000

Page d'accueil   Plan du site     Table des matières