Linux NET-3-HOWTO, Reseau sous Linux. Terry Dawson, VK2KTJ, (Traduction et trahison de Jacques.Chion@wanadoo.fr, un grand merci a Jean-Albert Ferrez pour son aide) v1.1, 20 Aout 1997. Le systeme Linux possede un support reseau inclus dans le noyau et qui a ete ecrit presque entierement a partir de zero. Les performances de l'implementation tcp/ip des derniers noyaux en font une alternative digne de respect meme vis a vis de ses meilleurs concurrents. Le but de ce document est de decrire comment installer et configurer le logi- ciel de reseau sous Linux, ainsi que les outils necessaires. 11.. CChhaannggeemmeennttss ddeeppuuiiss llaa vveerrssiioonn pprreecceeddeennttee Additions: Reference au PLIP-mini-HOWTO - Merci a Claes IP NAT -Traduction d'adresse reseau (Network Address Translation) Corrections/Mises a jour: Beaucoup de corrections d'Alessandro Rubini - merci! Adresse electronique de Larry Stefani mise a jour - merci Larry Emplacement de nettools sur ftp.linux.uk.org corrige -merci a Ron Commande route incorrecte corrigee - merci a John Et en plus des commandes route tronquees! merci a Jean-Pierre Les adresses IPv6 ont 16 octets, pas 32, aie - merci a Erez A faire: Ajouter le reglage de traffic Decrire le nouvel algorithme de routage Ajouter les options de compilation IPv6 pour le noyau Decrire les entrees /proc/sys/net/*. Dispositif WanRouter 22.. IInnttrroodduuccttiioonn.. Le premier document NET-FAQ fut ecrit par Matt Welsh et moi-meme pour repondre aux questions frequemment posees concernant les reseaux sous Linux, en un temps ou le LPD (Linux Documentation Project) n'existait pas. Il s'agissait alors des toutes premieres versions de developpement du noyau reseau sous Linux. Le document NET-2-HOWTO, qui succeda au NET-FAQ, fut l'un des premiers documents du LDP HOWTO et il traitait de ce qui fut appele version 2, et plus tard version 3, du logiciel reseau du noyau Linux. A son tour ce document prend la suite et ne traite que de la version 3 du noyau reseau Linux. Les versions precedentes de ce document etaient devenues vraiment enormes en raison du grand nombre de sujets abordes. Pour resoudre ce probleme un certain nombre de documents HOWTO ont ete crees et traitent de sujets specifiques. Ce document fait reference a ceux qui sont pertinents et aborde les sujets qui ne sont pas encore traites par d'autres documents. 22..11.. RReettoouurr dd''iinnffoorrmmaattiioonnss J'apprecie toujours les retours d'informations et tout particulierement les contributions pertinentes. S'il vous plait adressez tout retour d'informations ou contributions a l'adresse . 33.. CCoommmmeenntt uuttiilliisseerr ccee ddooccuummeenntt ((NNEETT--33--HHOOWWTTOO--HHOOWWTTOO ??)).. La presentation de ce document differe des versions precedentes: J'ai regroupe les chapitres en sorte qu'il y ait au debut une information sur le sujet traite (aussi vous pourrez le sauter s'il ne vous interesse pas), puis le coeur du sujet, que vous devez etre surs d'avoir assimile avant d'aller dans les sections suivantes qui traitent de la technique. LLiirree lleess sseeccttiioonnss ggeenneerraalleess Ces paragraphes s'appliquent a chaque technologie, ou presque, decrite plus tard, il est donc important que vous les ayez assimiles. RReefflleecchhiisssseezz aa vvoottrree rreesseeaauu Vous devez savoir comment votre reseau est, ou sera, concu et quels materiels et types de technologies vous utiliserez. LLiisseezz lleess sseeccttiioonnss qquuii ccoonncceerrnneenntt llaa tteecchhnnoollooggiiee ccoorrrreessppoonnddaanntt plus particulierement a vos besoins." Si vous savez ce que vous voulez, vous pouvez pointer sur chaque element tour a tour. Ces paragraphes traitent seulement de details concernant une technologie particuliere. CCoonnffiigguurreezz vvoottrree rreesseeaauu Si vous voulez reellement essayer de configurer votre reseau, prenez soigneusement note de tout probleme eventuel. CChheerrcchheezz ddee ll''aaiiddee ssii nneecceessssaaiirree Si vous rencontrez des problemes qui ne sont pas traites dans ce document, reportez-vous au paragraphe qui donne les endroits ou il est possible d'en obtenir ou bien envoyer des reports de bogues. AAmmuusseezz--vvoouuss!! Le reseau est amusant, profitez-en. 44.. ssoouuss LLiinnuuxx.. IInnffoorrmmaattiioonnss ggeenneerraalleess ssuurr llee rreesseeaauu 44..11.. BBrreevvee hhiissttooiirree dduu ddeevveellooppppeemmeenntt dduu nnooyyaauu dduu rreesseeaauu LLiinnuuxx.. Developper une nouvelle implementation noyau de l'ensemble du protocole tcp/ip, de qualite, et qui marcherait aussi bien que les produits existants, n'etait pas une tache facile. La decision de ne pas partir d'une implementation existante fut prise a un moment ou il y avait un doute quant a d'eventuelles restrictions sur les droits de copie, en raison de decisions de justice U.S., et a un moment ou il y avait beaucoup d'enthousiasme pour faire differemment et peut-etre meme mieux que ce qui avait ete fait auparavant. Le premier volontaire pour diriger le developpement fut Ross Biro . Ross produisit une implementation de routines simple, incomplete, mais parfaitement utilisable, a laquelle fut ajoute un pilote Ethernet pour la carte interface reseau WD-8003. Cela fut suffisant pour que beaucoup de personnes essayent le logiciel et meme certains s'arrangerent pour se connecter, avec cette configuration, sur le reseau Internet en direct. La pression, dans la communaute Linux qui s'occupait du developpement du support reseau, augmenta, et pour finir la convergence de cette pression injuste et de ses propres obligations l'emporterent sur les avantages que Ross en tirait et il arreta sa tache de coordinateur de developpement. Les efforts de Ross pour faire demarrer le projet, son acceptation de la responsabilite de faire vraiment quelque chose d'utile dans de telles circonstances mouvementees, furent le point de depart de tout le travail ulterieur et donc un element essentiel du succes du produit actuel. Orest Zborowski produisit la premiere interface socket BSD pour le noyau Linux. Ce fut un grand pas en avant et permit a beaucoup d'applications reseau existantes d'etre portees sous Linux sans grandes modifications. A peu pres a cette epoque Laurence Culhane developpa les premiers pilotes Linux pour supporter le protocole SLIP. Ceci permit a beaucoup de gens qui n'avaient pas acces a un reseau Ethernet d'essayer le logiciel reseau. Puis certains utiliserent ce pilote pour se connecter sur l'Internet. Cela donna a encore plus de personnes un apercu de ce qui serait possible si Linux avait un support complet pour le reseau et augmenta le nombre d'utilisateurs utilisant et experimentant ce logiciel reseau. L'une des personnes qui a aussi activement travaille sur la construction du support reseau fut Fred van Kempen . Apres la periode d'incertitude qui suivit le retrait de Ross, Fred offrit son temps et accepta le role de conducteur du developpement sans rencontrer d'opposition. Fred avait quelques projets ambitieux quant a la direction vers laquelle il voulait porter le logiciel reseau Linux, et il se mit a progresser dans ces directions. Fred produisit une serie de code reseau appelee le code noyau `NET-2' (le code `NET' etant celui de Ross), qui permit a beaucoup de personnes de l'utiliser avec interet. Ensuite Fred mit nombre d'innovations dans la poursuite du developpement, telle que l'interface de peripherique dynamique, le support du protocole radio- amateur AX-25 et une implementation reseau concue de maniere plus modulaire. Le code NET-2 de Fred fut utilise par un grand nombre d'enthousiastes, ce nombre augmentant au fur et a mesure de l'utilisation du logiciel de par le monde. Le logiciel reseau, a ce moment, etait encore constitue d'un grand nombre de patches qui devant etre appliques au code noyau et il n'etait pas inclus dans la distribution normale. Le document NET-FAQ, puis son successeur NET-2-HOWTO, decrivait la procedure de fonctionnement qui etait assez complexe. Fred se concentra sur le developpement d'innovations et cela prenait du temps. La communaute des utilisateurs s'impatientait car elle voulait avoir quelque chose fonctionnant correctement et qui satisferait 80% des utilisateurs aussi, tout comme avec Ross, la pression allait en augmentant sur le responsable du developpement. Alan Cox proposa une solution pour ameliorer la situation. Il proposa de reprendre le code NET-2 de Fred, de le deboguer, de le rendre fiable et stable afin de satisfaire l'utilisateur de base impatient, et relachant alors la pression sur Fred qui pourrait continuer son oeuvre. Alan se mit au travail avec un certain succes et sa premiere version du code reseau Linux fut appelee `Net-2D(ebugged;)'. Ce code fonctionnait de maniere fiable avec plusieurs configurations typiques et l'utilisateur de base etait content. Alan avait vraiment des idees et une competence a lui pour contribuer au projet et les nombreuses discussions sur la direction que devait prendre le code NET-2 furent suivies d'effet. Il se developpa alors deux ecoles distinctes dans la communaute Linux, l'une ayant pour principe `que ca marche d'abord, puis on ameliorera ensuite' et l'autre `ameliorer d'abord'. Linus arbitra finalement et offrit son aide aux efforts de developpement d'Alan et inclut son code dans la distribution standard du noyau. Cela placait Fred dans une situation delicate. Tout developpement de longue haleine souffrirait de l'absence d'utilisation et d'essais par l'utilisateur de base et cela signifierait que les progres seraient longs et difficiles. Fred continua a travailler encore quelque temps, puis se retira finalement, et Alan devint le nouveau pilote de developpement du code reseau dans le noyau Linux. Donald Becker revela rapidement ses talents dans les aspects de bas niveau du reseau et produisit une enorme quantite de pilotes Ethernet, presque tous ceux inclus dans les noyaux actuels sont de lui. Il y a d'autres personnes qui ont apporte une contribution significative, mais le travail de Donald est prolifique et merite donc une mention speciale. Alan continua a affiner le code NET-2-D(ebugged) pendant un certain temps, tout en progressant sur certains des sujets qui restaient en suspens dans la liste des `TODO' (NdT: `A Faire'). Pendant que les sources du noyau Linux 1.3.* faisaient leurs premiers pas, le code reseau migra vers la distribution NET-3, sur laquelle les versions actuelles sont basees. Alan travailla sur de multiples aspects du code reseau et, avec l'assistance d'un grand nombre de personnes talentueuses venant de la communaute Linux, developpa le code dans toutes sortes de direction. Alan produisit des pilotes de peripheriques reseau, le premier standard AX.25 et les implementations IPX. Alan continua a rafistoler le code, le restructurant petit a petit et l'amenant a son niveau d'aujourd'hui. Le support PPP fut ajoute par Michael Callahan et Al Longyear , ce qui fut important pour accroitre le nombre de personnes utilisant Linux desireuses d'aller sur le reseau. Jonathon Naylor apporta sa contribution en ameliorant le code AX.25 d'Alan et en y ajoutant les protocoles NetRom et Rose. Le support AX.25/NetRom lui-meme est tout a fait significatif, car aucun autre systeme d'exploitation que Linux ne peut se vanter d'avoir un support natif pour ce protocole. Il y a eu bien sur des centaines d'autres personnes qui ont apporte une contribution significative a la couche reseau de Linux. Vous en retrouverez certains plus tard dans les paragraphes traitant de technologies specifiques, d'autres ont collabore aux modules, pilotes, corrections de bogues, suggestions, rapports d'essais et support moral. Dans tous les cas chacun peut se prevaloir d'avoir joue un role et offert ce qu'il pouvait. Le code reseau Linux est un excellent exemple de ce que l'on peut obtenir avec un style Linux de developpement anarchique, si cela ne vous a pas encore surpris, et on le voit encore, le developpement ne s'est pas arrete. 44..22.. OOuu oobbtteenniirr dd''aauuttrreess iinnffoorrmmaattiioonnss ssuurr llaa ccoouucchhee rreesseeaauu ddee LLiinnuuxx.. Il y a un grand nombre d'endroits ou l'on peut trouver de bonnes informations sur le reseau Linux. Alan Cox, l'actuel mainteneur du code reseau Linux entretient une page web qui contient les points principaux du reseau actuel et les nouveaux developpements a l'adresse: www.uk.linux.org . Un autre bon endroit est un livre ecrit par Olaf Kirch ayant pour titre Network Administrators Guide. C'est une oeuvre du Linux Documentatation Project et vous pouvez le lire de maniere interactive sur Network Administrators Guide HTML version ou bien vous pouvez l'obtenir sous differents formats via ftp sur: sunsite.unc.edu LDP ftp archive . Le livre d'Olaf est tres comprehensible et fournit un point de vue de haut niveau sur la configuration reseau sous Linux. (NdT: ce livre a ete traduit en francais de maniere remarquable par le regrette Rene Cougnenc) Il existe un groupe de discussion dedie au reseau et, en ce qui le concerne dans la hierarchie Linux, c'est: comp.os.linux.networking Il existe une liste de diffusion a laquelle vous pouvez vous inscrire, et ou vous pourrez poser des questions ayant trait au reseau Linux. Pour souscrire vous devez envoyer un message par couurier electronique: To: majordomo@vger.rutgers.edu Subject: rien du tout Message: subscribe linux-net Sur les differents reseaux IRC il y a souvent des canaux #linux sur lesquels des personnes sont en mesure de repondre a vos questions concernant le reseau Linux. Rappelez-vous que, lorsque vous faites part d'un probleme, il faut y inclure le plus possible de details necessaires. Plus specialement indiquez les versions des logiciels que vous utilisez, en particulier la version du noyau, les versions des outils tels que _p_p_p_d ou _d_i_p et la nature exacte des problemes que vous rencontrez. Cela veut dire prendre note de la syntaxe exacte des messages d'erreurs que vous recevez, et les commandes que vous avez executees. 44..33.. nnoonn ssppeecciiffiiqquueess ddee LLiinnuuxx.. OOuu oobbtteenniirr ddeess iinnffoorrmmaattiioonnss ssuurr llee rreesseeaauu,, Si vous desirez des informations generales de base sur tcp/ip, alors je vous recommande de regarder les documents suivants: iinnttrroodduuccttiioonn aa ttccpp//iipp ce document se trouve a la fois sur en version texte et en version postscript . aaddmmiinniissttrraattiioonn ttccpp//iipp ce document se trouve a la fois sur en version texte et en version postscript . Si vous recherchez des informations plus detaillees je vous recommande chaudement: "Internetworking with TCP/IP" par Douglas E. Comer ISBN 0-13-474321-0 Prentice Hall publications. Si vous voulez apprendre comment ecrire des applications reseau dans un environnement compatible Unix, je vous recommande egalement chaudement: "Unix Network Programming" par W. Richard Stevens ISBN 0-13-949876-1 Prentice Hall publications. Vous pouvez essayer aussi le groupe de discussions: comp.protocols.tcp-ip . Une importante source d'informations techniques concernant l'Internet et la suite des protocoles tcp/ip sont les RFC. RFC est l'acronyme de `Request For Comment' et c'est le moyen habituel de soumettre et de s'informer des normes de protocole Internet. Il y a beauccoup d'endroits ou sont stockees ces RFC. Beaucoup de ceux-ci sont des sites ftp, d'autres fournissent des acces WWW avec un moteur de recherche qui cherche les bases de donnees RFC avec des mots cle particuliers. Une source possible de RFC est: Nexor RFC database . 55.. IInnffoorrmmaattiioonnss ggeenneerraalleess ssuurr llaa ccoonnffiigguurraattiioonn rreesseeaauu.. Vous devez connaitre et bien comprendre les sous-paragraphes suivants avant d'essayer de configurer votre reseau. Ce sont des principes de base qui s'appliquent, independamment de la nature du reseau que vous voulez mettre en place. 55..11.. DDee qquuooii aaii--jjee bbeessooiinn ppoouurr ddeemmaarrrreerr ?? Avant de commencer a construire ou configurer votre reseau, vous aurez besoin de certaines choses. Les plus importantes sont: 55..11..11.. SSoouurrcceess dduu nnooyyaauu aaccttuueell.. Si le noyau que vous utilisez actuellement ne supporte pas les types de reseau ou les cartes que vous voulez utiliser, vous aurez besoin des sources du noyau pour pouvoir le recompiler avec les options adequates. Vous pouvez toujours obtenir les sources du dernier noyau sur: ftp.funet.fi (NdT: et bien sur ftp.lip6.fr ). Normalement les sources du noyau doivent etre desarchivees dans le repertoire /usr/src/linux. Pour savoir comment appliquer les patches et compiler le noyau, lisez le Kernel-HOWTO . Pour savoir comment configurer les modules du noyau, lisez le Module-HOWTO . Sauf indication contraire, je vous recommande de vous en tenir a la version standard du noyau (celle avec un chiffre pair en seconde place dans le numero de version). Les distributions de developpement ( avec un chiffre impair en seconde place dans le numero de version) peuvent avoir une structure ou autre chose pouvant poser probleme avec des logiciels de votre systeme. Si vous n'etes pas certains de resoudre ce type de problemes, avec en plus ceux qui existeraient sur d'autres logiciels, ne les utilisez pas. 55..11..22.. OOuuttiillss ddee rreesseeaauu aaccttuueellss.. Ces outils sont les programmes utilises pour configurer les fichiers de peripheriques reseau. Ils vous permettent d'assigner des adresses aux peripheriques et de configurer des routes, par exemple. La plupart des distributions Linux modernes sont fournies avec les outils de reseau, aussi si vous avez fait votre installation a partir d'une distribution et que vous n'avez pas encore installe les outils de reseau, vous devez le faire. Si vous n'avez pas fait l'installation a partir d'une distribution, vous aurez alors besoin des sources pour les compiler vous-memes. Ce n'est pas difficile. Les outils de reseau sont maintenus par Bernd Eckenfels et se trouvent sur: ftp.inka.de et sont mirrorises sur: ftp.linux.uk.org . Soyez surs de choisir la version la mieux appropriee a votre noyau et suivez les instructions incluses dans le paquetage. Pour installer et configurer la version actuelle (au moment ou nous ecrivons), vous avez besoin de faire : # # cd /usr/src # tar xvfz net-tools-1.33-alpha.tar.gz # cd net-tools-1.33-alpha # make config # make # make install # De plus, si vous voulez configurer une protection firewall ou utiliser l'IP masquerade vous aurez besoin de la commande _i_p_f_w_a_d_m. La derniere version peut-etre obtenue sur: ftp.xos.nl . Encore une fois, de nombreuses versions existent. Soyez surs de prendre celle qui s'adapte le mieux a votre noyau. Pour installer et configurer la version qui a cours en ce moment, vous devrez faire: # # cd /usr/src # tar xvfz ipfwadm-2.3.0.tar.gz # cd ipfwadm-2.3.0 # make # make install # 55..11..33.. AApppplliiccaattiioonnss rreesseeaauu.. Les programmes d'application reseau sont des programmes tels que _t_e_l_n_e_t et _f_t_p et leurs serveurs respectifs. David Holland s'occupe maintenant d'une distribution tres repandue. Vous pouvez l'obtenir sur: ftp.uk.linux.org . Pour installer et configurer la version qui existe a l'heure actuelle vous devrez faire: # # cd /usr/src # tar xvfz /pub/net/NetKit-B-0.08.tar.gz # cd NetKit-B-0.08 # more README # vi MCONFIG # make # make install # 55..11..44.. AAddrreesssseess.. Les adresses de protocole Internet (IP) sont composees de quatre octets. La convention d'ecriture est appelee `notation decimale pointee'. Sous cette forme chaque octet est converti en un nombre decimal (0-255), en omettant les zeros de tete (a moins que ce nombre ne soit lui-meme un zero) et chaque octet est separe par le caractere `.'. Par convention chaque interface d'un hote ou routeur possede une adresse IP. Il est permis, dans certaines circonstances, que la meme adresse IP soit utilisee sur les differentes interfaces d'une meme machine, mais, en general, chaque interface possede sa propre adresse. Les reseaux protocole Internet sont des sequences contigues d'adresses IP. Toutes les adresses d'un meme reseau ont des chiffres en commun. La partie d'adresse commune a toutes les adresses d'un reseau s'appelle la `partie reseau' de l'adresse. Les chiffres restants s'appellent `partie hote'. Le nombre de bits qui sont partages par toutes les adresses d'un meme reseau est appele masque de reseau (netmask) et c'est le role du masque de reseau de determiner quelles adresses appartiennent a `son' reseau et celles qui ne sont pas concernees. Par exemple: ---------------------------------------- ---------------- Adresse hote (host address) 192.168.110.23 Masque de reseau (network mask) 255.255.255.0 Partie reseau (network portion) 192.168.110. Partie hote (host portion) .23 ---------------------------------------- ---------------- Adresse reseau (network address) 192.168.110.0 Adresse de diffusion (broadcast address) 192.168.110.255 ---------------------------------------- ---------------- Toute adresse qui est `andee bit a bit' avec son masque de reseau revelera l'adresse du reseau auquel elle appartient. L'adresse du reseau est par consequent l'adresse de plus petit nombre dans l'ensemble des adresses et a toujours la partie hote codee avec des zeros. L'adresse de diffusion est une adresse speciale que chaque hote du reseau ecoute en meme temps que son adresse personnelle. Cette adresse est celle a laquelle les datagrammes sont envoyes si tous les hotes du reseau sont en mesure de les recevoir. Certains types de donnees telles que les informations de routage et les messages d'alerte sont transmis vers l'adresse de diffusion de telle sorte que chaque hote du reseau peut les recevoir en meme temps. Il y a deux standards utilises de maniere courante pour definir ce que doit etre l'adresse de diffusion. Le plus largement utilise est de prendre l'adresse la plus haute possible du reseau comme adresse de diffusion. Dans l'exemple ci-dessus ce serait 192.168.110.255. Pour d'autres raisons certains sites ont adopte la convention d'utiliser l'adresse de reseau comme adresse de diffusion. En pratique cela n'a pas beaucoup d'importance, mais vous devez etre surs que tous les hotes du reseau sont configures avec la meme adresse de diffusion. Pour des raisons d'administration, il y a quelque temps, lors du developpement du protocole IP, des ensembles d'adresses ont ete organises en reseaux et ces reseaux ont ete regroupes en ce que l'on a appelle classes. Ces classes donnent un certain nombre de reseaux de tailles standards auxquels on peut assigner des adresses. Ces classes sont: ---------------------------------------------------------- |Classe de |Masque de | Adresses de reseau | | reseau | reseau | | ---------------------------------------------------------- | A | 255.0.0.0 | 0.0.0.0 - 127.255.255.255 | | B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 | | C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 | |Multicast| 240.0.0.0 | 224.0.0.0 - 239.255.255.255 | ---------------------------------------------------------- Le type d'adresse que vous devez utiliser depend de ce que vous voulez faire exactement. Vous pouvez utiliser une combinaison des actions suivantes pour obtenir l'ensemble des adresses dont vous aurez besoin: IInnssttaalllleerr uunnee mmaacchhiinnee LLiinnuuxx ssuurr uunn rreesseeaauu IIPP eexxiissttaanntt Alors vous devez contacter un des administrateurs du reseau et lui demander les informations suivantes: +o Adresse hote +o Adresse reseau +o Adresse de diffusion +o Masque de reseau +o Adresse de routage +o Adresse du serveur de noms de domaine (DNS) Vous configurerez alors votre reseau Linux a l'aide de ces donnees. Vous ne pouvez pas les inventer vous-memes et esperer que votre configuration fonctionne. CCoonnssttrruuiirree uunn rreesseeaauu ttoouutt nneeuuff nnoonn ccoonnnneeccttee aa ll''IInntteerrnneett Si vous construisez un reseau prive et que vous n'ayez pas l'intention de vous connecter a l'Internet, vous pouvez alors choisir n'importe quelle adresse. Cependant, pour des raisons de securite et de fiablite, il y a quelques adresses de reseau IP reservees a cet usage. Elles sont specifiees dans la RFC 1597 et sont les suivantes: ----------------------------------------------------------- | ALLOCATIONS POUR RESEAUX PRIVES | ----------------------------------------------------------- | Classe | Masque de | Adresses de reseau | | reseau | reseau | | ----------------------------------------------------------- | A | 255.0.0.0 | 10.0.0.0 - 10.255.255.255 | | B | 255.255.0.0 | 172.16.0.0 - 172.31.255.255 | | C | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 | ----------------------------------------------------------- Vous devez d'abord decider de la dimension de votre reseau et choisir ensuite les adresses dont vous avez besoin. 55..22.. OOuu mmeettttrree lleess ccoommmmaannddeess ddee ccoonnffiigguurraattiioonn ?? Il y a plusieurs possibilites de procedures de demarrage d'un systeme Linux. Apres le demarrage du noyau , celui-ci execute toujours un programme appele `_i_n_i_t'. Ce programme lit le fichier de configuration appele /etc/inittab et commence le processus de demarrage. Il y a quelques variantes de _i_n_i_t et c'est la que l'on trouve la plus grande difference entre les diverses distributions ou machines. Habituellement le fichier /etc/inittab contient un entree telle que: si::sysinit:/etc/init.d/boot Cette ligne specifie le nom du fichier script qui prend en charge reellement la sequence de demarrage. Ce fichier est en quelque sorte equivalent au fichier MS-DOS AUTOEXEC.BAT. Il y a aussi d'autres scripts appeles par le script de demarrage, et souvent le reseau est configure dans l'un de ceux-ci. Le tableau suivant peut etre utilise comme guide suivant le systeme que vous avez: ------------------------------------------------------------------------------- Distrib. |Interface Config/Routage |Initialisation serveur ------------------------------------------------------------------------------- Debian |/etc/init.d/network |/etc/init.d/netbase | |/etc/init.d/netstd_init | |/etc/init.d/netstd_nfs | |/etc/init.d/netstd_misc ------------------------------------------------------------------------------- Slackware|/etc/rc.d/rc.inet1 |/etc/rc.d/rc.inet2 ------------------------------------------------------------------------------- RedHat |/etc/sysconfig/network-scripts/ifup-|/etc/rc.d/init.d/network ------------------------------------------------------------------------------- La plupart des distributions recentes incluent un programme qui vous permet de configurer beaucoup de types d'interfaces reseau. Si vous en possedez une, regardez si ce programme vous convient au lieu de tenter une configuration manuelle. ----------------------------------------- Distrib | Programme de configuration reseau ----------------------------------------- RedHat | /sbin/netcfg Slackware | /sbin/netconfig ----------------------------------------- 55..33.. CCrreeeerr vvooss iinntteerrffaacceess rreesseeaauu.. Sur beaucoup de systemes Unix les peripheriques reseau apparaissent dans le repertoire _/_d_e_v . Il n'en est pas de meme avec Linux. Les peripheriques reseau sont crees dynamiquement dans les logiciels et ne demandent donc pas de fichiers de peripheriques. Dans la majorite des cas les peripheriques reseau sont crees automatiquement par le pilote de peripherique pendant son initialisation et lorsqu'il detecte votre materiel. Par exemple le pilote Ethernet cree les interfaces eth[0..n] une a une quand il detecte votre materiel Ethernet. La premiere carte Ethernet trouvee devient eth0, la deuxieme eth1 etc. Cependant dans certains cas, notamment avec _S_L_I_P et _P_P_P, les peripheriques reseau sont crees au travers de l'action d'un programme utilisateur. Le meme mecanisme sequentiel s'applique sur les peripheriques, mais ce n'est pas au moment du demarrage du systeme. La raison en est que, a l'inverse des dispositifs Ethernet, le nombre de peripheriques _S_L_I_P ou _P_P_P actifs peut varier dans le temps. Nous en discuterons plus tard. 55..44.. CCoonnffiigguurreerr uunnee iinntteerrffaaccee rreesseeaauu.. Lorsque vous avez tous les programmes requis, votre adresse et les informations reseau, vous pouvez alors configurer vos interfaces. Lorsque nous parlons de la configuration d'interface, nous faisons allusion au processus d'assignation des adresses du peripherique reseau, et au processus de reglage des parametres configurables. Le programme le plus utilise pour ce faire est la commande _i_f_c_o_n_f_i_g (interface configure). Typiquement vous utilisez une commande comme ci-dessous: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up Dans ce cas je configure l'interface Ethernet `eth0' avec l'adresse IP `192.168.0.1' et un masque de reseau `255.255.255.0'. Le `_u_p' qui termine la commande enjoint a l'interface de devenir active. Le noyau suppose certaines valeurs par defaut lorsque l'on configure les interfaces. Par exemple, vous pouvez indiquer une adresse de reseau et une adresse de diffusion, mais si vous ne le faites pas comme nous venons de le faire dans l'exemple ci-dessus, alors le noyau fera certaines hypotheses qui seront basees sur le masque que vous avez donne, et si vous n'en avez pas fourni sur la classe reseau de l'adresse IP configuree. Dans mon exemple, le noyau assumera que c'est un reseau de classe C et configurera une adresse reseau de `192.168.0.0' et une adresse de diffusion de `192.168.0.255'. Il y a de nombreuses autres options pour la commande _i_f_c_o_n_f_i_g . Les plus importantes sont: uupp active une interface. ddoowwnn desactive une interface. ((--))aarrpp active ou desactive le protocole de resolution d'adresses sur cette interface. ((--))aallllmmuullttii active ou desactive la reception de tous les paquets multicast materiel. Le multicast materiel permet a des groupes d'hotes de recevoir des paquets adresses vers des destinations speciales. Ce peut etre important si vous utilisez des applications telles que la videoconference, mais on ne l'utilise pas habituellement mmttuu NN ce parametre permet de regler le _M_T_U sur le peripherique. nneettmmaasskk aaddddrr ce parametre permet de fixer le masque de reseau. iirrqq aaddddrr ce parametre ne marche qu'avec certains types de materiels, mais vous permet d'en fixer l'IRQ. [[--]]bbrrooaaddccaasstt aaddddrr permet d'activer ou de desactiver l'acceptation de datagrammes destines a l'adresse de diffusion. [[--]]ppooiinnttooppooiinntt aaddddrr permet de fixer l'adresse de la machine a l'extremite d'un lien point-a-point comme pour _S_L_I_P ou _P_P_P. hhww <> <> permet de fixer l'adresse materielle de certains peripheriques reseau. Ce n'est pas souvent utilise pour Ethernet, mais utile pour d'autres types de reseau tels que AX.25. Vous pouvez utiliser la commande _i_f_c_o_n_f_i_g pour toutes les interfaces reseau. Quelques programmes utilisateurs comme _p_p_p_d et _d_i_p configurent automatiquement les peripheriques en meme temps qu'ils les creent, des lors l'utilisation manuelle de _i_f_c_o_n_f_i_g n'est pas necessaire. 55..55.. CCoonnffiigguurreerr vvoottrree rreessoollvveeuurr ddee nnoommss.. Le `_R_e_s_o_l_v_e_u_r _d_e _N_o_m' (Name Resolver) fait partie de la bibliotheque standard de Linux. Sa premiere fonction est de convertir des noms d'hotes comprehensibles par l'homme, comme `ftp.funet.fi' , en adresses IP comprehensibles par une machine, comme 128.214.248.6. 55..55..11.. QQuu''yy aa--tt--iill ddaannss uunn nnoomm ?? Vous etes probablement familiers avec l'aspect des noms d'hotes Internet, mais vous ne savez pas comment ils sont composes ou decomposes. Les noms de domaine Internet sont hierarchises par nature, c'est a dire qu'ils ont une structure arborescente. Un `_d_o_m_a_i_n_e' est une famille, ou un groupe de noms. Un `_d_o_m_a_i_n_e' peut etre subdivise en `_s_o_u_s_-_d_o_m_a_i_n_e_s'. Un `_d_o_m_a_i_n_e _d_e _p_r_e_m_i_e_r _n_i_v_e_a_u' est un domaine qui n'est pas un sous-domaine. Les Domaines de Premier Niveau sont specifies dans la RFC-920. Quelques exemples: CCOOMM Organisations Commerciales EEDDUU Organisations ayant rapport avec l'Education GGOOVV Organisations Gouvernementales MMIILL Organisations Militaires OORRGG Autres organisations NNoomm ddee PPaayyss il existe des codes de deux lettres qui representent un pays donne. Chacun de ces domaines de premier niveau possede des sous-domaines. Les domaines de premier niveau bases sur les noms de pays sont divises ensuite en sous-domaines bases sur les domaines com, edu, gov, mil and org . Ainsi par exemple, vous finissez par : com.au and gov.au pour des organisations commerciales ou gouvernementales situees en Australie. Pour des raisons historiques la plupart des domaines appartenant a des domaines qui ne sont pas bases sur des noms de pays sont pour les organisations appartenant aux Etats-Unis, bien que les Etats-Unis aient aussi le code de pays `.us'. Le niveau de division suivant represente habituellement le nom de l'organisation. Ces sous-domaines sont variables, souvent ils sont bases sur la structure en departements de l'organisation mais ils peuvent etre bases egalement sur d'autres criteres consideres comme rationnels et comprehensibles par les administrateurs reseau de l'organisation. La partie tout a fait a gauche du nom est toujours l'unique nom assigne a la machine hote et est appelee le nom d'hote `_h_o_s_t_n_a_m_e', la partie de droite du nom est le nom de domaine `_d_o_m_a_i_n_n_a_m_e' et le nom complet s'appelle le nom de domaine completement qualifie `_F_u_l_l_y _Q_u_a_l_i_f_i_e_d _D_o_m_a_i_n _N_a_m_e'. Si l'on examine mon adresse electronique par exemple, le nom pleinement qualifie est `perf.no.itg.telstra.com.au'. Cela veut dire que le nom d'hote est `perf' et le nom de domaine `no.itg.telstra.com.au'. Le nom de domaine est base sur un domaine de premier niveau base sur mon pays, l'Australie et comme mon adresse electronique appartient a une organisation commerciale nous avons `.com' comme domaine de niveau adjacent. Le nom de la societe est (etait) `telstra' et notre structure interne de noms est base sur la structure organisationnelle, dans mon cas, ma machine appartient a l' Information Technology Group, Network Operations section. 55..55..22.. QQuueelllleess ssoonntt lleess iinnffoorrmmaattiioonnss nneecceessssaaiirreess.. Vous devez connaitre le domaine auquel votre nom d'hote appartient. Le resolveur de nom effectue la traduction en faisant appel a un `_S_e_r_v_e_u_r _d_e _N_o_m _d_e _D_o_m_a_i_n_e', aussi vous devez connaitre l'adresse IP d'un serveur de nom local que vous pouvez utiliser. Il y a trois fichiers que vous devez editer, nous en parlerons chacun a leur tour. 55..55..33.. //eettcc//rreessoollvv..ccoonnff Le fichier /etc/resolv.conf est le principal fichier de configuration pour le code de resolution de nom. Son format est tras simple. C'est un fichier texte avec um mot-cle par ligne. Il y a trois mots-cles typiquement utilises, qui sont: ddoommaaiinn ce mot-cle indique le nom de domaine local. sseeaarrcchh ce mot-cle specifie une liste d'autres noms de domaine pour rechercher un nom d'hote. nnaammeesseerrvveerr ce mot-cle, qui peut etre utilise plusieurs fois, specifie l'adresse IP d'un serveur de nom de domaine pour la resolution de noms. Un exemple de /etc/resolv.conf pourrait ressembler a ceci: domain maths.wu.edu.au search maths.wu.edu.au wu.edu.au nameserver 192.168.10.1 nameserver 192.168.12.1 Cet exemple specifie que le nom de domaine par defaut a ajouter aux noms non qualifies ( c'est a dire sans domaine) est maths.wu.edu.au, et que si l'hote n'est pas trouve dans ce domaine on peut aussi essayer le domaine wu.edu.au directement. Deux entrees de serveurs de noms sont fournies, chacune d'elles pouvant etre appelee par le resolveur de noms. 55..55..44.. //eettcc//hhoosstt..ccoonnff Le fichier /etc/host.conf sert a configurer certaines choses en vue de modifier le comportement du resolveur de noms. Son format est decrit en detail dans la page de manuel `resolv+'. Dans le plupart des cas l'exemple suivant vous conviendra: order hosts,bind multi on Cette configuration indique au resolveur de nom de verifier en premier lieu le fichier /etc/hosts avant d'essayer un serveur de noms et de renvoyer toutes les adresses valables d'un hote trouve dans le fichier /etc/hosts au lieu de donner simplement la premiere. 55..55..55.. //eettcc//hhoossttss Le fichier /etc/hosts est l'endroit ou vous mettez les noms et les adresses IP des hotes locaux. Si vous mettez un hote dans ce fichier, alors vous n'avez pas a interroger le serveur de nom de domaine pour obtenir son adresse IP. L'inconvenient est que vous devez tenir votre fichier a jour si l'adresse de cet hote a change. Dans un systeme bien administre les seuls noms d'hotes qui apparaissent habituellement sont l'interface loopback, et le nom des hotes locaux. # /etc/hosts 127.0.0.1 localhost loopback 192.168.0.1 this.host.name Vous pouvez specifier plus d'un nom d'hote comme montre dans la premiere entree qui est standard pour l'interface loopback. 55..66.. CCoonnffiigguurreerr vvoottrree iinntteerrffaaccee llooooppbbaacckk.. L'interface `loopback' est un type special d'interface qui permet de vous connecter a vous-meme. Il y a plusieurs raisons pour faire ceci, par exemple vous voulez faire des essais de logiciel reseau sans interferer avec quelqu'un d'autre sur votre reseau. Par convention, l'adresse IP `127.0.0.1' lui a ete assignee. Aussi quelle que soit la machine ou vous etes, si vous ouvrez une connexion telnet vers 127.0.0.1 vous atteindrez toujours l'hote local. Configurer l'interface loopback est simple et vous devez vous assurer de l'avoir fait. # ifconfig lo 127.0.0.1 # route add -host 127.0.0.1 lo Nous en dirons plus sur la commande _r_o_u_t_e dans le prochain paragraphe. 55..77.. RRoouuttaaggee.. Le routage est un vaste sujet. On peut ecrire de grandes quantites de textes sur ce sujet. La plupart d'entre vous ont besoin d'un simple routage, et certains meme de rien du tout. Je ne parlerai que des principes du routage. Si vous voulez plus d'informations je vous suggere de vous reporter aux references fournies en debut du document. Commencons par une definition. Qu'est-ce que le routage IP ? Voici celle que j'utilise: Le routage IP est le processus par lequel un hote, ayant des connexions reseau multiples, decide du chemin ou delivrer les datagrammes IP qu'il a recus. Il peut etre utile d'illustrer cela par un exemple. Imaginez un routeur dans un bureau: il peut avoir un lien PPP sur l'Internet, un certain nombre de segments Ethernet alimentant les stations de travail et un second lien PPP vers un autre bureau. Lorsque le routeur recoit un datagramme de l'une de ses connexions, le routage est le mecanisme qui est utilise pour determiner vers quel port il doit renvoyer ce datagramme. De simples hotes ont besoin aussi de routage, tous les hotes Internet ayant deux peripheriques reseau, l'un etant l'interface loopback decrite auparavant et l'autre est celui qui est utilise pour parler avec le reste du monde, soit un lien Ethernet, soit un port serie PPP ou SLIP. Ok, alors comment marche le routage ? Chaque hote possede une liste speciale de regles de routage, appelee une table de routage. Cette table contient des colonnes qui contiennent au moins trois champs, le premier etant une adresse de destination, le deuxieme etant le nom de l'interface vers lequel le datagramme doit etre route et le troisieme, qui est optionnel, l'adresse IP d'une autre machine qui transportera le datagramme vers sa prochaine destination sur le reseau. Sur Linux vous pouvez voir cette table en utilisant la commande suivante: # cat /proc/net/route ou en utilisant l'une de ces commandes: # /sbin/route -n # /bin/netstat -r Le processus de routage est plutot simple: une datagramme entrant est recu, l'adresse de destination est examinee et comparee avec chaque entree de la table. L'entree qui correspond le mieux a cette adresse est choisie, et le datagramme est renvoye vers l'interface specifiee. Si le champ passerelle est rempli, alors le datagramme est renvoye vers cet hote via l'interface specifiee, sauf indication contraire l'adresse de destination est supposee comme etant sur le reseau supporte par l'interface. Pour manipuler ce tableau, une commande speciale est utilisee. Cette commande prend des arguments et les convertit en appels du systeme noyau qui lui demande d'ajouter, de supprimer ou de modifier des entrees dans la table de routage. Cette commande s'appelle `_r_o_u_t_e'. Un simple exemple. Imaginez que vous ayez un reseau Ethernet. On vous a dit que c'est un reseau classe C avec une adresse de 192.168.1.0. On vous fournit une adresse IP 192.168.1.10 pour votre usage et on vous a dit que 192.168.1.1 est un routeur connecte a l'Internet. La premiere etape est de configurer l'interface comme indique plus haut. Vous utiliserez la commande: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up Maintenant vous avez besoin d'ajouter une entree dans la table de routage pour indiquer au noyau que les datagrammes destines aux hotes dont les adresses correspondent a 192.168.1.* doivent etre diriges vers le peripherique Ethernet. Vous utiliserez une commande comme ceci: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 Notez l'utilisation de l'argument `-net' pour indiquer au programme route que cette entree est une route reseau. Un autre choix peut etre `-host' qui est une route specifique d'une adresse IP. Cette route vous permettra d'etablir des connexions IP avec tous les hotes sur votre segment Ethernet. Mais qu'en est-il des hotes IP qui n'y sont pas ? Ce serait complique d'ajouter des routes pour chaque reseau destinataire, aussi il y a une astuce utilisee pour simplifier la tache. L'astuce est appelee route par `default'. La route par default s'adapte a toutes les destinations possibles, mais pas tres bien, de telle sorte que si il y a une entree qui correspond a l'adresse requise elle sera utilisee a la place de la route par default. L'idee de la route par default est simplement de pouvoir dire `et tout le reste va ici'. Dans l'exemple que j'ai invente, on utilisera une entree telle que: # route add default gw 192.168.1.1 eth0 L'argument `gw' indique a la commande route que le prochain argument est l'adresse IP, ou le nom, d'une passerelle (gateway) ou d'une machine routeur vers qui tous les datagrammes correspondant a cette entree seront diriges pour routage ulterieur. Ainsi votre configuration complete sera: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add default gw 192.168.1.1 eth0 Si vous regardez bien vos fichiers reseau `rc' vous en trouverez au moins un tres semblable a celui-ci. C'est une configuration courante. Examinons maintenant une configuration un peu plus compliquee. Imaginons que nous configurions le routeur examine auparavant, celui qui avait un lien PPP vers l'Internet et des segments LAN alimentant des stations de travail dans le bureau. Supposons que ce routeur ait 3 segments Ethernet et un lien PPP. Notre configuration de routage ressemblerait a ceci: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add -net 192.168.2.0 netmask 255.255.255.0 eth1 # route add -net 192.168.3.0 netmask 255.255.255.0 eth2 # route add default ppp0 Chacune des stations de travail utilisera le format plus simple decrit ci-dessus, seul le routeur aura besoin d'indiquer les routes reseau separement car pour les stations de travail le mecanisme de routage par default les capturera toutes, laissant au routeur le soin de les separer de maniere appropriee. Vous pouvez vous demander pourquoi la route par defaut n'utilise pas `gw'. La raison en est tres simple: les protocoles de lien serie comme PPP et SLIP ont seulement deux hotes sur leur reseau, un a chaque bout. Specifier a l'hote que l'autre bout de la liaison est une passerelle est sans objet et redon- dant, car il n'a pas d'autre choix, aussi vous n'avez pas a indiquer une passerelle pour ce type de connexions reseau. Les autres types comme Ethernet, arcnet ou token ring ont besoin que l'on indique une passerelle car ces reseaux supportent un grand nombre d'hotes. 55..77..11.. AAlloorrss,, qquuee ffaaiitt llee pprrooggrraammmmee _r_o_u_t_e_d ?? La configuration de routage decrite ci-dessus est bien adaptee aux reseaux simples ou il n'y a que des chemins uniques entre les destinations. Lorsque vous avez un reseau plus complexe les choses deviennent plus compliquees. Heureusement pour la plupart d'entre vous, ce ne sera pas le cas. Le gros probleme est qu'avec le `routage manuel' ou `routage statique' comme decrit ci-dessus, si une machine ou un lien tombe en panne dans le reseau, alors la seule facon de diriger vos datagrammes vers un autre chemin, s'il existe, est d'intervenir manuellement et d'executer les commandes adequates. Naturellement c'est lourd, lent, peu pratique et source de risques. Des techniques variees ont ete developpees pour regler automatiquement les tables de routage dans le cas d'incidents sur un reseau ou il y a plusieurs routes possibles, toutes ces techniques etant regroupees sous le nom de `protocoles de routage dynamique'. Vous avez peut-etre entendu parler des plus courants. Ce sont RIP (Routing Information Protocol) et OSPF (Open Shortest Path First Protocol). RIP est tres souvent utilise sur les petits ou moyens reseaux d'entreprise. L'OPSF est plus moderne et plus apte a gerer de grands reseaux et mieux adapte dans le cas ou il y a un grand nombre de chemins possibles a travers le reseau. Les implementations usuelles de ces protocoles sont: `_r_o_u_t_e_d' - RIP, et `_g_a_t_e_d' - RIP, OSPF et autres. Le programme `_r_o_u_t_e_d' est normalement fourni avec votre distribution Linux ou est inclus dans la paquetage `NetKit' decrit auparavant. Un exemple pour vous montrer comment et ou vous pouvez utiliser un protocole de routage dynamique ressemblerait a ceci: 192.168.1.0 / 192.168.2.0 / 255.255.255.0 255.255.255.0 - - | | | /-----\ /-----\ | | | |ppp0 // ppp0| | | eth0 |---| A |------//---------| B |---| eth0 | | | // | | | | \-----/ \-----/ | | \ ppp1 ppp1 / | - \ / - \ / \ / \ / \ / \ / \ / \ / \ / ppp0\ /ppp1 /-----\ | | | C | | | \-----/ |eth0 | |---------| 192.168.3.0 / 255.255.255.0 Nous avons trois routeurs A, B et C. Chacun supporte un segment Ether- net avec un reseau IP de classe C (masque de reseau 255.255.255.0). Chaque routeur a egalement une liaison PPP vers chacun des autres rou- teurs. Ce reseau forme un triangle. Il est evident que la table de routage sur le routeur A ressemble a ceci: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add -net 192.168.2.0 netmask 255.255.255.0 ppp0 # route add -net 192.168.3.0 netmask 255.255.255.0 ppp1 Cela fonctionnera bien jusqu'a ce que le lien entre A et B tombe en panne. Si cette liaison est defaillante, alors l'entree de routage montre que les hotes sur le segment A ne peuvent pas atteindre les hotes sur le segment B car leurs datagrammes seront diriges sur le lien ppp0 du routeur A qui est rompu. Ils pourront encore continuer a parler aux hotes du segment C, et les hotes du segment C pourront tou- jours parler a ceux du segment B car la liaison reste intacte. Mais.., si A peut parler a C et si C peut toujours parler a B, pourquoi A ne routerait-il pas ses datagrammes pour B via C, et laisser ensuite C les envoyer a B ? C'est exactement le type de problemes que les protocoles de routage dynamique comme RIP sont en mesure de resoudre. Si chacun des routeurs A, B et C utilisent un demon de routage alors leurs tables de routage seront automatiquement reglees pour refleter le nouvel etat du reseau mema si l'une des liaisons est defectueuse. Configurer un tel reseau est simple, sur chaque routeur vous devez seulement faire deux choses. Dans ce cas pour le routeur A: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # /usr/sbin/routed Le demon de routage `_r_o_u_t_e_d' trouve automatiquement tous les ports actifs vers le reseau quand il demarre et ecoute tous les messages sur chacun des peripheriques reseau ce qui lui permet de determiner et de mettre a jour sa table de routage. C'etait une tres breve explication du routage dynamique et de son utilisation. Si vous voulez d'avantage d'explications reportez aux references listees en debut de document. Les points importants relatifs au routage dynamique sont: 1. Vous n'avez besoin d'utiliser un demon de routage dynamique que quand votre machine Linux peut choisir entre plusieurs routes pour une destination donnee. 2. Le demon de routage dynamique modifiera automatiquement votre table de routage pour tenir compte des changements survenus dans votre reseau. 3. RIP est adapte aux reseaux de petite et moyenne taille. 55..88.. CCoonnffiigguurreerr vvooss sseerrvveeuurrss rreesseeaauu eett lleess sseerrvviicceess.. Les serveurs de reseau et les services sont des programmes qui permettent a un utilisateur distant de devenir utilisateur de votre machine Linux. Les programmes serveurs ecoutent les ports reseau. Les ports reseau sont un moyen d'adresser un service particulier sur un hote particulier et sont la pour pouvoir faire la difference entre une connexion telnet entrante ou une connexion ftp entrante. L'utilisateur distant etablit une connexion reseau avec votre machine puis le programme serveur, ou demon de reseau, a l'ecoute du port, accepte la connexion et s'execute. Il y a deux facons d'operer pour les demons de reseau. Les deux sont couramment utilises en pratique. Ce sont: aauuttoonnoommee le programme demon ecoute le port reseau designe et lorsqu'il y a une connexion, il prend lui-meme la connexion en charge pour fournir le service. eessccllaavvee dduu sseerrvveeuurr _i_n_e_t_d le serveur _i_n_e_t_d est un programme demon special specialise dans la conduite des connexions reseau. Il possede un fichier de configuration qui indique quel programme doit etre utilise lorsqu'une connexion entrante est recue. Tous les ports peuvent etre configures soit pour le protocole tcp, soit pour le protocole udp. Les ports sont decrits dans un autre fichier dont nous parlerons plus tard. Il y deux fichiers importants que vous devez configurer. Ce sont /etc/services qui assigne des noms aux numeros de port et /etc/inetd.conf qui sert pour la configuration du demon de reseau _i_n_e_t_d . 55..88..11.. //eettcc//sseerrvviicceess Le fichier /etc/services est une simple base de donnees qui associe des noms comprehensibles par l'homme a des ports service comprehensibles par la machine. Son format est tout a fait simple. Le fichier est un fichier texte dont chaque ligne represente une entree de la base de donnees. Chaque entree comprend trois champs separes par des caracteres espace ou tabulation. Ces champs sont: nom port/protocole alias # commentaire nnoomm un simple mot qui represente le service decrit. ppoorrtt//pprroottooccoollee ce champ est divise en deux. ppoorrtt un nombre qui specifie le numero de port ou le service designe sera disponible. La plupart des services ont des numeros assignes. Ils sont decrits dans la RFC-1340. pprroottooccoollee c'est soit tcp soit udp. Il est important de noter qu'une entree comme 18/tcp est tres differente de 18/udp et qu'il n'y a pas de raisons techniques que le meme service existe sur les deux. Normalement le bon sens prevaut et c'est vraiment pour un service particulier disponible a la fois sur tcp et udp que vous verrez une entree pour les deux.. aalliiaass autre nom qui peut etre utilise pour designer ce service. Tout texte apparaissant apres le caractere `#' est ignore et traite comme commentaire. 55..88..11..11.. EExxeemmppllee ddee ffiicchhiieerr //eettcc//sseerrvviicceess. Toutes les distributions recentes de Linux fournissent un bon fichier /etc/services. Juste au cas ou vous construiriez tout depuis le depart, voici une copie du fichier /etc/services fourni avec la distribution Debian . # /etc/services: # $Id: services,v 1.3 1996/05/06 21:42:37 tobias Exp $ # # Network services, Internet style # # Notez que c'est la politique actuelle de l'IANA d'assigner un seul numero # de port a la fois pour TCP et UDP; ainsi, la plupart des ports ont deux #entrees meme si le protocole ne supporte pas UDP. # Mis a jour d'apres la RFC 1340, ``Assigned Numbers'' (Juillet 1992). # Il n'y a pas tous les ports, seulement les plus courants. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - non assigne time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserve hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp # # services specifiques a UNIX # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # D'apres ``Assigned Numbers'': # #> Les Ports Enregistres ne sont pas controles par l'IANA et peuvent etre #> utilises sur la plupart des systemes par des processus ordinaires #> ou des programmes executes par des utilisateurs ordinaires. # #> Les ports sont utilises dans le TCP [45,106] pour nommer les extremites #> des connexions logiques qui transportent les conversations de longue #> duree. Pour offrir des services a des utilisteurs non connus, un port #> de service pour contact a ete defini. Cette liste specifie le port utilise #> par le processus serveur ainsi que son port de contact. Comme l'IANA ne peut #> controler l'usage de ces ports, on donne ici une liste d'utilisation #> de ces ports pour etre agreable a la communaute. # ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only bbs 7000/tcp # BBS service # # # services Kerberos (Project Athena/MIT) # Notez que ceux-ci sont pour Kerberos v4, et ne sont pas officiels. Les sites # tournant sous v4 doivent utiliser ceux-ci et annuler les entrees v5 ci-dessus. # kerberos4 750/udp kdc # Kerberos (server) udp kerberos4 750/tcp kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Services non officiels mais necessaires (pour NetBSD) # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Services protocole de delivrance de datagrammes # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Services Debian GNU/Linux rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel cfinger 2003/tcp # GNU Finger postgres 4321/tcp # POSTGRES mandelspawn 9359/udp mandelbrot # network mandelbrot # Services locaux 55..88..22.. //eettcc//iinneettdd..ccoonnff Le fichier /etc/inetd.conf est le fichier de configuration du serveur demon _i_n_e_t_d . Il sert a dire a _i_n_e_t_d ce qu'il doit faire lorsqu'il recoit une demande de connexion pour un service particulier. Pour les services ou vous acceptez une connexion vous devez dire a _i_n_e_t_d quel demon serveur de reseau doit tourner, et comment. Son format est aussi tres simple. C'est un fichier texte dont chaque ligne decrit un service que vous voulez fournir. Tout texte suivant un `#' est ignore et considere comme commentaire. Chaque ligne contient sept champs separes par un nombre quelconque d'espaces (espace ou tabulation). Le format general est comme suit: service type_de_socket proto drapeaux utilisateur chemin arguments sseerrvviiccee est le service applicable a cette configuration, pris dans le fichier /etc/services. ttyyppee__ddee__ssoocckkeett ce champ decrit le type de socket que cet entree considere comme pertinent, les valeurs permises sont: stream, dgram, raw, rdm, ou seqpacket. C'est un peu technique par nature, mais par experience, presque tous les services bases sur tcp utilisent stream et presque tous les services bases sur udp utilisent dgram. Il n'y a que quelques types de serveurs demons speciaux qui utilisent d'autres valeurs. pprroottooccoollee le protocole considere comme valide pour cette entree. Il doit correspondre a l'entree appropriee dans le fichier /etc/services et sera donc soit tcp soit udp. Les serveurs bases sur Sun RPC (Remote Procedure Call) utilisent rpc/tcp ou rpc/udp. ddrraappeeaauuxx il n'y a en fait que deux valeurs pour ce champ. Celles-ci disent a _i_n_e_t_d si le programme serveur reseau libere le socket apres demarrage, et donc si _i_n_e_t_d peut prendre en compte une des prochaines demandes de connexion, ou bien si _i_n_e_t_d doit attendre qu'un autre demon serveur tournant deja prenne en charge la nouvelle demande de connexion. C'est encore complique, mais en pratique tous les serveurs tcp doivent avoir cette entree positionnee sur nowait et la plupart des serveurs udp ont cette entree positionnee sur wait. Attention il y a quelques exceptions notables, laissez vous guider par l'exemple si vous n'etes pas surs. uuttiilliissaatteeuurr ce champ decrit quel compte utilisateur extrait de /etc/passwd sera considere comme proprietaire du demon reseau lorsqu'il est lance. C'est tres utile lorsque vous voulez vous proteger contre les trous de securite. Vous pouvez mettre nobody comme utilisateur pour une entee si bien que dans le cas ou le reseau comporte une breche, les dommages eventuels seront minimises. Cependant habituellement ce champ est regle sur root, car beaucoup de serveurs ont besoin des privileges de root pour tourner correctement. cchheemmiinn__ddee__sseerrvveeuurr ce champ est le chemin reel du programme a executer pour cette entree. aarrgguummeennttss ce champ correspond au reste de la ligne et est optionnel. Il sert a indiquer les arguments de commande que vous voulez passer au programme serveur au lancement. 55..88..22..11.. EExxeemmppllee ddee ffiicchhiieerr //eettcc//iinneettdd..ccoonnff Comme pour le fichier /etc/services toutes les distributions modernes incluent un bon fichier /etc/inetd.conf pour pouvoir travailler. Ici, pour etre complet , vous trouverez le fichier /etc/inetd.conf de la distribution Debian . # /etc/inetd.conf: voir inetd(8) pour d'autres informations. # # Base de donnees pour la configuration d'un serveur Internet # # # Modifie pour Debian par Peter Tobias # # # # Services internes # #echo stream tcp nowait root internal #echo dgram udp wait root internal discard stream tcp nowait root internal discard dgram udp wait root internal daytime stream tcp nowait root internal daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal time stream tcp nowait root internal time dgram udp wait root internal # # Services standards. # telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd #fsp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.fspd # # Shell, login, exec et talk sont des protocoles BSD. # shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd talk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.talkd ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd # # Services Mail, news et uucp. # smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.smtpd #nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/in.nntpd #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico #comsat dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.comsat # # Pop et autres # #pop-2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d # # `cfinger' est le serveur finger GNU de Debian. (NOTE: L'implementation # habituelle du demon `finger' permet de le faire tourner avec `root'.) # #cfinger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.cfingerd #finger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.fingerd #netstat stream tcp nowait nobody /usr/sbin/tcpd /bin/netstat #systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx # # Le service Tftp est fourni principalement pour demarrer. La plupart des sites # l'utilise seulement sur les machines servant de `serveurs de boot'. # #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot #bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 # # Services Kerberos (ils doivent probablement etre corriges) # #klogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k #eklogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k -x #kshell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd -k # # Services tournant UNIQUEMENT sur Kerberos (doivent etre probablement corriges) # #krbupdate stream tcp nowait root /usr/sbin/tcpd /usr/sbin/registerd #kpasswd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/kpasswdd # # Services RPC # #mountd/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.mountd #rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rstatd #rusersd/2-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rusersd #walld/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rwalld # # Fin de inetd.conf. ident stream tcp nowait nobody /usr/sbin/identd identd -i 55..99.. AAuuttrreess ffiicchhiieerrss ddee ccoonnffiigguurraattiioonn aayyaanntt uunn rraappppoorrtt aavveecc llee rreesseeaauu.. Il y a beaucoup de fichiers relatifs a la configuration reseau sous Linux susceptibles de vous interesser. Vous n'aurez jamais a modifier ces fichiers, mais il est utile de les decrire pour que vous sachiez ce qu'ils contiennent et quelle est leur utilite. 55..99..11.. //eettcc//pprroottooccoollss Le fichier /etc/protocols est une base de donnees qui donne la relation des numeros id de protocole avec leurs noms. Il est utilise par les programmeurs pour leur permettre de specifier les protocoles par leur nom dans les programmes et aussi par quelques programmes tels que _t_c_p_d_u_m_p pour pouvoir afficher en sortie des noms au lieu de chiffres. La syntaxe generale de ce fichier est: nom du protocole numero alias Le fichier /etc/protocols fourni avec la distribution Debian est le suivant: # /etc/protocols: # $Id: protocols,v 1.1 1995/02/24 01:09:41 imurdock Exp $ # # Protocoles Internet (IP) # # d'apres: @(#)protocols 5.1 (Berkeley) 4/17/89 # # Mise a jour pour NetBSD basee sur la RFC 1340, Assigned Numbers (July 1992). ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 xtp 36 XTP # Xpress Tranfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport rspf 73 RSPF # Radio Shortest Path First. vmtp 81 VMTP # Versatile Message Transport ospf 89 OSPFIGP # Open Shortest Path First IGP ipip 94 IPIP # Yet Another IP encapsulation encap 98 ENCAP # Yet Another IP encapsulation 55..99..22.. //eettcc//nneettwwoorrkkss Le fichier /etc/networks a une fonction similaire au fichier /etc/hosts. Il fournit une simple base de donnees de noms de reseau avec des adresses. Son format differe en ce qu'il n'y a que deux champs par ligne, et que ces champs sont codes comme ceci: # Nom du reseau adresse du reseau Un exemple: loopnet 127.0.0.0 localnet 192.168.0.0 amprnet 44.0.0.0 Lorsque vous utilisez une commande comme _r_o_u_t_e, si une destination est un reseau, et que ce reseau a une entree dans le fichier /etc/networks la commande affichera alors le nom du reseau en lieu et place de son adresse. 55..1100.. SSeeccuurriittee rreesseeaauu eett ccoonnttrroollee dd''aacccceess.. Laissez moi debuter ce paragraphe en vous mettant en garde que securiser votre machine et le reseau contre les attaques pernicieuses est un art complexe. Je ne me considere pas du tout comme un expert dans ce domaine, et bien que les mecanismes, que je vais decrire, puissent vous aider, si vous etes preoccupes par la securite, alors je vous recommande d'effectuer vous-memes des recherches sur le sujet. Il existe beaucoup de bonnes references sur l'Internet qui traitent du sujet. Une importante regle pratique est: `NN''uuttiilliisseezz ppaass ddee sseerrvveeuurrss ddoonntt vvoouuss nn''aavveezz ppaass ll''uuttiilliittee'. Beaucoup de distributions arrivent configurees avec plein de services configures et qui demarrent automatiquement. Pour assurer quand meme un minimum de securite vous devriez aller dans votre fichier /etc/inetd.conf et retirez (_p_l_a_c_e_z _u_n _`_#_' _a_u _d_e_b_u_t _d_e _l_a _l_i_g_n_e) toute entree que vous ne comptez pas utiliser. De bons candidats sont: shell, login, exec, uucp, ftp, et les services informatifs tels que finger, netstat and systat. Il y a plein de sortes de securite et de mecanismes de controle d'acces; je vais decrire les plus elementaires. 55..1100..11.. //eettcc//ffttppuusseerrss Le fichier /etc/ftpusers est un mecanisme simple qui vous permet d'interdite l'acces de votre machine a certains utilisateurs de ftp. Il est lu par le programme demon (_f_t_p_d) lorsqu'une connexion ftp est recue. Le fichier est une simple liste d'utilisateurs qui ne peuvent pas se connecter. Il ressemble a: # /etc/ftpusers - utilisateurs ne pouvant pas se connecter par ftp root uucp bin mail 55..1100..22.. //eettcc//sseeccuurreettttyy Le fichier /etc/securetty vous permet de specifier sur quels fichiers de peripheriques tty root a le droit de connecter. Le fichier /etc/securetty est lu par le programme de connexion (habituellement _/_b_i_n_/_l_o_g_i_n). Son format est une liste de fichiers de peripheriques autorises, et sur tous les autres root ne peut le faire: # /etc/securetty - consoles ou root peut se connecter tty1 tty2 tty3 tty4 55..1100..33.. LLee mmeeccaanniissmmee ddee ccoonnttrroollee dd''aacccceess ddeess hhootteess _t_c_p_d.. Le programme _t_c_p_d que vous avez vu dans le fichier /etc/inetd.conf fournit les mecanismes de controle d'acces et de connexion aux services qu'il a pour but de proteger. Lorsqu'il est invoque par le programme _i_n_e_t_d, il lit deux fichiers contenant les regles d'acces et il autorise ou interdit l'acces au serveur qu'il protege. Il cherche dans ces deux fichiers jusqu'a ce qu'il trouve une correspondance. S'il n'en trouve pas il suppose que l'acces est autorise. Il recherche dans l'ordre suivant: /etc/hosts.allow, /etc/hosts.deny. Je decrirai chacun d'eux plus tard. Pour une description complete referez-vous aux pages de manuel appropriees (hosts_access(5) est un bon point de depart). 55..1100..33..11.. //eettcc//hhoossttss..aallllooww Le fichier /etc/hosts.allow est un fichier de configuration du programme _/_u_s_r_/_s_b_i_n_/_t_c_p_d. Il contient les hotes dont l'acces est _a_u_t_o_r_i_s_e_s _(_a_l_l_o_w_e_d_) et qui peuvent donc utiliser un service de votre machine. Le format du fichier est tres simple: # /etc/hosts.allow # # : [: commande] lliissttee ddeess sseerrvviicceess c'est une liste de serveurs, separes par des virgules, auxquels les regles d'acces s'appliquent. Exemples de serveur: ftpd, telnetd, et fingerd. lliissttee ddeess hhootteess c'est une liste de noms d'hotes, separes par des virgules (vous pouvez utiliser egalement des adresses IP). Vous pouvez en plus specifier des noms d'hotes ou des adresses IP avec des jokers pour obtenir des groupes d'hotes. Des exemples: gw.vk2ktj.ampr.org pour un hote specifique, .uts.edu.au pour tous les hotes se terminant par cette chaine , 44. pour toutes les adresses IP commencant par ces chiffres. Il y a quelques expressions pour simplifier la configuration, parmi lesquelles: ALL pour tous les hotes, LOCAL pour tout hote dont le nom ne contient pas de `.' c'est a dire appartenant au meme domaine que votre machine, et PARANOID pour tout hote dont le nom ne correspond pas avec son adresse (tricherie dans le nom). Il y a enfin une expression qui peut etre utile. Il s'agit de EXCEPT qui vous permet de fournir une liste avec des exceptions. Nous verrons un exemple plus tard. ccoommmmaannddee c'est un parametre optionnel. Ce parametre est le nom complet d'une commande (avec son repertoire) qui sera executee chaque fois qu'il y aura correspondance. Ce peut etre par exemple une commande qui essayera d'identifier qui se connecte, ou de generer un message par courrier ou tout message d'alerte pour l'administrateur systeme avertissant que quelqu'un est en train de se connecter. On peut y inclure des extensions, par exemple: %h donnera le nom de l'hote qui se connecte ou bien son adresse s'il n'a pas de nom , %d le programme demon appele. Un exemple: # /etc/hosts.allow # # Permet a tout le monde d'utiliser le courrier in.smtpd: ALL # telnet et ftp pour les hotes de mon domaine et my.host.at.home. telnetd, ftpd: LOCAL, myhost.athome.org.au # finger pour tout le monde, mais garde une trace de l'identite. fingerd: ALL: (finger @%h | mail -s "finger from %h" root) 55..1100..33..22.. //eettcc//hhoossttss..ddeennyy Le fichier /etc/hosts.deny est un fichier de configuration du programme _/_u_s_r_/_s_b_i_n_/_t_c_p_d. Ce fichier contient les hotes qui _n_'_o_n_t _p_a_s _l_'_a_u_t_o_r_i_s_a_t_i_o_n d'acceder a l'un des services de votre machine. Un exemple simple ressemblerait a ceci: # /etc/hosts.deny # # Interdit l'acces aux hotes ayant des noms suspects ALL: PARANOID # # Interdit l'acces a tous les hotes ALL: ALL L'entree PARANOID est en fait redondante car l'autre entree interdit dans tous les cas. L'une ou l'autre entee devrait convenir, en fonction de vos besoins particuliers. Mettre ALL: ALL par defaut dans le fichier /etc/hosts.deny puis autoriser certains services,en liaison avec les hotes que vous avez choisis, dans le fichier /etc/hosts.allow, est la configuration la plus sure. 55..1100..44.. //eettcc//hhoossttss..eeqquuiivv Le fichier hosts.equiv est utilise pour conceder a certains hotes des droits d'acces leur permettant d'avoir un compte sur votre machine sans fournir de mot de passe. Cela est utile dans un environnement securise ou vous controlez toutes les machines, sinon ce peut etre tres risque. Votre machine est aussi sure que le moins sur de vos hotes de confiance. Pour augmenter la securite, n'utilisez pas cette possiblite et encouragez vos utilisateurs a utiliser le fichier 55..1100..55.. CCoonnffiigguurreerr vvoottrree ddeemmoonn _f_t_p ccoorrrreecctteemmeenntt.. Beaucoup de sites sont interesses a avoir un serveur _f_t_p anonyme pour permettre aux autres de transferer et de recuperer des fichiers sans avoir besoin d'une identification speciale. Si vous decidez d'offrir ce service soyez certains de configurer votre demon _f_t_p de maniere adequate pour les acces anonymes. La plupart des pages de manuel dediees a ftpd(8) decrivent tous les details pour y arriver. Vous devez toujours vous assurer que vous avez bien suivi les instructions. Un regle importante est de ne pas utiliser une copie de votre fichier /etc/passwd dans le repertoire /etc du compte anonyme. Soyez surs d'avoir elimine tous les details des comptes exceptes ceux qui sont necessaires , autrement vous serez vulnerables vis a vis de ceux qui maitrisent les techniques de mise en piece des mots de passe. 55..1100..66.. FFiirreewwaallll ssuurr llee rreesseeaauu.. Ne pas permettre aux datagrammes d'atteindre votre machine ou les serveurs est un excellent moyen de securisation. Ceci est aborde en profondeur dans Firewall-HOWTO . 55..1100..77.. AAuuttrreess ssuuggggeessttiioonnss.. Voici d'autres suggestions a prendre en consideration: sseennddmmaaiill en depit de sa popularite, le demon _s_e_n_d_m_a_i_l apparait avec une effrayante regularite dans les mises en garde concernant la securite. Faites comme vous voulez, mais j'ai choisi de ne pas l'utiliser. NNFFSS eett aauuttrreess sseerrvviicceess SSuunn RRPPCC soyez circonspects avec eux. Il y a toutes sortes d'exploits possibles avec ces services. Il est difficile de trouver une option pour les services tels que NFS, mais si vous les configurez, soyez prudents envers ceux a qui vous accordez des droits. 66.. IInnffoorrmmaattiioonnss ssppeecciiffiiqquueess ssuurr lleess tteecchhnnoollooggiieess rreesseeaauu.. Les sous-chapitres suivants traitent de technologies reseau particulieres. Les informations mentionnees ne s'appliquent pas necessairement aux autres types. 66..11.. AARRCCNNeett Les noms de fichier peripheriques de ARCNET sont `arc0s', `arc1e', `arc2e' etc, ou bien `arc0s', `arc1s', `arc2s', etc. La premiere carte detectee par le noyau devient `arc0e' ou `arc0s' et les autres sont nommees en suivant dans l'ordre de leur detection. La lettre finale depend de votre choix: soit un format d'encapsulation de paquets Ethernet, soit un format de paquets suivant RFC1051. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support <*> ARCnet support [ ] Enable arc0e (ARCnet "Ether-Encap" packet format) [ ] Enable arc0s (ARCnet RFC1051 packet format) Si vous avez construit convenablement votre noyau pour supporter votre carte Ethernet, alors la configuration de la carte est facile. Typiquement vous devriez utiliser quelque chose comme ceci: # ifconfig arc0e 192.168.0.1 netmask 255.255.255.0 up # route add -net 192.168.0.0 netmask 255.255.255.0 arc0e Merci de vous referer aux documents /usr/src/linux/Documentation/net- working/arcnet.txt et /usr/src/linux/Documentation/networking/arcnet- harware.txt pour d'autres informations. Le support ARCNet fut developpe par Avery Pennarun, apenwarr@foxnet.net. 66..22.. AApppplleettaallkk ((AAFF__AAPPPPLLEETTAALLKK) Le support Appletalk ne possede pas de noms de peripheriques specifiques car il utilise les peripheriques reseau existants. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: Networking options ---> <*> Appletalk DDP Le support Appletalk permet a votre machine Linux de dialoguer avec les reseaux Apple. Son utilisation principale est de pouvoir partager des ressources, comme les imprimantes et les disques, entre vos ordi- nateurs Linux et Apple. Un logiciel supplementaire est requis, il s'appelle _n_e_t_a_t_a_l_k. Wesley Craig netatalk@umich.edu represente une equipe appelee le `Research Systems Unix Group' a l'universite du Michigan. Celle-ci a elabore le paquetage _n_e_t_a_t_a_l_k, qui fournit un logiciel implementant la pile protocole Appletalk et quelques utili- taires. Soit ce paquetage _n_e_t_a_t_a_l_k vous a ete fourni avec votre dis- tribution Linux, soit vous pouvez le recuperer par ftp depuis le site University of Michigan Pour construire et installer le paquetage, vous faites: # cd /usr/src # tar xvfz .../netatalk-1.4b2.tar.Z - Vous pouvez editer le fichier `Makefile' a ce stade, plus precisement pour changer la valeur de la variable DESTDIR qui definit l'endroit ou les fichiers seront installes plus tard. Le repertoire par defaut,/usr/local/atalk, semble tres raisonnable. # make - puis, en temps que root: # make install 66..22..11.. CCoonnffiigguurreerr llee ssuuppppoorrtt AApppplleettaallkk.. La premiere chose a faire pour que tout fonctionne est de s'assuere que les entrees adequates sont presentes dans le fichier /etc/services. Ces entrees sont: rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol L'etape suivante consiste a creer les fichiers de configuration appletalk dans le repertoire /usr/local/atalk/etc (ou bien a l'endroit ou vous avez installe le paquetage). Le premier fichier a creer est /usr/local/atalk/etc/atalkd.conf. Initialement ce fichier ne necessite qu'une ligne qui indique le peripherique supportant le reseau sur lequel sont vos machines Apple: eth0 Le programme demon Appletalk ajoutera d'autres details quand il tournera. 66..22..22.. EExxppoorrtteerr uunn ssyysstteemmee ddee ffiicchhiieerrss LLiinnuuxx aavveecc AApppplleettaallkk.. Vous pouvez exporter des systemes fichiers depuis votre machine Linux vers le reseau en sorte qu'une machine Apple puisse les partager. Pour cela vous devez configurer le fichier /usr/local/atalk/etc/AppleVolumes.system. Il y a une autre fichier de configuration appele /usr/local/atalk/etc/AppleVolumes.default qui a exactement le meme format et qui decrit quels systemes de fichiers les utilisateurs connectes pourront recevoir avec des privileges d'invites. Tous les details,qui vous diront comment configurer ces fichiers et avec quelles options, peuvent etre trouves dans la page de manuel de _a_f_p_d. Un simple exemple: /tmp Scratch /home/ftp/pub "Public Area" Ce qui exportera votre systeme de fichiers /tmp comme volume AppleShare `Scratch' et votre repertoire public ftp comme volume AppleShare `Public Area'. Les noms de volume ne sont pas obligatoires, le programme demon choisissant pour vous, mais ca ne coute rien de les specifier quand meme. 66..22..33.. PPaarrttaaggeerr vvoottrree iimmpprriimmaannttee LLiinnuuxx aavveecc AApppplleettaallkk.. Partager votre imprimante Linux avec vos machines Apple est tres simple. Vous devez faire tourner le programme _p_a_p_d qui est le demon protocole d'acces aux imprimantes de Appletalk. Lorsque vous faites tourner ce programme il acceptera les requetes emanant de vos machines Apple et spoulera le travail d'impression vers votre demon local d'impression. Vous devrez editer le fichier /usr/local/atalk/etc/papd.conf pour configurer le demon. La syntaxe de ce fichier est la meme que le fichier habituel /etc/printcap. Le nom que vous donnez a la definition de l'imprimante doit etre conforme au protocole de designation Appletalk, NBP. Un exemple de configuration ressemble a ceci: TricWriter:\ :pr=lp:op=cg: Ce qui fera une imprimante nommee `TricWriter' disponible pour le reseau Appletalk et tous les travaux acceptes seront imprimes sur l'imprimante linux `lp' (telle que definie dans le fichier /etc/printcap) utilisant _l_p_d. L'entree `op=cg' indique que l'utilisateur linux `cg' est l'operateur de l'imprimante. 66..22..44.. DDeemmaarrrreerr AApppplleettaallkk.. Bon, vous devriez etre prets pour essayer cette configuration de base. Le fichier _r_c_._a_t_a_l_k fourni avec le paquetage _n_e_t_a_t_a_l_k devrait vous convenir, alors vous faites ceci: # /usr/local/atalk/etc/rc.atalk et tout devrait demarrer et tourner sans problemes. Vous ne devriez voir aucun message d'erreurs et le programme devrait vous envoyer des messages sur la console indiquant chaque etape qui demarre. 66..22..55.. TTeesstteerr AApppplleettaallkk.. Pour tester si le programme fonctionne correctement, allez sur une des machines Apple, faites derouler le menu Pomme, cliquez sur AppleShare, et votre boite Linux devrait apparaitre. 66..22..66.. MMiisseess eenn ggaarrddee ssuurr AApppplleettaallkk.. +o Vous aurez peut-etre besoin de demarrer votre support Appletalk avant de configurer votre reseau IP. Si vous avez des problemes pour demarrer vos programmes Appletalk, ou si apres les avoir demarres vous avez des ennuis avec votre reseau IP, essayez alors de mettre en route votre programme Appletalk avant de faire demarrer /etc/rc.d/rc.inet1. +o Le demon _a_f_p_d (Apple Filing Protocol Daemon) secoue severement votre disque dur. Derriere les points de montage il cree deux repertoires: repertoire auquel vous accedez il cree un sous- repertoire Reflechissez bien avant d'exporter /, vous aurez besoin de beaucoup de temps pour tout nettoyer. +o Le programme _a_f_p_d attend des mots de passe en clair venant des Macs. La securite pouvant etre un probleme, soyez donc attentifs lors de l'utilisation de ce demon sur une machine connectee sur l'Internet et ne vous en prenez qu'a vous-meme si quelqu'un de mal intentionne vous fait des miseres. +o Les outils de diagnostic existants tels que _n_e_t_s_t_a_t et _i_f_c_o_n_f_i_g ne supportent pas Appletalk. Les informations peuvent etre trouvees dans le repertoire /proc/net/ si vous en avez besoin. 66..22..77.. AAuuttrreess iinnffoorrmmaattiioonnss Pour en savoir plus sur la configuration de Appletalk pour Linux, referez vous a la page de Anders Brownworth _L_i_n_u_x _N_e_t_a_t_a_l_k_-_H_O_W_T_O sur thehamptons.com . 66..33.. AATTMM Werner Almesberger dirige un projet en vue de fournir un support Mode de Transfert Asynchrone (Asynchronous Transfer Mode) pour Linux. Les informations sur l'etat du projet se trouvent sur: lrcwww.epfl.ch . 66..44.. AAXX2255 ((AAFF__AAXX2255) Les noms de peripheriques AX.25 sont `sl0', `sl1', etc. dans les noyaux 2.0.* ou `ax0', `ax1', etc. dans les noyaux 2.1.*. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] Amateur Radio AX.25 Level 2 Les protocoles AX25, Netrom et Rose sont couverts par le document AX25-HOWTO . Ces protocoles sont utilises par les radio-amateurs du monde entier pour l'experimentation packet-radio. La plupart du travail d'implementation de ces protocoles a ete realise par Jonathon Naylor, jsn@cs.nott.ac.uk. 66..55.. DDEECCNNeett Le support pour DECNet est en cours d'elaboration. Vous devriez le voir apparaitre dans l'un des prochains noyaux 2.1.*. 66..66.. EEQQLL -- eeggaalliisseeuurr ddee cchhaarrggee aa lliiggnneess mmuullttiipplleess Le nom du peripherique EQL est `eql'. Avec les sources standards du noyau vous ne pouvez avoir qu'un seul peripherique EQL par machine. EQL permet d'utiliser plusieurs lignes point a point telles que PPP, SLIP ou PLIP comme si c'etait un seul lien logique de transport tcp/ip. C'est souvent moins cher d'utiliser plusieurs lignes a faible debit que d'avoir une ligne a haut debit. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support <*> EQL (serial line load balancing) support Pour supporter ce mecanisme la machine a l'autre bout de la ligne doit egalement supporter EQL. Linux, Livingstone Portmasters et de nouveaux serveurs de ligne supportent des systemes compatibles. Pour configurer EQL vous avez besoin des outils eql, disponibles sur: sunsite.unc.edu . La configuration est plutot directe. Vous commencez par configurer l'interface eql. C'est exactement comme un autre peripherique reseau. Vous configurez l'adresse IP et le mtu en utilissant l'outil _i_f_c_o_n_f_i_g , comme ceci: ifconfig eql 192.168.10.1 mtu 1006 Ensuite vous devez initialiser manuellement chacune des lignes que vous allez utiliser. Ce peut etre toute combinaison de peripheriques reseau point a point. La facon d'initialiser les connexions depend du type de lien, voyez les paragraphes appropries pour d'autres informations. Enfin vous devez associer le lien serie et le dispositif EQL, cela s'appelle `mise en esclavage' (enslaving) et est realise avec la commande _e_q_l___e_n_s_l_a_v_e comme suit: eql_enslave eql sl0 28800 eql_enslave eql ppp0 14400 Le parametre `_e_s_t_i_m_a_t_e_d _s_p_e_e_d' que vous fournissez a _e_q_l___e_n_s_l_a_v_e ne fait rien directement. Il est utilise par le pilote EQL pour deter- miner comment les datagrammes vont se repartir sur ce peripherique, aussi vous pouvez regler l'equilibrage des lignes en jouant avec cette valeur. Pour liberer une ligne d'un peripherique EQL vous utilisez la commande _e_q_l___e_m_a_n_c_i_p_a_t_e comme ci-dessous: eql_emancipate eql sl0 Vous ajoutez le routage comme vous le feriez pour tout lien point a point; sauf que vos routes doivent se rapporter au dispositif eql plutot qu'aux peripheriques series eux-memes. Typiquement vous devriez utiliser: route add default eql Le pilote EQL fut developpe par Simon Janes, simon@ncm.com. 66..77.. EEtthheerrnneett Les noms de peripheriques Ethernet sont `eth0', `eth1', `eth2' etc. La premiere carte detectee par le noyau devient `eth0' et le reste est nomme dans l'ordre de detection. Pour savoir comment faire marcher votre carte Ethernet sous Linux referez-vous au Ethernet-HOWTO . Une fois que vous avez compile convenablement votre noyau pour supporter les cartes Ethernet, la configuration des cartes est aisee. Typiquement vous faites ainsi: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up # route add -net 192.168.0.0 netmask 255.255.255.0 eth0 La plupart des pilotes Ethernet ont ete developpes par Donald Becker, becker@CESDIS.gsfc.nasa.gov. 66..88.. FFDDDDII ((FFiibbeerr DDiissttrriibbuutteedd DDaattaa IInntteerrffaaccee)) Les noms de peripheriques FDDI sont `fddi0', `fddi1', `fddi2' etc. La premiere carte detectee par le noyau s'appelle `fddi0' et le reste est nomme dans l'ordre de detection. Lawrence V. Stefani, larry_stefani@us.newbridge.com, a developpe un pilote pour les cartes Digital Equipment Corporation FDDI EISA et PCI. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: Network device support ---> [*] FDDI driver support [*] Digital DEFEA and DEFPA adapter support Lorsque vous avez construit votre noyau pour supporter le pilote FDDI et qu'il est installe, la configuration de l'interface FDDI est presque identique a celle d'une interface Ethernet. Vous devez specifier le nom de l'interface FDDI appropriee dans les commandes _i_f_c_o_n_f_i_g et _r_o_u_t_e. 66..99.. RReellaaiiss ddee ttrraammee ((FFrraammee RReellaayy)) Les noms de peripheriques de `Frame Relay' sont `dlci00', `dlci01' etc pour les systemes d'encapsulation DLCI et `sdla0', `sdla1' etc pour les FRAD(s) (Frame Relay Access Device). Frame Relay est une nouvelle technologie reseau concue pour s'adapter au trafic de transmission de donnees `par a coups' ou de nature intermittente. Vous vous connectez a un reseau Frame Relay en utilisant un dispositif d'acces Frame Relay (FRAD). Les supports Linux Frame Relay supportent IP par dessus Frame Relay comme decrit dans la RFC-1490. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: Network device support ---> <*> Frame relay DLCI support (EXPERIMENTAL) (24) Max open DLCI (8) Max DLCI per device <*> SDLA (Sangoma S502/S508) support Mike McLagan, mike.mclagan@linux.org, a developpe le support Frame Relay et les outils de configuration. A l'heure actuelle le seul FRAD supporte est Sangoma Technologies S502A, S502E et S508. Pour configurer les systemes FRAD et DLCI apres avoir reconstruit votre noyau, vous aurez besoin des outils de configuration. Ils sont disponibles sur ftp.invlogic.com . Compiler et installer les outils est tres facile, mais le manque de fichier Makefile au premier niveau oblige a le faire a la main: # cd /usr/src # tar xvfz .../frad-0.15.tgz # cd frad-0.15 # for i in common dlci frad; make -C -$i clean; make -C $i; done # mkdir /etc/frad # install -m 644 -o root -g root bin/*.sfm /etc/frad # install -m 700 -o root -g root frad/fradcfg /sbin # install -m 700 -o root -g root dlci/dlcicfg /sbin Apres l'installation vous devez creer un fichier /etc/frad/router.conf Vous pouvez utiliser cet exemple, qui est une version modifiee de l'un des fichiers donne en exemple: # /etc/frad/router.conf # C'est un modele de configuration pour relais de trame. # Tout y est inclus. Les valeurs par defaut sont basees sur le code # fourni avec les pilotes DOS de la carte Sangoma S502A. # # Une ligne avec '#' est un commentaire # Les blancs sont ignores (vous pouvez utiliser des tabulations aussi). # Les sections [] inconnues et les entrees inconnues sont ignorees. # [Devices] Count=1 # number of devices to configure Dev_1=sdla0 # the name of a device #Dev_2=sdla1 # the name of a device # Ce qui est specifie ici s'applique a tous les peripheriques, et peut etre # mis a jour pour chaque carte individuelle. # Access=CPE Clock=Internal KBaud=64 Flags=TX # # MTU=1500 # Maximum transmit IFrame length, default is 4096 # T391=10 # T391 value 5 - 30, default is 10 # T392=15 # T392 value 5 - 30, default is 15 # N391=6 # N391 value 1 - 255, default is 6 # N392=3 # N392 value 1 - 10, default is 3 # N393=4 # N393 value 1 - 10, default is 4 # On specifie ici les valeurs par defaut pour toutes les cartes # CIRfwd=16 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # # Configurations specifiques # # # # Sangoma S502E # [sdla0] Type=Sangoma # Type of the device to configure, currently only # SANGOMA is recognised # # Specifique des types 'Sangoma' # # cartes S502A, S502E, S508 Board=S502E # # Le nom du logiciel de carte en essai pour Sangoma # Testware=/usr/src/frad-0.10/bin/sdla_tst.502 # # Le nom du logiciel de carte FR # Firmware=/usr/src/frad-0.10/bin/frm_rel.502 # Port=360 # Port for this particular card Mem=C8 # Address of memory window, A0-EE, depending on card IRQ=5 # IRQ number, do not supply for S502A DLCIs=1 # Number of DLCI's attached to this device DLCI_1=16 # DLCI #1's number, 16 - 991 # DLCI_2=17 # DLCI_3=18 # DLCI_4=19 # DLCI_5=20 # # Ce qui est specifie ici s'applique au peripherique seulement, # et remplace les valeurs par defaut # # Access=CPE # CPE or NODE, default is CPE # Flags=TXIgnore,RXIgnore,BufferFrames,DropAborted,Stats,MCI,AutoDLCI # Clock=Internal # External or Internal, default is Internal # Baud=128 # Specified baud rate of attached CSU/DSU # MTU=2048 # Maximum transmit IFrame length, default is 4096 # T391=10 # T391 value 5 - 30, default is 10 # T392=15 # T392 value 5 - 30, default is 15 # N391=6 # N391 value 1 - 255, default is 6 # N392=3 # N392 value 1 - 10, default is 3 # N393=4 # N393 value 1 - 10, default is 4 # # Le second peripherique est une autre carte # # [sdla1] # Type=FancyCard # Type of the device to configure. # Board= # Type of Sangoma board # Key=Value # values specific to this type of device # # Parametres de configuration DLCI par defaut. # Peuvent etre ecrases par des configurations specifiques # CIRfwd=64 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # Configuration DLCI # Optionnel. La convention d'appellation est # [DLCI_D_] # [DLCI_D1_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=64 # Bc_fwd=512 # Be_fwd=0 # CIRbak=64 # Bc_bak=512 # Be_bak=0 [DLCI_D2_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=16 # Bc_fwd=16 # Be_fwd=0 # CIRbak=16 # Bc_bak=16 # Be_bak=0 Lorsque vous avez construit votre fichier /etc/frad/router.conf la seule etape restante est de configurer les peripheriques eux-memes. C'est un tout petit peu plus complique que la configuration normale d'un peripherique reseau; vous devez vous souvenir de monter le peripherique FRAD avant les peripheriques d'encapsulation DLCI. # Configure le materiel frad et les parametres DLCI /sbin/fradcfg /etc/frad/router.conf || exit 1 /sbin/dlcicfg file /etc/frad/router.conf # # Montage du dispositif FRAD ifconfig sdla0 up # # Configure les interfaces d'encapsulation DLCI et le routage ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up route add -net 192.168.10.0 netmask 255.255.255.0 dlci00 # ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up route add -net 192.168.11.0 netmask 255.255.255.0 dlci00 # route add default dev dlci00 # 66..1100.. EEnnrreeggiissttrreemmeenntt IIPP ((IIPP AAccccoouunnttiinngg)) Les possibilites d'enregistrement IP du noyau Linux vous permettent de recueillir et d'analyser les donnees d'utilisation du reseau. Les donnees collectees comprennent le nombre de paquets et le nombre d'octets en cumul depuis la derniere remise a zero. Vous avez a votre disposition une grande variete de reglages pour obtenir les donnees que vous desirez. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: Networking options ---> [*] IP: accounting Apres avoir compile et installe le noyau vous devez utiliser la commande _i_p_f_w_a_d_m pour configurer l'enregistrement IP. Il y a differentes possibilites pour choisir les informations a enregistrer. J'ai pris un exemple simplifie qui pourrait vous etre utile; lisez plutot la page de manuel _i_p_f_w_a_d_m pour plus d'informations. Scenario: Vous avez un reseau Ethernet qui est relie a l'Internet via une liaison PPP. Sur l'Ethernet vous avez une machine qui offre un grand nombre de services et vous voulez savoir quel trafic est engendre par le trafic telnet, rlogin, ftp et www. Vous pouvez utiliser une commande qui ressemble a ceci: # # Donne les reglages d'enregistrement ipfwadm -A -f # # Ajoute des reglages pour le segment Ethernet local ipfwadm -A in -a -P tcp -D 44.136.8.96/29 20 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 20 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 23 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 23 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 80 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 80 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 513 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 513 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 ipfwadm -A out -a -P tcp -D 44.136.8.96/29 ipfwadm -A in -a -P udp -D 44.136.8.96/29 ipfwadm -A out -a -P udp -D 44.136.8.96/29 ipfwadm -A in -a -P icmp -D 44.136.8.96/29 ipfwadm -A out -a -P icmp -D 44.136.8.96/29 # # Reglages par defaut ipfwadm -A in -a -P tcp -D 0/0 20 ipfwadm -A out -a -P tcp -S 0/0 20 ipfwadm -A in -a -P tcp -D 0/0 23 ipfwadm -A out -a -P tcp -S 0/0 23 ipfwadm -A in -a -P tcp -D 0/0 80 ipfwadm -A out -a -P tcp -S 0/0 80 ipfwadm -A in -a -P tcp -D 0/0 513 ipfwadm -A out -a -P tcp -S 0/0 513 ipfwadm -A in -a -P tcp -D 0/0 ipfwadm -A out -a -P tcp -D 0/0 ipfwadm -A in -a -P udp -D 0/0 ipfwadm -A out -a -P udp -D 0/0 ipfwadm -A in -a -P icmp -D 0/0 ipfwadm -A out -a -P icmp -D 0/0 # # Liste les reglages ipfwadm -A -l -n # La derniere commande liste chacune des regles d'enregistrement et affiche le total. Il est important de noter, lorsque l'on analyse les enregistrement IP, que lleess ttoottaauuxx ssoonntt iinnccrreemmeenntteess aa cchhaaqquuee ffooiiss, donc pour connaitre les differences vous devez executer les operations mathematiques necessaires. Par exemple si je veux savoir combien de donnees ne venaient pas de ftp, telnet, rlogin ou www je dois soustraire les totaux individuels correspondant a chaque port. # ipfwadm -A -l -n IP accounting rules pkts bytes dir prot source destination ports 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 20 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 23 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 80 10 572 out tcp 44.136.8.96/29 0.0.0.0/0 80 -> * 242 9777 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 513 220 18198 out tcp 44.136.8.96/29 0.0.0.0/0 513 -> * 252 10943 in tcp 0.0.0.0/0 44.136.8.96/29 * -> * 231 18831 out tcp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 out udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 out icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 20 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 23 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 80 10 572 out tcp 0.0.0.0/0 0.0.0.0/0 80 -> * 243 9817 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 513 221 18259 out tcp 0.0.0.0/0 0.0.0.0/0 513 -> * 253 10983 in tcp 0.0.0.0/0 0.0.0.0/0 * -> * 231 18831 out tcp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 out udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in icmp 0.0.0.0/0 0.0.0.0/0 * 0 0 out icmp 0.0.0.0/0 0.0.0.0/0 * # 66..1111.. IIPP AAlliiaassiinngg Il y a des applications ou etre en mesure d'affecter plusieurs adresses IP a un seul peripherique reseau pourrait etre utile. Certains fournisseurs d'acces a l'Internet utilise souvent cette possibilite pour fournir des offres www et ftp `a la carte' pour leurs clients. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> .... [*] Network aliasing .... <*> IP: aliasing support Apres avoir compile et installe le noyau avec le support IP_Alias, la configuration est tres simple. Les alias sont ajoutes aux peripheriques reseau virtuels associes au peripherique reseau reel. Une simple convention de noms s'applique pour peripheriques: :, par ex. eth0:0, ppp0:10 etc. Par exemple, supposons que vous ayez un reseau Ethernet avec simultanement deux sous-reseaux IP et que vous vouliez que votre machine ait un acces direct aux deux, vous pouvez faire quelque chose comme ceci: # # ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up # route add -net 192.168.1.0 netmask 255.255.255.0 eth0:0 # # ifconfig eth0:1 192.168.10.1 netmask 255.255.255.0 up # route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0 # Pour supprimer un alias vous ajoutez simplement un `-' au bout de son nom et et vous faites aussi simplement que ca: # ifconfig eth0:0- 0 Toutes les routes associees avec cet alias seront enlevees automa- tiquement. 66..1122.. IIPP FFiirreewwaallll IP Firewall et les publications sur le Firewalling sont traites plus completement dans le document Firewall-HOWTO . Le IP Firewalling vous permet de securiser votre machine contre les acces reseau non-autorises en filtrant, ou acceptant, des datagrammes venant de, ou allant vers, des adresses IP de votre choix. Il y a differentes regles: le filtrage en entree, le filtrage en sortie, et le filtrage en retransmission. Les regles en entree s'appliquent aux datagrammes qui sont recues par un dispositif reseau. Les regles en sortie s'appliquent aux datagrammes qui sont transmis par un dispositif reseau. Les regles en retransmission s'appliquent aux datagrammes qui ne sont pas pour cette machine, c'est a dire les datagrammes qui seront reroutes. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: Networking options ---> [*] Network firewalls .... [*] IP: forwarding/gatewaying .... [*] IP: firewalling [ ] IP: firewall packet logging La configuration du IP firewall est realisee en utilisant la commande _i_p_f_w_a_d_m. Comme mentionne plus haut, la securite n'est pas ma specialite, aussi, bien que je vous presente un exemple utilsable par vous-meme, faites des recherches et mettez au point vos propres reglages si la securite est importante pour vous. Vraisemblablement l'utilisation la plus courante de l'IP firewall est lorsque vous utilisez votre machine Linux comme routeur et passerelle firewall et que vous voulez proteger votre reseau local contre les acces exterieurs non autorises. La configuration suivante est due a Arnt Gulbrandsen, . L'exemple decrit une configuration de firewall pour une machine Linux /firewall/routeur illustree par ce diagramme: - - \ | 172.16.37.0 \ | /255.255.255.0 \ --------- | | 172.16.174.30 | Linux | | NET =================| f/w |------| ..37.19 | PPP | router| | -------- / --------- |--| Mail | / | | /DNS | / | -------- - - Les commandes suivantes doivent etre normalement placees dans un fichier rc de telle sorte qu'elles seront demarrees automatiquement a chaque redemarrage du systeme. Pour une securite maximum, elles devront etre effectuees apres la configuration des interfaces reseau, mais avant le montage de ces interfaces pour eviter que quelqu'un ne puisse se connecter pendant que la machine firewall reboute. #!/bin/sh # Flush the 'Forwarding' rules table # Change the default policy to 'accept' # /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p accept # # .. and for 'Incoming' # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p accept # First off, seal off the PPP interface # I'd love to use '-a deny' instead of '-a reject -y' but then it # would be impossible to originate connections on that interface too. # The -o causes all rejected datagrams to be logged. This trades # disk space against knowledge of an attack of configuration error. # /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30 # Throw away certain kinds of obviously forged packets right away: # Nothing should come from multicast/anycast/broadcast addresses # /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24 # # and nothing coming from the loopback network should ever be # seen on a wire # /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24 # accept incoming SMTP and DNS connections, but only # to the the Mail/Name Server # /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53 # # DNS uses UDP as well as TCP, so allow that too # for questions to our name server # /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53 # # but not "answers" coming to dangerous ports like NFS and # Larry McVoy's NFS extension. If you run squid, add its port here. # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \ -D 172.16.37.0/24 2049 2050 # answers to other user ports are okay # /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \ -D 172.16.37.0/24 53 1024:65535 # Reject incoming connections to identd # We use 'reject' here so that the connecting host is told # straight away not to bother continuing, otherwise we'd experience # delays while ident timed out. # /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113 # Accept some common service connections from the 192.168.64 and # 192.168.65 networks, they are friends that we trust. # /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \ -D 172.16.37.0/24 20:23 # accept and pass through anything originating inside # /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0 # deny most other incoming TCP connections, and log them # (append 1:1023 if you have problems with ftp not working) # /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24 # ... for UDP too # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24 De bonnes configurations firewall sont dures a faire. Cet exemple peut etre un bon point de depart pour vous. La page de manuel _i_p_f_w_a_d_m offre une aide pour savoir comment utiliser cet outil. Si vous voulez configurer un firewall, demandez autour de vous et recueillez des avis venant de sources de confiance et prenez contact avec quelqu'un qui est a l'exterieur pour tester votre configuration et en verifier la fiabilite. 66..1133.. EEnnccaappssuullaattiioonn IIPPIIPP Pourquoi vouloir encapsuler des paquets IP dans d'autres paquets IP? Cela semble bizarre si vous n'avez jamais vu d'applications auparavant. Il y a deux endroits ou c'est utilise: le Mobile-IP et l'IP-Multicast. C'est dans un environnement qui est peut-etre le plus largement utilise et qui est le moins connu: l'amateurisme-Radio. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] TCP/IP Networking [*] IP: forwarding/gatewaying .... <*> IP tunelling Les peripheriques IP tunnel s'appellent `tunl0',`tunl1',etc.. "Mais pourquoi ?" D'accord. D'accord. Les regles de routage classiques specifient qu'un reseau IP comprend une adresse IP et un masque de reseau. Ceci fournit un ensemble d'adresses contigues qui peuvent toutes etre routees par l'intermediaire d'une seule entree de routage. Cela marche, mais signifie que vous ne pouvez utiliser une seule adresse uniquement lorsque vous etes connecte a un point du reseau auquelle elle appartient. Dans la plupart des cas, il n'y a pas de problemes, mais si vous etes en mouvement alors vous ne pouvez pas rester connecte au meme endroit tout le temps. L'encapsulation IP/IP ( IP tunneling) vous permet de passer outre cette contrainte en permettant aux paquets destines a votre adresse d'etre enveloppes et rediriges vers une autre adresse. Si vous savez que vous allez operer depuis un autre reseau IP pour quelques temps, vous pouvez regler une machine qui est chez vous pour accepter des paquets destines a votre adresse IP et les rediriger vers l'adresse que vous allez utiliser provisoirement. 66..1133..11.. UUnnee ccoonnffiigguurraattiioonn ddee rreesseeaauu aavveecc ttuunnnneelliinngg.. Comme toujours, je pense qu'un schema m'epargnera beaucoup de texte confus, aussi en voila un: 192.168.1.24 192.168.2.24 - - | ppp0 = ppp0 = | | aaa.bbb.ccc.ddd fff.ggg.hhh.iii | | | | /-----\ /-----\ | | | | // | | | |---| A |------//---------| B | | | | | // | | | | \-----/ \-----/ | | | - - Ce diagramme montre une autre raison possible d'utiliser l'encapsulation IPIP: le reseau prive virtuel. Cet exemple presuppose que vous ayez deux machines chacune avec une seule connexion Internet. Chaque hote a une seule adresse IP. Derriere chacune de ces machines se trouve des reseaux prives locaux configures avec des adresses IP reservees. Supposez que vous vouliez permettre a chacun des hotes du groupe A de se connecter a n'importe quel hote du groupe B, comme s'ils etaient vraiment connectes a l'Internet via un routage reseau. L'encapsulation IPIP vous permettra de le faire. A noter que l'encapsulation ne vous permettra pas de faire en sorte que chacun des hotes des reseaux A et B puissent parler a n'importe qui sur l'Internet, vous aurez toujours besoin de choses comme IP masquerade pour pouvoir le faire. L'encapsulation est normalement accomplie par une machine fonctionnant comme routeur. Le routeur Linux `A' sera configure comme suit: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.1 up route add -net 192.168.2.0 netmask 255.255.255.0 gw fff.ggg.hhh.iii tunl0 Le routeur Linux `B' sera configure comme suit: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.2.1 netmask 255.255.255.0 up route add -net 192.168.2.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.2.1 up route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 La commande: route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 dit: `Envoyer tous les datagrammes destines a 192.168.1.0/24 dans un paquet d'encapsulation ayant pour adresses de destination aaa.bbb.ccc.ddd'. Notez que les configurations sont inversees a l'autre bout. Le peripherique tunnel utilise `gw' dans la commande route comme _d_e_s_t_i_n_a_t_i_o_n du paquet IP ou se trouve le datagramme qu'il doit router. Cette machine doit savoir comment `desencapsuler' les paquets IPIP, c'est a dire qu'elle doit aussi etre configuree comme peripherique tunnel. 66..1133..22.. UUnnee ccoonnffiigguurraattiioonn dd''hhoottee ppoouurr ll''eennccaappssuullaattiioonn IIPPIIPP.. Ce n'est pas tout un reseau que vous aurez a router. Vous pouvez par exemple ne router qu'une seule adresse IP. Dans ce cas vous devrez configurer le peripherique tunl sur la machine `distante' avec sa propre adresse IP et a l'extremite A n'utiliser qu'une route hote (avec Proxy Arp) plutot qu'une route reseau via le peripherique tunnel. Refaisons et modifions notre configuration de maniere appropriee. Maintenant nous avons seulement l'hote `B' qui veut agir comme si il etait a la fois connecte a l'Internet et egalement au reseau distant supporte par l'hote `A': 192.168.1/24 - | ppp0 = ppp0 = | aaa.bbb.ccc.ddd fff.ggg.hhh.iii | | /-----\ /-----\ | | | // | | |---| A |------//---------| B | | | | // | | | \-----/ \-----/ | also: 192.168.1.12 - Le routeur Linux `A' sera configure comme suit: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.1 up route add -host 192.168.1.12 gw fff.ggg.hhh.iii tunl0 # # Proxy ARP for the remote host arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub L'hote Linux `B' sera configure comme suit: # PATH=/sbin:/usr/sbin # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.12 up route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 Ce type de configuration est vraiment typique d'une application IP- Mobile, ou un simple hote veut seulement se balader sur l'Internet et maintenir une adresse IP utilisable tout le temps. Referez-vous au paragraphe Mobile-IP pour avoir plus d'informations et savoir comment faire en pratique. 66..1144.. IIPPXX ((AAFF__IIPPXX) Le protocole IPX est la plupart du temps utilise dans les environnements reseaux locaux Novell NetWare(tm). Linux offre un support pour ce protocole, et peut etre configure pour agir comme extremite reseau, ou comme routeur pour les environnements reseaux IPX. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] The IPX protocol [ ] Full internal IPX network Le protocole IPX et le NCPFS sont traites en detail dans le document IPX-HOWTO . 66..1155.. IIPPvv66 A peine pensez-vous avoir commence a comprendre comment fonctionne le reseau IP, les regles ont change! IPv6 est l'abbreviation de version 6 du `Protocole Internet' (version 6 de IP). Il fut developpe initialement pour calmer les inquietudes de la communaute Internet quant a la penurie eventuelle d'adresses IP. Les adresses IPv6 ont 16 octets de long (128 bits). IPv6 inclut un certain nombre d'autres changements, la plupart du temps des simplifications, qui rendront les reseaux IPv6 plus facilement gerables que les reseaux IPv4. Linux a deja une implementation IPv6 qui marche, mais pas encore completement, dans la serie des noyaux 2.1.*. Si vous voulez essayer cette nouvelle generation de technologie Internet, ou si vous voulez un renseignement, lisez le document IPv6-FAQ qui se trouve sur www.terra.net . 66..1166.. IISSDDNN L'Integrated Services Digital Network (ISDN)(NdT: equivalent francais RNIS: Reseau Numerique a Integration de Services) est une serie de normes donnant les specifications d'un reseau de donnees numeriques a usage general. Un `appel' ISDN cree un service synchrone de donnees point a point vers la destination. L'ISDN est generalement delivre sur une ligne a haut debit divisee en un certain nombre de canaux discrets.. Il y a deux types de canaux, les `canaux B' qui transportent effectivement les donnees utilisateurs, et un canal unique appele `canal D' qui est utilise pour envoyer les informations de controle pendant l'echange ISDN en vue d'etablir des appels et autres fonctions. En Australie, par exemple, l'ISDN peut etre fourni sur une liaison 2 Mps qui est divisee en 30 canaux B discrets de 64 kps et un canal D de 64 kps. N'importe quel nombre de canaux peuvent etre utilises en meme temps et ceci dans toutes les combinaisons possibles. Vous pouvez par exemple etablir 30 appels differents de 64 kps vers 30 destinations differentes, ou bien 15 appels de 128 kps chacun vers 15 destinations differentes (2 canaux utilises par appel), ou seulement un petit nombre d'appels, le reste etant inactif. Un canal peut etre utilise pour des appels entrant ou sortant. Le but initial de ISDN etait de permettre aux societes de Telecommunications de fournir un simple service de donnees pouvant delivrer soit le telephone (avec une voix digitalisee) ou bien des services de donnees vers votre domicile ou votre bureau sans avoir a effectuer de changements pour obtenir une configuration speciale. Il y a plusieurs facons de connecter votre ordinateur a un service ISDN. L'une consiste a utiliser un dispositif appele `Adaptateur de Terminal' qui se branche sur l'unite de terminal reseau que votre operateur de telecommunications a installe au moment de l'obtention de votre service ISDN, et qui presente des interfaces series. L'une de ces interfaces est utilisee pour entrer les commandes pour etablir les appels et la configuration, et les autres sont reliees aux peripheriques reseau qui utiliseront les circuits de donnees quand la connexion sera faite. Linux peut travailler avec ce type de configuration sans modifications, vous devez juste traiter le port de l'adaptateur de terminal comme vous traitez tout peripheriques serie. Une autre facon consiste en ce que le support ISDN du noyau vous permet d'installer une carte ISDN dans votre machine Linux et le logiciel Linux prend en charge les protocoles et fait les appels lui- meme. OOppttiioonnss ddee ccoommppiillaattiioonn nnooyyaauu: ISDN subsystem ---> <*> ISDN support [ ] Support synchronous PPP [ ] Support audio via ISDN < > ICN 2B and 4B support < > PCBIT-D support < > Teles/NICCY1016PC/Creatix support L'implementation Linux de ISDN supporte differents types de cartes internes ISDN. Il y a celles enumerees dans les options de configuration noyau: +o ICN 2B and 4B +o Octal PCBIT-D +o Teles ISDN-cards and compatibles Certaines de ces cartes ont besoin de logiciels que l'on doit telecharger pour les rendre operationnelles. Il y a un utilitaire separe pour le faire. Tous les details pour configurer le support ISDN Linux se trouvent dans le repertoire /usr/src/linux/Documentation/isdn/ et un document FAQ dedie a _i_s_d_n_4_l_i_n_u_x est disponible sur www.lrz-muenchen.de . (Vous pouvez cliquer sur le drapeau anglais pour obtenir la version anglaise). NNoottee aauu ssuujjeett ddee PPPPPP. L'ensemble des protocoles PPP peut travailler sur des lignes serie synchrone ou asynchrone. Le demon PPP `_p_p_p_d' couramment distribue pour Linux ne supporte que le mode asynchrone. Si vous desirez utiliser les protocoles PPP avec votre service ISDN vous aurez besoin d'une version speciale. Les details pour la trouver se trouvent dans la documentation mentionnee ci-dessus. 66..1177.. IIPP MMaassqquueerraaddee Beaucoup de gens ont une simple connexion par telephone pour aller sur l'Internet. Presque tout le monde ne se voit offrir qu'une seule adresse IP par le founisseur d'acces avec ce type de configuration. Ceci est normalement suffisant pour permettre un acces complet au reseau. IP Masquerade est une astuce intelligente qui vous permet d'avoir plusieurs machines utilisant une seule adresse IP, en faisant croire aux autres hotes qu'il n'y a que la machine supportant la connexion (NdT: d'ou le terme masquerade=duperie, mascarade). Il y a qu'une seule mise en garde, qui est que la fonction `masquerade' ne travaille pratiquement que dans un seul sens: les hotes sous `masquerade' peuvent appeler mais ne peuvent accepter ou recevoir des connexions reseau de la part d'hotes eloignes. Cela signifie que certains services reseau comme _t_a_l_k ne peuvent fonctionner et que d'autres, comme _f_t_p doivent etre configures pour fonctionner en mode passif (PASV). Heureusement la plupart des services reseau comme _t_e_l_n_e_t, World Wide Web et _i_r_c fonctionnent correctement. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking [*] IP: forwarding/gatewaying .... [*] IP: masquerading (EXPERIMENTAL) Normalement votre machine Linux supportant un lien SLIP ou PPP se comportera comme si elle etait toute seule. De plus elle peut avoir un autre peripherique reseau configure, par exemple une carte Ethernet, avec des adresses reseau reservee. Les hotes utilisant `masquerade' seront ceux du second reseau. Chacun de ces hotes aura l'adresse IP du port Ethernet reglee comme passerelle ou routeur par defaut. Une configuration typique ressemble a ceci: - - \ | 192.168.1.0 \ | /255.255.255.0 \ --------- | | | Linux | .1.1 | NET =================| masq |------| | PPP/slip | router| | -------- / --------- |--| host | / | | | / | -------- - - Les commandes adequates pour cette configuration sont: # Network route for Ethernet route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # Default route to the rest of the internet. route add default ppp0 # # Cause all hosts on the 192.168.1/24 network to be masqueraded. ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 Vous pouvez obtenir plus d'informations sur IP Masquerade avec IP Masquerade Resource Page 66..1188.. IIPP TTrraannssppaarreenntt PPrrooxxyy IP transparent proxy est un dispositif qui vous permet de rediriger des serveurs ou des services destines a une autre machine vers les services de votre machine. Typiquement c'est utile lorsque vous avez une machine Linux routeur et qui fournit aussi un serveur proxy. Vous redirigerez toutes les connexions a ce service distant vers le serveur proxy local. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking .... [*] IP: firewalling .... [*] IP: transparent proxy support (EXPERIMENTAL) La configuration du dispositif transparent proxy est realise en utilisant la commande _i_p_f_w_a_d_m. Par exemple: ipfwadm -I -a accept -D 0/0 80 -r 8080 Cet exemple fera en sorte que toutes les tentatives de connexion vers le port 80 (www), de n'importe quel hote, seront redirigees vers le port 8080 de ce meme hote. Ceci peut etre utilise pour s'assurer que tout le trafic WWW venant de votre reseau est automatiquement dirige vers un programme cache local. 66..1199.. IIPP MMoobbiillee Le terme "mobilite IP" decrit la possibilite qu'un hote a de transferer sa connexion reseau d'un point de l'Internet vers un autre sans changer d'adresse IP ou sans perdre la connectivite. Normalement quand un hote IP change de point de connexion, il change aussi d'adresse IP. La mobilite IP resoud ce probleme en allouant une adresse IP fixe a l'hote qui se deplace et en utilisant une encapsulation IP (tunneling) avec routage automatique pour s'assurer que les datagrammes qui lui sont destines seront routes vers l'adresse effectivement utilisee a ce moment. Un projet est en cours en vue de fournir un paquetage complet d'outils Linux pour la mobilite IP. L'etat de ce projet et les outils peuvent etre obtenus sur: Linux Mobile IP Home Page . 66..2200.. MMuullttiiccaasstt L'IP Multicast permet a un nombre quelconque d'hotes IP, qui se trouvent sur des reseaux differents, d'avoir des datagrammes IP routes en meme temps vers eux-memes. Ce mecanisme est exploite pour fournir sur l'Internet des applications prenant de la bande passante comme les transmissions audio et video et autres nouvelles applications. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] TCP/IP networking .... [*] IP: multicasting Un ensemble d'outils et quelques modifications de la configuration reseau sont necessaires. Une source de renseignements pour l'installation et la configuration se trouve sur www.teksouth.com . 66..2211.. NNAATT TTrraadduuccttiioonn dd''AAddrreessssee RReesseeaauu ((NNeettwwoorrkk AAddddrreessss TTrraannssllaattiioonn)) Le systeme de Traduction d'Adresse Reseau IP est vraiment le grand frere du syteme IP Masquerade de Linux. Le detail de ses specifications se trouve dans la RFC-1631 (voir votre archive RFC la plus proche). NAT possede des caracteristiques que IP-Masquerade n'a pas, ce qui le rend beaucoup mieux adapte pour concevoir le routeur firewall d'une societe ou d'installations plus consequentes. Une implementation alpha de NAT pour le noyau 2.0.29 de Linux fut developpee par Michael Hasenstein, Michael.Hasenstein@informatik.tu- chemnitz.de. La documentation et l'implementation sont disponibles sur: Linux IP Network Address Web Page Les nouveaux noyaux Linux 2.1.* comprennent quelques fonctions de NAT dans l'algorithme de routage. 66..2222.. NNeettRRoomm ((AAFF__NNEETTRROOMM) Les noms de peripheriques NetRom sont `nr0', `nr1', etc. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] Amateur Radio AX.25 Level 2 [*] Amateur Radio NET/ROM Les protocoles AX25, Netrom et Rose sont decrits dans le document AX25-HOWTO . Ces protocoles sont utilises par les radio-amateurs dans le monde entier pour l'experimentation du packet- radio. La plupart du travail d'implementation a ete fait par Jonathon Naylor, jsn@cs.not.ac.uk. 66..2233.. PPLLIIPP Les noms de peripheriques PLIP sont `plip0', `plip1 et plip2. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> <*> PLIP (parallel port) support _P_L_I_P (Parallel Line IP) est, comme SLIP, utilise pour fournir une connexion reseau _p_o_i_n_t _a _p_o_i_n_t entre deux machines, sauf qu'il est concu pour utiliser les ports paralleles de votre machine au lieu des ports series. Parce qu'il est possible de transmettre plus d'un bit en meme temps avec un port parallele, il est possible d'atteindre de plus hautes vitesses avec l'interface _P_L_I_P qu'avec une sortie serie standard (un schema de cablage est donne plus tard dans ce document). De plus, meme le plus simple des ports paralleles, le port imprimante, peut etre utilise, au lieu d'acheter un UART 16550AFN relativement cher pour vos ports series. PLIP utilise beaucoup de ressource CPU en comparaison avec une liaison serie, et ce n'est pas un bon choix si vous pouvez obtenir quelque carte ethernet economique, mais il fonctionne quand rien d'autre n'est disponible et il marche tres bien. On doit s'attendre a un taux de transfert de donnees d'environ 20 Ko quand la liaison marche bien. Les pilotes de peripherique PLIP sont en competition avec les pilotes de peripheriques paralleles sur le port parallele. Si vous voulez utiliser les deux pilotes en meme temps vous devez les compiler en tant que modules pour etre assures de pouvoir choisir quel port vous voulez utiliser pour PLIP et quels ports vous voulez pour le pilote d'impression. Voyez le Modules-HOWTO pour plus d'informations sur la confguration des modules du noyau. Attention, notez que certains portables utilisent des circuits qui ne peuvent pas fonctionner avec PLIP car ils n'autorisent pas certaines combinaisons dont PLIP a besoin et que les imprimantes n'utilisent pas. L'interface Linux _P_L_I_P est compatible avec le _P_i_l_o_t_e _P_L_I_P _C_r_y_n_w_y_r _P_a_c_k_e_t et ceci signifie que vous pouvez connecter votre machine Linux avec une machine DOS tournant avec n'importe quel logiciel tcp/ip via _P_L_I_P. Dans la serie des noyaux 2.0.* les peripheriques plip sont relies aux ports i/o et les IRQ comme suit: peripherique adresse i/o IRQ ------------ ----------- --- plip0 0x3bc 5 plip1 0x378 7 plip2 0x278 2 Si vos ports paralleles ne correspondent pas aux combinaisons precedentes alors vous pouvez changer les IRQ en utilisant la commande _i_f_c_o_n_f_i_g avec le parametre `irq'. N'oubliez pas de valider les IRQ pour vos ports imprimantes dans votre ROM BIOS s'il supporte cette option. Dans la serie des noyaux 2.1.* avec le support PnP les peripheriques plip sont alloues sequentiellement au fur et a mesure de leur detection tout comme les peripheriques ethernet, avec plip0 alloue en premier. Quand on compile le noyau, il n'y a qu'un seul fichier que vous devez regarder pour configurer _p_l_i_p. Ce fichier est /usr/src/linux/driver/net/CONFIG et il contient les horloges _p_l_i_p en millisecondes. Les valeurs par defaut coviennent la plupart du temps. Vous aurez probablement besoin de les augmenter si votre ordinateure est particulierement lent, auquel cas les horloges a augmenter se trouvent sur ll''aauuttrree ordinateur. Un programme appele _p_l_i_p_c_o_n_f_i_g existe et permet de configurer les reglages sans recompiler le noyau. Il est fourni avec beaucoup de distributions Linux. Pour configurer une interface _p_l_i_p, vous devez aajjoouutteerr les lignes suivantes dans votre fichier reseau rc: # # Attach a PLIP interface # # configure first parallel port as a plip device /sbin/ifconfig plip0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # End plip Ou: IIPPAA..IIPPAA..IIPPAA..IIPPAA represente votre adresse IP. IIPPRR..IIPPRR..IIPPRR..IIPPRR represente l'adresse l'adresse IP de la machine distante. Le parametre _p_o_i_n_t_o_p_o_i_n_t a la meme signification que pour SLIP, c'est a dire qu'il specifie l'adresse de la machine de la machine a l'autre bout de la liaison. Dans la plupart des cas vous pouvez traiter l'interface _p_l_i_p comme si elle etait une interface _S_L_I_P, sauf que ni _d_i_p ni _s_l_a_t_t_a_c_h ne doivent, ou ne peuvent, etre utilises. Pour plus d'informations sur PLIP voir PLIP-mini-HOWTO 66..2244.. PPPPPP Les noms de peripheriques PPP sont `ppp0', `ppp1, etc. Les noms sont attribues sequentiellement, le premier peripherique etant `0'. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> <*> PPP (point-to-point) support La configuration de PPP est discutee en detail dans le PPP-HOWTO . 66..2244..11.. MMaaiinntteennaannccee dd''uunnee ccoonnnneexxiioonn ppeerrmmaanneennttee aavveecc llee rreesseeaauu aa ll''aaiiddee ddee _p_p_p_d.. Si vous etes suffisamment fortunes pour avoir une connexion semi- permanente avec le net et que vous vouliez que votre machine refasse la connexion PPP en cas de perte, alors voici une astuce simple. Configurer PPP de sorte qu'il soit demarre par l'utilisateur root en faisant la commande: # pppd SSooyyeezz cceerrttaaiinnss d'avoir l'option `-detach' dans le fichier /etc/ppp/options. Puis, inserez la ligne suivante dans votre fichier /etc/inittab, avec les definitions des _g_e_t_t_y: pd:23:respawn:/usr/sbin/pppd Cela permettra au programme _i_n_i_t de demarrer et de surveiller le pro- gramme _p_p_p_d , et de le redemarrer automatiquement s'il meurt. 66..2255.. PPrroottooccoollee RRoossee ((AAFF__RROOSSEE) Les noms de peripheriques Rose sont `rs0', `rs1', etc. Rose est disponible dans la serie des noyaux 2.1.*. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Networking options ---> [*] Amateur Radio AX.25 Level 2 <*> Amateur Radio X.25 PLP (Rose) Les protocoles AX25, Netrom et Rose sont expliques dans le AX25-HOWTO . Ces protocoles sont utilises par les operateurs radio-amateur du monde entier pour l'experimentation du packet-radio. La plupart du travail d'implementation de ces protocoles a ete realise par Jonathon Naylor, jsn@cs.not.ac.uk. 66..2266.. SSuuppppoorrtt SSAAMMBBAA -- ``NNeettBBEEUUII'',, ``NNeettBBiiooss''.. SAMBA est une implementation du protocole Session Management Block. Samba permet a Microsoft et d'autres systemes de monter et d'utiliser vos disques et imprimantes. SAMBA et sa configuration sont decrits en detail dans le SMB-HOWTO . 66..2277.. CClliieenntt SSLLIIPP Les fichiers de peripheriques SLIP sont nommes `sl0', `sl1' etc. le premier configure etant `0' et les autres s'incrementant au fur et a mesure qu'ils sont configures. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support <*> SLIP (serial line) support [ ] CSLIP compressed headers [ ] Keepalive and linefill [ ] Six bit SLIP encapsulation SLIP (Serial Line Internet Protocol) vous permet d'utiliser tcp/ip avec une ligne serie, qui peut etre un telephone et un modem, ou tout autre ligne dediee. Bien sur pour utiliser SLIP vous devez avoir acces a un _s_e_r_v_e_u_r _S_L_I_P dans votre entourage. Beaucoup d'universites et de societes fournissent des acces SLIP de par le monde. SLIP utilise les ports series de votre machine pour transporter les datagrammes IP. Pour cela il doit prendre le controle du peripherique serie. Les noms de peripheriques SLIP sont _s_l_0, _s_l_1 etc. Comment ceux- ci correspondent avec vos peripheriques serie ? Le code reseau utilise ce que l'on nomme un appel _i_o_c_t_l (i/o control) pour transformer les peripheriques serie en peripheriques SLIP. Il y a deux programmes qui peuvent faire cela, ce sont _d_i_p et _s_l_a_t_t_a_c_h 66..2277..11.. ddiipp _d_i_p (Dialup IP) est un programme elegant capable de regler la vitesse du dispositif serie, de demander a votre modem d'appeler l'autre extremite de la ligne, de vous connecter automatiquement au serveur distant, de chercher des messages qui vous ont ete envoyes par le serveur et d'en extraire des informations telles que votre adresse IP et de faire le _i_o_c_t_l necessaire pour basculer votre port serie en mode SLIP. _d_i_p est tres flexible quant a l'utilisation de scripts et grace a ceci vous pouvez automatiser vos procedures de connexion. On peut le trouver sur: sunsite.unc.edu . Pour l'installer faites: # # cd /usr/src # gzip -dc dip337o-uri.tgz | tar xvf - # cd dip-3.3.7o # make install # Le fichier Makefile suppose l'existence d'un groupe nomme _u_u_c_p, mais vous pouvez le changer en _d_i_p ou _S_L_I_P, selon votre configuration. 66..2277..22.. ssllaattttaacchh _s_l_a_t_t_a_c_h au contraire de _d_i_p est un programme tres simple, tres facile a utiliser, mais qui n'a pas la sophistication de _d_i_p. Il n'a pas de possiblite d'accepter des scripts, tout ce qu'il fait est de configurer votre peripherique serie en peripherique SLIP. Il suppose que vous ayez toutes les informations necessaires et que la liaison serie est etablie avant de l'invoquer. _s_l_a_t_t_a_c_h est ideal quand vous avez une liaison permanente avec votre serveur, comme un cable physique ou une ligne dediee. 66..2277..33.. QQuuaanndd uuttiilliisseerr qquuooii ?? Vous devriez utiliser _d_i_p lorsque votre liaison vers la machine qui est votre serveur SLIP est un modem, ou tout autre lien intermittent. Vous devriez utiliser _s_l_a_t_t_a_c_h quand vous avez une ligne dediee, peut- etre un cable, entre votre machine et le serveur et qu'il n'y a pas d'action speciale necessaire pour garder la ligne en activite. Voir la section `Connexion SLIP permanente' pour plus de details. Configurer SLIP est analogue a la configuration d'une interface Ethernet (voir la section `Configurer un peripherique Ethernet' ci- dessus). Cependant, il existe quelques differences. Tout d'abord, les liens SLIP ne sont pas des reseaux Ethernet en ce qu'il n'y a que deux hotes sur le reseau, un a chaque extremite de la liaison. A la difference de l'Ethernet qui est disponible des que vous etes cable, avec SLIP, en fonction du type de lien que vous avez, vous pouvez avoir a initialiser votre connexion reseau d'une maniere speciale. Si vous utilisez _d_i_p, alors cela ne sera pas fait au moment du demarrage de la machine, mais plus tard, quand vous serez pret pour utiliser la liaison. Il est possible d'automatiser la procedure. Si vous utilisez _s_l_a_t_t_a_c_h vous voudrez probablement ajouter une section dans votre fichier _r_c_._i_n_e_t_1. Ceci sera decrit bientot. Il y a deux types principaux de serveurs SLIP: serveurs avec adressage IP dynamique et serveurs avec adressage IP statique. Presque tous les serveurs SLIP vous demanderont a la connexion d'utiliser un nom d'utilisateur et un mot de passe quand vous composez le numero. _d_i_p peut prendre en charge la connexion automatiquement. 66..2277..44.. eett DDIIPP.. SSeerrvveeuurr SSLLIIPP ssttaattiiqquuee aavveecc uunnee lliiggnnee tteelleepphhoonniiqquuee Le serveur SLIP statique est celui qui vous fournit une adresse IP qui reste exclusivement la votre. A chaque fois que vous vous connectez a ce serveur, vous configurez votre port SLIP avec cette adresse. Le serveur SLIP statique repond a votre appel par modem, vous demande probablement un nom d'utilisateur et un mot de passe, et ensuite dirige tous les datagrammes destines a votre adresse au travers de cette connexion. Si vous avez un serveur statique, alors vous mettez des entrees pour votre nom d'hote et votre adresse IP (puisque vous savez ce qu'elle sera) dans votre fichier /etc/hosts. Vous avez aussi a configurer d'autres fichiers comme: rc.inet2, host.conf, resolv.conf, /etc/HOSTNAME et rc.local. N'oubliez pas qu'en configurant rc.inet1, vous n'avez pas besoin d'ajouter de commandes speciales pendant la connexion SLIP puisque c'est _d_i_p qui fait tout le dur labeur a votre place en configurant votre interface. Vous avez besoin de donner a _d_i_p les informations adequates et il configure l'interface pour vous apres avoir demande au modem d'etablir l'appel et de vous connecter au serveur. Si votre serveur SLIP fonctionne comme cela alors vous pouvez directement aller a la section `Utiliser Dip' pour apprendre a configurer _d_i_p convenablement. 66..2277..55.. SSeerrvveeuurr SSLLIIPP ddyynnaammiiqquuee aavveecc uunnee lliiggnnee tteelleepphhoonniiqquuee eett DDIIPP.. Le serveur SLIP _d_y_n_a_m_i_q_u_e vous alloue une adresse IP de maniere aleatoire, a partir d'un groupe d'adresses, a chaque fois que vous vous connectez. Cela signifie qu'il n'y a aucune garantie d'avoir la meme adresse a chaque fois, et que celle-ci peut etre utilisee par quelqu'un d'autre apres la deconnexion. L'administrateur reseau qui a configure le serveur SLIP a assigne un groupe d'adresses que le serveur SLIP peut utiliser quand il recoit un appel entrant. Il prend alors la premiere adresse inutilisee, guide l'appelant au travers du processus de connexion et envoie un message de bienvenue contenant l'adresse IP qu'il a allouee et continue d'utiliser cette adresse tout le temps de l'appel. Configurer ce type de serveur revient a configurer un serveur statique, sauf que vous devez ajouter une etape ou vous obtenez l'adresse IP que le serveur vous alloue puis configurer le peripherique SLIP avec celle-ci. Encore une fois, _d_i_p fait le sale boulot et les nouvelles versions sont suffisamment elegantes pour non seulement etablir la connexion, mais aussi pour lire l'adresse IP inscrite dans le message de bienvenue et la stocker de telle sorte que vous puissiez configurer votre peripherique SLIP avec. Si votre serveur SLIP fonctionne ainsi, alors vous pouvez aller a la section `Utiliser DIP' pour savoir comment configurer _d_i_p de maniere adequate. 66..2277..66.. UUttiilliisseerr DDIIPP.. Comme explique plus haut, _d_i_p est un programme puissant qui simplifie et automatise le processus de composition d'un numero vers un serveur SLIP, se connecte dessus, demarre la connexion et configure les peripheriques SLIP a l'aide des commandes _i_f_c_o_n_f_i_g et _r_o_u_t_e appropriees. Essentiellement pour utiliser _d_i_p vous ecrivez un `script dip' qui est simplement une liste de commandes que _d_i_p comprend et qui dit a _d_i_p comment realiser chacune des actions que vous voulez qu'il fasse. Voyez le fichier sample.dip est fourni avec _d_i_p pour avoir une idee de la maniere dont il travaille. _d_i_p est vraiment un programme puissant, avec beaucoup d'options. Au lieu de regarder chacune d'elles, il vaut mieux jeter un coup d'oeil dans la page de manuel, le fichier README et les fichiers d'exemple qui sont fournis avec votre version de _d_i_p. Vous pouvez noter que le script sample.dip suppose que vous utilisez un serveur SLIP statique, aussi vous connaissez votre adresse IP a l'avance. Pour les serveurs SLIP dynamiques, les nouvelles versions de _d_i_p incluent une commande que vous pouvez utiliser pour lire et configurer automatiquement votre peripherique SLIP avec l'adresse IP que le serveur dynamique vous donne. L'exemple suivant est une version modifiee du fichier sample.dip fournie avec _d_i_p_3_3_7_j_-_u_r_i_._t_g_z et qui est probablement un bon point de depart pour vous. Vous pouvez le sauvegarder sous le nom de /etc/dipscript et l'editer pour l'adapter a votre configuration: # # sample.dip Dialup IP connection support program. # # This file (should show) shows how to use the DIP # This file should work for Annex type dynamic servers, if you # use a static address server then use the sample.dip file that # comes as part of the dip337-uri.tgz package. # # # Version: @(#)sample.dip 1.40 07/20/93 # # Author: Fred N. van Kempen, # main: # Next, set up the other side's name and address. # My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42) get $remote xs4all.hacktic.nl # Set netmask on sl0 to 255.255.255.0 netmask 255.255.255.0 # Set the desired serial port and speed. port cua02 speed 38400 # Reset the modem and terminal line. # This seems to cause trouble for some people! reset # Note! "Standard" pre-defined "errlevel" values: # 0 - OK # 1 - CONNECT # 2 - ERROR # # You can change those grep'ping for "addchat()" in *.c... # Prepare for dialing. send ATQ0V1E1X4\r wait OK 2 if $errlvl != 0 goto modem_trouble dial 555-1234567 if $errlvl != 1 goto modem_trouble # We are connected. Login to the system. login: sleep 2 wait ogin: 20 if $errlvl != 0 goto login_trouble send MYLOGIN\n wait ord: 20 if $errlvl != 0 goto password_error send MYPASSWD\n loggedin: # We are now logged in. wait SOMEPROMPT 30 if $errlvl != 0 goto prompt_error # Command the server into SLIP mode send SLIP\n wait SLIP 30 if $errlvl != 0 goto prompt_error # Get and Set your IP address from the server. # Here we assume that after commanding the SLIP server into SLIP # mode that it prints your IP address get $locip remote 30 if $errlvl != 0 goto prompt_error # Set up the SLIP operating parameters. get $mtu 296 # Ensure "route add -net default xs4all.hacktic.nl" will be done default # Say hello and fire up! done: print CONNECTED $locip ---> $rmtip mode CSLIP goto exit prompt_error: print TIME-OUT waiting for sliplogin to fire up... goto error login_trouble: print Trouble waiting for the Login: prompt... goto error password:error: print Trouble waiting for the Password: prompt... goto error modem_trouble: print Trouble occurred with the modem... error: print CONNECT FAILED to $remote quit exit: exit L'exemple precedent suppose que vous appeliez un serveur SLIP _d_y_n_a_m_i_q_u_e; si vous appelez un serveur SLIP _s_t_a_t_i_q_u_e, alors le fichier sample.dip founi avec _d_i_p_3_3_7_j_-_u_r_i_._t_g_z devrait vous convenir. Quand on donne a _d_i_p la commande _g_e_t _$_l_o_c_a_l, il cherche dans le texte venant de l'extremite de la ligne une chaine de caracteres ressemblant a une adresse IP, c'est a dire des ensembles de nombres separes par des caracteres `.'. Cette modification fut mise en place plus specialement pour les serveurs SLIP _d_y_n_a_m_i_q_u_e_s, afin que le processus de lecture de l'adresse IP fournie par le serveur soit automatise. L'exemple ci-dessus cree automatiquement une route par defaut via votre liaison SLIP, et si ce n'est pas ce que vous voulez car vous avez une connexion Ethernet qui devrait etre votre route par defaut, alors enlevez la commande _d_e_f_a_u_l_t du script. Apres que le script ait fini de tourner, tapez la commande _i_f_c_o_n_f_i_g, et vous verrez que vous avez un peripherique _s_l_0. C'est votre peripherique SLIP. Si le besoin s'en fait sentir, vous pouvez modifier manuellement sa configuration, apres que la commande _d_i_p soit finie, en utilisant les commandes _i_f_c_o_n_f_i_g et _r_o_u_t_e. Notez que _d_i_p vous permet de choisir parmi differents protocoles en utilisant la commande mode, l'exemple le plus courant etant _c_S_L_I_P pour utiliser SLIP avec compression. Notez encore que les deux extremites de la liaison doivent etre d'accord, aussi assurez-vous que ce que vous avez choisi est en accord avec les reglages du serveur. L'exemple montre ci-dessus est plutot robuste et devrait faire face a la plupart des erreurs. Referez-vous a la page de manuel de _d_i_p pour plus d'informations. Naturellement, vous pouvez, par exemple, modifier le script pour realiser des choses comme recomposer le numero vers le serveur si la connexion n'a pas ete faite au bout d'un certain temps, ou meme essayer une serie de serveurs si vous avez acces a plus d'un. 66..2277..77.. CCoonnnneexxiioonn ppeerrmmaanneennttee SSLLIIPP uuttiilliissaanntt uunnee lliiggnnee eett ssllaattttaacchh.. Si vous avez deux machines reliees par un cable, ou si vous etes suffisamment riche pour avoir une ligne dediee, ou un autre type de connexion permanente entre votre machine et une autre, alors vous n'avez pas besoin de vous casser la tete avec _d_i_p pour regler votre liaison serie. _s_l_a_t_t_a_c_h est un utilitaire tres simple a utiliser et vous permet d'avoir les fonctionnalites juste necessaires pour configurer votre connexion. Puisque votre connexion est permanente, vous ajoutez quelques commandes dans votre fichier rc.inet1. Tout ce dont vous avez besoin pour une connexion permanente est de vous assurer que vous avez configure votre peripherique serie a la bonne vitesse et basculer votre peripherique serie en mode SLIP. _s_l_a_t_t_a_c_h vous permet de faire ceci avec une seule commande. Ajoutez ce qui suit a votre fichier rc.inet1: # # Attach a leased line static SLIP connection # # configure /dev/cua0 for 19.2kbps and cslip /sbin/slattach -p cslip -s 19200 /dev/cua0 & /sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # End static SLIP. Ou: IIPPAA..IIPPAA..IIPPAA..IIPPAA represente votre adresse IP. IIPPRR..IIPPRR..IIPPRR..IIPPRR represente l'adresse IP de l'hote distant. _s_l_a_t_t_a_c_h alloue le premier peripherique SLIP disponible au peripherique serie specifie. _s_l_a_t_t_a_c_h demarre avec _s_l_0. Par consequent la premiere commande _s_l_a_t_t_a_c_h relie le peripherique _s_l_0 au peripherique specife, puis _s_l_1 la fois suivante, etc. _s_l_a_t_t_a_c_h vous permet de configurer un certain nombre de protocoles grace a l'argument -p. Dans votre cas vous utilisez soit _S_L_I_P soit _c_S_L_I_P suivant que vous voulez utiliser la compression ou non. Note: les deux extremites doivent etre d'accord sur l'utilisation de la compression. 66..2288.. SSeerrvveeuurr SSLLIIPP.. Vous avez peut-etre une machine connectee au reseau et vous aimeriez que d'autres personnes puisse s'y connecter pour y chercher des services de reseau, alors vous devez configurer votre machine comme serveur. Si vous voulez utiliser SLIP comme protocole de ligne serie, vous avez trois possiblites pour configurer votre machine Linux comme serveur SLIP. Ma preference est la premiere presentee, _s_l_i_p_l_o_g_i_n, car elle semble la plus facile a configurer et a comprendre, mais je presenterai un resume pour chacune, ainsi vous pourrez vous decider vous-memes. 66..2288..11.. SSeerrvveeuurr SSLLIIPP uuttiilliissaanntt _s_l_i_p_l_o_g_i_n.. _s_l_i_p_l_o_g_i_n est un programme que vous pouvez utiliser a la place du shell normal de connexion pour les utilisateurs SLIP, et qui convertit la ligne terminal en ligne SLIP. Il vous permet de configurer votre machine Linux soit en _s_e_r_v_e_u_r _a _a_d_r_e_s_s_e _s_t_a_t_i_q_u_e (les utilisateurs obtiennent toujours la meme adresse a chaque connexion), ou bien en _s_e_r_v_e_u_r _a _a_d_r_e_s_s_e _d_y_n_a_m_i_q_u_e (les utilisateurs obtiennent une adresse allouee qui n'est pas forcement la meme que lors de la connexion precedente). L'appelant se connecte comme pour une connexion standard, en donnant son nom d'utilisateur et son mot de passe, mais au lieu d'avoir une invite de shell apres la connexion, _s_l_i_p_l_o_g_i_n est execute et cherche dans son fichier de configuration une entree dont le nom correspond a celui de l'hote appelant. S'il en detecte une, il configure la ligne comme une ligne avec 8 bits de donnees, et utilise un appel _i_o_c_t_l pour convertir la ligne en ligne SLIP. Quand ce processus est fini, la derniere etape de la configuration prend place, _s_l_i_p_l_o_g_i_n invoquant un script qui configure l'interface SLIP avec l'adresse IP adequate, ainsi que le masque de reseau et positionne le routage approprie. Ce script est appele habituellement /etc/slip.login, mais tout comme _g_e_t_t_y, si vous avez certains appelants demandant une initialisation speciale, alors vous pouvez creer des scripts de configuration appeles /etc/slip.login.loginname qui seront utilises a la place du script par defaut. Il y a trois ou quatre fichiers que vous devez configurer pour que _s_l_i_p_l_o_g_i_n travaille pour vous. Je decrirai comment et ou obtenir les logiciels et comment chacun est configure. Ces fichiers sont: +o /etc/passwd, pour l'acceptation des utilisateurs entrant. +o /etc/slip.hosts, qui contient une information unique pour chaque utilisateur entrant. +o /etc/slip.login, qui s'occupe de la configuration du routage necessaire pour l'utilisateur. +o /etc/slip.tty, requis uniquement si vous configurez votre serveur avec _a_l_l_o_c_a_t_i_o_n _d_'_a_d_r_e_s_s_e _d_y_n_a_m_i_q_u_e: il contient une table des adresses a allouer. +o /etc/slip.logout, qui contient les commandes de `nettoyage' apres la deconnexion de l'utilisateur ou bien une deconnexion intempestive. 66..2288..11..11.. OOuu oobbtteenniirr _s_l_i_p_l_o_g_i_n Vous avez peut-etre deja le paquetage dans votre distribution; si ce n'est pas le cas alors _s_l_i_p_l_o_g_i_n peut etre obtenu sur sunsite.unc.edu . Le fichier tar contient a la fois les sources, les binaires precompiles et une page de manuel. Pour s'assurer que seuls les utilisateurs autorises pourront faire tourner le programme _s_l_i_p_l_o_g_i_n, vous devez ajouter une entree dans votre fichier /etc/group similaire a la suivante: .. slip::13:radio,fred .. Lorsque vous installez le paquetage _s_l_i_p_l_o_g_i_n package, Makefile change le groupe du programme _s_l_i_p_l_o_g_i_n en slip, et cela signifie que seuls les utilsateurs qui appartiennent a ce groupe pourront l'executer. L'exemple donne ci-dessus ne permet qu'aux utilisateurs radio et fred de pouvoir faire tourner le programme _s_l_i_p_l_o_g_i_n. Pour installer les binaires dans le repertoire /sbin et les pages de manuel dans la section 8, faites: # cd /usr/src # gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf - # cd sliplogin-2.1.1 # <..edit the Makefile if you don't use shadow passwords..> # make install Si vous voulez recompiler les binaires avant de les installer, faites make clean avant de faire make install. Si vous voulez installer les binaires autre part, vous devez editer le fichier Makefile et le modifier en consequence. Lisez les fichiers README qui sont inclus dans le paquetage pour plus d'informations. 66..2288..11..22.. CCoonnffiigguurreerr //eettcc//ppaasssswwdd pour les hotes SLIP. Normalement vous devez creer des noms d'hotes speciaux, pour ceux qui appellent avec SLIP, dans votre fichier /etc/passwd. Une convention souvent suivie est d'utiliser le _n_o_m _d_'_h_o_t_e de l'hote appelant avec la lettre capitale `S' comme prefixe. Ainsi, par exemple, si l'hote appelant s'appelle radio alors vous pouvez creer une entree dans le fichier /etc/passwd qui ressemble a ceci: Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin Le nom du compte n'a pas reellement d'importance, du moment qu'il ait une signification pour vous. Note: l'appelant n'a pas besoin de repertoire home special car il n'utilisera pas de shell le la machine, des lors /tmp est un bon choix. Notez bien que _s_l_i_p_l_o_g_i_n est utilise a la place du shell de connexion normal. 66..2288..11..33.. CCoonnffiigguurreerr //eettcc//sslliipp..hhoossttss Le fichier /etc/slip.hosts est le fichier ou _s_l_i_p_l_o_g_i_n cherche les entrees correspondant au nom de connexion pour obtenir les details de configuration de cet hote. C'est le fichier ou vous indiquez l'adresse IP et le masque de reseau qui seront assignes a l'appelant et configures pour leur usage. Des exemples d'entrees pour deux hotes, une statique pour l'hote radio et l'autre dynamique pour l'hote albert ressemblent a ceci: # Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1 Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60 # Les entrees du fichier /etc/slip.hosts sont: 1. Le nom de connexion de l'appelant. 2. L'adesse IP de la machine serveur, donc cette machine. 3. L'adresse IP que l'appelant aura. Si c'est marque DYNAMIC alors l'adresse IP sera allouee suivant les informations contenues dans le fichier /etc/slip.tty decrit plus tard. NNoottee:: vous devez utiliser au moins la version 1.3 de sliplogin pour que cela fonctionne. 4. Le masque de reseau assigne a la machine appelante, en notation decimale, par exemple 255.255.255.0 pour un masque de reseau de classe C. 5. le reglage du mode SLIP qui active/desactive la compression et autres caracteristiques de SLIP. Les valeurs permises sont normal ou compressed. 6. un parametre de delai qui specifie combien de temps la ligne peut rester inactive (aucun datagramme recu) avant une deconnexion automatique. Une valeur negative desactive cette possiblite. 7. arguments optionnels. Note: Vous pouvez mettre soit les noms d'hotes soit les adresses IP en notation decimale pointee pour les champs 2 et3. Si vous utilisez les noms d'hotes, alors ces hotes doivent etre resolvables, c'est a dire que votre machine est capable de determiner une adresse IP pour ces noms d'hotes, autrement le script echouera pendant l'appel. Vous pouvez le tester en faisant telnet vers un nom d'hote: si vous obtenez le message `_T_r_y_i_n_g _n_n_n_._n_n_n_._n_n_n_._._.' alors votre machine est capable de trouver une adresse ip pour ce nom d'hote. Si vous obtenez le message `_U_n_k_n_o_w_n _h_o_s_t', alors il n'en a pas. Dans ce cas essayez d'utiliser l'adress ip en notation decimale pointee; ou bien voyez du cote de votre configuration de resolveur de nom (voir la section Resolution de nom). Les modes les plus courants de SLIP sont: nnoorrmmaall mode SLIP normal non compresse. ccoommpprreessssee mode avec compression van Jacobsen des en-tetes (cSLIP) Bien sur ils sont mutuellement exclusifs, vous devez utiliser l'un ou l'autre. Pour plus d'informations sur les options disponibles, voir les pages de manuels. 66..2288..11..44.. CCoonnffiigguurreerr llee ffiicchhiieerr //eettcc//sslliipp..llooggiinn. Apres que _s_l_i_p_l_o_g_i_n ait explore le fichier /etc/slip.hosts et ait trouve une entree qui convient, il essaye d'executer le fichier /etc/slip.login pour effectivement configurer l'interface SLIP avec son adresse ip et son masque de reseau. L'exemple de fichier /etc/slip.login fourni avec le paquetage _s_l_i_p_l_o_g_i_n ressemble a ceci: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a SLIP line. sliplogin invokes this with # the parameters: # $1 $2 $3 $4, $5, $6 ... # SLIPunit ttyspeed pid the arguments from the slip.host entry # /sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up /sbin/route add $6 arp -s $6 pub exit 0 # Notez que ce script utilise seulement les commandes _i_f_c_o_n_f_i_g et _r_o_u_t_e pour configurer le peripherique SLIP avec sa propre adresse ip, l'adresse ip de l'hote distant , le masque de reseau puis cree une route vers l'adresse distante via le peripherique SLIP. C'est a dire la meme chose que si vous utilisiez la commande _s_l_a_t_t_a_c_h. Notez aussi l'utilisation de _P_r_o_x_y _A_R_P pour s'assurer que les hotes places sur le meme Ethernet que la machine serveur sauront comment atteindre l'hote qui s'est connecte. Le champ doit etre l'adresse materielle de la carte Ethernet de la machine. Si votre machine serveur n'est pas sur un reseau Ethernet, vous pouvez ignorer cette ligne. 66..2288..11..55.. CCoonnffiigguurreerr llee ffiicchhiieerr //eettcc//sslliipp..llooggoouutt. Quand la connexion s'est arretee, assurez-vous que le peripherique serie est revenu a son etat normal de telle sorte que les futurs appelants puissent se connecter correctement. Ceci est accompli en utilisant le fichier /etc/slip.logout. Il est de format tres simple et est appele avec le meme argument que le fichier /etc/slip.login. #!/bin/sh - # # slip.logout # /sbin/ifconfig $1 down arp -d $6 exit 0 # Tout ce qu'il fait est de `mettre a zero' l'interface qui supprimera la route precedemment creee. Il utilise aussi la commande _a_r_p pour supprimer tout arp proxy en place, encore une fois vous n'avez pas besoin de la commande _a_r_p dans le script si votre machine serveur ne possede pas de port Ethernet. 66..2288..11..66.. CCoonnffiigguurreerr llee ffiicchhiieerr //eettcc//sslliipp..ttttyy. Si vous utilisez une allocation d'adresse ip dynamique (tous les hotes configures avec le mot-cle DYNAMIC dans le fichier /etc/slip.hosts) alors vous devez configurer le fichier /etc/slip.tty pour lister les adresses qui seront assignees aux ports. Vous n'aurez besoin de ce fichier que si vous voulez que votre serveur alloue des adresses aux utilisateurs de maniere dynamique. Ce fichier est un tableau qui liste les peripheriques _t_t_y supportant les connexions SLIP entrantes et l'adresse ip qui sera assignee aux utilisateurs se connectant a ce port. Son format est le suivant: # slip.tty tty -> IP address mappings for dynamic SLIP # format: /dev/tty?? xxx.xxx.xxx.xxx # /dev/ttyS0 192.168.0.100 /dev/ttyS1 192.168.0.101 # Ce que dit ce tableau est que les appelants qui se connectent sur le port /dev/ttyS0 et qui ont leur champ d'adresse dans le fichier /etc/slip.hosts regle sur DYNAMIC auront l'adresse 192.168.0.100. De cette maniere vous n'avez besoin d'allouer qu'une seule adresse par port pour tous les utilisateurs n'ayant pas besoin d'adresse fixe. Ceci vous permet d'avoir le nombre minimum d'adresses necessaires pour eviter du gaspillage. 66..2288..22.. SSeerrvveeuurr SSlliipp uuttiilliissaanntt _d_i_p.. Tout d'abord laissez-moi dire que certaines informations ci-dessous viennent des pages de manuel de _d_i_p, ou la maniere de faire tourner Linux comme serveur SLIP est brievement decrite. Faites attention aussi que ce qui suit est base sur le paquetage _d_i_p_3_3_7_o_-_u_r_i_._t_g_z et ne s'applique vraisemblablement pas a d'autres versions de _d_i_p. _d_i_p possede un mode de travail des donnees d'entree qui permet de localiser automatiquement un utilisateur entrant et qui configure la ligne serie comme lien SLIP suivant les informations trouvees dans le fichier /etc/diphosts. Ce mode est active en invoquant _d_i_p avec _d_i_p_l_o_g_i_n. Voila donc comment utiliser _d_i_p comme serveur SLIP, en creant des comptes speciaux ou _d_i_p_l_o_g_i_n est utilise comme shell de connexion. La premiere chose a faire est de creer un lien symbolique comme suit: # ln -sf /usr/sbin/dip /usr/sbin/diplogin Ensuite vous devez ajouter des entrees a la fois dans vos fichiers /etc/passwd et /etc/diphosts. Les entrees que vous devez y mettre sont formatees comme suit: Pour configurer Linux comme serveur SLIP avec _d_i_p, vous devez creer quelques comptes SLIP speciaux pour les utilisateurs, ou _d_i_p (en mode d'entree) est utilse comme shell de connexion. Une convention suggeree est d'avoir tous les comptes SLIP commencant avec la lettre `S' majuscule, par exemple `Sfredm'. Un exemple d'entree dans /etc/passwd pour un utilisateur SLIP ressemble a ceci: Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin ^^ ^^ ^^ ^^ ^^ ^^ ^^ | | | | | | \__ diplogin comme shell de connexion | | | | | \_______ Repertoire personnel | | | | \____________ Nom complet d'utilisateur | | | \_________________ GID | | \_____________________ UID | \_______________________________ Mot de passe crypte \__________________________________________ Nom de connexion Slip Apres la connexion de l'utilisateur, le programme _l_o_g_i_n (s'il trouve et accepte l'utilisateur) execute la commande _d_i_p_l_o_g_i_n. _d_i_p, lorsqu'il est invoque en tant que _d_i_p_l_o_g_i_n sait qu'il sera automatiquement utilise comme shell de connexion. Quand il est demarre comme _d_i_p_l_o_g_i_n la premiere chose qu'il fait est d'utiliser l'appel de la fonction _g_e_t_u_i_d_(_) pour obtenir l'identificateur de l'utilisateur appelant. Il regarde ensuite dans le fichier /etc/diphosts pour trouver la premiere entree qui correspond soit a l'identificateur soit au nom du peripherique _t_t_y ou l'appel est entre et se configure lui-meme de maniere appropriee. Par un choix judicieux: soit de donner a l'utilisateur une entree dans le fichier diphosts, ou soit de laisser a l'utilisateur la configuration par defaut, vous pouvez construire votre serveur de telle maniere que vous puissiez avoir un melange d'utilisateurs ayant des adresses allouees statiquement ou dynamiquement. _d_i_p ajoutera automatiquement une entree `Proxy-ARP' si elle est invoquee en mode d'entree, aussi vous n'avez pas a vous soucier d'ajouter de telles entrees manuellement. 66..2288..22..11.. CCoonnffiigguurreerr //eettcc//ddiipphhoossttss /etc/diphosts est utilise par _d_i_p pour examiner des configurations preetablies concernant des hotes eloignes. Ceux-ci peuvent etre des hotes se connectant sur votre machine, ou bien des machines sur lesquelles vous vous connectez. Le format general de /etc/diphosts est: .. Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296 .. Les champs sont: 1. nom de connexion: comme retourne par getpwuid(getuid()) ou bien le nom de tty. 2. inutilise: pour compatibilite avec passwd 3. Adresse distante: adresse IP de l'appelant, soit numerique soit nominative 4. Adresse locale: adresse IP de cette machine, soit numerique soit nominative. 5. Masque de reseau: en notation decimale pointee 6. Commentaires: vous y mettez ce que vous voulez. 7. protocole: Slip, CSlip etc. 8. MTU: nombre decimal Un exemple d'entree /etc/net/diphosts pour un hote distant peut etre: Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296 qui specifie une liaison SLIP avec une adresse distante de 145.71.34.1 et un MTU de 296, ou: Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 qui specifie une liaison compatible cSLIP avec une adresse distante de 145.71.34.1 et un MTU de 1006. Des lors, tous les utilisateurs a qui vous permettez d'avoir une connexion avec allocation d'adresse IP statique auront une entree dans /etc/diphosts .Si vous voulez que des utilisateurs qui appellent sur un port particulier aient leur adresse allouee dynamiquement, vous devez alors avoir une entree pour le peripherique tty, mais pas d'entree pour l'utilisateur lui-meme. Vous devez vous souvenir de configurer au moins une entree pour chaque peripherique tty que vos utilisateurs entrants utiliseront pour etre surs qu'une configuration adequate soit disponible, independamment du modem sur lequel ils se connectent. Quand un utilisateur se connecte, il recevra une invite normal de login et une demande de mot de passe, pour lesquels il devra entrer son identificateur SLIP et son mot de passe. Si tout est correct, l'utilisateur ne verra pas de message special, il devra juste basculer en mode SLIP chez lui et ensuite il pourra se connecter et etre configure avec les parametres contenus dans le fichier diphosts. 66..2288..33.. SSeerrvveeuurr SSLLIIPP uuttiilliissaanntt ll''eennsseemmbbllee _d_S_L_I_P.. Matt Dillon a ecrit un paquetage qui permet des liaisons SLIP non seulement entrantes mais aussi sortantes. Le paquetage de Matt est une combinaison de petits programmes et de scripts qui prennent en charge les connexions a votre place. Vous aurez besoin de _t_c_s_h car au moins l'un des scripts en a besoin. Matt fournit une copie binaire de l'utilitaire _e_x_p_e_c_t car il est aussi necessaire pour l'un des scripts. Il serait preferable d'avoir une certaine experience de _e_x_p_e_c_t pour que ce paquetage soit utile pour vous, mais que cela ne vous decourage pas. Matt a ecrit une bonne procedure d'installation dans le fichier README, aussi je ne me fatiguerai pas a la repeter. Vous pouvez recuperer le paquetage _d_S_L_I_P sur son site d'origine: aappoolllloo..wweesstt..ooiicc..ccoomm /pub/linux/dillon_src/dSLIP203.tgz ou bien sur: ssuunnssiittee..uunncc..eedduu /pub/Linux/system/Network/serial/dSLIP203.tgz Lisez le fichier README et creez les entrees /etc/passwd et /etc/group aavvaanntt de faire make install. 66..2299.. SSuuppppoorrtt SSTTRRIIPP ((SSttaarrmmooddee RRaaddiioo IIPP)) Les noms de peripheriques STRIP sont `st0', `st1', etc. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support .... [*] Radio network interfaces < > STRIP (Metricom starmode radio IP) STRIP est un protocole concu specialement pour un certain type de modems radio Metricom dans le cadre d'un projet de recherche conduit par l'Universite de Stanford appele MosquitoNet Project . Il y a un tas de choses interessantes a lire, meme si vous n'etes pas directement concerne par le projet. Les radios Metricom se connectent sur un port serie et emploient la technologie a large bande spectrale et peuvent aller jusqu'a 100kbps. Des informations sur ceux-ci sont disponibles sur: Le serveur web de Metricom . A l'heure actuelle les outils reseau habituels ne supportent pas le pilote STRIP, vous devez donc telecharger des outils personnalises a partir du serveur web MosquitoNet. Pour avoir des details sur les logiciels a utiliser allez voir: MosquitoNet STRIP Page . En resume la configuration consiste a utiliser un programme _s_l_a_t_t_a_c_h modifie pour regler la discipline de ligne d'un peripherique serie pour SLIP, puis a configurer le peripherique `st[0-9]' resultant comme vous le feriez pour Ethernet avec une exception importante: pour des raisons techniques STRIP ne supporte pas le protocole ARP , vous devez alors configurer manuellement les entrees ARP pour chacun des hotes de votre sous-reseau. Cela ne devrait pas etre trop contraignant. 66..3300.. TTookkeenn RRiinngg Le noms de peripheriques Token ring sont `tr0', `tr1' etc. Token Ring est un protocole LAN standard IBM en vue d'eviter les collisions en fournissant un mecanisme qui n'autorise qu'une seule station du LAN a transmettre a un moment donne. Un `jeton' est detenu par une station a un moment donne, et celle-ci est la seule autorisee a emettre. Lorque c'est fait elle passe le jeton a la station suivante. Le jeton fait le tour de toutes les stations actives, d'ou le nom de `Token Ring' (anneau a jeton). OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support .... [*] Token Ring driver support < > IBM Tropic chipset based adaptor support La configuration de token ring est identique a celle de l'Ethernet a l'exception du nom de peripherique reseau devant etre configure. 66..3311.. XX..2255 X.25 est un protocole de circuit base sur la commutation de paquets defini par le C.C.I.T.T. (un groupe de normalisation reconnu par les compagnies de telecommunications dans la plupart du monde). Une implementation de X.25 et LAPB est en cours dans les noyaux recents 2.1.*. Jonathon Naylor jsn@cs.nott.ac.uk dirige le developpement et une liste de diffusion a ete creee pour discuter des affaires relatives a X.25 pour Linux. Pour y souscrire, envoyez un message a: majordomo@vger.rutgers.edu avec le texte "subscribe linux-x25" dans le corps du message. Les dernieres versions des outils de configuration peuvent etre obtenues sur le site ftp de Jonathon a ftp.cs.nott.ac.uk . 66..3322.. CCaarrttee WWaavveeLLaann Les noms de peripheriques Wavelan sont `eth0', `eth1', etc. OOppttiioonnss ddee ccoommppiillaattiioonn dduu nnooyyaauu: Network device support ---> [*] Network device support .... [*] Radio network interfaces .... <*> WaveLAN support La carte WaveLAN est une carte LAN sans-fil a large bande. Elle ressemble beaucoup en pratique a une carte Ethernet et se configure presque de la meme maniere. Vous pouvez avoir des informations sur la carte Wavelan sur Wavelan.com . 77.. CCaabblleess eett ccaabbllaaggeess Ceux qui sont habiles du fer a souder peuvent vouloir fabriquer leurs propres cables pour relier deux machines Linux. Les schemas de cablage suivants pourront les y aider. 77..11.. CCaabbllee sseerriiee NNUULLLL MMooddeemm Tous les cables NULL modem ne se ressemblent pas. Beaucoup ne font que faire croire a votre ordinateur que tous les signaux appropries sont presents et echangent les donnees de transmission et de reception. C'est bien, mais cela signifie que vous devez utiliser le controle de flux logiciel (XON/XOFF) qui est moins efficace que le controle de flux materiel. Le cable suivant donne la meilleure transmission de signal entre les deux machines et vous permet d'utiliser le controle de flux materiel (RTS/CTS). Pin Name Pin Pin Tx Data 2 ----------------------------- 3 Rx Data 3 ----------------------------- 2 RTS 4 ----------------------------- 5 CTS 5 ----------------------------- 4 Ground 7 ----------------------------- 7 DTR 20 -\--------------------------- 8 DSR 6 -/ RLSD/DCD 8 ---------------------------/- 20 \- 6 77..22.. CCaabbllee ppoorrtt ppaarraalllleellee ((ccaabbllee PPLLIIPP)) Si vous avez l'intention d'utiliser le protocole PLIP entre deux machines alors ce cable vous conviendra independamment du type de port parallele installe. Pin Name pin pin STROBE 1* D0->ERROR 2 ----------- 15 D1->SLCT 3 ----------- 13 D2->PAPOUT 4 ----------- 12 D3->ACK 5 ----------- 10 D4->BUSY 6 ----------- 11 D5 7* D6 8* D7 9* ACK->D3 10 ----------- 5 BUSY->D4 11 ----------- 6 PAPOUT->D2 12 ----------- 4 SLCT->D1 13 ----------- 3 FEED 14* ERROR->D0 15 ----------- 2 INIT 16* SLCTIN 17* GROUND 25 ----------- 25 Notes: +o Ne pas connecter les broches marquees avec un asterisque `*'. +o Les masses supplementaires sont 18,19,20,21,22,23 et 24. +o Si le cable que vous utilisez possede un blindage, il doit etre connecte a une seule des prises DB-25 et uunnee sseeuullee. AAtttteennttiioonn:: uunn ccaabbllee PPLLIIPP mmaall bbrraanncchhee ppeeuutt ddeettrruuiirree vvoottrree ccaarrttee ccoonnttrroolleeuurr... Soyez attentifs et verifiez chaque connexion deux fois pour etre surs de ne pas vous creer de travail inutile ou de gros ennuis. Bien que l'on puisse utiliser des cables PLIP sur des longues distances, evitez-le si possible. Les specifications du cable permettent d'avoir une longueur d'environ 1 metre. Faites attention si vous utilisez de grandes longueurs, car les sources de champs magnetiques eleves comme la foudre, les lignes de puissance et les emetteurs radio peuvent interferer et parfois endommager votre carte controleur. Si vous voulez vraiment connecter deux de vos ordinateurs sur une grande distance, utilisez plutot des cartes Ethernet et un cable coaxial. 77..33.. CCaabbllaaggee EEtthheerrnneett 1100bbaassee22 ((ccooaaxxiiaall ffiinn)) 10base2 est un standard de cablage Ethernet specifiant l'utilisation d'un cable coaxial 52 ohms avec un diametre d'environ 5 mm. Il faut se souvenir d'un nombre important de regles quand on relie deux machines avec un cablage 10base2. La premiere est que vous devez utiliser des terminaisons aa cchhaaqquuee eexxttrreemmiittee du cable. Un terminateur est une resistance de 52 ohms qui sert a s'assurer que le signal est absorbe et non reflechi a l'extremite du cable. Sans terminaison a chaque extremite vous pourriez trouver que l'Ethernet n'est pas fiable ou ne marche pas du tout. Normalement vous utilisez des `T' pour interconnecter les machines, en sorte que vous finirez par avoir quelque chose qui ressemble a ceci: |==========T=============T=============T==========T==========| | | | | | | | | ----- ----- ----- ----- | | | | | | | | ----- ----- ----- ----- Les `|' a chaque extremite representent une terminaison, les `======' representent une longueur de cable coaxial avec des prises BNC en bout et les `T' representent un connecteur en `T'. Gardez la longueur de cable entre les connecteurs en `T' et les cartes Ethernet aussi courte que possible, l'ideal etant que ces connecteurs soient branches directement sur la carte Ethernet. 77..44.. CCaabbllaaggee EEtthheerrnneett aa ppaaiirreess ttoorrssaaddeeeess Si vous n'avez que deux cartes Ethernet avec paires torsadees et que vous voulez les relier, vous n'avez pas besoin de repartiteur. Vous pouvez cabler les deux cartes directement ensemble. Un schema montrant comment faire est inclus dans le document Ethernet-HOWTO 88.. GGlloossssaaiirree ddeess tteerrmmeess uuttiilliisseess ddaannss ccee ddooccuummeenntt.. Ci-dessous une liste des termes les plus importants utilises dans ce document. AARRPP C'est l'acronyme de _A_d_d_r_e_s_s _R_e_s_o_l_u_t_i_o_n _P_r_o_t_o_c_o_l (protocole de resolution d'adresses), permettant a une machine du reseau d'associer une adresse IP a une adresse materielle. AATTMM C'est l'acronyme de _A_s_y_n_c_h_r_o_n_o_u_s _T_r_a_n_s_f_e_r _M_o_d_e (mode de transfert asynchrone). Un reseau ATM enveloppe les donnees en blocs de taille standard pour pouvoir les convoyer efficacement d'un point a un autre. ATM est une technologie reseau a commutation de paquets. cclliieenntt C'est habituellement le morceau de logiciel a l'extremite d'un systeme ou se trouve l'utilisateur. Il y a des exceptions, par exemple, dans le systeme de fenetres X11 c'est en fait le serveur qui est avec l'utilisateur et le client qui est sur la machine distante. Le client est le programme ou l'extremite d'un systeme qui utilise le service fourni par un serveur. Dans le cas de systemes _d_'_e_g_a_l _a _e_g_a_l tels que _s_l_i_p ou _p_p_p le client se trouve a l'extremite qui a initialise la connexion, l'autre extremite, etant consideree comme le serveur. ddaattaaggrraammmmee Un datagramme est un paquet discret de donnees qui contient les adresses, et qui est l'unite de base de transmission sur un reseau IP. On peut aussi l'appeler `paquet'. DDLLCCII DLCI veut dire `Data Link Connection Identifier'(identifieur de connexion de liaison donnees), et est utilise pour identifier une liaison virtuelle unique point a point via un reseau a relais de trames (Frame Relay). Les DLCI sont normalement assignes par le fournisseur de reseau a relais de trames. RReellaaiiss ddee ttrraammeess Frame Relay (Relais de trames) est une technologie reseau ideale lorsque l'on a un trafic de nature cahotique ou sporadique. Les couts peuvent etre reduits quand on a de nombreux clients Frame Relay partageant la meme capacite reseau et on compte sur le fait que les clients utilisent le reseau a des instants diiferents. AAddrreessssee mmaatteerriieellllee C'est un nombre qui identifie de maniere unique un hote sur un reseau physique au niveau de la couche acces. Par exemple: _A_d_r_e_s_s_e_s _E_t_h_e_r_n_e_t et _A_d_r_e_s_s_e_s _A_X_._2_5. IISSDDNN C'est l'acronyme de _I_n_t_e_g_r_a_t_e_d _S_e_r_v_i_c_e_s _D_e_d_i_c_a_t_e_d _N_e_t_w_o_r_k(Reseau Numerique a Integration de Services=RNIS). ISDN fournit des moyens standardises avec lesquels les compagnies de telecommunications peuvent delivrer soit de la voix soit des informations vers des clients. Techniquement ISDN est un reseau de donnees a commutation de paquets. IISSPP C'est l'acronyme de `Internet Service Provider' (fournisseur d'acces a l'Internet). Ce sont des organisations ou des societes qui fournissent aux gens une connexion reseau a l'Internet. AAddrreessssee IIPP C'est un nombre qui identifie de maniere unique un hote TCP/IP sur le reseau. Cette adresse est codee sur 4 octets et se presente habituellement sous la forme appelee "notation decimale pointee", ou chaque octet est sous forme decimale, avec des points `.' entre chaque. MMSSSS Le Maximum Segment Size (_M_S_S) (Taille Maximum de Segment) est la plus grande quantite de donnees qui peut etre transmise en une seule fois. Si vous voulez eviter des fragmentations MSS doit etre egal a l'en-tete MTU-IP. MMTTUU Le Maximum Transmission Unit (_M_T_U) (taille maximum de l'unite de transfert) est un parametre qui determine le plus long datagramme pouvant etre transmis par une interface IP sans avoir besoin d'etre fragmente en unites plus petites. Le MTU doit etre plus grand que le datagramme le plus grand que vous voulez transmettre sans etre fragmente. Note: ceci protege de la fragmentation uniquement de maniere locale, d'autres liens sur le chemin peuvent avoir un MTU plus petit et les datagrammes seront fragmentes a cet endroit. Les valeurs typiques sont de 1500 octets pour une interface Ethernet, ou de 576 octets pour une interface SLIP. rroouuttee La _r_o_u_t_e est le chemin que les datagrammes suivent a travers le reseau pour atteindre leur destination. sseerrvveeuurr C'est habituellement le morceau de logiciel ou l'extremite d'un systeme eloigne de l'utilisateur. Le serveur fournit un service vers un ou plusieurs clients. Des exemples de serveurs sont _f_t_p, _N_e_t_w_o_r_k_e_d _F_i_l_e _S_y_s_t_e_m (NFS), ou _D_o_m_a_i_n _N_a_m_e _S_e_r_v_e_r (DNS). Dans le cas de systemes _e_g_a_l _a _e_g_a_l comme _S_L_I_P ou _P_P_P le serveur est considere comme etant l'extremite de la liaison qui est appelee et l'extremite appeleante est le client. ffeenneettrree La _f_e_n_e_t_r_e (window) est la plus grande quantite de donnees que l'extremite receptrice peut accepter a un certain moment. 99.. LLiinnuuxx ppoouurr uunn ffoouurrnniisssseeuurr dd''aacccceess aa ll''IInntteerrnneett ?? Si vous etes interesses par l'utilisation de Linux a des fins de fourniture d'acces Internet, je vous recommande de consulter sur Linux ISP homepage pour une bonne liste de pointeurs vers les informations dont vous pourriez avoir besoin. 1100.. RReemmeerrcciieemmeennttss Je voudrais remercier les personnes suivantes pour leur contribution a ce document (sans ordre particulier): Axel Boldt, Arnt Gulbrandsen, Gary Allpike, Cees de Groot, Alan Cox, Jonathon Naylor, Claes Ensson, Ron Messin, John Minack, Jean-Pierre Cocatrix, Erez Strauss. Un merci special a Alessandro Rubini pour son excellent retour d'informations et les corrections. 1111.. CCooppyyrriigghhtt.. Le document NET-3-HOWTO donne des informations concernant l'installation et la configuration du support reseau pour Linux. Copyright (c) 1997 Terry Dawson. Celui-ci est libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License telle que publiee par la Free Software Foundation; soit avec la version 2 de la license, soit (a votre guise) avec une version ulterieure. Ce document est distribue avec l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE; ni meme la garantie implicite de COMMERCIALISATION ou D'ADAPTATION DANS UN BUT PARTICULIER. Voir la GNU General Public License pour plus de details. Vous devriez recevoir une copie de la GNU General Public License avec ce document; si ce n'est pas le cas, ecrivez a: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.