À 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 :
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)
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
A 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.
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é | cocher pour activer l’interface réseau au démarrage du système | cocher 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)
note du redacteur : quelque soit la distribution, l’utilitaire ifconfig fonctionne de la même manière. la commande : ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up permettra également de lever la carte reseau eth0 avec l’adresse IP et le masque voulu. Cette modification n’est cependant pas automatique et prendra fin lors du reboot de la machine ou lors d’un ifconfig eth0 down
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 remarche ? => 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 pour ce faire é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.
Testez 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 un 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.
note du redacteur : ssh v1 etant considéré comme non sécurisé utilisez SSH version 2
I - Préliminaires
Pour la suite des opérations, le client est roi, et hepgarconle le 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
Editez le fichier /etc/exports et ajoutez-y les 3 lignes ci-dessous :
/home/public *.troquet(rw) /home/roi roi.troquet(ro) mnt/cdrom (ro)
ligne 1 : ce répertoire sera exporté vers toutes les machines du domaine troquet et disponible en lecture et écriture
ligne 2 : ce répertoire sera exporté vers roi uniquement et ne sera disponible qu’en lecture
ligne 3 : 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 :
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) bidouillera à 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
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
Cochez la case [ o ] "Utiliser l’authentification PAP" (C’est en général ce qu’utilisent les FAI) ... selon votre cas.)
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 !!!
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 pour citer ses sources.
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.
Site : Linux par l’exemple.
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 : "Léa-linux" ; le site de l’AFUL ; la page personnelle de Rémi Poissionner.
EPILOGUE :
Hep Garçon ! une bière virtuelle s’iouplet ?
Tout de suite, le client est roi !
Frantz ORJOLLET le 22/10/2000
Publié par Frantz ORJOLLET le 22/10/2000
Révisé par Lenny CARTIER le 12/04/2000
je suis très ému de votre configuration sur un réseau avec telnet j’aimerai que vous m’envoyez la procédure à suivre pour la configuration d’un serveur LINUX via mon adresse e-mail : king_etienne@yahoo.fr
mon numero de téléphone est le suivant 00237 983 98 05
Les fortunes de #epplug. Retrouvez les membres de notre association sur notre salon IRC: irc.geeknode.net #epplug
Voici quelques extraits amusants (Télécharger le fichier de fortune)
Association Picarde des Utilisateurs de Logiciels Libres (EPPLUG) Association régie par la loi 1901
137, avenue du général FOY 80000 AMIENS.
Parution au Journal Officiel le 21/06/03 sous le n° 20030025 Siren : 494 525 280
© epplug.org 2002-2005 - ce site fonctionne grace au moteur d'edition collaboratif SPIP fonctionnant sous license GPL
Toutes les interventions sur ce site sont la propriété de leurs auteurs respectifs.