diff --git a/fr_FR.ISO8859-1/articles/mh/article.sgml b/fr_FR.ISO8859-1/articles/mh/article.sgml index a322ef0ac3..d6047aa2c5 100644 --- a/fr_FR.ISO8859-1/articles/mh/article.sgml +++ b/fr_FR.ISO8859-1/articles/mh/article.sgml @@ -1,744 +1,744 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Introduction à MH Matt Midboe
matt@garply.com
v1.0, 16 Janvier 1996 &artheader.copyright; Ce document est une introduction sur la façon d'utiliser MH sous FreeBSD. &abstract.license; &abstract.disclaimer; &trans.a.gioria;
Introduction MH débuta en 1977 dans la société RAND Corporation, oû la philosophie MH fut développée. MH n'est pas seulement un programme monolithique de courrier électronique mais plutôt une philosophie sur la meilleure façon de développer des outils permettant de lire son courrier. Les développeurs de MH ont fourni un logiciel superbe tout en adhérent au concept KISS : “Keep It Simple Stupid” (Rester le plus simple possible). Plutôt que de disposer d'un seul et complexe logiciel pour lire, envoyer et gérer ses courriers électroniques, ils ont écrit une multitude de petits programmes spécialisés. Certains aimeront MH pour cette spécificité, d'autres non. Chaque outil de MH effectue une action, et l'effectue très bien. En plus de tous les outils de gestion des courriers électroniques, chaque outil MH comporte un mécanisme de configuration uniforme. En fait, si vous ne savez pas vraiment comment marche un outil, ou de quels arguments il dispose, vous vous en sortez généralement très facilement. Toutes les commandes de MH gèrent de façon identique les fichiers de configuration et les arguments de la ligne de commande. La chose la plus importante est de se souvenir que vous pouvez toujours passer l'option à une commande pour afficher toutes les options disponibles. Pour commencer, assurez vous que vous avez installé les programmes de MH sur votre machine. Si vous disposez d'un CDROM vous devez pouvoir l'installer en exécutant la commande suivante : #>pkg_add /cdrom/packages/mh-6.8.3.tgz Vous verrez alors la création d'un répertoire /usr/local/lib/mh ainsi que l'ajout de différents binaires dans le répertoire /usr/local/bin. Si vous préférez le compiler vous même, vous pouvez télécharger les sources en ftp anonyme depuis ftp.ics.uci.edu ou louie.udel.edu. Cette introduction n'est pas une explication détaillée de la façon de fonctionner de MH. Elle vous permettra juste démarrer sur la route de la façon la plus rapide de lire vos emails. Vous devrez surement consulter les pages de manuels des différentes commandes par la suite. De même il serait bon de lire le FAQ sur MH et de vous abonnez au forum de discussion comp.mail.mh. Cependant la meilleur ressource sur MH est le livre écrit par Jerry Peek aux éditions O'Reilly et Associates. Lire le courrier Ce chapitre explique les commandes inc, show, scan, next, prev, rmm, rmf, and msgchk. Le meilleur atout de MH est la consistence de l'interface entre les différents programmes. La chose la plus importante à retenir lorsque l'on utilise les différentes commandes, est la façon de spécifier une liste de messages. Dans le cas de la commande inc cela n'a aucun sens mais avec des commandes comme show c'est plus qu'utile. Une liste de messages consiste en quelque chose comme 23 20 16, qui corresponds aux messages 23, 20 et 16. C'est vraiment très simple, mais vous pouvez avoir des choses plus utiles comme 23-30 correspondant à tous les messages entre le message 23 et le message 30. Vous pouvez aussi spécifier cur:10, qui correspond au message courant et aux 9 messages suivants. Les messages curlast, et first -sont des messages spéciaux reférant au message courant, dernier +sont des messages spéciaux référant au message courant, dernier message, et premier message du dossier. <command>inc</command>, <command>msgchk</command>—lire ou vérifier vos messages Si vous tapez la commande inc sans arguments, vous débutez sur la bonne voie pour lire votre courrier avec MH. La première fois ou vous utilisez inc, il configurera votre compte pour utilisez toutes les valeurs par défaut de MH et vous demandera la création d'un répertoire Mail. Si vous avez des messages et attente de téléchargement, vous verrez quelque chose qui peut ressembler à ceci: 29 01/15 Doug White Re: Another Failed to boot problem<<On Mon, 15 J 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa Vous obtenez la même vue que si vous utilisiez la commande scan (voir ). Si vous lancez inc sans arguments , cela vous affiche juste le courrier qui vous est destiné. Enormément de personnes utilisent le protocole POP pour lire leur mail. MH sait utiliser le protocole POP pour rapatrier les emails sur votre poste. Vous devez passer plusieurs arguments à inc pour cela. tempest% inc -host mail.pop.org -user NomUtilisateur -norpop Cela invoque la commande inc en lui disant d'aller télécharger le courrier sur le serveur mail.pop.org, avec comme nom d'utilisateur NomUtilisateur. L'option demande à la commande inc de télécharger le courrier en clair suivant le protocole POP3. MH supporte plusieurs variantes du protocole POP3. Vous n'utiliserez pas dans la plupart des cas les autres variantes. Vous pouvez effectuer des taches plus complexes avec inc comme, auditer des fichiers ou parcourir des fichiers formattés La commande msgchk vous permet de savoir si vous avez ou non de nouveaux messages dans votre boite.msgchk accepte les mêmes options , et , que la commande inc. <command>show</command>, <command>next</command> et <command>prev</command>—afficher un message et se déplacer dans une boite. show vous permet de visualiser un courrier de votre boite. Comme inc,show est une commande assez franche.Si vous tapez show sans paramètres elle affiche le message courant. Vous pouvez aussi demander l'affichage de messages particuliers en donnant son numéro à show: tempest% show 32 45 56 Cela affichera les fichiers numéros 32 45 56 à la suite l'un de l'autre. Si vous changez rien à la configuration par défaut, show ne fera rien d'autre qu'un more sur le fichier contenant votre message. next s'utilise pour se déplacer au message suivant et prev pour revenir au message -précedent. Ces deux commandes executent automatiquement un +précédent. Ces deux commandes exécutent automatiquement un show ce qui vous permet de lire automatiquement le message suivant ou précédant. <command>scan</command>—Afficher un résumé de vos messages scan affiche un bref descriptif de tous les messages de votre répertoire courant. Voici un exemple d'affichage de la commande show: 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa Comme tout dans MH, l'affichage est complètement configurable. Ce qui est fournit dans l'exemple ci-dessus est l'affichage par défaut. Il vous permet de visualiser le numéro du message, la date d'envoi, l'envoyeur, le sujet et une partie du début du message. Le caractère + vous indique le message courant donc si vous tapez la commande show vous visualiserez ce message. Une option très utile de scan est l'option . Cette option permet de lister l'ensemble de vos messages en affichant en premier le message ayant le numéro le plus élevé. Une autre option très interessante de scan lui permet de lire les données depuis un fichier. Si vous désirez parcourir votre boite aux lettres de courrier entrant sans avoir à lancer la commande inc, il vous suffit de faire scan -file /var/mail/nom_d_utilisateur. Cela peut etre fait sur n'importe quel fichier au format mbox. <command>rmm</command> et <command>rmf</command>— Effacer le message courant ou le dossier rmm est utilisé pour effacer un message. Par défaut le message n'est pas vraiment détruit mais renommé en un fichier dont le nom est ignoré par les commandes de MH. Vous devrez effacer physiquement de façon périodique les messages “effacés”. La commande rmf permet d'effacer un dossier. Cela ne renomme pas les fichiers mais les efface du disque -dur, vous devez donc faire extrèmement attention lorsque vous +dur, vous devez donc faire extrêmement attention lorsque vous l'utilisez. Un session typique de lecture avec MH La première chose que vous ferez sera de lancer la commande inc. Donc sous l'interpréteur de commandes tapez inc et la touche entrée. tempest% inc Incorporating new mail into inbox... 36+ 01/19 "Stephen L. Lange Request...<<Please remove me as contact for pind 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In tempest% Cela vous permet de visualiser les nouveaux messages rapatriés dans -votre boite aux lettres. La commande suivante a éxécuter est +votre boite aux lettres. La commande suivante a exécuter est show pour vous permettre de les visualiser et de vous déplacer dans votre liste de messages. tempest% show Received: by sashimi.wwa.com (Smail3.1.29.1 #2) id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST) From: "Stephen L. Lange" <stvlange@wwa.com> To: matt@garply.com Subject: Request... Message-Id: <Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Please remove me as contact for pindat.com tempest% rmm tempest% next Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8 .6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT Message-Id: <199601191756.RAA24416@whydos.lkg.dec.com> X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro tocol To: hsu@clinet.fi Cc: hackers@FreeBSD.org Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet boards) In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100." <199601182318.AA11772@Sysiphos> X-Mailer: exmh version 1.5omega 10/6/94 Date: Fri, 19 Jan 1996 17:56:40 +0000 From: Matt Thomas <matt@lkg.dec.com> Sender: owner-hackers@FreeBSD.org Precedence: bulk This is due to a typo in pcireg.h (to which I am probably the guilty party). La commande rmm efface le message courant et la commande next permet de déplacer le numéro du message courant au message suivant. Maintenant vous désirez visualiser les dix courriers les plus récents, pour choisir lequel vous désirez lire: tempest% scan last:10 26 01/16 maddy Re: Testing some stuff<<yeah, well, Trinity has 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19 28 01/17 Evans A Criswell Re: Hey dude<<>From matt@tempest.garply.com Tue 29 01/16 Karl Heuer need configure/make volunteers<<The FSF is looki 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)< 31 01/18 Bill Lenherr Re: Linux NIS Solaris<<--- On Thu, 18 Jan 1996 1 34 01/19 John Fieber Re: Stuff for the email section?<<On Fri, 19 Jan 35 01/19 support@foo.garpl [garply.com #1138] parlor<<Hello. This is the Ne 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In tempest% Maintenant vous voulez lire le message numéro 27, donc vous tapezshow 27 et il s'affiche. Comme vous pouvez le voir après ce court exemple MH est très simple à utiliser pour visualiser et lire votre courrier et est de plus très intuitif. -Chercher parmis les messages et les dossiers +Chercher parmi les messages et les dossiers Toute personne qui a beaucoup de mails aime à pouvoir mettre des priorités, marquer les messages, les numéroter de différentes façons. MH permet de faire toutes ces taches de façons très simple comme d'habitude. Une chose dont nous n'avons pas encore parlé est le -concept de dossier. Vous avez surement utilisé le concept de dossier -avec d'autres programmes de lecture de courrier éléctronique. MH a +concept de dossier. Vous avez sûrement utilisé le concept de dossier +avec d'autres programmes de lecture de courrier électronique. MH a aussi des dossiers. MH peut aussi avoir des sous-dossiers de dossiers. Un chose que vous devez avoir à l'esprit quand vous utilisez la commande inc, pour la première fois, est qu'elle demande si vous voulez créer le répertoire Mail, et qu'elle enregistre tout dans ce répertoire. Si vous regardez ce qu'il se trouve dans ce répertoire, vous verrez un répertoire inbox. Ce répertoire comporte tous vos nouveaux messages qui n'ont pas encore été déplacés dans un autre dossier. Lorsque vous créez un nouveau dossier, un répertoire est crée sous votre répertoire Mail et les messages à destination de se dossier sont stockés dans ce répertoire. Lorsque un nouveau message arrive, il est déposé dans votre répertoire inbox avec comme nom le numéro du message. Donc même si vous n'avez pas les outils MH pour lire votre courrier, vous pouvez utiliser les commandes standards UNIX pour vous déplacer parmis les dossiers et visualiser vos messages. C'est cette simplicité qui vous donne autant de puissance dans le traitement de vos messages. De la meme façon ou vous pouvez utiliser une liste de messages, comme 23 16 42, avec la plupart des commandes MH; il y a une option utilisable avec toutes les commandes MH vous permettant de travailler dans le dossier spécifié. Si vous essayer scan +freebsd, vous allez parcourir le dossier freebsd. Si vous faites un show +freebsd 23 16 42, la commande show affichera les messages 23, 26 et 42 du dossier freebsd. Donc souvenez vous que la syntaxe . Vous en aurez besoin pour lancer les commandes dans les différents dossiers. Souvenez vous aussi que votre dossier de courrier entrant par défaut est inbox, donc en faisant un folder +inbox vous aurez la liste de vos nouveaux messages. Bien sur grace à la flexibilité de MH, vous pourriez changer ce dossier, -mais il y a peu d'interet à le faire. +mais il y a peu d'intêret à le faire. <command>pick</command>— recherche par critères dans les messages pick est une des commandes les plus compliquées de MH. Je ne saurais pas mieux vous conseiller que d'aller voir la page de manuel de pick1 pour bien la comprendre. La plus simple façon de s'en servir est la suivante: tempest% pick -search pci 15 42 55 56 57 Cela vous permet de trouver les numéros de tous les messages comprenant le mot pci dans une des lignes du message. Vous pouvez ensuite lancer la commande show sur ces messages pour les lire ou rmm pour les effacer. Vous devrez bien sur lancer la commande suivante show 15 42 55-57 pour les voir tous. Une façon un peu plus compliquée d'utiliser pick serait la suivante: tempest% pick -search pci -seq pick 5 hits tempest% show pick Cela vous permet de voir les memes messages que précédemment sans vous fatiguer. L'option n'est rien de plus qu'une abréviation de l'option et la commande pick n'est rien de plus qu'une sequence comportant les numéros des messages vérifiant le critère. Vous pouvez aussi utiliser la commande rmm pick pour effacer tous les messages qui répondent au critère. Le nom de la sequence n'est pas signifiant. Si vous relancez la commande pick de -nouveau, l'ancienne séquence sera effacée si vous utilisez le meme +nouveau, l'ancienne séquence sera effacée si vous utilisez le même nom. Si vous n'utilisiez que la commande pick -search, cela peut prendre plus de temps que de chercher un message entre un destinataire et un envoyeur. La commande pick dispose donc de certains critères prédéfinis: recherche sur le destinataire recherche dans le champ cc du message recherche sur l'expéditeur du message recherche dans le sujet du message recherche par rapport à la date du message -recherche sur un quelconque autre entete. (ex: - pour rechercher dans les entetes reply-to +recherche sur un quelconque autre entête. (ex: + pour rechercher dans les entêtes reply-to des messages) Cela permet d'avoir des requetes de ce type: tempest% pick -to freebsd-hackers@freebsd.org -seq hackers pour avoir tous les messages envoyés à la liste de diffusion hackers de FreeBSD. pick vous permet de grouper de -différentes façon en fonctiondu critère. +différentes façon en fonction du critère. &hellip Ces options permettent de faire des choses comme ceci: tempest% pick -to freebsd-hackers -and -cc freebsd-hackers Cela vous permet de retrouver tous les messages envoyés à la liste freebsd-hackers ou mis en copie à cette liste. Les options et vous permettent de grouper les critères ensemble. Cela peut etre util dans certaines situations, comme dans l'exemple suivant: tempest% pick -lbrace -to freebsd-hackers -and -not -cc freebsd-questions -rbrace -and -subject pci Cet exemple vous permet d'extraire tous les mails destinés à la liste freebsd-hackers (mais qui ne sont pas mis en copie pour la liste freebsd-questions) et dont le sujet est pci. Normalement vous vous poseriez la question; mais quelle est la précédence des opérateurs ? Vous vous rappelez qu'en mathématiques les expressions sont évaluées de gauche à droite et que la multiplication et la division ont plus de poids que les additions et les soustractions. MH -utilise les memes règles pour la commande pick. Les -combinaisons peuvent etre très complexes, donc lisez la page de manuel +utilise les mêmes règles pour la commande pick. Les +combinaisons peuvent être très complexes, donc lisez la page de manuel pour plus d'informations. Ce document est juste la pour vous aider à découvrir MH. <command>folder</command>, <command>folders</command>, <command>refile</command>— trois programmes utiles pour gérer vos dossiers. Il y a trois programmes vous permettant de gérer de façon primitive vos dossiers. Le programme folder est utilisé pour changer de dossiers, lister leur contenu. Vous pouvez lancer la commande folder +dossier2 et automatiquement, vous vous retrouverez dans le dossier dossier2. Alors toutes les commandes MH, telles que comp,repl,scan, et show utiliserons le dossier dossier2. Quelques fois lorsque vous lisez et effacez dans messages vous avez des discontinuitées dans vos dossiers. Si vous faites un scan vous pouvez voir les messages 34, 35, 36, 43, 55, 56, 57, 80. Si vous faites un folder -pack, cela vous permet de renuméroter tous vos messages, et vous n'aurez -plus de disccontinuitées. Cela n'efface aucun message. Vous devez donc +plus de discontinuitées. Cela n'efface aucun message. Vous devez donc périodiquement faire des rmm sur vos messages. -Si vous desirez des statistiques sur vos dossiers, vous pouvez +Si vous désirez des statistiques sur vos dossiers, vous pouvez faire des folders ou des folder -all pour obtenir la liste de vos dossiers, combien de messages comporte chaque dossier et quel est le message courant dans -chacun. La ligne de statistique affichée est la meme que celle que +chacun. La ligne de statistique affichée est la même que celle que vous avez lorsque vous changez de dossier avec la commande folder +dossier2. Un exemple de la commande -folders pourrait etre: +folders pourrait être: Folder # of messages ( range ); cur msg (other files) announce has 1 message ( 1- 1). drafts has no messages. f-hackers has 43 messages ( 1- 43). f-questions has 16 messages ( 1- 16). inbox+ has 35 messages ( 1- 38); cur= 37. lists has 8 messages ( 1- 8). netfuture has 1 message ( 1- 1). out has 31 messages ( 1- 31). personal has 6 messages ( 1- 6). todo has 58 messages ( 1- 58); cur= 1. TOTAL= 199 messages in 13 folders. -La commande refile vous permet de deplacer +La commande refile vous permet de déplacer les messages entre les dossiers. Si vous faites un refile 23 +nouveaudossier, le message 23 sera déplacer dans le dossier nouveaudossier. Vous pouvez tout aussi bien faire un refile 23 +nouveaudossier/sousdossier1 qui déplacera le message 23 dans le un sous dossier,sousdossier1, du dossier nouveaudossier. Si vous voulez garder un message dans le dossier courant tout en le mettant dans un autre, vous devez lancer la commande refile -link 23 +nouveaudossier, qui gardera le message dans le dossier inbox tout en le listant dans le dossier nouveaudossier. Cela vous permet de réaliser toutes les choses merveilleuses que vous pouvez faire avec MH. Envoyer des messages L'email est pour beaucoup de gens, comme une rue a double sens, vous voudrez donc répondre a certains messages. La façon qu'emploie MH -pour envoyer des messages peut etre difficile a comprendre au début, +pour envoyer des messages peut être difficile a comprendre au début, mais il permet une énorme flexibilitée.La première chose que fait MH, est de copier un "composant" dans votre file de messages sortant. Un -"composant" est en fait un squelette de message comportant les entetes +"composant" est en fait un squelette de message comportant les entêtes To: et Subject:. Le système -lance ensuite votre éditeur favori ou vous pouvez remplir les entetes +lance ensuite votre éditeur favori ou vous pouvez remplir les entêtes et composer le corps du message sous les pointillés dans le message. Ensuite vous lancez la commande whatnow. Et lorsque vous avez le prompt What now?, vous pouvez répondre par une des commandes suivante send, list, edit, edit, push, and quit. La plupart des commandes précédentes -s'expliquent d'elles meme. Donc le processus d'envoi de message est le +s'expliquent d'elles même. Donc le processus d'envoi de message est le suivant; copie du fichier "composant", édition de votre message, et lancement de la commande whatnow en lui indiquant quoi faire de votre message. <command>comp</>, <command>forw</>, <command>reply</>—composer, faire suivre ou répondre à un message La commande comp comporte quelques options de la ligne de commande intéressantes. La plus importante est .Lorsque vous installez MH, un programme -appellé prompter est utiliser comme éditeur de -texte par défaut. Ce n'est pas un éditeur très interessant. Donc -lorsque vous composez un message, vous utiliserez surement +appelé prompter est utiliser comme éditeur de +texte par défaut. Ce n'est pas un éditeur très intéressant. Donc +lorsque vous composez un message, vous utiliserez sûrement comp -editor /usr/bin/vi ou comp -editor /usr/local/bin/pico a la place. Après avoir lancer comp, vous vous trouvez dans votre éditeur de texte favori et vous voyez quelque chose qui ressemble à ceci: To: cc: Subject: -------- -Vous devez ajoutez l'addresse de votre destinataire apres le mot -To:. Vous devez remplir de la meme manière les -autres entetes, donc vous devez mettre le sujet après le mot +Vous devez ajoutez l'adresse de votre destinataire après le mot +To:. Vous devez remplir de la même manière les +autres entêtes, donc vous devez mettre le sujet après le mot Subject:. Vous pouvez ensuite ajouter le corps de votre message après les lignes pointillées. Cela peut vous sembler un peu simpliste par rapport a d'autres programmes de messagerie qui vous pose des questions et remplissent automatiquement les différents -entete, mais cela vous apporte une excellente flexibilité. +entête, mais cela vous apporte une excellente flexibilité. To:freebsd-rave@freebsd.org cc: Subject:Et le 8ème jour, Dieu créa le bureau des directeurs de FreeBSD -------- Ouah, c'est un super système d'exploitation. Merci ! Vous pouvez ensuite, sauvegarder le message et quitter votre éditeur. Vous aurez alors le prompt What now? et vous pourrez taper send ou s et appuyer sur la touche entrée. Alors l'équipe -principal de développemet de FreeBSD recevra votre gratitude. Comme -mentionné précedemment vous pouvez utiliser une des autres réponse, +principal de développement de FreeBSD recevra votre gratitude. Comme +mentionné précédemment vous pouvez utiliser une des autres réponse, par exemple quit si vous ne voulez pas envoyer ce message. La commande forw s'utilise de façon similaire. La principal différence est que le message que vous envoyez comprends dans son corps le message courant. Lorsque vous utilisez la commande forw, vous faites suivre le message courant a un autre destinataire. Vous pouvez faire suivre un autre message en utilisant de la façon suivante forw 23 la commande forw, ainsi le message 23 sera ajoute dans le corps du message composé. A part ces simples différences, la -commande forw, fonctionne de la meme façon que la +commande forw, fonctionne de la même façon que la commande comp. La commande repl vous permet de répondre au message courant, sauf si vous lui indiquez un autre numéro de message. La commande repl essaye de remplir au -mieux les différents champs de l'entete en fonction de ce qui se +mieux les différents champs de l'entête en fonction de ce qui se trouve dans le message de base. Vous noterez donc que le -champ To: de l'entete comporte deja l'adresse du +champ To: de l'entête comporte deja l'adresse du destinataire et que la ligne Subject: est deja remplie. Ensuite vous composez de la façon habituelle votre -message. Un option interessante de cette commande est -. Vous pouvez utiliser comme parametre +message. Un option intéressante de cette commande est +. Vous pouvez utiliser comme paramètre all, to, cc,me avec cette option; cela vous permet d'ajouter de façon simple, les adresses en copie du -message original. Vous noterez que le message original n'est pas inclu +message original. Vous noterez que le message original n'est pas inclus par défaut. C'est le comportement par défaut de la plupart des configuration de MH. <filename>components</filename>, et <filename>replcomps</filename>—les fichiers de composition pour <command>comp</> and <command>repl</> Le fichier components se trouve la plupart du temps dans le répertoire /usr/local/lib/mh. Vous pouvez copier ce fichier dans votre répertoire de MH et l'éditer pour ajouter ce que vous -voulez. Vous avez certaines lignes d'entete de mail par défaut au +voulez. Vous avez certaines lignes d'entête de mail par défaut au début, une ligne pointillée et puis plus rien. La commande comp ne fait que copier ce fichier et vous permet -ensuite de l'éditer. Vous pouvez ajouter n'importe quel entete valide +ensuite de l'éditer. Vous pouvez ajouter n'importe quel entête valide (RFC822). Par exemple, vous pourriez avoir le fichier components suivant: To: Fcc: out Subject: X-Mailer: MH 6.8.3 X-Comment: FreeBSD the power to serve X-Home-Page: http://www.freebsd-fr.org/ ------- MH copiera donc ce fichier et vous enverra dans votre éditeur favori. Le fichier components est très simple. Si vous désirez inclure une signature, il vous suffit de l'ajouter dans ce fichier. Le fichier replcomps est un peu plus complexe. Son contenu par défaut ressemble à ceci: %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ %<(nonnull)%(void(width))%(putaddr To: )\n%>\ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\ %<{fcc}Fcc: %{fcc}\n%>\ %<{subject}Subject: Re: %{subject}\n%>\ %<{date}In-reply-to: Your message of "\ %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} %{message-id}%>\n%>\ -------- -Ce fichier a le meme format de base que le fichier +Ce fichier a le même format de base que le fichier components mais il comporte un peu plus de codes de mise en forme. La commande %(lit) crée l'espace nécessaire pour l'adresse. La commande %(formataddr est une fonction qui retourne une adresse e-mail cohérente. Le morceau suivant %< permet de remplir le champ de l'adresse avec l'adresse correspondante dans le cas ou elle se trouve dans le champ {reply-to} du message de -l'emetteur. Cela sera donc transfomé de la manière suivante: +l'émetteur. Cela sera donc transformé de la manière suivante: %<si {reply-to} dans le message original ou trouve un champ reply-to alors la mettre dans le champ formataddr, %? sinon prendre le contenu du champ {from} , %? sinon prendre le champ {sender} , %? et en dernier lieu prendre le champ {return-path} , %> endif. Comme vous pouvez le voir, le formattage des champs de MH peut -etre largement étendu. Vous pourrez surment décrypter le maximum des +être largement étendu. Vous pourrez sûrement décrypter le maximum des autres fonctions et des noms de variables. Toutes les autres -informations sur le façon d'écrire ces chaines de formattage se trouve -dans la page de manuel de MH. Donc lorsque vous aurez finit de creer +informations sur le façon d'écrire ces chaînes de formattage se trouve +dans la page de manuel de MH. Donc lorsque vous aurez finit de créer votre fichier replcomps vous n'aurez plus besoin d'y toucher. Aucun autre programme ne vous donne autant de flexibilité et de pouvoir que MH.
diff --git a/fr_FR.ISO8859-1/articles/multi-os/article.sgml b/fr_FR.ISO8859-1/articles/multi-os/article.sgml index 817964f756..b4579ae17b 100755 --- a/fr_FR.ISO8859-1/articles/multi-os/article.sgml +++ b/fr_FR.ISO8859-1/articles/multi-os/article.sgml @@ -1,700 +1,700 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Installer et utiliser FreeBSD en même temps que d'autres systèmes d'exploitation Jay Richmond &artheader.copyright; jayrich@sysc.com 6 Aout 1996 Ce document explique comment faire cohabiter proprement FreeBSD et d'autres systèmes d'exploitation courants tels que Linux, MS-DOS, OS/2 et Windows 95. Remerciements particuliers à Annelise Anderson andrsn@stanford.edu, Randall Hopper rhh@ct.picker.com et Jordan K. Hubbard jkh@time.cdrom.com. &abstract.license; &abstract.disclaimer; &trans.a.haby; Résumé La plupart des gens n'arrivent pas à faire cohabiter leurs divers systèmes d'exploitation sans des disques de grande capacité, des informations sur les gros disques EIDE sont donc incluses. Comme il y a de nombreuses combinaisons possibles de systèmes d'exploitation et de configurations de disques durs, la section Exemples sera peut-être celle qui vous sera la plus utile. Elle décrit plusieurs configurations d'ordinateurs utilisant plusieurs systèmes d'exploitation. Ce document suppose que vous avez déjà préparé de la place sur votre disque dur pour un système d'exploitation supplémentaire. Chaque fois que vous repartitionnez votre disque dur, vous prenez le risque de détruire les données qui se trouvent sur les partitions existantes. Toutefois, si votre disque est entièrement occupé par DOS, vous trouverez peut-être le programme FIPS (qui se trouve sur le CD-ROM FreeBSD dans le répertoire \TOOLS ou que vous pouvez télécharger par ftp) utile. Il vous permet de repartitionner votre disque sans détruire les données qui s'y trouvent. Il existe aussi une programme commercial appelé Partition Magic, qui vous permet de dimensionner et de supprimer des partitions sans dégât. Revue des gestionnaires de démarrage Ce ne sont que de brèves descriptions des différents gestionnaires de démarrage que vous rencontrerez. Selon la configuration de votre ordinateur, vous pourrez trouver utile d'en employer plus d'un sur le même système. Boot Easy C'est le gestionnaire de démarrage par défaut de FreeBSD. Il peut démarrer à peu près n'importe quoi, y compris BSD, OS/2 (HPFS), Windows 95 (FAT et FAT32) et Linux. Les partitions sont sélectionnées à l'aide des touches fonction. OS/2 Boot Manager Il démarrera depuis la FAT, HPFS, FFS (FreeBSD) et EXT2 (Linux). Il peut aussi démarrer depuis des partitions FAT32. Les partitions sont sélectionnées avec les touches Flèches. Le gestionnaire de démarrage OS/2 Boot Manager est le seul à utiliser sa propre partition distincte, à l'inverse des autres qui utilisent l'enregistrement principal de démarrage (Master Boot Record - MBR). Il doit donc être installé dans les 1024 premiers cylindres pour éviter des problèmes de démarrage. Il peut charger Linux en utilisant LILO lorsque ce dernier se trouve sur le secteur de démarrage et non sur le MBR. Allez sur les HOWTO Linux sur le World Wide Web pour plus d'informations sur le démarrage de Linux avec le gestionnaire de démarrage d'OS/2. OS-BS C'est une alternative à Boot Easy. Il vous donne plus de contrôle sur le processus de démarrage, avec la possibilité de sélectionner la partition à démarrer par défaut et le délai de démarrage. La version béta de ce programme vous permet de sélectionner le système d'exploitation à démarrer avec les touches Flèches. Il est inclus sur le CD-ROM FreeBSD dans le répertoire \TOOLS et vous pouvez le télécharger par ftp. LILO, ou LInux LOader (“chargeur Linux”) C'est un gestionnaire de démarrage limité. Il peut démarrer FreeBSD, mais il faut acommoder son fichier de configuration. A propos de la FAT32: La FAT32 remplace le système de fichiers FAT depuis la version Microsoft OEM SR2 Béta, qui sera utilisée sur les ordinateurs avec Windows 95 pré-installé vers la fin de 1996. Elle convertit le système de fichiers FAT habituel et permet d'utiliser des tailles d'agrégat - “cluster” - plus petites sur de plus gros disques. La FAT32 modifie aussi le secteur de démarrage et la table d'allocation habituels de la FAT, ce qui la rend incompatible avec certains gestionnaires de démarrage. Une configuration typique Supposons que nous ayons deux gros disques EIDE, et que nous voulions y installer FreeBSD, Linux et Windows 95. Voici comment je procéderais avec ces disques durs: /dev/wd0 (premier disque dur physique), /dev/wd1 (second disque dur). Ils ont tous deux 1416 cylindres. Je démarre avec une disquette de démarrage MS-DOS ou Windows qui contient l'utilitaire FDISK.EXE et crée une petite partition primaire de 50 Mo (35-40 pour Windows 95 et un peu d'espace libre) sur le premier disque. Je crée aussi une partition plus importante sur le second disque pour mes applications et mes données Windows. Je redémarre et installe Windows 95 (plus facile à dire qu'à faire) sur la partition C:. J'installe ensuite Linux. Je ne suis pas certain pour qui concerne toutes les distributions de Linux, mais la Slackware comprend LILO (voyez la section Revue des gestionnaires de démarrage). Au moment de partitionner mon disque dur avec l'utilitaire fdisk de Linux, je mets tout Linux sur le premier disque (peut-être 300 Mo pour une partition racine confortable et de l'espace de pagination). Après avoir installé Linux, et quand on me demande si je veux installer LILO, je fais attention à l'installer sur le secteur de démarrage de ma partition racine Linux, et non sur le MBR (Master Boot Record - enregistrement principal de démarrage). L'espace restant disponible sur le disque peut servir à FreeBSD. Je vérifie aussi que la tranche - “slice” - racine de FreeBSD ne déborde pas de la limite des 1024 cylindres (1024 cylindres correspond à 528 Mo à partir du début du disque sur nos hypothétiques disques de 720 Mo). J'utiliserai éventuellement le reste du disque dur (environ 270 Mo) pour les tranches /usr et /var. Le reste du second disque (l'espace disponible dépend de la taille de ma partition d'applications/données Windows que j'ai créée à l'étape 1) peut être utilisé pour la tranche /usr/src et l'espace de pagination. Vus de l'utilitaire fdisk de Windows 95, mes disques ressembleraient à ceci: --------------------------------------------------------------------- Display Partition Information Current fixed disk drive: 1 Partition Status Type Volume_Label Mbytes System Usage C: 1 A PRI DOS 50 FAT** 7% 2 A Non-DOS (Linux) 300 43% Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) Press Esc to continue --------------------------------------------------------------------- Display Partition Information Current fixed disk drive: 2 Partition Status Type Volume_Label Mbytes System Usage D: 1 A PRI DOS 420 FAT** 60% Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) Press Esc to continue --------------------------------------------------------------------- Disons FAT16, ou FAT32 si vous utilisez la mise à jour OEM SR2 (voyez la section Revue des gestionnaires de démarrage). J'installe FreeBSD. Je veille à démarrer avec le premier disque dur défini comme “NORMAL” dans le paramétrage du BIOS. Sans cela, je devrais indiquer la géométrie réelle de mon disque au démarrage (pour la connaître, démarrez Windows 95 et consultez les diagnostics Microsoft (MSD.EXE) ou allez voir dans le BIOS) avec le paramètre hd0=1416,16,631416 est le nombre de cylindres de mon disque dur, 16 est le nombre de têtes par piste et 63 est le nombre de secteurs par tête. Au moment de partitionner le disque dur, je fais attention à bien installer Boot Easy sur le premier disque. Je ne m'occupe pas du second disque, à partir duquel rien n'est démarré. Au redémarrage, Boot Easy devrait reconnaître mes trois partitions démarrables comme DOS (Windows 95), Linux et BSD (FreeBSD) Considérations particulières La plupart des systèmes d'exploitation sont très chatouilleux sur la façon et l'endroit où ils sont installés sur le disque dur. Windows 95 et DOS doivent être sur la première partition primaire du premier disque dur. OS/2 fait exception. Il peut être sur le premier ou le second disque et sur une partition primaire ou étendue. Si vous n'êtes pas sûr de vous, gardez le début des partitions démarrables avant le 1024ème cylindre. Si vous installez Windows 95 sur un système BSD existant, cela va “écraser” le MBR, et vous devrez réinstaller votre précédent gestionnaire de démarrage. Boot Easy peut être réinstallé avec l'utilitaire BOOTINST.EXE qui se trouve dans le répertoire \TOOLS du CD-ROM, ou peut être téléchargé par ftp. Vous pouvez aussi relancer le processus d'installation et aller dans l'éditeur de partitions. De là, indiquez que la partition FreeBSD est démarrable, choisissez l'option (gestionnaire de démarrage) et tapez W pour écrire les informations sur le MBR. Vous pouvez maintenant redémarrer, et Boot Easy reconnaîtra votre Windows 95 en tant que DOS. N'oubliez pas s'il vous plaît qu'OS/2 peut lire les partitions FAT et HPFS, mais pas les partitions FFS (FreeBSD) ou EXT2 (Linux). De même, Windows 95 ne peut que lire et écrire sur les partitions FAT et FAT32 (voyez la section Revue des gestionnaire de démarrage). FreeBSD peut lire la plupart des systèmes de fichiers, mais ne sait pas actuellement lire les partitions HPFS. Linux peut lire les partitions HPFS, mais ne peut pas y écrire. Les versions récentes du noyau Linux (2.x) peuvent lire et écrire les partitions VFAT de Windows 95 (La VFAT est ce qui permet à Windows d'utiliser des noms de fichiers longs - c'est à peu près la même chose que la FAT). Linux peut lire et écrire sur la plupart des systèmes de fichiers. Pigé? Je l'espère. Exemples (Cette section a besoin d'être revue, envoyez s'il vous plaît vos exemples à jayrich@sysc.com.) FreeBSD + Windows 95: Si vous avez installé FreeBSD après Windows 95, vous devriez voir la mention DOS sur le menu de Boot Easy. C'est Windows 95. Si vous avez installé Windows 95 après FreeBSD, lisez la section Considérations particulières ci-dessus. Tant que votre disque n'a pas 1024 cylindres, vous ne devriez pas avoir de problèmes pour démarrer. Si toutefois une de vos partitions va au-delà du 1024ème cylindre, et que vous avez des messages du type invalid system disk sous DOS (Windows 95) et que FreeBSD ne démarre pas, cherchez dans les paramètres de configuration de votre BIOS quelque chose appelé “> 1024 cylinder support” ou mode “NORMAL/LBA”. DOS peut avoir besoin du LBA (Logical Block Adressing - Adressage de bloc logique) pour démarrer correctement. Si la perspective de modifier les paramètres du BIOS à chaque démarrage ne vous enchante pas, vous pouvez démarrer FreeBSD depuis DOS avec l'utilitaire FBSDBOOT.EXE du CD (il devrait reconnaître votre partition FreeBSD et la démarrer). FreeBSD + OS/2 + Windows: Rien de nouveau dans ce cas. Le gestionnaire de démarrage d'OS/2 peut démarrer tous ces systèmes d'exploitation, il ne devrait pas y avoir de problème. FreeBSD + Linux: Vous pouvez aussi utiliser Boot Easy pour démarrer les deux systèmes d'exploitation. FreeBSD + Linux + Windows 95: (voyez la section Une installation typique). Autres endroits où trouver de l'aide Il y a de nombreux HOWTO Linux qui traitent des systèmes d'exploitation multiples sur un même disque. Le mini-HOWTO Linux+DOS+Win95+OS2 donne des indications sur la configuration du gestionnaire de démarrage d'OS/2, et le mini-HOWTO Linux+FreeBSD peut aussi vous intéresser. L'HOWTO Linux est aussi utile. Le Guide de programmation du chargeur NT fournit des informations intéressantes sur le démarrage de Windows NT, 95 et DOS avec d'autres systèmes d'exploitation. Le jeu de documents d'Hale Landis, “Comment ça marche”, contient de bonnes informations sur toutes sortes de géométries de disques et autres sujets liés au démarrage. Voici quelques liens qui peuvent vous aider à le trouver: ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip, http://www.cs.yorku.ca/People/frank/docs/. Enfin, ne négligez pas la documentation du noyau de FreeBSD sur le processus de démarrage, disponible dans la distribution du source du noyau (elle est installée dans /usr/src/sys/i386/boot/biosboot/README.386BSD). Détails Techniques (Contribution de Randall Hopper rhh@ct.picker.com) Cette section tente de vous donner assez d'informations de base sur vos disques durs et sur le processus de démarrage à partir d'un disque pour vous permettre de régler la plupart des problèmes que vous pourriez rencontrer lorsque vous configurerez le démarrage de plusieurs systèmes d'exploitation. Elle commence par des choses relativement élémentaires, vous préférerez donc peut-être la parcourir en diagonale jusqu'à ce que les points abordés vous paraissent moins familiers et commencer alors à la lire en détail. Introduction aux disques Trois termes fondamentaux décrivent la localisation des données sur vos disques durs: Cylindres, Têtes et Secteurs. Il n'est pas très important de savoir à quoi ils se rapportent sinon qu'ensemble, ils définissent où sont physiquement les données sur le disque. Votre disque a un nombre donné de cylindres, de têtes, et de secteurs par tête-cylindre (un doublet tête-cylindre est aussi appelé une piste). Ensemble, ces informations définissent la “géométrie physique” de votre disque. Il y a typiquement 512 octets par secteur et 63 secteurs par pistes, le nombre de cylindres et de têtes variant très largement d'un disque à l'autre. Vous pouvez alors calculer la quantité d'informations que peut enregistrer votre disque par la formule: nombre de cylindres X nombre de têtes X 63 secteurs/piste X 512 octets/secteur Par exemple, pour mon disque Western Digital AC31600 EIDE de 1,6 Go, cela donne: 3148 cylindres X 16 têtes X 63 secteurs/piste X 512 octets/secteur c'est-à-dire 1.624.670.208 octets, ou environ 1,6 Go. Vous pouvez connaître la géométrie physique de votre disque dur (nombre de cylindres, de têtes et de secteurs par piste) avec ATAID ou d'autres programmes que vous trouverez sur l'Internet. Ces informations sont peut-être aussi fournies avec votre disque. Faites cependant attention: si vous utilisez le LBA du BIOS (voyez la section Restrictions pour le démarrage et avertissements), vous ne pouvez pas vous servir de n'importe quel programme pour connaître la géométrie physique. Cela parce que de nombreux programmes (e.g., MSD.EXE ou le fdisk de FreeBSD) ne reconnaissent pas la géométrie physique, ils listent à la place la géométrie redéfinie (des valeurs virtuelles dues à l'utilisation du LBA). Continuez à lire pour savoir ce que cela veut dire. Une autre chose à savoir à propos de ces termes. 3 valeurs - un numéro de cylindre, un numéro de tête, et un numéro du secteur sur la piste - identifient l'adresse absolue d'un secteur sur votre disque. Les cylindres et les têtes sont numérotés à partir de 0, et les numéros de secteurs commencent à 1. Ceux que des détails plus techniques intéressent peuvent trouver un peu partout sur l'Internet des informations sur la géométrie des disques, les secteurs de démarrage, les BIOS, etc. Faites une recherche sur Yahoo, Lycos, etc. pour boot sector ou master boot record. Parmi les choses utiles que vous trouverez, il y a le jeu de documents “Comment ça marche” - How It Works de Hale Landis. Voyez la section Autres endroits où trouver de l'aide pour avoir quelques pointeurs vers ces documents. OK, assez de terminologie. Nous sommes censés parler de démarrage ici. Le processus de démarrage Sur le premier secteur de votre disque (cylindre 0, tête 0, secteur 1) se trouve l'enregistrement principal de démarrage - Master Boot Record (MBR). Il contient une carte de votre disque. Il identifie jusqu'à 4 partitions, chacune d'elle étant un espace contigu sur ce disque. FreeBSD appelle les partitions des tranches - slices - pour éviter la confusion avec ses propres partitions, mais nous n'utiliserons pas ici ce terme. Chaque partition peut contenir son propre système d'exploitation. Chaque entrée de partition dans le MBR comprend un IDentifiant de partition, un Cylindre/Tête/Secteur de Début et un Cylindre/Tête/Secteur de Fin. L'IDentifiant de partition dit de quel type de partition il s'agit (de quel OS) et le Début/Fin dit où elle se trouve. La table des IDs de partitions liste un échantillon d'identifiants de partitions usuels. ID (hex) Description 01 DOS12 primaire (FAT 12-bit) 04 DOS16 primaire (FAT 16-bit) 05 DOS12 étendue 06 DOS primaire large (> 32 Mo) 0A OS/2 83 Linux (EXT2FS) A5 FreeBSD, NetBSD, 386BSD (UFS) Toutes les partitions ne dont pas démarrables (e.g. DOS étendue). Certaines le sont - d'autres ne le sont pas. Ce qui rend une partition démarrable est la configuration du secteur de démarrage de la partition - Partition Boot Sector - qui est toujours présent au début de chaque partition. Quand vous configurez votre gestionnaire de démarrage favori, il consulte les entrées dans les tables de partitions du MBR de tous vos disques et vous donne la possibilité de donner un nom à ces entrées. Quand vous démarrez ensuite, le gestionnaire de démarrage est appelé par du code prévu pour cela à partir secteur principal de démarrage - Master Boot Sector - du premier disque trouvé sur votre système. Le gestionnaire consulte l'entrée de la table de partitions du MBR correspondant à la partition que vous avez choisie, charge le secteur de démarrage de cette partition et lui passe le contrôle. Ce secteur de démarrage de la partition elle-même contient suffisamment d'informations pour commencer à charger le système d'exploitation qui se trouve sur cette partition. Il y a une chose importante à savoir dont nous n'avons pas encore parlé. Tous vos disques durs ont un MBR. Toutefois, celui qui est important est celui qui se trouve sur le premier disque reconnu par le BIOS. Si vous n'avez que des disques durs IDE, c'est le premier disque IDE (e.g. le disque maître sur le premier contrôleur). De même pour les systèmes entièrement SCSI. Si vous avez et des disques durs IDE et des disques durs SCSI, le disque IDE est habituellement le premier disque dont la présence est testée par le BIOS, le premier disque IDE est donc le premier disque reconnu. Le gestionnaire de démarrage que vous installerez sera implémenté sur le premier disque dur reconnu comme nous venons de l'expliquer. Restrictions pour le démarrage et avertissementsVoici maintenant les choses intéressantes auxquelles il faut faire attention. La redoutable limitation à 1024 cylindres et en quoi le LBA du BIOS peut être utile La première partie du processus de démarrage est entièrement confiée au BIOS, (si ce terme est nouveau pour vous, le BIOS est un circuit électronique sur votre carte mère qui contient le code de démarrage de votre ordinateur). C'est pourquoi cette première partie du processus est soumise aux limitations du BIOS. L'interface BIOS utilisée pour lire le disque dur durant cette phase (INT 13H, Sous-fonction 2) alloue 10 bits pour le numéro de cylindre, 8 bits pour le numéro de tête, et 6 bits pour le numéro de secteur. Cela limite les utilisateurs de cette interface (i.e. les gestionnaires de démarrage implémentés sur le MBR du disque ainsi que les chargeurs de systèmes d'exploitation implémentés sur les secteurs de démarrage) à: 1024 cylindres au plus, 256 têtes au plus, 64 secteurs/piste au plus, (en fait 63, 0 n'est pas disponible). Or les diques durs de grande capacité ont beaucoup de cylindres et peu de têtes, le nombre de cylindres de ces disques est donc invariablement supérieurs à 1024. De ce fait et à cause de l'interface BIOS telle qu'elle est, vous ne pouvez pas démarrer n'importe où sur votre disque dur. Le code de démarrage (le gestionnaire de démarrage et le chargeur du système d'exploitation implémenté sur les secteurs de démarrage de chaque partition démarrable) doivent se situer avant le 1024ème cylindre. Si votre disque dur est standard et a 16 têtes, cela équivaut à: 1024 cylindres/disque X 16 têtes/disque X 63 secteurs/piste X 512 octets c'est-à-dire la limite souvent citée de 528 Mo. C'est là qu'intervient le LBA (Logical Block Adressing - “adressage de bloc logique”) du BIOS. Le LBA du BIOS donne à l'utilisateur des routines de l'API (Application Programming Interface - “interface de programmation”) du BIOS, la possibilité d'accéder aux cylindres au-delà de 1024 avec les interfaces du BIOS en redéfinissant le cylindre. Cela signifie qu'il construit une nouvelle géométrie de vos cylindres et têtes, faisant croire au BIOS que votre disque a moins de cylindres et plus de têtes qu'en réalité. En d'autres termes, il profite du fait que les disques ont relativement peu de têtes et beaucoup de cylindres, pour modifier le rapport entre nombre de cylindres et nombre de têtes de façon à ce que tous deux soient inférieurs aux limites mentionnées ci-dessus (1024 cylindres, 256 têtes). Pour prendre de nouveau l'exemple de mon Western Digital 1,6 Go, il a pour géométrie physique: (3148 cylindres, 16 têtes, 63 secteurs/piste, 512 octets/secteur) Alors que le LBA du BIOS la redéfinit comme suit: ( 787 cylindres, 64 têtes, 63 secteurs/piste, 512 octets/secteur) ce qui correspond à la même capacité physique, mais avec des nombres de cylindres et de têtes dans les limites acceptables par les API du BIOS. (Au passage, j'ai sur l'un de mes disques, et Linux et FreeBSD au-delà du 1024ème cylindre, et les deux démarrent sans problème, grâce au LBA du BIOS.) Gestionnaires de démarrage et allocation de l'espace disque Une autre chose à laquelle il faut faire attention lorsque vous installez un gestionnaire de démarrage est l'allocation d'espace disque pour ce gestionnaire. Il vaut mieux être informé de cette question avant de commencer pour vous éviter d'avoir à réinstaller un ou plusieurs de vos systèmes d'exploitation. Si vous avez suivi ce qui a été dit sur le processus de démarrage à propos du secteur principal de démarrage (où se trouve le MBR), des secteurs de démarrage des partitions et du processus de démarrage, vous vous êtes peut-être demandé où va se trouver ce foutu gestionnaire de démarrage. Bien, certains gestionnaires de démarrage - sont suffisament légers pour tenir entièrement dans le secteur + sont suffisamment légers pour tenir entièrement dans le secteur principal de démarrage (cylindre 0, tête 0, secteur 1) avec la table de partitions. D'autres ont besoin d'un peu plus d'espace et débordent en fait de quelques secteurs après le secteur principal de démarrage sur la piste cylindre 0 tête 0, qui sont normalement libres... normalement. Là est le hic... Certains systèmes d'exploitation (y compris FreeBSD) vous permettent de faire débuter vos partitions juste après le secteur principal de démarrage au cylindre 0, tête 0, secteur 2, si vous le voulez. En fait, si vous donnez au programme sysinstall de FreeBSD, un disque dont le début est vierge ou un disque totalement vide, c'est là qu'il fera commencer par défaut la partition FreeBSD (c'est tout du moins ce qu'il a fait quand je suis tombé dans ce piège). Quand vous installez ensuite le gestionnaire de démarrage, si c'est l'un de ceux qui occupent quelques secteurs supplémentaires après le MBR, il écrase les données qui se trouvent au début de la première partie. Dans le cas de FreeBSD, cela écrase le label du disque et empêche de démarrer votre partition FreeBSD. Le moyen facile d'éviter ce problème (et de vous garder le possibilité d'essayer différents gestionnaires de démarrage par la suite) est de ne pas allouer la première piste du disque quand vous le partitionnez. Cela réserve l'espace entre le cylindre 0, tête 0, secteur 2 et le cylindre 0, tête 0, secteur 63, et votre partition commence au cylindre 1, tête 1, secteur 1. Pour ce que cela vaut, quand vous créez une partition DOS au début de votre disque, DOS laisse par défaut cet espace inoccupé (c'est pourquoi certains gestionnaires de démarrage font l'hypothèse qu'il est disponible). Mettre une partition DOS au début de votre disque vous permet aussi d'éviter le problème. C'est ce que je préfère personnellement faire, mettre une partition DOS de 1 Mo au début, parce que cela évite aussi que la lettre désignant mon disque DOS primaire soit modifiée ensuite quand je repartitionne. Pour servir de référence, les gestionnaires de démarrage suivants n'utilisent que le secteur principal de démarrage pour mettre leur code et leurs données: OS-BS 1.35, Boot Easy, LILO. Ces gestionnaires de démarrage occupent quelques secteurs supplémentaires après le secteur principal de démarrage: OS-BS 2.0 Béta 8 (secteurs 2-5), gestionnaire de démarrage d'OS/2. Que faire si votre système ne démarre pas? Il se peut qu'à un moment donné de l'installation d'un gestionnaire de démarrage, vous laissiez le MBR dans un état tel que votre machine ne redémarre plus. C'est peu probable, mais possible lorsque vous refaites un FDISK alors qu'il y a déjà un gestionnaire de démarrage installé. Si vous avez une partition DOS démarrable, vous pouvez démarrer avec une disquette de démarrage DOS, et lancer: A:\> FDISK /MBR pour réinstaller le code d'origine de démarrage simple du DOS seul sur le système. Vous pouvez alors démarrer DOS (et DOS uniquement) depuis le disque dur. Une autre solution consiste à réexécuter le programme d'installation de votre gestionnaire de démarrage à partir d'une disquette démarrable.
diff --git a/fr_FR.ISO8859-1/articles/new-users/article.sgml b/fr_FR.ISO8859-1/articles/new-users/article.sgml index 868059f634..36075a1c4b 100755 --- a/fr_FR.ISO8859-1/articles/new-users/article.sgml +++ b/fr_FR.ISO8859-1/articles/new-users/article.sgml @@ -1,827 +1,827 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Pour les Nouveaux Venus à FreeBSD et Unix Annelise Anderson
andrsn@hoover.stanford.edu
15 Août 1997 &artheader.copyright; Félicitations pour avoir installé FreeBSD! Cette introduction concerne les nouveaux venus à la fois à FreeBSD et à Unix - elle commence donc par les bases. Elle suppose que vous utilisiez la version 2.0.5 ou une version ultérieure de FreeBSD telle que distribuée par Walnut Creek ou FreeBSD.ORG, que votre système n'a (jusqu'à présent) qu'un seul utilisateur (vous) - et que vous êtes probablement à l'aise avec DOS/Windows ou OS/2. &abstract.license; &abstract.disclaimer; &trans.a.haby;
Initialiser et Terminer une Session Utilisateur Ouvrez une session (quand vous obtenez à l'écran l'invite login:) avec le compte utilisateur que vous avez défini à l'installation ou sous le compte super-utilisateur root. (FreeBSD a déjà créé le compte root lors de l'installation; root peut accéder à tous les répertoires et tout faire, y compris effacer des fichiers essentiels, donc soyez prudents!). Les symboles % et # dans les exemples sont l'invite du système (la votre peut être différente), où % correspond à un utilisateur normal et # distingue le compte root. Pour terminer la session (vous obtiendrez à nouveau l'invite login:), tapez: # exit autant de fois que nécessaire. Bien sûr, n'oubliez pas la touche Entrée à la fin des commandes, et rappelez-vous qu'Unix fait la distinction entre les majuscules et les minuscules - exit, mais pas EXIT. Pour arrêtez l'ordinateur, tapez: # /sbin/shutdown -h now Ou, pour le redémarrer, tapez: # /sbin/shutdown -r now ou: # /sbin/reboot Vous pouvez aussi redémarrer avec: CtrlAltDelete. Laissez au système un peu de temps pour faire son travail. Cette séquence est, dans les plus récentes versions de FreeBSD, l'équivalent de la commande /sbin/reboot, et il est nettement préférable de l'employer que d'utiliser l'interrupteur de réinitialisation de votre machine. A moins que vous ne vouliez tout réinstaller ? Créer un Nouveau Compte Utilisateur avec les Mêmes Droits que Root Si vous n'avez pas créé de compte utilisateur au moment de l'installation, et utilisez donc le compte root, vous devriez maintenant définir un nouvel utilisateur avec: # adduser La première fois que vous utiliserez adduser, le programme vous demandera peut-être de lui indiquer des options par défaut qu'il sauvegardera. Par exemple, vous préférez peut-être que l'interpréteur de commandes soit csh, s'il vous propose l'interpréteur sh. Sinon, tapez simplement Entrée pour conserver les valeurs par défaut. Celles-ci sont enregistrées dans le fichier /etc/adduser.conf, que vous pouvez éditer. Supposons que vous ayez créé l'utilisateur jacques dont le nom est Jacques Dupont. Attribuez un mot de passe à jacques si la sécurité (pourquoi pas, même des enfants pourraient pianoter sur le clavier) vous préoccupe. Quand le programme vous demande si vous voulez que jacques appartienne à d'autres groupes, répondez: Login group is ``jacques''. Invite jacques into other groups: wheel Vous pourrez alors ouvrir une session avec le compte jacques puis utiliser la commande su pour devenir root. Vous n'aurez dorénavant plus besoin d'ouvrir immédiatement une session avec le compte root. Vous pouvez quitter adduser à tout moment en tapant CtrlC, et pour finir vous pourrez valider le nouveau compte utilisateur ou simplement taper n pour non. Peut-être voudrez vous créer un second compte utilisateur (jeanne?), vous aurez ainsi une issue de secours si vous modifiez les fichiers de configuration de jacques et que quelque chose tourne mal. Une fois que vous avez fini, utilisez exit pour revenir à l'invite login: et ouvrez une session sous le compte jacques. Il est toujours préférable de travailler autant que possible avec un compte utilisateur ordinaire qui n'a pas autant de droits - et donc ne présente pas autant de risques - que root. Si vous avez déjà créé un compte et que vous voulez que cet utilisateur puisse utiliser su pour devenir root, vous pouvez devenir root et éditer le fichier /etc/group, pour y ajouter jacques à la première ligne (le groupe wheel). Familiarisez-vous d'abord avec l'éditeur de texte vi -  ou utilisez l'éditeur plus simple ee, présent sur les versions les plus récentes de FreeBSD. -Tour d'Horizon +Tour d'horizon Sous une session utilisateur ordinaire, faites un tour d'horizon et essayez quelques commandes qui vous fourniront des informations et de l'aide quand vous utiliserez FreeBSD. Voici quelques commandes et ce qu'elles font : id Vous dit qui vous êtes! pwd Vous dit où vous êtes - le répertoire de travail courant. ls Donne la liste des fichiers du répertoire courant. ls Donne la liste des fichiers du répertoire courant suivis d'une * pour les exécutables, d'un / pour les répertoires, et d'une @ pour les liens symboliques. ls Donne la liste détaillée des fichiers du répertoire courant - taille, date, autorisations. ls Liste tous les fichiers, y compris les fichiers “.” cachés. Si vous êtes root, les fichiers “.” sont visibles sans l'option . cd Change de répertoire courant. cd .. remonte d'un niveau dans l'arborescence; notez l'espace après cd. cd /usr/local va dans ce répertoire. cd ~ va dans le répertoire de l'utilisateur courant - e.g., /usr/home/jacques. Essayez cd /cdrom, puis ls, pour voir si votre CDROM est monté et fonctionne. view nom_de fichier Vous permet de visualiser le fichier nom_de_fichier sans le modifier. Essayez view /etc/fstab. :q pour quitter. cat nom_de_fichier Liste nom_de_fichier à l'écran. S'il est trop long et que vous n'en voyez que la fin, appuyez sur Arrêt Défil et utilisez flèche-vers-le-haut pour revenir en arrière; vous pouvez aussi utiliser Arrêt Défil avec les pages de manuel. Appuyez à nouveau sur Arrêt Défil pour terminer votre lecture. Essayez cat sur quelques fichiers “.” de votre répertoire utilisateur - cat .cshrc, cat .login, cat .profile. Notez les alias de quelques commandes ls dans le fichier .cshrc (ils sont très pratiques). Vous pouvez créer d'autres alias en éditant le fichier .cshrc. Vous pouvez aussi les mettre à disposition de tous les utilisateurs en les définissant dans le fichier de configuration général /etc/csh.cshrc. Obtenir de l'Aide et de l'Information Voici quelques moyens d'obtenir de l'aide. Texte désigne quelque chose de votre choix  - normalement une commande ou un nom de fichier - que vous tapez. apropos texte Tout ce qui contient la chaîne texte dans la base de données whatis. man texte La page de manuel pour texte. C'est la principale source de documentation des systèmes Unix. man ls vous expliquera toutes les possibilités d'utilisation de la commande ls. Utilisez Entrée pour faire défiler le texte, Ctrlb pour remonter d'une page, Ctrlf pour passer à la page suivante, et q ou Ctrlc pour quitter. which texte Vous dit où se trouve la commande texte dans vos chemins d'accès. locate texte Tous les répertoires où l'on trouve la chaîne texte. whatis texte Vous dit ce qu'est la commande texte et où se trouve la page de manuel correspondante. whereis text Cherche le fichier texte, et vous en donne le chemin d'accès complet. Essayez la commande whatis sur quelques utilitaires d'usage courant comme cat, more, grep, mv, find, tar, chmod, chown, date et script. more vous permet de lire une page à la fois comme sous DOS, e.g., ls -l | more ou more nom_de_fichier. * sert de caractère de substitution - e.g., ls w* vous donnera la liste de tous les fichiers commençant par w. Certaines de ces commandes ne fonctionnent pas correctement? locate et whatis interrogent une base de données qui est reconstruite chaque semaine. Si votre machine n'est pas en service le weekend (et sous FreeBSD), vous devrez peut-être exécuter les commandes de maintenance quotidienne, hebdomadaire et mensuelle de temps à autre. Faites-le sous le compte root et attendez qu'elles se terminent avant de lancer la suivante. # /etc/daily sortie non mentionnée # /etc/weekly sortie non mentionnée # /etc/monthly sortie non mentionnée Si vous êtes las d'attendre, appuyez sur AltF2 pour obtenir une nouvelle console virtuelle, et rouvrir une session. Après tout, c'est un système multi-utilisateurs, multi-tâches. Ces commandes afficheront probablement des messages à l'écran pendant qu'elles s'exécutent; vous pouvez taper clear pour effacer l'écran. Une fois qu'elles auront terminé, regardez le contenu des fichiers /var/mail/root et /var/log/messages. Utiliser de telles commandes est une des tâches d'administration système - étant seul utilisateur d'un système Unix, vous êtes votre propre administrateur système. Pratiquement tout ce que vous aurez à faire sous le compte root sera l'administration de votre système. Ces tâches sont souvent mal décrites dans les ouvrages volumineux sur Unix qui passent plus de temps à détailler les menus des gestionnaires de fenêtres. Procurez-vous l'un des deux ouvrages de référence sur l'administration système, soit Evi Nemeth et.al.'s UNIX System Administration Handbook (Prentice-Hall, 1995, ISBN 0-13-15051-7) - deuxième édition avec une couverture rouge; ou Æleen Frisch's Essential System Administration (O'Reilly & Associates, 1993, ISBN 0-937175-80-3)N.d.T.: traduit en français sous le titre Les Bases de l'Administration Système, chez le même éditeur.. J'ai personnellement utilisé Nemeth. Editer des Fichiers Texte Pour configurer votre système, vous devez éditer des fichiers texte. Ils sont presque tous dans le répertoire /etc; vous devrez utiliser la commande su pour devenir root pour les modifier. Vous pouvez vous servir de l'éditeur simple ee, mais à long terme, cela vaut la peine d'apprendre à utiliser vi. Il y a une excellente introduction à vi dans /usr/src/contrib/nvi/docs/tutorial si vous l'avez installé. Sinon vous pouvez le télécharger par ftp sur ftp://ftp.cdrom.com dans le répertoire FreeBSD/FreeBSD-current/src/contrib/nvi/tutorial. Avant d'éditer un fichier, faites-en une copie de sauvegarde. Supposons que vous vouliez modifier le fichier /etc/rc.conf. Avec la commande cd /etc vous allez dans le répertoire /etc, puis tapez: # cp rc.conf rc.conf.orig pour recopier le fichier rc.conf dans rc.conf.orig, de façon à pouvoir ensuite recopier rc.conf.orig dans rc.conf pour revenir à la version originale. Il serait encore mieux de le déplacer (renommer) puis de faire la copie en sens inverse: # mv rc.conf rc.conf.orig # cp rc.conf.orig rc.conf parce que la commande mv conserve la date et le nom du propriétaire d'origine du fichier. Vous pouvez maintenant éditer le fichier rc.conf. Si vous voulez revenir à la version d'origine, utilisez alors mv rc.conf rc.conf.myedit (en supposant que vous vouliez conserver la version que vous avez modifiée) puis: # mv rc.conf.orig rc.conf pour remettre l'original à sa place. Pour éditer un fichier, tapez: # vi nom_de_fichier déplacez vous dans le fichier avec les touches flèches. Echap (la touche d'échappement) met vi en mode commande. Voici quelques-unes de ces commandes: x efface le caractère sur lequel se trouve le curseur. dd efface toute la ligne (même si elle dépasse la largeur de l'écran et s'affiche sur plus d'une ligne). i permet d'insérer du texte devant la position du curseur. a permet d'insérer du texte après la position du curseur. Après avoir tapé i ou a, vous pouvez insérer du texte. Echap vous ramène en mode commande. Vous pouvez alors taper: :w pour enregistrer le fichier modifié sur disque et continuer à l'éditer, :wq pour enregistrer le fichier modifié sur disque et quitter l'éditeur, :q! pour quitter l'éditeur sans enregistrer vos modifications, /texte -recherche la prochaine occurence de texte et +recherche la prochaine occurrence de texte et y positionne le curseur; /Entrée (la touche Entrée) recherche ensuite la prochaine occurrence de texte, G va à la fin du fichier, nG va à la nième ligne du fichier, CtrlL rafraîchit l'affichage, Ctrlb et Ctrlf remonte ou descend d'une page, de la même façon qu'avec les utilitaires more et view. Entraînez-vous à utiliser vi dans votre répertoire utilisateur en créant un nouveau fichier avec vi nom_de_fichier puis ajoutez-y et effacez du texte, enregistrez le ficher et rééditez-le. vi peut vous réserver des surprises parce qu'il est assez complexe, et il vous arrivera de taper accidentellement des commandes au résultat inattendu. (Certains aiment vraiment vi - il est bien plus puissant qu'EDIT de DOS - voyez par exemple la commande :r command.) Utilisez Echap une ou plusieurs fois pour être sûr que vous êtes en mode commande quand vous êtes dans l'embarras, enregistrez régulièrement vos modifications avec la commande :w, et utilisez la commande :q! pour sortir et rééditer la dernière version enregistrée avec :w au besoin. Vous pouvez maintenant cd vers /etc, su pour devenir root, utiliser vi pour éditer le fichier /etc/group, et ajouter un utilisateur au groupe wheel pour qu'il ait les mêmes droits que root. Ajoutez juste une virgule puis le nom de l'utilisateur à la fin de la première ligne, appuyez sur Echap, et utilisez la commande :wq pour enregistrer le fichier et quitter l'éditeur. La modification est aussitôt prise en compte par le système. (vous n'avez pas mis de blanc après la virgule, n'est-ce-pas?) Imprimer des fichiers DOS A ce stade, vous n'avez probablement pas encore configuré FreeBSD pour pouvoir utiliser votre imprimante. Voici donc une méthode pour créer un fichier à partir d'une page de manuel, l'enregistrer sur disquette et l'imprimer sous DOS. Si par exemple, vous voulez lire dans le détail ce qui concerne la modification des droits d'accès aux fichiers (c'est assez important), la commande man chmod vous affiche la page de manuel. La commande: # man chmod > chmod.txt recopie la page de manuel dans le fichier chmod.txt au lieu de l'afficher à l'écran. Mettez maintenant une disquette formatée DOS dans le lecteur de disquettes A:, su pour devenir root, et tapez: # /sbin/mount -t msdos /dev/fd0 /mnt pour monter le lecteur de disquettes dans le répertoire /mnt. Ensuite (plus besoin d'être root, vous pouvez utiliser exit pour redevenir l'utilisateur jacques), vous pouvez aller dans le répertoire où vous avez créé le fichier chmod.txt et le recopier sur la disquette avec la commande: % cp chmod.txt /mnt puis utiliser ls /mnt pour lister le contenu du répertoire /mnt, où devrait figurer le fichier chmod.txt. En particulier, il vous sera utile de créer un fichier à partir du résultat de la commande /sbin/dmesg en tapant: % /sbin/dmesg > dmesg.txt et en copiant dmesg.txt sur la disquette. /sbin/dmesg liste les informations affichées au démarrage du système, qu'il est utile de comprendre, parce qu'elles décrivent la configuration matérielle reconnue par FreeBSD au démarrage. Si vous posez des questions sur freebsd-questions@FreeBSD.ORG ou dans un forum USENET - du type “FreeBSD ne reconnaît pas mon lecteur de bande, que faire ? ” - on vous demandera ce qu'indique dmesg sur votre système. Vous pouvez maintenant démonter le lecteur de disquette (sous le compte root) pour retirer la disquette avec la commande: # /sbin/umount /mnt et redémarrer la machine pour passer sous DOS. Copiez ces fichiers dans un répertoire DOS, éditez-les avec DOS EDIT, Windows Notepad, ou un traitement de texte, faites une petite modification pour avoir à les enregistrer et imprimez-les comme d'habitude sous DOS ou Windows. J'espère que cela marche! Les pages de manuel s'impriment mieux avec la commande print du DOS. (Copier des fichiers de FreeBSD vers une partition DOS montée est dans certains cas encore un peu risqué). Pour pouvoir imprimer depuis FreeBSD, il faut définir l'imprimante dans le fichier /etc/printcap et créer le répertoire tampon correspondant dans /var/spool/output. Si votre imprimante est sur le port lpt0 (qui s'appelle LPT1 sous DOS), il suffit d'aller dans le répertoire /var/spool/output et (sous le compte root) de créer le répertoire lpd, s'il n'existe pas, en tapant: # mkdir lpd L'imprimante devrait alors répondre si elle était sous tension au démarrage du système et les commandes lp ou lpr devraient envoyer un fichier à l'imprimante. Que le fichier s'imprime ou non dépend de la configuration de l'imprimante, qui est décrite dans le manuel FreeBSD. D'autres Commandes Utiles df liste les systèmes de fichiers montés, leur taille et leur utilisation. ps aux liste les processus actifs. ps ax en est une forme abregée. rm nom_de_fichier efface le fichier nom_de_fichier. rm -R répertoire efface le répertoire répertoire et tous ses sous-répertoires - attention! ls -R liste les fichiers du répertoire courant et de tous ses sous-répertoires; j'en utilisais une variante, ls -AFR > where.txt, pour avoir la liste de tous les fichiers du répertoire racine / et (indépendamment) du répertoire /usr avant de trouver un meilleur moyen pour rechercher des fichiers. passwd pour changer le mot de passe d'un utilisateur (ou le mot de passe root). man hier pages de manuel du système de fichier Unix. Avec le commande find vous pouvez localiser le fichier nom_de_fichier dans /usr ou un de ses sous-répertoires: % find /usr -name "nom_de_fichier" Vous pouvez employer * comme caractère de substitution dans "nom_de_fichier" (qui doit être entre guillemets). Si vous demandez à find d'effectuer la recherche dans / au lieu de /usr, il va parcourir tous les systèmes de fichiers montés, y compris le CDROM et la partition DOS. Voici un excellent livre qui détaille les commandes et les utilitaires du système Unix: Abrahams & Larson, Unix for the Impatient (2nd ed., Addison-Wesley, 1996). Vous trouverez aussi beaucoup d'informations sur Unix sur l'Internet. Essayez l' Unix Reference Desk. Etapes Suivantes Vous avez maintenant les outils nécessaires à l'exploration du système et -à l'édition de fichiers. Il y a énormement d'informations dans le +à l'édition de fichiers. Il y a énormément d'informations dans le manuel FreeBSD (que vous avez probablement aussi sur votre disque dur) et sur le site Internet de FreeBSD. Il y a un grand nombre de logiciels sur le CDROM de Walnut Creek et sur leur site Internet. Le "manuel" vous explique comment les utiliser (installer le logiciel s'il existe, avec pkg_add /cdrom/packages/All/nom_du_logiciel, où nom_du_logiciel est le nom du fichier correspondant au logiciel voulu). Le CDROM donne la liste des logiciels pré-compilés ou non N.d.T: Les logiciels prévus pour être utilisés avec FreeBSD peuvent être pré-compilés (“packages”) ou disponibles sous forme de code source (“ports”) livré avec les procédures nécessaires à sa compilation. avec une courte description de chacun dans /cdrom/packages/index, /cdrom/packages/index.txt et /cdrom/ports/index. Il y a des descriptifs plus détaillés dans /cdrom/ports/*/*/pkg/DESCR, où les *s désignent respectivement les sous-répertoires regroupant les logiciels par catégories et les noms des logiciels. Si vous trouvez le "manuel" trop subtil (avec ses commandes lndir et ainsi de suite) en ce qui concerne l'installation des logiciel à compiler, voici une méthode qui fonctionne habituellement: Trouvez le logiciel que vous voulez, par exemple kermit. Il y aura un sous-répertoire correspondant sur le CDROM. Copiez ce sous-répertoire dans /usr/local (là où l'on met généralement les logiciels que l'on installe pour les mettre à la disposition de tous les utilisateurs) avec: # cp -R /cdrom/ports/comm/kermit /usr/local Ceci crée normalement un sous-répertoire /usr/local/kermit qui contient tous les fichiers du sous-répertoire kermit du CDROM. Recherchez ensuite dans le répertoire /cdrom/ports/distfiles un fichier dont le nom indique que c'est le logiciel que vous voulez installer. Copiez ce fichier dans /usr/ports/distfiles; avec les versions récentes, vous pouvez sauter cette étape, FreeBSD s'en chargera. Dans le cas de kermit, il n'y a aucun fichier associé dans /cdrom/ports/distfiles. Puis cd dans le sous-répertoire de /usr/local/kermit qui contient le fichier Makefile. Tapez: # make all install Pendant l'installation, le système ira chercher par ftp les fichiers compressés qu'il ne trouve pas dans /usr/ports/distfiles. Si vous n'êtes pas encore connecté à l'Internet et que le fichier correspondant au logiciel n'existe pas dans /cdrom/ports/distfiles, vous devrez récupérer ce fichier sur une autre machine et le copier dans /usr/ports/distfiles depuis une disquette ou votre partition Dos. Lisez Makefile (Avec cat, more ou view) pour trouver sur quel site (le "master distribution site" - site de distribution d'origine) aller pour récupérer le fichier et pour connaître son nom. Ce nom sera tronqué si vous téléchargez le fichier sous DOS, et vous devrez redonner au fichier son nom d'origine après l'avoir recopié dans /usr/ports/distfiles (avec la commande mv) pour que FreeBSD le trouve. (Utilisez le transfert de fichier en mode binaire!) Revenez ensuite dans /usr/local/kermit, trouvez le sous-répertoire où est Makefile, et tapez make all install. Il peut aussi arriver quand vous installez des logiciels pré-compilés ou non qu'un autre logiciel soit nécessaire. Si l'installation s'interrompt avec un message du style can't find unzip, vous devez d'abord installer le logiciel unzip avant de continuer. Un fois le logiciel installé, tapez rehash pour que FreeBSD relise la liste des fichiers dans les chemins d'accès par défaut, de façon à ce qu'il sache ce qui s'y trouve. (Si vous obtenez de nombreux messages d'erreur path not found avec les commandes whereis ou which, ajoutez les répertoires nécessaires à la liste des chemins d'accès par défaut définis dans le fichier .cshrc de votre répertoire utilisateur. L'instruction path d'Unix fonctionne de la même façon que sous DOS, à ceci près que, pour des raisons de sécurité, le répertoire courant n'y est pas défini (par défaut); si le programme que vous cherchez se trouve dans le répertoire courant, vous devrez faire précéder le nom du programme de ./ pour l'exécuter (pas d'espace après le “/”.) Vous voudrez peut-être installer la version la plus récente de Netscape depuis leur site ftp. (Netscape a besoin du gestionnaire graphique X Window.) Il vous faut la version “unknown bsd”. Appliquez au fichier téléchargé les commandes gunzip nom_de_fichier puis tar xvf nom_de_fichier, recopiez l'exécutable dans /usr/local/bin ou dans tout autre répertoire où vous mettez les programmes, rehash, et ajoutez les lignes suivantes aux fichiers .cshrc dans les répertoires de tous les utilisateurs ou (plus simplement) au fichier /etc/csh.cshrc de démarrage de l'interpréteur de commandes csh applicable à tous les utilisateurs: setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB setenv XNLSPATH /usr/X11R6/lib/X11/nls Ce qui présuppose que les fichiers XKeysymDB et le répertoire nls existent dans /usr/X11R6/lib/X11; s'ils n'y sont pas, trouvez-les et recopiez-les dans ce répertoire. Si vous aviez auparavant installé Netscape depuis le CDROM (ou par ftp), ne remplacez pas /usr/local/bin/netscape par le nouveau binaire; ce fichier n'est qu'une procédure qui positionne des variables d'environnement. Au lieu de cela, renommez le nouveau fichier binaire en netscape.bin et installez-le à la place de l'ancien, qui s'appelle /usr/local/lib/netscape/netscape.bin. Votre Environnement de Travail Votre interpréteur de commandes est la composante la plus importante de votre environnement de travail. C'est l'équivalent de COMMAND.COM sous DOS. C'est lui qui analyse les commandes que vous tapez au clavier et communique avec le reste du système d'exploitation. Vous pouvez aussi écrire des procédures, qui sont l'équivalent des fichiers .BAT de DOS. Deux interpréteurs de commandes sont pré-installés par FreeBSD : csh et sh. csh est utile pour le travail en ligne de commande, mais vous devriez mieux écrire vos procédures pour sh (ou bash). echo $SHELL vous retourne le nom de l'interpréteur que vous utilisez actuellement. L'interpréteur csh est commode, mais tcsh fait tout ce que fait csh et plus encore. Il vous permet de rappeler des commandes avec les touches flèches et de les éditer. Il sait compléter les noms de fichiers avec la touche Tab (csh utilise la touche Echap) et il vous permet de revenir dans le répertoire où vous étiez auparavant avec cd -. Il est aussi plus facile de modifier l'invite du système avec tcsh. Il vous rend la vie beaucoup plus facile. Voici les trois étapes pour installer un nouvel interpréteur de commandes: Installez l'interpréteur, pré-compilé ou non, comme vous le feriez pour n'importe quel autre logiciel. Utilisez rehash puis which tcsh (en supposant que vous installiez tcsh) pour vous assurer qu'il est bien installé. Sous le compte root, éditez le fichier /etc/shells, ajoutez-y une ligne pour le nouvel interpréteur, dans notre cas /usr/local/bin/tcsh, et enregistrez votre modification. (certaines procédures d'installation font cela pour vous.) Utilisez chsh pour changer de façon permanente d'interpréteur de commandes, ou tapez tcsh sous l'invite du système pour changer d'interpréteur sans ouvrir de nouvelle session. Note: Il peut être dangereux de changer l'interpréteur de commandes du compte root en autre chose que sh ou csh avec les premières versions de FreeBSD et de nombreuses autres versions d'Unix; vous pourriez ne plus avoir d'interpréteur de commandes quand le système passe en mode mono-utilisateur. La solution est d'utiliser su -m pour devenir root et disposer de tcsh, parce que l'interpréteur de commandes est partie intégrante de l'environnement. Vous pouvez rendre ce fonctionnement définitif en ajoutant un alias dans votre fichier .tchsrc: alias su su -m Quand tcsh démarre, il lit les fichiers /etc/csh.cshrc et /etc/csh.login. Il lit aussi le fichier .login de votre répertoire utilisateur, ainsi que le fichier .cshrc, à moins que vous n'ayez un fichier .tchsrc. Vous pouvez facilement en créer un en copiant simplement .cshrc dans .tcshrc. Maintenant que vous avez installé tcsh, vous pouvez modifier l'invite du système. Vous trouverez plus de détails dans les pages de manuel de tcsh, mais voici une ligne que vous pouvez mettre dans votre fichier .tchsrc, qui vous dira combien de commandes vous avez tapées, quelle heure il est, et dans quel répertoire vous vous trouvez. Un > sera aussi affiché si vous êtes un utilisateur ordinaire et un # si vous êtes root, mais tcsh fait cela de toute façon: set prompt = "%h %t %~ %#" Mettez cette ligne à la place de la ligne "set prompt" s'il y en a déjà une, ou après la ligne "if($?prompt) then" sinon. Mettez l'ancienne ligne en commentaire; vous pourrez toujours y revenir si vous le souhaitez. N'oubliez pas les espaces et les guillemets. Vous pouvez forcer la relecture du fichier .tchsrc en tapant source .tcshrc. Vous pouvez obtenir la liste des autres variables d'environnement qui ont été positionnées avec la commande env. Le résultat vous indiquera entre autres quels sont votre éditeur et votre gestionnaire de page affichée par défaut, et quel type de terminal vous utilisez. Une commande utile si vous vous connectez à distance et ne pouvez exécuter un programme parce que le terminal n'est pas adapté est setenv TERM vt100. Autres En tant que root, vous pouvez démonter le CDROM avec /sbin/umount /cdrom, le sortir du lecteur, en mettre un autre, et monter ce dernier avec /sbin/mount_cd9660 /dev/cd0a /cdrom en supposant que cd0a est le nom du périphérique associé à votre lecteur de CDROMs. Le système de fichier actif - le deuxième CDROM de la distribution de FreeBSD - est utile si vous manquez d'espace disque. Vous pouvez essayez d'utiliser emacs ou des jeux depuis le cdrom. Vous devrez utiliser lndir, qui est installé en même temps que le gestionnaire graphique X Window, pour dire au(x) programme(s) où trouver les fichiers dont il a besoin, parce qu'ils se trouvent dans le système de fichiers /cdrom et non dans /usr et ses sous-répertoires, où ils devraient normalement être. Lisez man lndir. Vous pouvez supprimer un utilisateur (par example, jacques) en utilisant la commande vipw pour éditer le fichier master.passwd (n'utilisez pas vi directement sur le fichier master.passwd); effacez la ligne pour jacques et sauvez le fichier. Editez ensuite /etc/group et supprimez toutes -les occurences de jacques. +les occurrences de jacques. Enfin, allez dans /usr/home et utilisez rm -R jacques (pour effacer les fichiers et sous-répertoires du répertoire utilisateur de jacques). Vos Commentaires sont la Bienvenue -Si vous utilisez ce guide, je suis interessée de savoir où il ne vous est -pas suffisament clair et ce que vous trouvez qu'il y manque, et aussi s'il vous +Si vous utilisez ce guide, je suis intéressée de savoir où il ne vous est +pas suffisamment clair et ce que vous trouvez qu'il y manque, et aussi s'il vous a été utile. N.d.T.: en anglais ! Mes remerciements à Eugene W. Stark, professeur d'informatique à SUNY-Stony Brook, et à John Fieber pour ses commentaires pertinents. Annelise Anderson, andrsn@hoover.stanford.edu
diff --git a/fr_FR.ISO8859-1/articles/ntfs/article.sgml b/fr_FR.ISO8859-1/articles/ntfs/article.sgml index b80b628db6..188b8d9c4d 100644 --- a/fr_FR.ISO8859-1/articles/ntfs/article.sgml +++ b/fr_FR.ISO8859-1/articles/ntfs/article.sgml @@ -1,490 +1,490 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Installer le pilote NTFS pour FreeBSD &artheader.copyright; &abstract.license; &abstract.disclaimer; &trans.a.laurand; Installer le pilote NTFS pour FreeBSD 3.x Pour installer ce pilote, vous aurez besoin de recompiler un noyau car les fichiers d'en-tête utilisés seront mis à niveau. Pour autant, aucun changement dans le fichier de configuration ne sera nécessaire. Si vous n'avez pas installé les sources du noyau, vous pouvez soit recourir à sysinstall, ou bien entrer successivement en tant que root : &prompt.root mount -t cd9660 /dev/cd0c /mnt &prompt.root cd /mnt/src &prompt.root cat ssys.?? | tar --unlink -zxpvf - -C /usr/src Le pilote requiert également le fichier mntopt.h de l'archive source. Pour extraire son contenu : &prompt.root cd /mnt/src &prompt.root cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount Ensuite, en tant que root, créez un répertoire pour y extraire le contenu de l'archive du pilote ntfs : &prompt.root cd /tmp &prompt.root mkdir ntfs Téléchargez le fichier d'archive compressé contenant le code source du pilote ainsi que son fichier de mise à niveau - patch - dans /tmp/ntfs. Les deux fichiers dont vous avez besoin sont ntfs-0.17beta.tgz et ntfs.0.17beta-0.18beta.diff. Extrayez le contenu du fichier d'archive : &prompt.root cd /tmp/ntfs &prompt.root tar xzvf ntfs-0.17beta.tgz Il se peut que le numéro de version (0.17beta) soit différent. Ensuite, appliquez la mise à niveau de la version 0.17 à la version 0.18. &prompt.root cd /tmp/ntfs/src/sys/ntfs &prompt.root patch < /tmp/ntfs/ntfs.0.17beta-0.18beta.diff Prenez garde à ce qu'aucune partie ne fasse défaut. patch 1 génère des copies de sauvegarde des fichiers qu'il met à jour (avec l'extension .orig), par conséquent, si un problème survient, recopiez les fichiers .orig, et recherchez-en la cause. Recopiez maintenant les fichiers sources là où ils doivent normalement être : &prompt.root cd /tmp/ntfs &prompt.root cp -p -R -i src /usr/ Il faut ensuite mettre à jour vnode.h : &prompt.root cd /usr/src/sys/sys &prompt.root patch < /tmp/ntfs/diff/vnode.h.diff Encore une fois, vérifiez que la mise à niveau s'est bien passée, vous devriez avoir : Hmm... Looks like a new-style context diff to me... The text leading up to this was: -------------------------- |*** ./sys/sys/vnode.h.orig Fri Jan 1 06:12:51 1999 |--- ./sys/sys/vnode.h Wed Dec 2 12:31:31 1998 -------------------------- Patching file vnode.h using Plan A... Hunk #1 succeeded at 62. done Vous allez maintenant pouvoir maintenant compiler l'exécutable mount_ntfs : &prompt.root cd /usr/src/sbin/mount_ntfs &prompt.root make &prompt.root make install ainsi que le module du noyau : &prompt.root cd /usr/src/sys/modules/ntfs &prompt.root make &prompt.root make install Pour finir, il faudra aussi recompiler le noyau (parce que vnode.h a été modifié). Si vous utilisez le noyau GENERIC, faites une copie du fichier de configuration du noyau GENERIC (ce n'est pas absolument nécessaire, mais de cette manière le nom du noyau sera mis à jour, et il sera plus facile d'identifier celui avec lequel vous démarrez). J'ai pour habitude d'utiliser des noms assez représentatifs, aussi GENERIC_NTFS me semble-t-il approprié : &prompt.root cd /usr/src/sys/i386/conf &prompt.root cp GENERIC GENERIC_NTFS &prompt.root /usr/sbin/config GENERIC_NTFS &prompt.root cd ../../compile/GENERIC_NTFS &prompt.root make depend &prompt.root make &prompt.root make install Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, il faut identifier la tranche - slice - NTFS. Le numéro de cette tranche va dépendre du format de votre disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche NTFS et que votre tranche FreeBSD est la dernière, elles seront numérotées (“da” ou peut-être “sd” pour les disques SCSI, si vous avez mis à jour votre système 2.2.x pour passer en 3.1, et ce sera “wd” si vous avez des disques IDE) : FAT - da0s1 NTFS - da0s2 FreeBSD - da0s3 Si votre tranche NTFS et votre tranche FreeBSD sont inversées et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de tranches seront les mêmes, mais pas dans le même ordre : FAT - da0s1 FreeBSD - da0s3 NTFS - da0s2 Vous pouvez jeter un coup d'oeil au fichier /etc/fstab pour être sûr du numéro de la tranche de FreeBSD (et également de celui de la tranche FAT). Il y a cependant une exception à tout cela, lorsque votre tranche NTFS est une “partition logique” dans une “partition étendue”. Les “partitions logiques” sont toujours numérotées à partir de 5, peut importe le nombre de “partitions” sur le disque. Mon disque, par exemple, est agencé comme ceci : FAT - da0s1 FreeBSD - da0s3 Extended partition - da0s2               NTFS - da0s5 Notez qu'une “partition étendue;” se voit attribuer une tranche - “slice”, mais celle-ci ne peut pas être utilisée en tant que telle, c'est-à-dire que vous ne pouvez pas la monter. Après avoir identifié la tranche NTFS, vous pouvez ajouter une entrée dans le fichier /etc/fstab. Notez que l'option ro signifie que le montage se fera en lecture seule (souvenez-vous que le pilote est en lecture seule). Cette entrée provoquera le montage automatique de la tranche NTFS lors du démarrage. Si vous voulez désactiver cette dernière option, modifiez ro en ro,noauto, sans aucun espace ni avant ni après la virgule ! Vous aurez également besoin d'un point de montage, /ntfs dans cet exemple, ou si vous préferez, /mnt à la place de /ntfs dans le fichier /etc/fstab : # Device Mountpoint FStype Options Dump Pass# /dev/da0s5 /ntfs ntfs ro 0 0 Si vous préferez ne pas monter la “partition” au démarrage, montez-la ensuite en tant que root avec la commande : &prompt.root mount -t ntfs /dev/da0s5 /ntfs Bien entendu, ajustez le fichier de pilote de périphérique ainsi que le point de montage à votre système. C'est fait ! Il ne reste plus qu'à redémarrer. Bon courage ! Installation du pilote NTFS sous FreeBSD 2.2.X Pour installer ce pilote, vous aurez besoin de recompiler un noyau car les fichiers d'en-tête utilisés seront mis à niveau. Pour autant, aucun changement dans le fichier de configuration ne sera nécessaire. Si vous n'avez pas installé les sources du noyau, vous pouvez soit recourir à sysinstall, ou bien entrer successivement en tant que root : &prompt.root mount -t cd9660 /dev/cd0c /mnt &prompt.root cd /mnt/src &prompt.root cat ssys.?? | tar --unlink -zxpvf - -C /usr/src Le pilote requiert également les fichiers mntopt.h de l'archive source. Pour extraire son contenu, tapez : &prompt.root cd /mnt/src &prompt.root cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount Ensuite, en tant que root, créez un répertoire pour extraire le contenu de l'archive du pilote ntfs : &prompt.root cd /tmp &prompt.root mkdir ntfs Téléchargez le fichier d'archive compressé contenant le code source du pilote ainsi que son fichier de mise à jour dans /tmp/ntfs. Extrayez le contenu de l'archive : &prompt.root cd /tmp/ntfs &prompt.root tar xzvf ntfs-releng22-0.12beta.tgz Il se peut que le numéro de version (0.12beta) soit différent. Recopiez maintenant les fichiers sources à l'endroit adéquat : &prompt.root cd src &prompt.root cp -p -r * /usr/src Ensuite, vous devez mettre à niveau les 3 fichiers d'en-tête du système. Utilisez l'option (L minuscule) qui permet d'ignorer la différence d'espacement, car j'ai remarqué que l'utilisation des touches TAB et Espace rendait incompatible les fichiers originaux et les fichiers diff. &prompt.root cd /usr/src/sys/sys &prompt.root patch -l malloc.h /tmp/ntfs/diff/malloc.h.diff &prompt.root patch -l mount.h /tmp/ntfs/diff/mount.h.diff &prompt.root patch -l vnode.h /tmp/ntfs/diff/vnode.h.diff Si cette opération réussit, vous verrez s'afficher quelque chose de similaire à : Hmm... Looks like a new-style context diff to me... The text leading up to this was: -------------------------- |*** ./sys/sys/vnode.h.orig Fri Jan 1 00:17:30 1999 |--- ./sys/sys/vnode.h Fri Jan 1 00:17:35 1999 -------------------------- Patching file vnode.h using Plan A... Hunk #1 succeeded at 58. done Si malencontreusement, un (ou plusieurs) fichier de mise à jour faisait défaut, sachez que patch fait toujours des copies des fichiers originaux avec le même nom suivi de l'extension .orig. Maintenant, vous pouvez compiler le pilote. Il est nécessaire d'ajouter BINDIR=/usr/sbin qui n'est pas défini dans le Makefile. &prompt.root cd /usr/src/sbin/i386/mount_ntfs &prompt.root make &prompt.root make BINDIR=/usr/sbin install Compilez ensuite les modules du noyau : &prompt.root cd /usr/src/lkm &prompt.root make &prompt.root make install Pour finir, vous devez recompiler le noyau. Si vous utilisez le noyau GENERIC, faites une copie du fichier de configuration du noyau GENERIC (ce n'est pas absolument - nécessaire, mias de cette manière le nom du noyau sera mis + nécessaire, mais de cette manière le nom du noyau sera mis à jour, et ce sera plus facile pour identifier le noyau avec lequel vous démarrez). J'ai pour habitude d'utiliser des noms assez représentatifs, aussi GENERIC_NTFS me semble approprié : &prompt.root cd /usr/src/sys/i386/conf &prompt.root cp GENERIC GENERIC_NTFS &prompt.root /usr/sbin/config GENERIC_NTFS &prompt.root cd ../../compile/GENERIC_NTFS &prompt.root make depend &prompt.root make &prompt.root make install Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, il faut identifier la tranche - slice - NTFS. Le numéro de cette tranche va dépendre du format de votre disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche NTFS et que votre tranche FreeBSD est la dernière, elles seront numérotées (remplacez “w” par “s” pour les disques SCSI) : FAT - wd0s1 NTFS - wd0s2 FreeBSD - wd0s3 Si votre tranche NTFS et votre tranche FreeBSD sont inversées et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de tranches seront les mêmes, mais pas dans le même ordre : FAT - wd0s1 FreeBSD - wd0s3 NTFS - wd0s2 Vous pouvez jeter un coup d'oeil au fichier /etc/fstab pour être sûr du numéro de la tranche FreeBSD (et également de celui de la tranche FAT). Il y a cependant une exception à tout cela, lorsque votre tranche NTFS est une “partition logique” dans une “partition étendue”. Les “partitions logiques” sont toujours numérotées à partir de 5, peut importe le nombre de “partitions” sur le disque. Mon disque, par exemple, est agencé comme ceci : FAT - sd0s1 FreeBSD - sd0s3 Extended partition - sd0s2               NTFS - sd0s5 Notez qu'une “partition étendue” se voit attribuer une tranche - “slice”, mais celle-ci ne peut pas être utilisée en tant que telle, c'est-à-dire que vous ne pouvez pas la monter. Après avoir identifié la tranche NTFS, vous pouvez ajouter une entrée dans le fichier /etc/fstab. Notez que l'option ro signifie que le montage se fera en lecture seule (souvenez-vous que le pilote est en lecture seule). Cette entrée provoquera le montage automatique de la tranche NTFS lors du démarrage. Si vous voulez désactiver cette dernière option, modifiez ro en ro,noauto, sans aucun espace ni avant ni après la virgule ! Vous aurez également besoin d'un point de montage, /ntfs dans cet exemple, ou si vous préferez, /mnt à la place de /ntfs dans le fichier /etc/fstab : # Device Mountpoint FStype Options Dump Pass# /dev/sd0s5 /ntfs ntfs ro 0 0 Si vous préferez ne pas monter la “partition” au démarrage, montez-la ensuite en tant que root avec la commande : &prompt.root mount -t ntfs /dev/sd0s5 /ntfs Bien entendu, ajustez le fichier de pilote de périphérique ainsi que le point de montage à votre système. C'est fait ! Il ne reste plus qu'à redémarrer. Si vous avez choisi de monter la “partition” au démarrage, vous verrez s'afficher quelques messages de diagnostic tout à fait inoffensifs : ntfs_init(): ntfs_mountfs(): bps: 512, spc: 1, media: f8, mftrecsz: 2 (2 sects) ntfs_mountfs(): mftcn: 0x315e5|0x287245 ntfs_mountfs(): case-sens., uid: 0, gid: 0, mode: 777 ntfs_iget(): read $MFT ntnode ntfs_mountfs(): reading $UpCase....OK Bon courage !
diff --git a/fr_FR.ISO8859-1/articles/pam/article.sgml b/fr_FR.ISO8859-1/articles/pam/article.sgml index c89d04358f..1b0c2d2620 100644 --- a/fr_FR.ISO8859-1/articles/pam/article.sgml +++ b/fr_FR.ISO8859-1/articles/pam/article.sgml @@ -1,1363 +1,1363 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Pluggable Authentication Modules $FreeBSD$ - Cet article décrit les principes sous-jacent et les - mécanismes de la bibliothèque PAM, il explique comment - configurer PAM, l'intégrer dans les applications, et - écrire ses propres modules PAM. + Cet article décrit les principes sous-jacent et les + mécanismes de la bibliothèque PAM, il explique comment + configurer PAM, l'intégrer dans les applications, et + écrire ses propres modules PAM. &trans.a.mathieu; 2001 2002 2003 Networks Associates Technology, Inc. Dag-Erling Smørgrav Contributed by - Cet article a été écrit pour le Projet FreeBSD par + Cet article a été écrit pour le Projet FreeBSD par ThinkSec AS et les laboratoires de Networks Associates, la - division de recherche en sécurité de Networks Associates, Inc. + division de recherche en sécurité de Networks Associates, Inc. sous le contrat DARPA/SPAWAR N66001-01-C-8035 (CBOSS), en tant que partie du programme de recherche DARPA CHATS.
Introduction - La bibliothèque PAM est une API généralisée pour les - services relevant de l'authentification permettant à un - administrateur système d'ajouter une nouvelle méthode + La bibliothèque PAM est une API généralisée pour les + services relevant de l'authentification permettant à un + administrateur système d'ajouter une nouvelle méthode d'authentification en ajoutant simplement un nouveau module PAM, - ainsi que de modifier les règles d'authentification en éditant les + ainsi que de modifier les règles d'authentification en éditant les fichiers de configuration. - PAM a été conçu et développé en 1995 par Vipin Samar et - Charlie Lai de Sun Microsystems, et n'a pas beaucoup évolué - depuis. En 1997 l'Open Group publie les premières spécifications + PAM a été conçu et développé en 1995 par Vipin Samar et + Charlie Lai de Sun Microsystems, et n'a pas beaucoup évolué + depuis. En 1997 l'Open Group publie les premières spécifications XSSO qui standardisent l'API PAM et ajoute des extensions pour - un simple (ou plutot intégré) "sign-on". Lors de l'écriture de cet article, la spécification n'a - toujours pas été adoptée comme standard. + un simple (ou plutot intégré) "sign-on". Lors de l'écriture de cet article, la spécification n'a + toujours pas été adoptée comme standard. Bien que cet article se concentre principalement sur - FreeBSD 5.x, qui utilise OpenPAM, il devrait également être - applicable à FreeBSD 4.x qui utilise Linux-PAM, ainsi qu'à d'autres - systèmes d'exploitations tels que Linux ou Solaris. + FreeBSD 5.x, qui utilise OpenPAM, il devrait également être + applicable à FreeBSD 4.x qui utilise Linux-PAM, ainsi qu'à d'autres + systèmes d'exploitations tels que Linux ou Solaris.
- Marques déposées + Marques déposées Sun, Sun Microsystems, SunOS and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. UNIX and The Open Group are trademarks or registered trademarks of The Open Group. All other brand or product names mentioned in this document may be trademarks or registered trademarks of their respective owners.
Termes et conventions
- Définitions + Définitions - La terminologie de PAM est plutôt confuse. Ni la - publication originale de Samar et Lai, ni la spécification XSSO - n'ont essayé de définir formellement des termes pour les acteurs - et les entités intervenant dans PAM, les termes qu'ils - utilisent (mais ne définissent pas) sont parfois trompeurs et - ambigus. Le premier essai d'établir une terminologie - consistante et non ambiguë fut un papier écrit par Andrew + La terminologie de PAM est plutôt confuse. Ni la + publication originale de Samar et Lai, ni la spécification XSSO + n'ont essayé de définir formellement des termes pour les acteurs + et les entités intervenant dans PAM, les termes qu'ils + utilisent (mais ne définissent pas) sont parfois trompeurs et + ambigus. Le premier essai d'établir une terminologie + consistante et non ambiguë fut un papier écrit par Andrew G. Morgan (l'auteur de Linux-PAM) en 1999. Bien que les choix de - Morgan furent un énorme pas en avant, ils ne sont pas parfait - d'après l'auteur de ce document. Ce qui suit, - largement inspiré par Morgan, est un essai de définir précisément et sans - ambiguïté des termes pour chaque acteur ou entité utilisé dans + Morgan furent un énorme pas en avant, ils ne sont pas parfait + d'après l'auteur de ce document. Ce qui suit, + largement inspiré par Morgan, est un essai de définir précisément et sans + ambiguïté des termes pour chaque acteur ou entité utilisé dans PAM. compte L'ensemble de permissions que le demandeur demande a l'arbitre. demandeur - L'utilisateur ou l'entité demandant + L'utilisateur ou l'entité demandant authentification. arbitre - L'utilisateur ou l'entité possèdant les privilèges nécessaires - pour vérifier la requête du demandeur ainsi que l'autorité - d'accorder ou de rejeter la requête. + L'utilisateur ou l'entité possédant les privilèges nécessaires + pour vérifier la requête du demandeur ainsi que l'autorité + d'accorder ou de rejeter la requête. - chaîne + chaîne - Une séquence de modules qui sera invoquée pour répondre à - une requête PAM. La chaîne comprend les informations concernant - l'ordre dans lequel invoquer les modules, les arguments à leur - passer et la façon d'interpréter les résultats. + Une séquence de modules qui sera invoquée pour répondre à + une requête PAM. La chaîne comprend les informations concernant + l'ordre dans lequel invoquer les modules, les arguments à leur + passer et la façon d'interpréter les résultats. client - L'application responsable de la requête - d'authentification au nom du demandeur et de receuillir - l'information d'authentification nécessaire. + L'application responsable de la requête + d'authentification au nom du demandeur et de recueillir + l'information d'authentification nécessaire. - mécanisme + mécanisme Il s'agit de l'un des quatre groupes basiques de - fonctionnalités fournit par PAM : authentification, gestion de - compte, gestion de session et mise à jour du jeton + fonctionnalités fournit par PAM : authentification, gestion de + compte, gestion de session et mise à jour du jeton d'authentification. module - Une collection d'une ou plusieurs fonctions implémentant - un service d'authentification particulier, rassemblées dans un + Une collection d'une ou plusieurs fonctions implémentant + un service d'authentification particulier, rassemblées dans un fichier binaire (normalement chargeable dynamiquement) - et identifié par un nom unique. + et identifié par un nom unique. - règles + règles - Le jeu complet de configuration des règles décrivant - comment traiter les requêtes PAM pour un service - particulier. Une règle consiste normalement en quatre chaînes, - une pour chaque mécanisme, bien que quelques services - n'utilisent pas les quatre mécanismes. + Le jeu complet de configuration des règles décrivant + comment traiter les requêtes PAM pour un service + particulier. Une règle consiste normalement en quatre chaînes, + une pour chaque mécanisme, bien que quelques services + n'utilisent pas les quatre mécanismes. serveur L'application agissant au nom de l'arbitre pour converser - avec le client, récupérer les informations d'authentification, - vérifier les droits du demandeur et autoriser ou rejeter - la requête. + avec le client, récupérer les informations d'authentification, + vérifier les droits du demandeur et autoriser ou rejeter + la requête. service - Un ensemble de serveurs fournissant des fonctionnalités - similaires ou liées et nécessitant une authentification - similaire. Les règles de PAM sont définies sur un le principe - de par-service; ainsi tous les serveurs qui demandent le même - nom de service seront soumis aux mêmes règles. + Un ensemble de serveurs fournissant des fonctionnalités + similaires ou liées et nécessitant une authentification + similaire. Les règles de PAM sont définies sur un le principe + de par-service; ainsi tous les serveurs qui demandent le même + nom de service seront soumis aux mêmes règles. session - Le contexte dans lequel le service est délivré au - demandeur par le serveur. L'un des quatre mécanismes de PAM, la + Le contexte dans lequel le service est délivré au + demandeur par le serveur. L'un des quatre mécanismes de PAM, la gestion de session, s'en occupe exclusivement par la - mise en place et le relâchement de ce contexte. + mise en place et le relâchement de ce contexte. jeton - Un morceau d'information associé avec un compte tel qu'un + Un morceau d'information associé avec un compte tel qu'un mot de passe ou une passphrase que le demandeur doit fournir - pour prouver son identité. + pour prouver son identité. transaction - Une séquence de requêtes depuis le même demandeur vers la - même instance du même serveur, commençant avec + Une séquence de requêtes depuis le même demandeur vers la + même instance du même serveur, commençant avec l'authentification et la mise en place de la session et se - terminant avec le démontage de la session. + terminant avec le démontage de la session.
Exemples d'utilisation Cette section a pour but d'illustrer - quelques-uns des termes définis précédemment à l'aide + quelques-uns des termes définis précédemment à l'aide d'exemples basiques.
Client et serveurs ne font qu'un Cet exemple simple montre alice utilisant &man.su.1; pour devenir root. &prompt.user; whoami alice &prompt.user; ls -l `which su` -r-sr-xr-x 1 root wheel 10744 Dec 6 19:06 /usr/bin/su &prompt.user; su - Password: xi3kiune &prompt.root; whoami root Le demandeur est alice. Le compte est root. - Le processus &man.su.1; est à la fois client et serveur. + Le processus &man.su.1; est à la fois client et serveur. Le jeton d'authentification est xi3kiune. L'arbitre est root, ce qui explique pourquoi &man.su.1; est setuid root.
Client et serveur sont distincts. L'exemple suivant montre eve essayant d'initier une connexion &man.ssh.1; vers - login.exemple.com, en demandant à se logguer en - tant que bob. La connexion réussit. Bob aurait du choisir + login.exemple.com, en demandant à se logguer en + tant que bob. La connexion réussit. Bob aurait du choisir un meilleur mot de passe ! &prompt.user; whoami eve &prompt.user; ssh bob@login.example.com bob@login.example.com's password: god Last login: Thu Oct 11 09:52:57 2001 from 192.168.0.1 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.4-STABLE (LOGIN) #4: Tue Nov 27 18:10:34 PST 2001 Welcome to FreeBSD! &prompt.user; Le demandeur est eve. - Le client d'eve est représenté par les processus &man.ssh.1; + Le client d'eve est représenté par les processus &man.ssh.1; Le serveur est le processus &man.sshd.8; sur login.example.com Le compte est bob. Le jeton d'identification est god. - Bien que cela ne soit pas montré dans cet exemple, + Bien que cela ne soit pas montré dans cet exemple, l'arbitre est root.
- Exemple de règles + Exemple de règles - Les lignes qui suivent sont les règles par défaut de + Les lignes qui suivent sont les règles par défaut de sshd: sshd auth required pam_nologin.so no_warn sshd auth required pam_unix.so no_warn try_first_pass sshd account required pam_login_access.so sshd account required pam_unix.so sshd session required pam_lastlog.so no_fail sshd password required pam_permit.so Cette politique s'applique au service - sshd (qui n'est pas necéssairement restreind + sshd (qui n'est pas nécessairement restreint au serveur &man.sshd.8;) auth, account, session et - password sont des mécanismes. + password sont des mécanismes. pam_nologin.so, pam_unix.so, pam_login_access.so, pam_lastlog.so et pam_permit.so sont des modules. Il est clair dans cet exemple que pam_unix.so - fournit au moins deux mécanismes ( authentification et + fournit au moins deux mécanismes ( authentification et gestion de compte).
Conventions - Cette section n'a pas encore été écrite. + Cette section n'a pas encore été écrite.
Les bases de PAM
- Mécanismes et primitives + Mécanismes et primitives L'API PAM fournit six primitives d'authentification - différentes regroupées dans quatre mécanismes qui seront décrits + différentes regroupées dans quatre mécanismes qui seront décrits dans la partie suivante. auth - Authentification. Ce mécanisme - concerne l'authentification du demandeur et établit les + Authentification. Ce mécanisme + concerne l'authentification du demandeur et établit les droits du compte. Il fournit deux primitives : &man.pam.authenticate.3; authentifie le demandeur, - généralement en demandant un jeton d'identification et en le - comparant a une valeur stockée dans une base de données ou + généralement en demandant un jeton d'identification et en le + comparant a une valeur stockée dans une base de données ou obtenue par le biais d'un serveur d'authentification. - &man.pam.setcred.3; établi les paramètres du compte tel + &man.pam.setcred.3; établi les paramètres du compte tel que l'uid, les groupes dont le compte fait parti ou les limites sur l'utilisation des ressources. account - Gestion de compte. Ce mécanisme - concerne la disponibilité du compte pour des raisons autres que - l'authentification. Par exemple les restrictions basées sur + Gestion de compte. Ce mécanisme + concerne la disponibilité du compte pour des raisons autres que + l'authentification. Par exemple les restrictions basées sur l'heure courante ou la charge du serveur. Il fournit une seule primitive: - &man.pam.acct.mgmt.3; vérifie que le compte demandé est + &man.pam.acct.mgmt.3; vérifie que le compte demandé est disponible. session - Gestion de session. Ce mécanisme + Gestion de session. Ce mécanisme concerne la mise en place de la session et sa terminaison, par exemple l'enregistrement de la session dans les journaux. Il fournit deux primitives: - &man.pam.open.session.3; accomplie les tâches associées à - la mise en place d'une session : ajouter une entrée dans les + &man.pam.open.session.3; accomplie les tâches associées à + la mise en place d'une session : ajouter une entrée dans les bases utmp et wtmp, - démarrer un agent SSH... + démarrer un agent SSH... - &man.pam.close.session.3; accomplie les tâches associées à - la terminaison d'une session : ajouter une entrée dans les bases - utmp et wtmp, arrêter + &man.pam.close.session.3; accomplie les tâches associées à + la terminaison d'une session : ajouter une entrée dans les bases + utmp et wtmp, arrêter l'agent SSH... password Gestion des mots de passe. Ce - mécanisme est utilisé pour modifier le jeton d'authentification - associé à un compte, soit parce qu'il a expiré, soit parce que - l'utilisateur désire le changer. Il fournit une seule + mécanisme est utilisé pour modifier le jeton d'authentification + associé à un compte, soit parce qu'il a expiré, soit parce que + l'utilisateur désire le changer. Il fournit une seule primitive: &man.pam.chauthtok.3; modifie le jeton d'authentification, - et éventuellement vérifie que celui-ci est assez robuste pour ne - pas être deviné facilement ou qu'il n'a pas déjà utilisé. + et éventuellement vérifie que celui-ci est assez robuste pour ne + pas être deviné facilement ou qu'il n'a pas déjà utilisé.
Modules - Les modules sont le concept clef de PAM; après tout ils + Les modules sont le concept clef de PAM; après tout ils constituent le M de PAM. Un module PAM est - lui-même un morceau de code qui implémente les primitives d'un - ou plusieurs mécanismes pour une forme particulière + lui-même un morceau de code qui implémente les primitives d'un + ou plusieurs mécanismes pour une forme particulière d'authentification; par exemple, les bases de mots de passe UNIX que sont NIS, LDAP et Radius.
Nom des modules - FreeBSD implémente chaque mécanismes dans un module distinct - nommé - pam_mécanisme.so - (par exemple pam_unix.so pour le mechanisme - Unix .) Les autres implementations possèdent parfois des modules - séparés pour des mécanismes séparés et incluent aussi bien le - nom du service que celui du mécanisme dans le nom du module. Un + FreeBSD implémente chaque mécanismes dans un module distinct + nommé + pam_mécanisme.so + (par exemple pam_unix.so pour le mécanisme + Unix .) Les autres implementations possèdent parfois des modules + séparés pour des mécanismes séparés et incluent aussi bien le + nom du service que celui du mécanisme dans le nom du module. Un exemple est le module pam_dial_auth.so.1 de - Solaris qui est utilisé pour authentifier les utilisateurs + Solaris qui est utilisé pour authentifier les utilisateurs dialup.
Gestion des versions de module - L'implementation originale de PAM par FreeBSD, basée sur - Linux-PAM, n'utilisait pas de numéro de version pour les modules - PAM. Ceci peut poser des problèmes avec les applications tiers qui - peuvent être liées avec d'anciennes bibliothèques systèmes, puisqu'il - n'y a pas possibilité de charger la version correspondante du - module désiré. - - Pour sa part, OpenPAM cherche les modules qui ont la même - version que la bibliothèque PAM (pour le moment 2) et se rabat sur - un module sans version si aucun module avec version n'a put être - chargé. Ainsi les anciens modules peuvent être fournis pour les + L'implémentation originale de PAM par FreeBSD, basée sur + Linux-PAM, n'utilisait pas de numéro de version pour les modules + PAM. Ceci peut poser des problèmes avec les applications tiers qui + peuvent être liées avec d'anciennes bibliothèques systèmes, puisqu'il + n'y a pas possibilité de charger la version correspondante du + module désiré. + + Pour sa part, OpenPAM cherche les modules qui ont la même + version que la bibliothèque PAM (pour le moment 2) et se rabat sur + un module sans version si aucun module avec version n'a put être + chargé. Ainsi les anciens modules peuvent être fournis pour les anciennes applications, tout en permettant aux nouvelles applications - (ou bien nouvellement compilées) de tirer parti des - modules les plus récents. + (ou bien nouvellement compilées) de tirer parti des + modules les plus récents. - Bien que les modules PAM de Solaris possèdent généralement un - numéro de version, ils ne sont pas réellement versionnés car - le numéro correspond à une partie du nom du module et doit être + Bien que les modules PAM de Solaris possèdent généralement un + numéro de version, ils ne sont pas réellement versionnés car + le numéro correspond à une partie du nom du module et doit être inclus dans la configuration.
- Chaînes et politiques + Chaînes et politiques Lorsqu'un serveur initie une transaction PAM, la - bibliothèque PAM essaie de charger une politique pour le service - spécifié dans l'appel a &man.pam.start.3; . La politique - indique comment la requête d'authentification doit être traitée - et est définie dans un fichier de configuration. Il s'agit de - l'autre concept clef de PAM : la possibilité pour - l'administrateur de configurer la politique de sécurité d'un - système en éditant simplement une fichier texte. - - Une politique consiste en quatre chaînes, une pour chacune - des quatre mécanismes de PAM. Chaque chaîne est une suite de - règles de configuration, chacune spécifiant un module à - invoquer, des paramètres, options, à passer au module et un - drapeau de contrôle qui décrit comment interpréter le code de + bibliothèque PAM essaie de charger une politique pour le service + spécifié dans l'appel a &man.pam.start.3; . La politique + indique comment la requête d'authentification doit être traitée + et est définie dans un fichier de configuration. Il s'agit de + l'autre concept clef de PAM : la possibilité pour + l'administrateur de configurer la politique de sécurité d'un + système en éditant simplement une fichier texte. + + Une politique consiste en quatre chaînes, une pour chacune + des quatre mécanismes de PAM. Chaque chaîne est une suite de + règles de configuration, chacune spécifiant un module à + invoquer, des paramètres, options, à passer au module et un + drapeau de contrôle qui décrit comment interpréter le code de retour du module. - Comprendre le drapeau de contrôle est essentiel pour + Comprendre le drapeau de contrôle est essentiel pour comprendre les fichiers de configuration de PAM. Il existe - quatre drapeaux de contrôle différents : + quatre drapeaux de contrôle différents : binding - Si le module réussit et qu'aucun module précédent de la - chaîne n'a échoué, la chaîne s'interrompt immédiatement et la - requête est autorisée. Si le module échoue le reste de la - chaîne est exécuté, mais la requête est rejetée au + Si le module réussit et qu'aucun module précédent de la + chaîne n'a échoué, la chaîne s'interrompt immédiatement et la + requête est autorisée. Si le module échoue le reste de la + chaîne est exécuté, mais la requête est rejetée au final. - Ce drapeau de contrôle a été introduit par Sun Solaris - dans la version 9 (SunOS 5.9); il est aussi supporté par + Ce drapeau de contrôle a été introduit par Sun Solaris + dans la version 9 (SunOS 5.9); il est aussi supporté par OpenPAM. required - Si le module réussit, le reste de la chaîne est exécuté, - et la requête est autorisée si aucun des autres modules - n'échoue. Si le module échoue, le reste de la chaîne est - exécuté, mais au final la requête est rejetée. + Si le module réussit, le reste de la chaîne est exécuté, + et la requête est autorisée si aucun des autres modules + n'échoue. Si le module échoue, le reste de la chaîne est + exécuté, mais au final la requête est rejetée. requisite - Si le module réussit le reste de la chaîne est exécuté, - et la requête est autorisée sauf si d'autres modules - échoués. Si le module échoue la chaîne est immédiatement - terminée et la requête est rejetée. + Si le module réussit le reste de la chaîne est exécuté, + et la requête est autorisée sauf si d'autres modules + échoués. Si le module échoue la chaîne est immédiatement + terminée et la requête est rejetée. sufficient - Si le module réussit et qu'aucun des modules précédent - n'a échoué la chaîne est immédiatement terminée et la requête - est allouée. Si le module échoue il est ignore et le reste de - la chaîne est exécuté. - - Puisque la sémantique de ce drapeau peut être un peu - confuse, spécialement lorsqu'il s'agit de celui du dernier - module de la chaîne, il est recommandé d'utiliser le drapeau - binding à la place de celui-ci sous la condition que - l'implementation le supporte. + Si le module réussit et qu'aucun des modules précédent + n'a échoué la chaîne est immédiatement terminée et la requête + est allouée. Si le module échoue il est ignore et le reste de + la chaîne est exécuté. + + Puisque la sémantique de ce drapeau peut être un peu + confuse, spécialement lorsqu'il s'agit de celui du dernier + module de la chaîne, il est recommandé d'utiliser le drapeau + binding à la place de celui-ci sous la condition que + l'implémentation le supporte. optional - Le module est exécuté mais le résultat est ignoré. Si - tout les modules de la chaîne sont marqués - optional, toutes les requêtes seront - toujours acceptées. + Le module est exécuté mais le résultat est ignoré. Si + tout les modules de la chaîne sont marqués + optional, toutes les requêtes seront + toujours acceptées. Lorsqu'un serveur invoque l'une des six primitives PAM, - PAM récupère la chaîne du mécanisme à laquelle la requête - correspond et invoque chaque module de la chaîne dans l'ordre - indiqué, jusqu'à ce que la fin soit atteinte ou qu'aucune - exécution supplémentaire ne soit nécessaire (soit à cause du - succès d'un module en binding ou - sufficient, soit à cause de l'échec d'un - module requisite). La requête est acceptée si - et seulement si au moins un module a été invoqué, et que tout - les modules non optionnels ont réussi. + PAM récupère la chaîne du mécanisme à laquelle la requête + correspond et invoque chaque module de la chaîne dans l'ordre + indiqué, jusqu'à ce que la fin soit atteinte ou qu'aucune + exécution supplémentaire ne soit nécessaire (soit à cause du + succès d'un module en binding ou + sufficient, soit à cause de l'échec d'un + module requisite). La requête est acceptée si + et seulement si au moins un module a été invoqué, et que tout + les modules non optionnels ont réussi. Notez qu'il est possible, bien que peu courant, d'avoir le - même module listé plusieurs fois dans la même chaîne. Par - exemple un module qui détermine le nom utilisateur et le mot de - passe à l'aide d'un serveur directory peut être invoqué - plusieurs fois avec des paramètres spécifiant différents - serveurs a contacter. PAM considère les différentes occurrences - d'un même module dans une même chaîne comme des modules - différents et non liés. + même module listé plusieurs fois dans la même chaîne. Par + exemple un module qui détermine le nom utilisateur et le mot de + passe à l'aide d'un serveur directory peut être invoqué + plusieurs fois avec des paramètres spécifiant différents + serveurs a contacter. PAM considère les différentes occurrences + d'un même module dans une même chaîne comme des modules + différents et non liés.
Transactions - Le cycle de vie d'une transaction PAM typique est décrit - ci-dessous. Notez que si l'une de ces étapes échoue, le serveur - devrait reporter un message d'erreur au client et arrêter la + Le cycle de vie d'une transaction PAM typique est décrit + ci-dessous. Notez que si l'une de ces étapes échoue, le serveur + devrait reporter un message d'erreur au client et arrêter la transaction. - Si nécessaire, le serveur obtient les privilèges de - l'arbitre par le biais d'un mécanisme indépendant de PAM — - généralement en ayant été démarré par root ou - en étant setuid root. + Si nécessaire, le serveur obtient les privilèges de + l'arbitre par le biais d'un mécanisme indépendant de PAM — + généralement en ayant été démarré par root ou + en étant setuid root. Le serveur appel &man.pam.start.3; afin d'initialiser la - bibliothèque PAM et indique le service et le compte cible, et - enregistre une fonction de conversation appropriée. + bibliothèque PAM et indique le service et le compte cible, et + enregistre une fonction de conversation appropriée. Le serveur obtient diverses informations concernant la transaction (tel que le nom d'utilisateur du demandeur et le nom - d'hôte de la machine sur lequel le client tourne) et les soumet - à PAM en utilisant la fonction &man.pam.set.item.3;. + d'hôte de la machine sur lequel le client tourne) et les soumet + à PAM en utilisant la fonction &man.pam.set.item.3;. Le serveur appel &man.pam.authenticate.3; pour authentifier le demandeur. Le serveur appel la fonction &man.pam.acct.mgmt.3; qui - vérifie que le compte est valide et disponible. Si le mot de - passe est correct mais a expiré, &man.pam.acct.mgmt.3; retournera - PAM_NEW_AUTHTOK_REQD à la place de + vérifie que le compte est valide et disponible. Si le mot de + passe est correct mais a expiré, &man.pam.acct.mgmt.3; retournera + PAM_NEW_AUTHTOK_REQD à la place de PAM_SUCCESS. - Si l'étape précédente a retourné + Si l'étape précédente a retourné PAM_NEW_AUTHTOK_REQD, le serveur appel - maintenant &man.pam.chauthtok.3; pour obliger l'utilisateur à - changer le jeton d'authentification du compte désiré. + maintenant &man.pam.chauthtok.3; pour obliger l'utilisateur à + changer le jeton d'authentification du compte désiré. - Maintenant que le demandeur a été correctement authentifié, - le serveur appelle &man.pam.setcred.3; pour obtenir les privilèges - du compte désiré. Il lui est possible de faire ceci parce qu'il - agit au nom de l'arbitre dont il possède les privilèges. + Maintenant que le demandeur a été correctement authentifié, + le serveur appelle &man.pam.setcred.3; pour obtenir les privilèges + du compte désiré. Il lui est possible de faire ceci parce qu'il + agit au nom de l'arbitre dont il possède les privilèges. - Lorsque les privilèges corrects ont été établi le serveur + Lorsque les privilèges corrects ont été établi le serveur appelle &man.pam.open.session.3; pour mettre en place la session. - Maintenant le serveur effectue les services demandés par le + Maintenant le serveur effectue les services demandés par le client — par exemple fournir un shell au demandeur. Lorsque le serveur a fini de servir le client, il appelle &man.pam.close.session.3; afin de terminer la session. Pour finir, le serveur appelle &man.pam.end.3; afin signaler - à la bibliothèque PAM que la transaction se termine et qu'elle peut libérer - les ressources qu'elle a alloué au cours de la + à la bibliothèque PAM que la transaction se termine et qu'elle peut libérer + les ressources qu'elle a alloué au cours de la transaction.
Configuration de PAM
Emplacement des fichiers de configuration Le fichier de configuration de PAM est traditionnellement /etc/pam.conf. Ce fichier contient toutes - les politiques de PAM pour votre système. Chaque ligne du - fichier décrit une étape dans une chaîne, tel que nous allons le + les politiques de PAM pour votre système. Chaque ligne du + fichier décrit une étape dans une chaîne, tel que nous allons le voir ci-dessous: login auth required pam_nologin.so no_warn - Les champs sont respectivement, le service, le nom du mécanisme, le - drapeau de contrôle, le nom du module et les arguments du - module. Tout champ additionnel est considéré comme argument du + Les champs sont respectivement, le service, le nom du mécanisme, le + drapeau de contrôle, le nom du module et les arguments du + module. Tout champ additionnel est considéré comme argument du module. - Une chaîne différente est construite pour chaque couple - service/mécanisme; ainsi, alors que l'ordre des lignes est - important lorsqu'il s'agit des mêmes services ou mécanismes, - l'ordre dans lequel les différents services et mécanismes - apparaissent ne l'est pas — excepté l'entrée pour le - service other, qui sert de référence par défaut et doit - être placé à la fin. L'exemple du papier original sur PAM - regroupait les lignes de configurations par mécanisme et le + Une chaîne différente est construite pour chaque couple + service/mécanisme; ainsi, alors que l'ordre des lignes est + important lorsqu'il s'agit des mêmes services ou mécanismes, + l'ordre dans lequel les différents services et mécanismes + apparaissent ne l'est pas — excepté l'entrée pour le + service other, qui sert de référence par défaut et doit + être placé à la fin. L'exemple du papier original sur PAM + regroupait les lignes de configurations par mécanisme et le fichier pam.conf de Solaris le fait toujours, mais FreeBSD groupe les lignes de configuration par - service. Toutefois il ne s'agit pas de la seule possibilité et les autres possèdent + service. Toutefois il ne s'agit pas de la seule possibilité et les autres possèdent aussi un sens. - OpenPAM et Linux-PAM offrent un mécanisme de configuration - alternatif où les politiques sont placées dans des fichiers - séparés portant le nom du service auquel ils s'appliquent. Ces - fichiers sont situés dans /etc/pam.d/ et - ne contiennent que quatre champs à la place de cinq — le + OpenPAM et Linux-PAM offrent un mécanisme de configuration + alternatif où les politiques sont placées dans des fichiers + séparés portant le nom du service auquel ils s'appliquent. Ces + fichiers sont situés dans /etc/pam.d/ et + ne contiennent que quatre champs à la place de cinq — le champ contenant le nom du service est omis. Il s'agit du mode - par défaut dans FreeBSD 4.x. Notez que si le fichier + par défaut dans FreeBSD 4.x. Notez que si le fichier /etc/pam.conf existe et contient des informations de configuration pour des services qui n'ont pas de - politique spécifiée dans /etc/pam.d, ils - seront utilisés pour ces services. + politique spécifiée dans /etc/pam.d, ils + seront utilisés pour ces services. Le gros avantage de /etc/pam.d/ sur /etc/pam.conf est qu'il est possible - d'utiliser la même politique pour plusieurs services en liant - chaque nom de service à un fichier de configuration. Par - exemple pour utiliser la même politique pour les services + d'utiliser la même politique pour plusieurs services en liant + chaque nom de service à un fichier de configuration. Par + exemple pour utiliser la même politique pour les services su et sudo, nous pouvons faire comme ceci : &prompt.root; cd /etc/pam.d &prompt.root; ln -s su sudo - Ceci fonctionne car le nom de service est déterminé a - partir du nom de fichier plutôt qu'indiqué à l'intérieur du - fichier de configuration, ainsi le même fichier peut être utilisé - pour des services nommés différemment. + Ceci fonctionne car le nom de service est déterminé a + partir du nom de fichier plutôt qu'indiqué à l'intérieur du + fichier de configuration, ainsi le même fichier peut être utilisé + pour des services nommés différemment. Un autre avantage est qu'un logiciel tiers peu facilement installer les politiques pour ses services sans avoir besoin - d'éditer /etc/pam.conf. Pour continuer la + d'éditer /etc/pam.conf. Pour continuer la tradition de FreeBSD, OpenPAM regardera dans /usr/local/etc/pam.d pour trouver les - fichiers de configurations; puis si aucun n'est trouvé pour le - service demandé, il cherchera dans /etc/pam.d/ ou + fichiers de configurations; puis si aucun n'est trouvé pour le + service demandé, il cherchera dans /etc/pam.d/ ou /etc/pam.conf. - Finalement, quelque soit le mécanisme que vous + Finalement, quelque soit le mécanisme que vous choisissiez, la politique magique - other est utilisée par défaut pour tous les + other est utilisée par défaut pour tous les services qui n'ont pas leur propre politique.
Breakdown of a configuration line - Comme expliqué dans la section Comme expliqué dans la section , chaque ligne de pam.conf consiste en quatre champs ou plus: le - nom de service, le nom du mécanisme, le drapeau de contrôle, le nom - du module et la présence ou non d'arguments pour le module. + nom de service, le nom du mécanisme, le drapeau de contrôle, le nom + du module et la présence ou non d'arguments pour le module. - Le nom du service est généralement, mais pas toujours, le - nom de l'application auquelle les règles s'appliquent. Si vous - n'êtes pas sûr, référez vous à la documentation de l'application - pour déterminer quel nom de service elle utilise. + Le nom du service est généralement, mais pas toujours, le + nom de l'application auquelle les règles s'appliquent. Si vous + n'êtes pas sûr, référez vous à la documentation de l'application + pour déterminer quel nom de service elle utilise. Notez que si vous utilisez - /etc/pam.d/ à la place de + /etc/pam.d/ à la place de /etc/pam.conf, le nom du service est - spécifié par le nom du fichier de configuration et n'est pas - indiqué dans les lignes de configuration qui, dès lors, - commencent par le nom du mécanisme. + spécifié par le nom du fichier de configuration et n'est pas + indiqué dans les lignes de configuration qui, dès lors, + commencent par le nom du mécanisme. - Le mécanisme est l'un des quatre mots clef décrit dans la + Le mécanisme est l'un des quatre mots clef décrit dans la section - De même, le drapeau de contrôle est l'un des quatre mots - clef décrits dans la section et décrit comment - le module doit interpréter le code de retour du + De même, le drapeau de contrôle est l'un des quatre mots + clef décrits dans la section et décrit comment + le module doit interpréter le code de retour du module. Linux-PAM supporte une syntaxe alternative qui vous - laisse spécifier l'action à associer à chaque code de retour - possible; mais ceci devrait être évité puisque ce n'est pas - standard et étroitement lié à la façon dont Linux-PAM appelle les - services (qui diffère grandement de la façon de Solaris et - OpenPAM). C'est sans étonnement que l'on apprend qu'OpenPAM ne + laisse spécifier l'action à associer à chaque code de retour + possible; mais ceci devrait être évité puisque ce n'est pas + standard et étroitement lié à la façon dont Linux-PAM appelle les + services (qui diffère grandement de la façon de Solaris et + OpenPAM). C'est sans étonnement que l'on apprend qu'OpenPAM ne supporte pas cette syntaxe.
Politiques Pour configurer PAM correctement, il est essentiel de - comprendre comment les politiques sont interprétées. + comprendre comment les politiques sont interprétées. Lorsqu'une application appelle &man.pam.start.3; la - bibliothèque PAM charge la politique du service spécifié et - construit les quatre chaînes de module (une pour chaque - mécanisme). Si une ou plusieurs chaînes sont vides, les chaînes + bibliothèque PAM charge la politique du service spécifié et + construit les quatre chaînes de module (une pour chaque + mécanisme). Si une ou plusieurs chaînes sont vides, les chaînes de la politique du service other sont - utilisées. + utilisées. Plus tard, lorsque l'application appelle l'une des six - primitives PAM, la bibliothèque PAM récupère la chaîne du - mécanisme correspondant et appelle la fonction appropriée avec - chaque module listé dans la chaîne. Après chaque appel d'une + primitives PAM, la bibliothèque PAM récupère la chaîne du + mécanisme correspondant et appelle la fonction appropriée avec + chaque module listé dans la chaîne. Après chaque appel d'une fonction de service, le type du module et le code d'erreur - sont retournés par celle-ci pour déterminer quoi faire. À quelques - exceptions près, dont nous parlerons plus tard, la table + sont retournés par celle-ci pour déterminer quoi faire. À quelques + exceptions près, dont nous parlerons plus tard, la table suivante s'applique: - Résumé de la chaîne d'exécution PAM + Résumé de la chaîne d'exécution PAM PAM_SUCCESS PAM_IGNORE other binding if (!fail) break; - fail = true; required - - fail = true; requisite - - fail = true; break; sufficient if (!fail) break; - - optional - - -
- Si fail est vrai à la fin de la chaîne, + Si fail est vrai à la fin de la chaîne, ou lorsqu'un break est atteint, le dispatcheur - retourne le code d'erreur renvoyé par le premier module qui a - échoué. Autrement PAM_SUCCESS est - retourné. + retourne le code d'erreur renvoyé par le premier module qui a + échoué. Autrement PAM_SUCCESS est + retourné. - La première exception est que le code d'erreur - PAM_NEW_AUTHOK_REQD soit considéré comme un - succès, sauf si aucun module n'échoue et qu'au moins un module + La première exception est que le code d'erreur + PAM_NEW_AUTHOK_REQD soit considéré comme un + succès, sauf si aucun module n'échoue et qu'au moins un module retourne PAM_NEW_AUTHOK_REQD le dispatcheur retournera PAM_NEW_AUTHOK_REQD. - La seconde exception est que &man.pam.setcred.3; considère + La seconde exception est que &man.pam.setcred.3; considère les modules binding et - sufficient comme s'ils étaient + sufficient comme s'ils étaient required. - La troisième et dernière exception est que - &man.pam.chauthtok.3; exécute la totalité de la chaîne deux fois - (la première pour des vérifications préliminaires et la deuxième - pour mettre le mot de passe) et lors de la première exécution - il considère les modules binding et - sufficient comme s'ils étaient + La troisième et dernière exception est que + &man.pam.chauthtok.3; exécute la totalité de la chaîne deux fois + (la première pour des vérifications préliminaires et la deuxième + pour mettre le mot de passe) et lors de la première exécution + il considère les modules binding et + sufficient comme s'ils étaient required.
Les modules PAM de FreeBSD
&man.pam.deny.8; Le module &man.pam.deny.8; est l'un des modules disponibles - les plus simples; il répond à n'importe qu'elle requête par - PAM_AUTH_ERR. Il est utile pour désactiver - rapidement un service (ajoutez-le au début de chaque chaîne), ou - pour terminer les chaînes de modules + les plus simples; il répond à n'importe qu'elle requête par + PAM_AUTH_ERR. Il est utile pour désactiver + rapidement un service (ajoutez-le au début de chaque chaîne), ou + pour terminer les chaînes de modules sufficient.
&man.pam.echo.8; Le module &man.pam.echo.8; passe simplement ses arguments - à la fonction de conversation comme un message - PAM_TEXT_INFO. Il est principalement utilisé - pour le debogage mais il peut aussi servir à afficher un - message tel que Les accès illégaux seront - poursuivits avant de commencer la procédure + à la fonction de conversation comme un message + PAM_TEXT_INFO. Il est principalement utilisé + pour le debogage mais il peut aussi servir à afficher un + message tel que Les accès illégaux seront + poursuivits avant de commencer la procédure d'authentification.
&man.pam.exec.8; Le module &man.pam.exec.8; prend comme premier argument le - nom du programme à exécuter, les arguments restant étant - utilisés comme arguments pour ce programme. L'une des + nom du programme à exécuter, les arguments restant étant + utilisés comme arguments pour ce programme. L'une des applications possibles est d'utiliser un programme qui monte le - répertoire de l'utilisateur lors du login. + répertoire de l'utilisateur lors du login.
pam_ftp(8) Le module pam_ftp(8)
&man.pam.ftpusers.8; Le module &man.pam.ftpusers.8;
&man.pam.group.8; Le module &man.pam.group.8; accepte ou rejette le - demandeur à partir de son appartenance à un groupe particulier - (généralement wheel pour &man.su.1;). Il a + demandeur à partir de son appartenance à un groupe particulier + (généralement wheel pour &man.su.1;). Il a pour but premier de conserver le comportement traditionnel de - &man.su.1; mais possède d'autres applications comme par exemple + &man.su.1; mais possède d'autres applications comme par exemple exclure un certain groupe d'utilisateurs d'un service particulier.
&man.pam.krb5.8; Le module &man.pam.krb5.8;
&man.pam.ksu.8; Le module &man.pam.ksu.8;
&man.pam.lastlog.8; Le module &man.pam.lastlog.8;
&man.pam.login.access.8; Le module &man.pam.login.access.8;
&man.pam.nologin.8; Le module &man.pam.nologin.8;
&man.pam.opie.8; - Le module &man.pam.opie.8; implémente la méthode - d'authentification &man.opie.4;. Le système &man.opie.4; est un - mécanisme de challenge-response où la réponse à chaque + Le module &man.pam.opie.8; implémente la méthode + d'authentification &man.opie.4;. Le système &man.opie.4; est un + mécanisme de challenge-response où la réponse à chaque challenge est une fonction directe du challenge et une phrase de - passe, ainsi la réponse peut facilement être calculée en - temps voulu par n'importe qui possédant la phrase de - passe ce qui élimine le besoin d'une liste de mots de passe. De - plus, puisque &man.opie.4; ne réutilise jamais un mot de passe - qui a reçu une réponse correcte, il n'est pas vulnérable aux - attaques basée sur le rejouage. + passe, ainsi la réponse peut facilement être calculée en + temps voulu par n'importe qui possédant la phrase de + passe ce qui élimine le besoin d'une liste de mots de passe. De + plus, puisque &man.opie.4; ne réutilise jamais un mot de passe + qui a reçu une réponse correcte, il n'est pas vulnérable aux + attaques basée sur le rejouage.
&man.pam.opieaccess.8; Le module &man.pam.opieaccess.8; est un compagnon du module &man.pam.opie.8;. Son but est de renforcer les - restrictions codifiées dans &man.opieaccess.5;, il régule les + restrictions codifiées dans &man.opieaccess.5;, il régule les conditions sous lesquelles un utilisateur qui normalement - devrait s'authentifier par &man.opie.4; est amené à utiliser - d'autres méthodes. Ceci est généralement utilisé pour interdire - l'authentification par mot de passe depuis des hôtes non digne + devrait s'authentifier par &man.opie.4; est amené à utiliser + d'autres méthodes. Ceci est généralement utilisé pour interdire + l'authentification par mot de passe depuis des hôtes non digne de confiance. - Pour être réellement effectif, le module - &man.pam.opieaccess.8; doit être listé comme - requisite immédiatement après une entrée + Pour être réellement effectif, le module + &man.pam.opieaccess.8; doit être listé comme + requisite immédiatement après une entrée sufficient pour &man.pam.opie.8; et avant - tout autre module, dans la chaîne + tout autre module, dans la chaîne auth.
&man.pam.passwdqc.8; Le module &man.pam.passwdqc.8;
&man.pam.permit.8; Le module &man.pam.permit.8; est l'un des modules - disponibles les plus simples; il répond à n'importe quelle - requête par PAM_SUCCESS. Il est utile pour - les services où une ou plusieurs chaînes auraient - autrement été vides. + disponibles les plus simples; il répond à n'importe quelle + requête par PAM_SUCCESS. Il est utile pour + les services où une ou plusieurs chaînes auraient + autrement été vides.
&man.pam.radius.8; Le module &man.pam.radius.8;
&man.pam.rhosts.8; Le module &man.pam.rhosts.8;
&man.pam.rootok.8; - Le module &man.pam.rootok.8; retourne un succès si et - seulement si l'identifiant d'utilisateur réel du processus - appelant est 0. Ceci est utile pour les services non basés sur - le réseau tel que &man.su.1; ou &man.passwd.1; où - l'utilisateur root doit avoir un accès + Le module &man.pam.rootok.8; retourne un succès si et + seulement si l'identifiant d'utilisateur réel du processus + appelant est 0. Ceci est utile pour les services non basés sur + le réseau tel que &man.su.1; ou &man.passwd.1; où + l'utilisateur root doit avoir un accès automatique.
&man.pam.securetty.8; Le module &man.pam.securetty.8;
&man.pam.self.8; - Le module &man.pam.self.8; retourne un succès si et + Le module &man.pam.self.8; retourne un succès si et seulement si le nom du demandeur correspond au nom du compte - désiré. Il est utile pour les services non basés sur le réseau - tel que &man.su.1; où l'identité du demandeur peut être - vérifiée facilement . + désiré. Il est utile pour les services non basés sur le réseau + tel que &man.su.1; où l'identité du demandeur peut être + vérifiée facilement .
&man.pam.ssh.8; Le module &man.pam.ssh.8;
&man.pam.tacplus.8; Le module &man.pam.tacplus.8;
&man.pam.unix.8; - Le module &man.pam.unix.8; implémente l'authentification + Le module &man.pam.unix.8; implémente l'authentification Unix traditionnelle par mot de passe, il utilise - &man.getpwnam.3; pour obtenir le mot de passe du compte visé et + &man.getpwnam.3; pour obtenir le mot de passe du compte visé et le compare avec celui fournit par le demandeur. Il fournit aussi - des services de gestion de compte (désactivation du compte et + des services de gestion de compte (désactivation du compte et date d'expiration) ainsi que des services pour le changement de mot de passe. Il s'agit certainement du module le plus utile car - la plupart des administrateurs désirent garder le comportement + la plupart des administrateurs désirent garder le comportement historique pour quelques services.
Programmation d'applications PAM - Cette section n'a pas encore été écrite. + Cette section n'a pas encore été écrite.
Programmation de modules PAM - Cette section n'a pas été encore écrite. + Cette section n'a pas été encore écrite.
Exemples d'application PAM - Ce qui suit est une implémentation minimale de &man.su.1; en + Ce qui suit est une implémentation minimale de &man.su.1; en utilisant PAM. Notez qu'elle utilise la fonction de conversation - &man.openpam.ttyconv.3; spécifique à OpenPAM qui est prototypée + &man.openpam.ttyconv.3; spécifique à OpenPAM qui est prototypée dans security/openpam.h. Si vous désirez - construire cette application sur un système utilisant une - bibliothèque PAM différente vous devrez fournir votre propre + class="headerfile">security/openpam.h. Si vous désirez + construire cette application sur un système utilisant une + bibliothèque PAM différente vous devrez fournir votre propre fonction de conversation. Une fonction de conversation robuste est - étonnamment difficile à implémenter; celle présentée dans + étonnamment difficile à implémenter; celle présentée dans l'appendice est un bon point de - départ, mais ne devrait pas être utilisée dans des applications - réelles. + départ, mais ne devrait pas être utilisée dans des applications + réelles. Exemple d'un module PAM - Ce qui suit est une implémentation minimale de + Ce qui suit est une implémentation minimale de &man.pam.unix.8; offrant uniquement les services d'authentification. Elle devrait compiler et tourner avec la - plupart des implémentations PAM, mais tire parti des extensions + plupart des implémentations PAM, mais tire parti des extensions d'OpenPAM si elles sont disponibles : notez l'utilisation de - &man.pam.get.authtok.3; qui simplifie énormément l'affichage de - l'invite pour demander le mot de passe à l'utilisateur. + &man.pam.get.authtok.3; qui simplifie énormément l'affichage de + l'invite pour demander le mot de passe à l'utilisateur. Exemple d'une fonction de conversation PAM - La fonction de conversation présentée ci-dessous est une - version grandement simplifiée de la fonction + La fonction de conversation présentée ci-dessous est une + version grandement simplifiée de la fonction &man.openpam.ttyconv.3; d'OpenPAM. Elle est pleinement fonctionnelle - et devrait donner au lecteur une bonne idée de comment doit se + et devrait donner au lecteur une bonne idée de comment doit se comporter une fonction de conversation, mais elle est trop simple - pour une utilisation réelle. Même si vous n'utilisez pas OpenPAM, - N'hésitez pas à télécharger le code source et d'adapter - &man.openpam.ttyconv.3; à vos besoins, nous pensons qu'elle est + pour une utilisation réelle. Même si vous n'utilisez pas OpenPAM, + N'hésitez pas à télécharger le code source et d'adapter + &man.openpam.ttyconv.3; à vos besoins, nous pensons qu'elle est raisonnablement aussi robuste qu'une fonction de conversation - orientée tty peut l'être. + orientée tty peut l'être. - Lectures complémentaires + Lectures complémentaires Ceci est une liste de documents concernant PAM et les - domaines gravitant autours. Elle n'a pas la prétention d'être - complète. + domaines gravitant autours. Elle n'a pas la prétention d'être + complète. Publications <ulink url="http://www.sun.com/software/solaris/pam/pam.external.pdf"> - Rendre les services de connexion indépendants des technologies d'authentification + Rendre les services de connexion indépendants des technologies d'authentification </ulink> Samar Vipin Lai Charlie Sun Microsystems <ulink url="http://www.opengroup.org/pubs/catalog/p702.htm">X/Open Single Sign-on Preliminary Specification</ulink> The Open Group 1-85912-144-6 June 1997 <ulink url="http://www.kernel.org/pub/linux/libs/pam/pre/doc/current-draft.txt"> Pluggable Authentication Modules</ulink> Morgan Andrew G. October 6, 1999 Guides utilisateur <ulink url="http://www.sun.com/software/solaris/pam/pam.admin.pdf">Administration de PAM </ulink> Sun Microsystems - Page internet liées + Page internet liées <ulink url="http://openpam.sourceforge.net/">La page d'OpenPAM</ulink> Smørgrav Dag-Erling ThinkSec AS <ulink url="http://www.kernel.org/pub/linux/libs/pam/">La page de Linux-PAM</ulink> Morgan Andrew G. <ulink url="http://wwws.sun.com/software/solaris/pam/">La page de Solaris PAM</ulink> Sun Microsystems
diff --git a/fr_FR.ISO8859-1/articles/ppp/article.sgml b/fr_FR.ISO8859-1/articles/ppp/article.sgml index cb01842ca3..38f9ff69bc 100755 --- a/fr_FR.ISO8859-1/articles/ppp/article.sgml +++ b/fr_FR.ISO8859-1/articles/ppp/article.sgml @@ -1,1894 +1,1894 @@ %man; %urls; %abstract; %artheader; %translators; %authors; %mailing-lists; ]>
Pédants Principes PPP &artheader.copyright; &abstract.license; &abstract.disclaimer; &trans.a.haby; Introduction Le protocole de connexion PPP en mode utilisateur de la version 2.2 de FreeBSD (appelé aussi “IIJ-PPP”) supporte maintenant la réécriture de paquets pour les connexions à l'Internet. Cette possibilité, connue aussi sous le nom de “Mascarade (Masquerading)”, “Alias IP (IP Aliasing)”, ou “Traduction d'Adresse Réseau (Network Adresse Translation)”, permet à un système FreeBSD d'interagir comme routeur de connexion à la demande entre un réseau local et un fournisseur d'accès à Internet. Les machines du réseau local peuvent utiliser l'unique connexion de la machine FreeBSD à l'Internet pour échanger des informations avec ce dernier. But de ce document Ce documentN.d.T: Si vous souhaitez consulter le document original en langue anglaise, il se trouve sur http://www.FreeBSD.org/ppp/ppp.html. vous explique comment: Configurer le système FreeBSD pour permettre les connexions vers l'extérieur, Partager une seule connexion vers l'extérieur avec les autres machines du réseau, Configurer les machines Windows pour utiliser la machine FreeBSD comme passerelle vers l'Internet. Bien que l'objectif de ce document soit avant tout d'expliquer comment configurer la traduction d'adresses IP, il fournit aussi des exemples d'installation et de configuration des autres composants. Chaque section est indépendante et peut être utilisée pour configurer divers aspects d'une passerelle FreeBSD entre plusieurs réseaux. Mise en oeuvre du réseau local Bien que le programme ppp puisse, et soit généralement utilisé pour fournir des services à la seule machine FreeBSD, il peut aussi servir à en faire une “passerelle” ou “routeur” entre les autres dispositifs reliés au réseau local et l'Internet ou tout autre service connecté. Topologie classique du réseau Ce document s'applique à un réseau local dont la topologie est - classiquement - la suivante: +=========+ =======> Connexion à Internet ( Wanadoo, AOL, etc. ) | | \ | FreeBSD |======= | "Curly" | | | +====+====+ | |=================+============+====| <== Réseau Local Ethernet | | | +====+====+ +====+====+ +====+====+ | | | | | | | Win95 | | WFW | | WinNT | | "Larry" | | "Moe" | | "Shemp" | | | | | | | +=========+ +=========+ +=========+ Hypothèses sur le réseau local Pour les besoins de notre exemple, nous supposerons que : Il y a trois stations et un serveur reliés par le réseau Ethernet local: un serveur FreeBSD (“Curly”) avec un contrôleur Ethernet NE-2000 configuré sur “ed0”, une station de travail Windows 95 (“Larry”) avec les pilotes TCP/IP 32-bits natifs de Microsoft, une station de travail Windows for Workgroups (“Larry”) avec les extension TCP/IP 16-bits de Microsoft, une station de travail Windows NT (“Larry”) avec les pilotes TCP/IP 32-bits natifs de Microsoft. Les adresses IP du réseau Ethernet sur lequel se base notre exemple ont été attribuées dans l'espace d'adresses privées défini par la RFC-1597, comme suit: Nom Adresse IP "Curly" 192.168.1.1 # La machine FreeBSD "Larry" 192.168.1.2 # La machine Windows 95 "Moe" 192.168.1.3 # La machine Windows for Workgroups "Shemp" 192.168.1.4 # La machine Windows NT Nous supposerons aussi que le modem est connecté sur le premier port série (/dev/cuaa0 ou COM1: selon la terminologie DOS) de la machine FreeBSD. Enfin, nous supposerons que notre fournisseur d'accès Internet nous fournit automatiquement les adresses IP des deux extrémités de la liaison PPP (point à point) : celle de notre machine FreeBSD et celle de la machine du côté du fournisseur (adressage dynamique). Les détails de configuration de la connexion de la machine FreeBSD à l'extérieur sont donnés au chapitre Configuration du système FreeBSD. Configuration du système FreeBSD Il y a trois informations à fournir au système FreeBSD avant de le relier au réseau local de notre exemple: Son nom de machine (hostname), “Curly” dans notre exemple, La configuration de son interface réseau, Le fichier /etc/hosts (qui liste les noms et les adresses IP des autres machines du réseau). Si vous avez installé FreeBSD via une connexion réseau, il est possible que certaines de ces informations soient déjà définies. Même si vous pensez que votre système FreeBSD a déjà été correctement configuré au moment de l'installation, il vous mieux vous assurer de la validité de chacune de ces informations pour vous éviter des ennuis par la suite. Contrôler le nom de la machine FreeBSD Il est possible que le nom de la machine FreeBSD ait été défini et enregistré lors de l'installation du système. Pour le vérifier, entrez, à l'invite du système, la commande suivante: # hostname Le nom de la machine FreeBSD sera affiché sur une seule ligne. Si ce nom paraît correct (c'est très subjectif :-), vous pouvez passer au paragraphe Contrôler la configuration de l'interface Ethernet. Dans notre exemple, le résultat de la commande hostname devrait être “curly.my.domain” si le nom de la machine a été correctement défini à l'installation, ou ensuite. (A ce stade, ne vous préoccupez pas du suffixe “.my.domain”, nous verrons cela par la suite. Ce qui compte maintenant est le nom qui précède le premier “.”) Si le nom de machine n'a pas été défini à l'installation, la réponse de hostname sera probablement “myname.my.domain”. Vous devez alors éditer le fichier /etc/rc.conf pour définir le nom du système. Définir le nom de la machine FreeBSD Vous devez être en session sous “root” pour éditer les fichiers de configuration du système. Si vous introduisez des erreurs dans les fichiers de configuration, il y a de fortes chances que votre système ne redémarre pas correctement! Soyez prudents ! Le nom de machine du système FreeBSD est défini au démarrage par le fichier /etc/rc.conf. Utilisez l'éditeur par défaut (“ee”) pour éditer ce fichier. Sous une session “root”, visualisez le fichier dans l'éditeur avec la commande: # ee /etc/rc.conf Avec les touches flèches, allez jusqu'à la ligne qui définit le nom de machine du système FreeBSD. Par défaut, vous y trouvez: --- ### Basic network options: ### hostname="myname.my.domain" # Set this ! --- Remplacez ces lignes, par exemple, par: --- ### Basic network options: ### hostname="curly.my.domain" # Set this ! --- Une fois la modification faite, appuyez sur la touche Echap pour aller dans le menu de commandes de l'éditeur. Choisissez “leave editor” (quitter l'éditeur) et sélectionnez bien l'option “save changes” (enregistrer les modifications) quand la question vous est posée. Contrôler la configuration de l'interface Ethernet Rappelons nos hypothèses : l'interface Ethernet de la machine s'appelle “ed0”. C'est la valeur par défaut pour les contrôleurs NE-1000, NE-2000, WD/SMC modèles 8003, 8013 et Elite Ultra (8216). Les fichiers d'interface d'autres modèles de contrôleurs peuvent avoir d'autres noms sous FreeBSD. Si vous n'êtes pas certain du nom correspondant à votre contrôleur, consultez les Questions Fréquemment Posées à propos de FreeBSD (“FAQ”) et substituez la bonne valeur dans les exemples qui suivent. De la même façon que pour le nom de la machine, l'interface Ethernet du système FreeBSD a peut-être été configurée à l'installation. Pour consulter la configuration des interfaces (Ethernet et autres) de votre système FreeBSD), utilisez la commande suivante: # ifconfig -a Soit en clair: "Donnes-moi la CONFIGuration des InterFaces de mes périphériques réseau." Par exemple: # ifconfig -a ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 ether 01:02:03:04:05:06 lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 tun0: flags=8050<POINTOPOINT,RUNNING, MULTICAST> mtu 1500 l0: flags=c010<OINTOPOINT,LINK2,MULTICAST> mtu 552 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 # Sur cet exemple, les périphériques suivants sont reconnus : ed0: l'interface Ethernet, lp0: l'interface parallèle (que nous n'utiliserons pas ici), tun0: l'interface SLIP (IP sur ligne série, que nous n'utiliserons pas ici), ppp0: un autre interface PPP (pour le module ppp intégré au noyau, que n'utiliserons pas ici), lp0: l'interface "en boucle" - "loopback" - que nous n'utiliserons pas non plus). Dans l'exemple, l'interface “ed0” est active (“UP”) et fonctionne (“RUNNING”). Les indications importantes sont: L'interface est active (“UP”), Elle a une adresse Ethernet (“inet”), dans notre cas: 192.168.1.1, Elle a un masque de sous-réseau (“netmask”; 0xffffff00 qui équivaut à 255.255.255.0) correct, Elle a une adresse de diffusion (“broadcast”; ici, 192.168.1.255) valide. Si la ligne décrivant l'interface Ethernet mentionne quelque chose comme: ed0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 01:02:03:04:05:06 c'est que cette interface n'est pas encore configurée. Si l'interface Ethernet est déjà configurée, vous pouvez passer directement au paragraphe Renseigner la liste des autres machines du réseau. Sinon, continuez en séquence. Configurer votre interface Ethernet Vous devez être en session sous “root” pour éditer les fichiers de configuration du système. Si vous introduisez des erreurs dans les fichiers de configuration, il y a de fortes chances que votre système ne redémarre pas correctement! Soyez prudents ! Les paramètres de configuration des interfaces réseau sont définis au démarrage par le fichier /etc/rc.conf. Utilisez l'éditeur par défaut (“ee”) pour éditer ce fichier. Sous une session “root”, visualisez le fichier dans l'éditeur avec la commande: # ee /etc/rc.conf Vers la vingtième ligne environ du fichier, se trouve la section qui définit quelles interfaces réseau doivent être mises en service au démarrage. Le fichier de configuration par défaut contient la ligne : network_interfaces="lo0" # List of network interfaces (lo0 is loopback) que vous devrez modifier pour dire à FreeBSD que vous voulez ajouter un autre périphérique, en l'occurence l'interface “ed0”, en: network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) (Faites attention à l'espace entre la définition de l'interface en boucle “lo0” et l'interface Ethernet “ed0”.) Si le nom correspondant à votre interface n'est pas “ed0”,n'oubliez pas de mettre la valeur adéquate à la place. Si vous avez installé FreeBSD via une connexion réseau, la ligne “network_interfaces” comporte peut-être déjà un référence à votre carte Ethernet. Dans ce cas, assurez vous que son nom soit correct. Les lignes qui suivent celles où sont listées les interfaces à mettre en service décrivent les paramètres de chacune de ces interfaces. Dans le fichier /etc/rc.conf par défaut, il n'y a qu'un seule ligne qui dit: ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration Vous devrez ajouter une ligne qui définisse les caractéristiques de votre interface “ed0”. Si vous avez installé FreeBSD via une connexion réseau, la ligne “ifconfig_ed0=” existe peut-être déjà. Vérifiez alors qu'elle contienne bien les bonnes valeurs. En nous référant à notre exemple, nous insérerons la ligne suivante, immédiatement après la définition de l'interface “en boucle”: ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" Après modification, cette section du fichier /etc/rc.conf doit ressembler à: --- network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" --- Un fois que vous avez fait toutes les modifications nécessaires, appuyez sur la touche Echap pour aller dans le menu de commandes de l'éditeur. Choisissez “leave editor” (quitter l'éditeur) et sélectionnez bien l'option “save changes” (enregistrer les modifications) quand la question vous est posée. Autoriser la transmission de paquets Par défaut, FreeBSD n'active pas le transmission de paquets entre les différentes interfaces réseau d'une machine. En d'autres termes, les fonctions de routage (aussi appelées de passerelle) ne sont pas disponibles. Si vous voulez utiliser le programme ppp comme poste Internet autonome et non comme passerelle entre le réseau local et votre fournisseur d'accès à Internet, vous pouvez passer directement au paragraphe Renseigner la liste des autres machines du réseau. Si vous voulez utiliser le programme ppp pour connecter à la fois votre machine FreeBSD (pour servir de routeur) et les autres postes du réseau local, vous devez autoriser la transmission de paquets IP. Pour cela, vous devez éditer le fichier /etc/rc.conf. Visualisez le fichier dans l'éditeur avec la commande: # ee /etc/rc.conf Vers la quatre-vingt-cinquième ligne environ, vous trouverez la section qui contrôle la transmission de paquets. Elle ressemblera a ceci: --- gateway_enable="NO" # Set to YES if the host will be a gateway --- Modifiez-la en: --- gateway_enable="YES" # Set to YES if the host will be a gateway --- et quittez l'éditeur (en enregistrant vos modifications!). Cette ligne contient peut-être déjà gateway_enable="YES" si la transmission de paquets IP a été autorisée au moment de l'installation du système FreeBSD. Renseigner la liste des autres machines du réseau (<filename>/etc/hosts</filename>) La dernière étape de la configuration du réseau local vu de la machine FreeBSD consiste à créer la liste des noms et des adresses TCP/IP des différentes machines raccordées au réseau local. Cette liste est définie dans le fichier /etc/hosts. Par défaut, ce fichier ne contient qu'une ligne: le nom et l'adresse de l'interface “en boucle”. Par convention, ce nom est toujours “localhost” et son adresse 127.0.0.1. (Reportez-vous à l'exemple de configuration des interfaces au paragraphe Contrôler la configuration de l'interface Ethernet.) Pour éditer le fichier /etc/hosts, tapez la commande: # ee /etc/hosts Allez jusqu'à la fin du fichier (en lisant au passage les commentaires, ce sont des informations utiles!) et ajoutez (toujours dans le cas du réseau de notre exemple) les noms et les adresses IP suivantes: 192.168.1.1 curly curly.my.domain # machine FreeBSD 192.168.1.2 larry larry.my.domain # machine Windows 95 192.168.1.3 moe moe.my.domain # machine Windows for Workgroups 192.168.1.4 shemp shemp.my.domain # machine Windows NT (Vous ne devez pas modifier la ligne “127.0.0.1 localhost”.) Une fois que vous avez ajouté ces lignes, appuyez sur la touche Echap pour aller dans le menu de commandes de l'éditeur. Choisissez “leave editor” (quitter l'éditeur) et sélectionnez bien l'option “save changes” (enregistrer les modifications) quand la question vous est posée. Tester le système FreeBSD Félicitations! Une fois que vous en êtes arrivé là, votre machine FreeBSD est maintenant une machine UNIX connectée au réseau! Si vous avez dû modifier votre fichier /etc/rc.conf, il faut redémarrer votre machine FreeBSD. Cela va faire deux choses importantes: Appliquer les modifications de configuration des interfaces, et: Vérifier que le système redémarre sans erreur de configuration flagrante. Vérifier le bon fonctionnement de l'interface “en boucle” Pour vérifier que l'interface “en boucle” est correctement configurée, ouvrez une session sous “root” et tapez: # ping localhost Vous devriez voir défiler des messages du type: # ping localhost PING localhost.my.domain. (127.0.0.1): 56 bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.200 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.187 ms [...] jusqu'à ce que vous tapiez CtrlC pour arrêter ce délire. Vérifier le bon fonctionnement de l'interface Ethernet Pour vérifier que l'interface Ethernet est correctement configurée, tapez: # ping curly Vous devriez voir: # ping curly PING curly.my.domain. (192.168.1.1): 56 bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms [...] L'information importante dans ces deux exemples est que les noms (“localhost” et “curly”) correspondent bien à leurs adresses IP (127.0.0.1 et 192.168.1.1). Cela confirme que le fichier /etc/hosts est correct. -Si les noms et les adresses apparaîssent correctement dans les résultats +Si les noms et les adresses apparaissent correctement dans les résultats de la commande ping mais que des messages d'erreur sont affichés, quelque chose ne va pas dans la configuration des interfaces. Retournez au paragraphe Contrôler le nom de la machine FreeBSD et vérifiez de nouveau votre configuration. Si maintenant, tout va bien, passez à la section suivante. Configurer la liaison PPP vers l'extérieur Il y a deux façons d'utiliser le programme ppp: en mode “Interactif” et en mode “Automatique”. En mode Interactif, vous: Etablissez manuellement la connexion avec votre fournisseur d'accès Internet, Surfez, transférez des fichiers et envoyez du courrier électronique, etc. Coupez manuellement la connexion avec votre fournisseur d'accès Internet. En mode Automatique, le programme ppp surveille silencieusement les opérations du système FreeBSD et se connecte et se déconnecte automagiquement à votre fournisseur d'accès selon le besoin, intégrant de façon transparente l'Internet à votre réseau. Sauvegarder vos fichiers de configuration <command>ppp</command> d'origine Avant de modifier les fichiers qu'utilise ppp, il est bon de sauvegarder les fichiers par défaut créés à l'installation de FreeBSD. Ouvrez une session sous le compte “root”, et suivez la procédure ci-dessous: Allez dans le répertoire /etc: # cd etc Faites un copie des fichiers d'origine du répertoire ppp: # cp -R ppp ppp.ORIGINAL Vous devriez maintenant avoir un répertoire ppp et un répertoire ppp.ORIGINAL dans le répertoire etc. Créer vos propres fichiers de configuration de <command>ppp</command> Par défaut, la procédure d'installation de FreeBSD crée un certain nombre de fichiers d'exemple dans le répertoire /etc/ppp. Prenez un peu de temps pour parcourir ces fichiers. Ce sont des exemples empruntés à des systèmes qui fonctionnent et ils illustrent les différentes possibilités du programme ppp. Je vous encourage fortement à étudier ces exemples et à les adapter à votre configuration. Pour plus d'informations sur le programme ppp, lisez les pages de manuel: # man ppp Pour plus d'informations sur le langage chat, utilisé par ppp pour établir la connexion, lisez les pages de manuel: # man chat La suite de ce chapitre décrit le contenu recommandé des fichiers de configurations de ppp. Le fichier <filename>/etc/ppp/ppp.conf</filename> Le fichier /etc/ppp/ppp.conf contient les informations et les paramètres nécessaires pour établir une connexion vers l'extérieur. Le Manuel FreeBSD décrit en détail le contenu et la syntaxe de ce fichier. N'est décrite ici que la configuration minimale nécessaire pour arriver à établir une connexion. Voici le fichier /etc/ppp/ppp.conf que nous utiliserons sur notre passerelle entre le réseau local et l'Internet: #################################################################### # Fichier de Configuration de PPP ('/etc/ppp/ppp.conf') # # Paramètres par défaut: Ces commandes sont toujours exécutées # quand PPP est appelé et s'appliquent à toutes les configurations #################################################################### default: set device /dev/cuaa0 set speed 57600 disable pred1 deny pred1 disable lqr deny lqr set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" set redial 3 10 # # #################################################################### # # Configuration utilisée en mode interactif : # # appelée par: `ppp -alias interactive` # #################################################################### interactive: set authname Your_User_ID_On_Remote_System set authkey Your_Password_On_Remote_System set phone 1-800-123-4567 set timeout 300 set openmode active accept chap # #################################################################### # # Configuration utilisée en mode à la demande ( automatique) # # appelée par: 'ppp -auto -alias demand' # #################################################################### demand: set authname Your_User_ID_On_Remote_System set authkey Your_Password_On_Remote_System set phone 1-800-123-4567 set timeout 300 set openmode active accept chap set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 add 0 0 127.2.2.2 ################################################################ # Fin de /etc/ppp/ppp.conf Ce fichier, recopié tel quel d'un système opérationnel, comporte trois parties: La section “default” La section “default:” contient les informations et paramètres utilisés par toutes les autres sections du fichier. Cette section est donc implicitement ajoutée à toutes les autres. C'est l'endroit idéal pour définir les valeurs par défaut qui s'appliquent à toutes les connexions vers l'extérieur; en particulier, la configuration du modem et le dialogue d'initialisation de la connexion, qui ne changent pas, quel que soit le système distant auquel vous vous connectez. Voici le détail de chacune des lignes de la section “default:” du fichier /etc/ppp/ppp.conf: set device /dev/cuaa0 Cette instruction dit au programme ppp d'utiliser le premier port série. Sous FreeBSD, le périphérique “/dev/cuaa0” correspond au port appelé “COM1:” de DOS, Windows, Windows 95, etc. Si votre modem est sur le port “COM2”: vous devrez mettre “/dev/cuaa1”. “/dev/cuaa2” serait le port “COM3:”. set speed 57600 Cette ligne indique au programme ppp la vitesse en émission et en réception entre le port série et le modem. Bien que le modem de notre configuration fonctionne à 28.8 Kbps, donner la valeur 56000 permet à la liaison série de fonctionner suffisamment vite pour gérer la compression de données intégrée aux modems les plus récents. Si vous avez des problèmes pour dialoguer avec votre modem à cette vitesse, descendez à une valeur inférieure: 38400, voir aussi faible que 19200. disable pred1 deny pred1 Ces deux lignes désactivent la compression “CCP/Predictor 1” dont est capable le programme ppp. La version actuelle de ppp supporte la compression de données selon la définition provisoire des standards Internet. Malheureusement, de nombreux fournisseurs d'accès ont des équipements qui n'offrent pas cette possibilité. Comme la plupart des modems récents sont capables de compression à la volée, vous ne perdrez probablement pas grand-chose en termes de performances en désactivant cette possibilité sur votre machine FreeBSD et en interdisant au site distant de vous la réclamer. disable lqr deny lqr Ces deux lignes contrôlent l'“audit de la qualité de la liaison (Link Quality Reporting)” qui est partie intégrante des spécifications du protocole PPP. (Voyez la RFC-1989 pour plus de détails.) La première ligne, “disable lqr” instruit le programme ppp de ne pas émettre de demandes de contrôle de la qualité de la liaison à la machine distante. La seconde ligne, “deny lqr” instruit le progamme ppp de ne pas accepter de demandes de contrôle de la qualité de la liaison de la machine distante. Comme la plupart des modems ont des procédures intégrées de détection et de correction d'erreur et que l'audit LQR est rarement intégralement implémentée par les constructeurs, il vaut en général mieux ne pas utiliser cette possibilité. set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATADT\\T TIMEOUT 40 CONNECT" (Cette instruction doit être écrite sur une seule ligne; ne tenez pas compte du formatage sur deux lignes, si elle se présente ainsi dans ce document.) Cette ligne décrit le dialogue entre le programme ppp et le modem qui doit permettre d'établir la connexion et fournit des instructions rudimentaires sur la marche à suivre: Une tentative d'appel échoue si le modem renvoie le code d'erreur “BUSY (occupé)”, Une tentative d'appel échoue aussi si le modem renvoie le code d'erreur “NO CARRIER (pas de porteuse),”, Le programme ppp doit constater, avec un délai maximum de cinq secondes entre chaque événement, la séquence d'événements suivants: Initialement, le programme ppp n'attend pas de réponse du modem (c'est le sens de la chaîne \"\" dans l'instruction), Le programme enverra au modem la chaîne “ATE1Q0M0” et attendra la réponse “OK”. Si cette réponse n'arrive pas, il enverra la commande d'interrogation “AT” et attendra à nouveau une réponse “OK”, Le programme devra attendre une seconde (c'est le sens de la chaîne “\\d” dans l'instruction), et envoyer la séquence d'appel au modem. Le préfixe “ATDT” est la commande d'appel standard pour les lignes téléphoniques à fréquences vocales. Si vous n'avez pas de ligne à fréquence vocale, remplacez “ATDT” par “ATDP”. La chaîne “\\T” sera remplacée par le numéro de téléphone réel (qui sera défini plus loin par la ligne “set dial”). Pour finir, avec un délai d'attente de quarante secondes au maximum, le programme ppp doit recevoir un code d'acquittement “CONNECT” du modem. -Un échec à une phase quelconque de ce dialogue sera interpreté comme +Un échec à une phase quelconque de ce dialogue sera interprété comme un échec d'appel et la connexion ne sera pas établie. (Pour avoir une description détaillée du mini-langage de commande utilisé par ppp, reportez-vous aux pages de manuel de chat.) set redial 3 10 Cette ligne indique au programme ppp qu'en cas d'échec, il peut faire jusqu'à trois nouvelles tentatives avec un temps d'attente de dix secondes entre chaque nouvel appel. La section “interactive” La section “interactive:” contient les valeurs et les paramètres utilisés par les connexions PPP interactives avec un système distant particulier. Les lignes de la section “default:” sont automatiquement incluses dans cette section. L'exemple donné ci-dessous suppose que vous vous connectiez à un système qui sait identifier un utilisateur sans avoir à utiliser une série de commandes baroques. Nous supposerons que le protocole CHAP est utilisé pour initialiser la session. A priori, si un système Windows 95 peut établir la connexion d'un simple clic sur le bouton “Connecter”, la configuration donnée en exemple devrait fonctionner. Si, à l'inverse, quand vous vous connectez chez votre fournisseur d'accès avec les utilitaires de Microsoft Windows 95, vous devez utiliser l'option “Utiliser des procédures de connexion”N.d.T: ne disposant du matériel nécessaire au contrôle de certains de ces libellés dans les versions françisées de Windows, ils ont été traduits du document en langue anglaise. En cas d'inexactitude, le lecteur voudra bien rectifier de lui-même.. il vous faudra alors lire les pages de manuel de ppp pour trouver des exemples de fichiers de configuration de PPP comportant des procédures “expect / reponse” pour établir votre connexion et vous devrez utiliser la commande “set login” à cet effet. Ou mieux, trouvez-vous un fournisseur d'accès qui offre l'authentification par PAP ou CHAP! La configuration donnée en exemple a été utilisée avec succès pour se connecter: à Divers Shiva LanRovers, au réseau IBM (http://www.ibm.net), à AT&T WorlNet (http://www.att.com/worldnet), à Erol's (http://www.erols.com). Voici la description de chacune des lignes de la section “interactive:” du fichier /etc/ppp/ppp.conf de l'exemple: set authname Votre_Nom_d_Utilisateur_du_Système_Distant Cette ligne définit avec quel nom d'utilisateur vous vous connectez au système distant. set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant Cette ligne définit le mot de passe que vous utilisez pour vous connecter au système distant. set phone 012345678789 C'est le numéro de téléphone avec lequel vous joignez le système distant. set timeout 300 Cette ligne indique au programme ppp de couper la ligne s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez adapter cette ligne à votre besoin particulier. set openmode active Cette ligne dit au programme ppp de négocier la connexion dès que la liaison entre les modems est établie. Certains sites distants le font automatiquement, d'autres non. Cette instruction permet à votre site d'initialiser la négociation. accept chap Cette ligne dit au programme ppp d'utiliser le protocole CHAP “Challenge Handsake Autentification Protocole (protocole d'authentification par poignée de main avec défi de décryptage)” pour vous authentifier. Les valeurs échangées entre le système local et le système distant pour transmettre le nom d'utilisateur et le mot de passe sont définies par les lignes “authname” et “authkey”. La section “demand” La section “demand:” contient les valeurs et les paramètres utilisés par les connexions PPP automatiques avec un système distant particulier. Les lignes de la section “default:” sont automatiquement incluses dans cette section. A l'exception des deux dernières lignes, cette section est identique à la section qui définit la configuration “interactive”. Comme indiqué au paragraphe La section “interactive”, l'exemple donné ci-dessous suppose que vous vous connectiez à un système qui comprenne le protocole CHAP pour initialiser la session. Voici la description de chacune des lignes de la section “demand:” du fichier /etc/ppp/ppp.conf de l'exemple: set authname Votre_Nom_d_Utilisateur_du_Système_Distant Cette ligne définit avec quel nom d'utilisateur vous vous connectez au système distant. set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant Cette ligne définit le mot de passe que vous utilisez pour vous connecter au système distant. set phone 012345678789 C'est le numéro de téléphone avec lequel vous joignez le système distant. set timeout 300 Cette ligne indique au programme ppp de couper la ligne s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez adapter cette ligne à votre besoin particulier. set openmode active Cette ligne dit au programme ppp de négocier la connexion dès que la liaison entre les modems est établie. Certains sites distants le font automatiquement, d'autres non. Cette instruction permet à votre site d'initialiser la négociation. accept chap Cette ligne dit au programme ppp d'utiliser le protocole CHAP “Challenge Handsake Autentification Protocole (protocole d'authentification par poignée de main avec défi de décryptage)” pour vous authentifier. Les valeurs échangées entre le système local et le système distant pour transmettre le nom d'utilisateur et le mot de passe sont définies par les lignes “authname” et “authkey” set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 Cette commande définit une paire d'adresses IP fictives pour les deux extrémités de la liaison point-à-point. Elle dit au programme ppp d'utiliser l'adresse 127.1.1.1 pour l'extrémité locale de la liaison gérée par le pilote de périphérique “tun0 (tunnel)”(Reportez-vous au manuel FreeBSD pour une description de ce pilote) et l'adresse 127.2.2.2 pour l'extrémité distante. Le “/0” qui les suit précise le nombre de digits significatifs de ces adresses, qui peuvent, (et doivent en fait) être négociées entre les deux systèmes une fois la liaison établie. 255.255.255.0 est le masque de sous-réseau qui s'applique à ces deux pseudo-interfaces. Rappelez-vous, nous avons supposé que votre fournisseur d'accès vous assigne les adresses des deux extrémités de la ligne! Si votre fournisseur vous a donné une adresse particulière, vous pouvez la mentionner sur cette ligne à la place de l'adresse 127.1.1.1. Inversement, si votre fournisseur vous a donné une adresse particulière pour son côté de la liaison, vous pouvez la mentionner sur cette ligne à la place de l'adresse 127.2.2.2. Dans les deux cas, il vaut mieux conserver le “/0” après les deux adresses. Cela laisse la possibilité au programme ppp de changer d'adresse(s) s'il en a besoin. add 0 0 127.2.2.2 Cette dernière ligne dit au programme ppp d'ajouter une route par défaut pour le trafic vers l'adresse (fictive) 127.2.2.2 du fournisseur d'accès. Si vous avez donnée l'adresse que vous a indiqué votre fournisseur d'accès à la place de l'adresse 127.2.2.2 à la ligne “set ifaddr”, vous devez utiliser la même adresse ici, à la place de 127.2.2.2. En ajoutant cette route “fictive” pour le trafic IP, le programme ppp peut, successivement, avant et au moment d'établir la liaison: Accepter des paquets que FreeBSD ne sait pas encore comment rediriger, Etablir la connexion avec votre fournisseur d'accès, Reconfigurer les adresses IP des deux côtés de la ligne, Transmettre les paquets entre votre sytème local et votre fournisseur d'accès, automatiquement! Une fois le nombre de secondes défini par l'instruction “timeout” de la section “default” écoulé sans trafic TCP/IP, le programme ppp coupe automatiquement la connexion, et le processus peut recommencer. Le fichier <filename>/etc/ppp/ppp.linkup</filename> L'autre fichier nécessaire à la configuration de ppp est /etc/ppp/ppp.linkup. Ce fichier contient les instructions qui définissent ce que ppp doit faire une fois que la connexion est établie. Dans le cas d'une connexion à la demande, le programme ppp doit supprimer la route par défaut vers l'adresse IP fictive du système distant (127.2.2.2 dans notre exemple plus haut) et définir une nouvelle route vers l'adresse IP réelle de ce système (obtenue à l'établissement de la connexion). Voici un bon exemple de fichier /etc/ppp/ppp.linkup: #########################################################################= # # Fichier PPP Link Up ('/etc/ppp/ppp.linkup') # # Ce fichier est consulté une fois que PPP a établi une connexion # # Ce fichier est lu dans l'ordre suivant : # # 1) En premier, l'adresse IP qui nous a été assignée est recherchée # et la/les commande(s) associée(s) exécutée(s) # # 2) Si l'adresse IP n'est pas trouvée, alors l'étiquette donnée au # démarrage de PPP est recherchée, et la/les commande(s) associée(s) # exécutée(s) # # 3) Si ni l'une ni l'autre n'ont été trouvées, les commandes associées # à l'étiquette 'MYADDR:' sont exécutées. # #########################################################################= # # Cette section correspond à la configuration "demand" de # /etc/ppp/ppp.conf: demand: delete ALL add 0 0 HISADDR # # Toutes les autres configurations de /etc/ppp/ppp.conf utilisent # ce qui suit: # MYADDR: add 0 0 HISADDR ######################################################################## # Fin de /etc/ppp/ppp.linkup Remarquez qu'une section de ce fichier s'appelle “demand:”, tout comme dans le fichier /etc/ppp/ppp.conf. Cette section dit au programme ppp ce qu'il doit faire, une fois la connexion à la demande établie: Supprimer toutes les informations de routage qu'il a déjà créées, Ajouter une route par défaut vers l'adresse réelle de la machine distante. Il est capital que les configurations définies dans le fichier /etc/ppp/ppp.conf et qui comportent les lignes “set ifaddr” et “add 0 0” (i.e.: les configurations de connexion à la demande) exécutent les instructions “delete ALL” et “add 0 0 HISADDR” du fichier /etc/ppp/ppp.linkup. C'est le mécanisme qui contrôle la configuration de la liaison dans le cas d'une connexion à la demande. Toutes les configurations qui ne sont pas explicitement définies dans le fichier /etc/ppp/ppp.linkup utiliseront les commandes listées dans la section “MYADDR:” de ce fichier. C'est ce que feront les connexions manuelles (comme dans notre exemple “interactive:”). Cette section ajoute simplement une route par défaut vers l'adresse IP du fournisseur d'accès (à l'autre extrémité de la ligne). Alias IP Toutes les étapes précédentes s'appliquent à un systeme FreeBSD utilisé pour se connecter à la demande à un fournisseur d'accès Internet. Si vous cherchez simplement, en lisant ce guide, à connecter votre systeme FreeBSD à l'Internet, vous pouvez passer directement au chapitre Tester le réseau. Une possibilité très intéressante du programme ppp en mode “connexion à la demande” est sa capacité à aiguiller automatiquement le trafic vers les autres systèmes du réseau local. On donne à cela des noms divers “alias IP (IP Aliasing)”, “traduction d'adresse réseau (Network Adress Translation)”, “mascarade d'adresse (Adress Masquerading)” ou “mandatement transparent (Transparent Proxying)”. Quelle que soit la terminologie employée, ce fonctionnement n'est cependant pas automatique. Si le programme ppp est démarré de façon habituelle, il ne fera pas transiter de paquets entre l'interface avec le réseau local et la liaison vers l'extérieur. En effet, seul le système FreeBSD est connecté à l'Internet; les autres systèmes ne peuvent pas partager la même connexion. Par exemple, si le programme ppp est lancé par: # ppp interactive ou: # ppp -auto demand correspondant respectivement aux modes manuel et automatique, alors il établira une connexion à l'Internet pour la seule machine FreeBSD. Pour démarrer le programme ppp pour l'utiliser comme passerelle entre le réseau local et l'Internet, il faut utiliser l'une des commandes suivantes: # ppp -alias interactive ou: # ppp -auto -alias demand Alternativement, vous pouvez utiliser l'instruction “alias enable yes” dans votre fichier de configuration de ppp (Reportez-vous aux pages de manuel pour plus de détails). Gardez cela présent à l'esprit si vous passez maintenant au chapitre Configurer les systèmes Windows. Configurer les Systèmes Windows Comme indiqué au Chapitre Mise en oeuvre du réseau local, le réseau de notre exemple comporte un système FreeBSD (“Curly”) qui sert de passerelle (ou routeur) pour un réseau local composé de trois moutures différentes de systèmes Windows. Pour que ces stations puissent utiliser Curly comme routeur, elles doivent être correctement configurées. Notez bien que l'on ne vous explique pas ici comment configurer les postes Windows pour qu'ils puissent se connecter eux-mêmes. Si vous cherchez de bonnes explications sur le sujet, voyez http://www.aladdin.co.uk/techweb. Configurer Windows 95 Il est relativement simple de configurer Windows 95 pour relier un poste -à votre réseau local. Le configuration réseau Windows 95 doit être légérement +à votre réseau local. Le configuration réseau Windows 95 doit être légèrement modifiée pour pouvoir utiliser le système FreeBSD comme passerelle par défaut vers votre fournisseur d'accès. Effectuez les étapes suivantes: Créer le fichier Windows 95 <filename>hosts</filename> Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez installer une copie du fichier hosts que vous avez créé sur votre système FreeBSD au paragraphe Renseigner la liste des autres machines du réseau. Cliquez sur le bouton “Démarrer”, choisissez “Exécuter ...”, lancez notepad \WINDOWS\HOSTS et cliquez sur “OK”, Sous l'éditeur, entrez les noms et les adresses des machines recopiés du fichier hosts du paragraphe Renseigner la liste des autres machines du réseau, Une fois que c'est fait, quittez notepad (assurez-vous d'avoir enregistré le fichier!). Définir le configuration réseau TCP/IP Windows 95 Cliquez sur le bouton “Démarrer” de la barre de tâches, Choisissez “Paramètres” et “Panneau de Configuration”, Double-cliquez sur l'icône réseau pour l'ouvrir. Les paramètres des éléments du réseau sont tous affichés. Sélectionnez l'option “Configuration” et faites défiler la liste des composants installés pour choisir la ligne “TCP/IP ->votre interface” (où votre interface est le nom ou le modèle de votre contrôleur Ethernet), Si “TCP/IP” ne figure pas dans la liste des composants réseau installés, cliquez sur le bouton “Ajouter” pour l'installer avant de continuer Ajouter | Protocoles | Microsoft | TCP/IP | OK. Cliquez sur le bouton “Propriétés” pour afficher la liste des paramètres associés au composant TCP. Configurer les informations relatives à l'adresse IP Choisissez l'onglet “Adresse IP” Enfoncez le bouton “Spécifier une adresse IP”. (Dans notre exemple, le système Windows 95 est celui que nous avons appelé “Larry”.) Dans la zone “Adresse IP”, entrez “192.168.1.2”, Entrez “255.255.255.0” dans le zone “Masque de Sous-réseau”. Configurer les informations relatives à la passerelle Cliquez sur l'onglet “Passerelle”. Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet et la connexion PPP). Entrez l'adresse IP de l'interface Ethernet de la machine FreeBSD, “192.168.1.1”, dans la zone “Nouvelle Passerelle” et cliquez sur le bouton “Ajouter”. S'il y a d'autres passerelles définies dans les “Passerelles Installées”, peut-être devrez-vous les supprimer. Configurer les informations relatives au DNS Nous supposons que votre fournisseur d'accès Internet vous a donné une liste de serveurs de noms de domaines (Domain Name Servers) - ou “Serveurs DNS” - que vous devez utiliser. Si vous voulez mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au chapitre Exercices pour l'étudiant intéressé pour avoir des indications sur l'installation d'un serveur DNS sur une machine FreeBSD. Cliquez sur l'onglet “Configuration DNS”, Assurez-vous que l'option “Activer DNS” est bien sélectionnée, (Si cette option n'est pas sélectionnée, seules les machines définies dans votre fichier hosts seront accessibles et vous ne pourrez pas “surfer” comme vous le souhaitez!) Dans la zone “Hôte”, entrez le nom du poste Windows 95, dans notre cas : “Larry”, Dans la zone “Domaine”, entrez le nom du réseau local, dans notre cas : “my.domain”, Dans la zone “Ordre de recherche DNS”, entrez les adresses IP des serveurs DNS que votre fournisseur vous a données, cliquez sur “Ajouter” à chaque adresse que vous définissez. Répétez l'opération autant de fois que nécessaire pour entrer toutes les adresses que votre fournisseur vous a indiquées. Autres options TCP/IP Windows 95 Pour nos besoins, les paramètres des sections “Avancées”, “Configuration WINS” et “Liens” sont inutiles. Si vous souhaitez utiliser le service de noms Internet de Windows (Windows Internet Naming Service - “WINS”), vous trouverez plus d'informations sur http://www.localnet.org, en particulier en ce qui concerne le partage de fichiers de façon transparente à travers l'Internet. Pour finir Cliquez sur “OK” pour fermer la fenêtre “Propriétés TCP/IP”, Cliquez sur “OK” pour fermer la fenêtre “Panneau de Contrôle Réseau”, Redémarrez votre ordinateur si on vous le demande. C'est tout! Configurer Windows NT Il est relativement simple de configurer Windows NT pour relier un poste à votre réseau local. Les procédures sont semblables à celles suivies pour Windows 95 à quelques différences près quant à l'interface utilisateur. Les étapes décrites ci-dessous s'appliquent à Windows NT 4.0 Workstation, mais les principes sont les mêmes pour Windows NT 3.5x. Si vous installez un poste Windows NT 3.5x, vous pouvez vous référer au paragraphe Configurer Windows for Workgroups, en effet, l'interface utilisateur est la même pour NT 3.5x et WfW. Effectuez les opérations suivantes: Créer le fichier Windows NT <filename>hosts</filename> Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez installer une copie du fichier hosts que vous avez créé sur votre système FreeBSD au paragraphe Configurer Windows for Workgroups. Cliquez sur le bouton “Démarrer”, choisissez “Exécuter ...”, lancez notepad \WINDOWS\SYSTEM\DRIVERS\ETC\HOSTS et cliquez sur “OK”, Sous l'éditeur, entrez les noms et les adresses des machines recopiés du fichier hosts du paragraphe Renseigner la liste des autres machines du réseau, Une fois que c'est fait, quittez notepad (assurez-vous d'avoir enregistré le fichier!). Définir le configuration réseau TCP/IP Windows NT Cliquez sur le bouton “Démarrer” de la barre de tâches, Choisissez “Paramètres” et “Panneau de Configuration”, Double-cliquez sur l'icône réseau pour l'ouvrir, Dans l'onglet “Identification”, vérifiez les informations des zones “Nom d'Ordinateur” et “Workgroup”. Dans notre exemple, “Shemp” sera le nom de la machine, et “Stooges” celui du groupe de travail. Choisissez “Modifier” pour corriger ces valeurs au besoin, Choisissez l'onglet “Protocoles”. Les Protocoles Réseau installés seront affichés. Il peut y en avoir un certain nombre, mais le seul qui nous intéresse ici est le “Protocole TCP/IP”. Si le “Protocole TCP/IP” n'apparaît pas dans la liste, cliquez sur le bouton “Ajouter” pour l'installer. Ajouter | Protocole TCP/IP | OK. Sélectionnez “Protocole TCP/IP” et cliquez sur le bouton “Propriétés”. Les différentes propriétés associées à TCP/IP apparaîtront. Configurer les informations relatives à l'adresse IP Vérifiez que l'interface Ethernet est bien définie dans la zone “Carte Réseau”; si ce n'est pas le cas, parcourez la liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée. Choisissez l'option “Spécifier une Adresse IP” pour activer les trois zones de texte, Dans notre exemple, le poste Windows NT est celui qui s'appele “Shemp”. Dans la zone “Adresse IP”, entrez “192.168.1.4”, Entrez “255.255.255.0” dans le zone “Masque de Sous-réseau.”. Configurer les informations relatives à la passerelle Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet et la connexion PPP). S'il n'y a rien encore dans la zone “Nouvelle Passerelle”, entrez l'adresse IP de l'interface Ethernet de la machine FreeBSD, “192.168.1.1”, dans cette zone et cliquez sur le bouton “Ajouter”. Sinon, utilisez le bouton "Avancées" et la fonction “Ajouter” pour ajouter cette nouvelle passerelle. S'il y a d'autres passerelles définies dans les “Passerelles Installées”, peut-être devrez-vous les supprimer. Configurer les informations relatives au DNS Nous supposons que votre fournisseur d'accès Internet vous a donné une liste de serveurs de noms de domaines (Domain Name Servers) - ou “Serveurs DNS” - que vous devez utiliser. Si vous voulez mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au chapitre Exercices pour l'étudiant intéressé pour avoir des indications sur l'installation d'un serveur DNS sur une machine FreeBSD. Cliquez sur le bouton “DNS”, Dans la zone “Nom d'Hôte”, entrez le nom du poste Windows NT, dans notre cas : “Shemp”, Dans la zone “Domaine”, entrez le nom du réseau local, dans notre cas : “my.domain”, Dans la zone “Ordre de recherche du service DNS”, entrez les adresses IP des serveurs DNS que votre fournisseur vous a données, cliquez sur “Ajouter” à chaque adresse que vous définissez. Répétez l'opération autant de fois que nécessaire pour entrer toutes les adresses que votre fournisseur vous a indiquées. Autres options TCP/IP Windows NT Pour nos besoins, les paramètres des sections “Adresses WINS” et “Routage” sont inutiles. Si vous souhaitez utiliser le service de noms Internet de Windows (Windows Internet Naming Service - “WINS”), vous trouverez plus d'informations sur http://www.localnet.org, en particulier en ce qui concerne le partage de fichiers de façon transparente à travers l'Internet. Pour finir Cliquez sur “OK” pour fermer la fenêtre “Propriétés TCP/IP”, Cliquez sur “OK” pour fermer la fenêtre “Panneau de Contrôle Réseau”, Redémarrez votre ordinateur si on vous le demande. C'est tout! Configurer Windows for Workgroups Pour qu'un poste Windows for Workgroups puisse être utilisé en réseau, il faut avoir installé les pilotes qui sont sur la disquette Microsoft TCP/IP. Ces pilotes ne sont pas inclus avec WfW et les disquettes qui vont avec. S'il vous en faut une copie, ils sont disponibles sur ftp://ftp.microsoft.com/peropsys/windows/public/tcpip. Une fois que les pilotes TCP/IP ont été installés, effectuez les opérations suivantes: Créer le fichier Windows for Workgroups <filename>hosts</filename> Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez installer une copie du fichier hosts que vous avez créé sur votre système FreeBSD au paragraphe Renseigner la liste des autres machines du réseau. Dans le Gestionnaire de Programmes, cliquez sur le bouton “Fichier”, choisissez “Exécuter ...”, lancez notepad \WINDOWS\HOSTS et cliquez sur “OK”, Sous l'éditeur, entrez les noms et les adresses des machines recopiés du fichier hosts de Renseigner la liste des autres machines du réseau, Une fois que c'est fait, quittez notepad (assurez-vous d'avoir enregistré le fichier!). Définir le configuration réseau TCP/IP Windows for Workgroups Dans le Gestionnaire de Programmes, ouvrez le groupe “Réseau” en double-cliquant sur l'icône, Double-cliquez sur l'icône “Paramètres Réseau”, Dans la boîte de dialogue “Pilotes Réseau”, double-cliquez sur l'option “Microsoft TCP/IP-32”. Configurer les informations relatives à l'adresse IP Vérifiez que l'interface Ethernet est bien définie dans la liste “Carte Réseau”; si ce n'est pas le cas, parcourez la liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée et sélectionnez-la en cliquant dessus. Vérifiez que l'option “Activer la Configuration DHCP Automatique” n'est pas sélectionnée. Si c'est le cas, cliquez dessus pour effacer le “X”. Dans notre exemple, le poste Windows for Workgroups est celui qui s'appelle “Moe”; dans la zone “Adresse IP”, entrez “192.168.1.3”, Entrez “255.255.255.0” dans le zone “Masque de Sous-réseau”. Configurer les informations relatives à la passerelle Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet et la connexion PPP). Entrez l'adresse IP de l'interface Ethernet de la machine FreeBSD, “192.168.1.1”, dans la zone “Passerelle par Défaut”. Configurer les informations relatives au DNS Nous supposons toujours que votre fournisseur d'accès Internet vous a donné une liste de serveurs de noms de domaines (Domain Name Servers) - ou “Serveurs DNS” - que vous devez utiliser. Si vous voulez mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au chapitre Exercices pour l'étudiant intéressé pour avoir des indications sur l'installation d'un serveur DNS sur une machine FreeBSD. Cliquez sur l'onglet “Configuration DNS”, Dans la zone “Hôte”, entrez le nom du poste Windows for Workgroups, dans notre cas : “Moe”, Dans la zone “Domaine”, entrez le nom du réseau local, dans notre cas : “my.domain”, Dans la zone “Ordre de recherche DNS”, entrez les adresses IP des serveurs DNS que votre fournisseur vous a données, cliquez sur “Ajouter” à chaque adresse que vous définissez. Répétez l'opération autant de fois que nécessaire pour entrer toutes les adresses que votre fournisseur vous a indiquées, Cliquez sur “OK” pour fermer la fenêtre “Configuration DNS”. Pour finir Cliquez sur “OK” pour fermer la fenêtre “Propriétés TCP/IP”, Cliquez sur “OK” pour fermer la fenêtre “Panneau de Contrôle Réseau”, Redémarrez votre ordinateur si on vous le demande. C'est tout! Tester le réseau Une fois que vous aurez terminé les opérations nécessaires décrites plus haut, votre passerelle PPP vers l'Internet devrait être opérationnelle. Tester la connexion vers l'extérieur La première chose à vérifier est que la connexion s'établisse entre votre modem et votre fournisseur d'accès. Tester le réseau local *** à faire *** Exercices pour l'étudiant intéressé Gérer un mini-DNS Bien que gérer une hiérarchie du service de noms de domaines (“Domain Name Service” - DNS) puisse être une tâche diabolique, il est tout à fait faisable d'installer un mini-serveur -DNS sur le sytème FreeBSD qui vous sert aussi de passerelle vers votre +DNS sur le système FreeBSD qui vous sert aussi de passerelle vers votre fournisseur d'accès. A partir des fichiers existants dans /etc/namedb après installation de FreeBSD, il est possible de définir un serveur DNS qui ait autorité sur le réseau de notre exemple et serve d'interface avec l'architecture DNS de l'Internet. Pour cette configuration minimale, il suffit de trois fichiers: /etc/namedb/named.boot /etc/namedb/named.root /etc/namedb/mydomain.db Le fichier /etc/namedb/named.root est automatiquement initialisé à l'installation de FreeBSD, les deux autres fichiers doivent être renseignés manuellement. Le fichier <filename>/etc/namedb/named.boot</filename> Le fichier /etc/namedb/named.boot décrit la configuration initiale du serveur DNS. Essentiellement, il indique au serveur de noms: Où sont les fichiers de configuration, De quels “noms de domaines” il a la responsabilité, Où trouver les autres serveurs DNS. Avec l'éditeur ee, créez un fichier /etc/namedb/named.boot comme suit: ; fichier de démarrage pour un mini-serveur de noms de domaines directory /etc/namedb ; type domain source machine/fichier fichier de sauvegarde cache . named.root primary my.domain. mydomain.db Les lignes qui commencent par un point-virgule sont des commentaires. Voici la signification des autres lignes: directory /etc/namedb Dit au serveur de noms où trouver les fichiers de configuration référencés dans la suite du fichier /etc/namedb/named.boot. cache . named.root Dit au serveur de noms que la liste des serveurs de la racine (“Root Servers”) se trouve dans le fichier named.root. (Ce fichier est inclus dans l'installation standard et n'est pas décrit ici.) primary my.domain mydomain.db Dit au serveur de noms qu'il a “autorité” sur un domaine DNS appelé “my.domain” et que la liste des adresses IP des machines du domaine “my.domain” (le réseau local) se trouve dans le fichier /etc/namedb/mydomain.db. Une fois créé et sauvegardé le fichier /etc/namedb/named.boot, passez à l'étape suivante pour créer le fichier /etc/namedb/named.db. Le fichier <filename>/etc/namedb/named.db</filename> Le fichier /etc/namedb/named.boot liste les noms et les adresses IP de toutes les machines du réseau local. Pour une description détaillée des instructions de ce fichier, reportez-vous aux pages de manuel de named. Le fichier /etc/namedb/named.boot de notre serveur DNS minimum contient les lignes suivantes: @ IN SOA my.domain. root.my.domain. ( 961230 ; Serial 3600 ; Refresh 300 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS curly.my.domain. curly.my.domain. IN A 192.168.1.1 # The FreeBSD box larry.my.domain. IN A 192.168.1.2 # The Win'95 box moe.my.domain. IN A 192.168.1.3 # The WfW box shemp.my.domain. IN A 192.168.1.4 # The Windows NT box $ORIGIN 1.168.192.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR curly.my.domain. 2 IN PTR larry.my.domain. 3 IN PTR moe.my.domain. 4 IN PTR shemp.my.domain. $ORIGIN 0.0.127.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR localhost.my.domain. Brièvement, ce fichier déclare que le serveur DNS local est: Le “Début d'Autorité” (Start Of Authority) pour le domaine appelé “my.domain”, Le serveur de noms (Name Server - “NS”) pour “my.domain”, Responsable de la résolution inverse des adresses IP qui commencent par “192.168.1” et “127.0.0” (“$ORIGIN ...”). Pour ajouter de nouvelles machines, vous devez ajouter deux lignes pour chaque système; une dans la section du haut où les noms des systèmes sont associés aux adresses Internet (“IN A”), et une autre ligne qui associe inversement l'adresse au nom de la machine (“IN PTR”), dans la section “$ORIGIN 1.168.192.IN-ADDR.ARPA”. Démarrer le serveur DNS Par défaut, le serveur DNS (/etc/sbin/named) n'est pas lancé au démarrage du système. Vous pouvez modifier ce comportement en rectifiant une seule ligne dans le fichier /etc/rc.conf, comme suit: Avec l'éditeur ee, visualisez le fichier /etc/rc.conf. Descendez d'une quarantaine de lignes jusqu'à ce que vous trouviez la section qui dit: --- named_enable="NO" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). --- et modifiez-la en: --- named_enable="YES" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). --- Sauvegardez le fichier et redémarrez le système. Vous pouvez aussi démarrer le serveur DNS avec la commande suivante: # named -b /etc/namedb/named.boot Chaque fois que vous modifiez les fichiers du répertoire /etc/namedb/named.boot, vous devez faire relire ces modifications par le serveur DNS avec la commande suivante: # kill -HUP `cat /var/run/named.pid` Essayer les filtres PPP Le programme ppp a la capacité d'appliquer des règles de filtrage au trafic qu'il route. Bien que cela ne soit pas aussi sécurisé qu'un véritable coupe-feu, cela autorise quelques contrôles d'accès à la liaison. (“man ipfw” pour plus d'informations sur la configuration d'un système FreeBSD plus sécurisé.) La documentation complète des différents filtres et règles utilisables avec le programme ppp se trouve dans les pages de manuel de ppp. Il y a quatre classes de filtres qui s'appliquent au programme ppp: afilter - filtre compteur d'accès (ou “Keep Alive” - garder en vie) Ils définissent quels événements sont ignorés par l'instruction set timeout=. dfilter - filtre d'appel Ils définissent quels événements sont ignorés par ppp en mode connexion à la demande. ifilter - filtre d'entrée Ils définissent quels paquets entrants sont acceptés ou refusés par le programme ppp. ofilter - filtre de sortie Ils définissent quels paquets sortants sont acceptés ou refusés par le programme ppp. L'exemple qui suit est un extrait de la configuration d'un système opérationnel qui donne une bonne base pour un fonctionnement Internet “normal”, tout en empêchant que ppp accepte n'importe quoi sur la liaison. Les commentaires décrivent la logique de chaque jeu de règles.: # # filtres KeepAlive # ne pa prendre en compte les paquets ICMP,DNS et RIP # set afilter 0 deny icmp set afilter 1 deny udp src eq 53 set afilter 2 deny udp dst eq 53 set afilter 3 deny udp src eq 520 set afilter 4 deny udp dst eq 520 set afilter 5 permit 0/0 0/0 # # filtre d'appel: # Note: ICMP établira la connexion dans cette configuration! # set dfilter 0 permit 0/0 0/0 # # autoriser les paquets ident # set ifilter 0 permit tcp dst eq 113 set ofilter 0 permit tcp src eq 113 # # autoriser les connexions telnet à l'Internet # set ifilter 1 permit tcp src eq 23 estab set ofilter 1 permit tcp dst eq 23 # # autoriser l'accès ftp à l'Internet # set ifilter 2 permit tcp src eq 21 estab set ofilter 2 permit tcp dst eq 21 set ifilter 3 permit tcp src eq 20 dst gt 1023 set ofilter 3 permit tcp dst eq 20 # # autoriser les requêtes DNS # set ifilter 4 permit udp src eq 53 set ofilter 4 permit udp dst eq 53 # # autoriser les transferts de zone DNS # set ifilter 5 permit tcp src eq 53 set ofilter 5 permit tcp dst eq 53 # # autoriser l'accès depuis/vers le réseau local # set ifilter 6 permit 0/0 192.168.1.0/24 set ofilter 6 permit 192.168.1.0/24 0/0 # # autoriser les réponses au ping et traceroute # set ifilter 7 permit icmp set ofilter 7 permit icmp set ifilter 8 permit udp dst gt 33433 set ofilter 9 permit udp dst gt 33433 # # autoriser cvsup # set ifilter 9 permit tcp src eq 5998 set ofilter 9 permit tcp dst eq 5998 set ifilter 10 permit tcp src eq 5999 set ofilter 10 permit tcp dst eq 5999 # # autoriser NTP pour la synchronization des horloges # set ifilter 11 permit tcp src eq 123 dst eq 123 set ofilter 11 permit tcp src eq 123 dst eq 123 set ifilter 12 permit udp src eq 123 dst eq 123 set ofilter 12 permit udp src eq 123 dst eq 123 # # SMTP serait une bonne idée! # set ifilter 13 permit tcp src eq 25 set ofilter 13 permit tcp dst eq 25 # # # nous utilisons beaucoup whois, donc nous le laissons passer # set ifilter 14 permit tcp src eq 43 set ofilter 14 permit tcp dst eq 43 set ifilter 15 permit udp src eq 43 set ofilter 15 permit udp dst eq 43 # # si aucune des conditions ci-dessus n'est remplie, le paquet est refusé #------- Il peut y avoir jusqu'à vingt règles dans chaque classe de filtres. Dans chaque classe, les règles sont numérotées séquentiellement de 0 à 20, mais aucune règle dans une classe particulière n'est appliquée tant que la règle “0” n'est pas définie! Si vous décidez de ne pas utiliser de règles de filtrage dans votre configuration du programme ppp, alors TOUT le trafic de/vers votre système sera accepté lorsqu'il est connecté à votre fournisseur d'accès. Si vous décidez d'appliquer des règles de filtrages, ajoutez les lignes précédentes à votre fichier /etc/ppp/ppp.conf dans l'une des sections “default”, “demand” ou “interactive” (ou à toutes - c'est à vous de voir).