ISP-Hookup-HOWTO <author>Par Egil Kvaleberg, <tt>egilk@sn.no</tt>. <date>v1.24, 14 Février 1997 <abstract> Ce document décrit la façon d'utiliser Linux pour se connecter à un fournisseur d'accès Internet au moyen d'un modem. Il explique la procédure d'appel téléphonique et d'établissement du protocole IP, ainsi que la façon de gérer le courrier électronique et les forums de discussion USENET. </abstract> <toc> <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Introduction <p> Ce document est fait pour répondre aux questions des clients des F.A.I. (Fournisseurs d'Accès Internet) concernant la façon de configurer et d'utiliser Linux. <p> Afin d'aider ceux qui veulent connecter leurs machines Linux à un F.A.I. pour la première fois, ce document essaie de couvrir la plupart des situations possibles. Ceci provoque, inévitablement, plusieurs recoupements avec les autres HowTo Linux et livres du Linux Development Project (L.D.P.). Pour mieux appréhender les détails, il est conseillé de se référer à ces documents. <p> La plupart des documentations existantes s'adressent à des utilisateurs ayant une certaine expérience, et les utilisateurs débutants ont souvent des problèmes pour en extraire les informations intéressantes. <p> Pour simplifier, les exemples de ce document supposeront ce qui suit : <p> <itemize> <item> Nom d'utilisateur : <tt>dirk</tt> <item> Mot de passe: <tt>SuperSecret</tt> <item> Fournisseur d'accès Internet : <tt>acme.net</tt> <item> Serveur de mail : <tt>mail.acme.net</tt> <item> Serveur de news : <tt>news.acme.net</tt> <item> Serveur de noms : <tt>193.212.1.0</tt> <item> Numéro de téléphone : <tt>12345678</tt> </itemize> <p> La machine de <tt>dirk</tt> s'appelle <tt>roderick</tt>. <p> Toutes les informations ci-dessus doivent naturellement être remplacées par celles concernant le F.A.I. que vous utilisez. La plupart du temps, un minimum de modifications doivent être apportées pour les utilisateurs ayant plusieurs F.A.I. Informez-moi des problèmes que vous rencontrez sur ce point. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Nouvelles versions de ce document <p> Les nouvelles versions de ce document seront régulièrement postées dans <it>comp.os.linux.answers</it>. Elles seront aussi mises sur les différents sites FTP qui archivent le L.D.P. Parmi ceux-ci : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO" name="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO"> </tt> <p> De plus, vous pourrez généralement trouver ce document sur la page du Linux Development Project WWW à : <p> <tt> <htmlurl url="http://sunsite.unc.edu/LDP/" name="http://sunsite.unc.edu/LDP/"> </tt> <p> Enfin, la dernière version de ce document sera disponible sous divers formats à : <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.txt" name="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.txt"> </tt> <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.ps.gz" name="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.ps.gz"> </tt> <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.tar.gz" name="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.tar.gz"> </tt> <p> <tt> <htmlurl url="http://home.sn.no/home/egilk/ISP-Hookup-HOWTO.html" name="http://home.sn.no/home/egilk/ISP-Hookup-HOWTO.html"> </tt> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Critiques <p> Tous commentaires, erreurs constatées, informations supplémentaires et critiques de toutes sortes doivent être envoyées à : <p> <tt> <htmlurl url="mailto:egil@kvaleberg.no" name="egil@kvaleberg.no"> </tt> <p> <tt> <htmlurl url="http://home.sn.no/home/egilk/" name="http://home.sn.no/home/egilk/"> </tt> Tous commentaires concernant la traduction, les éventuelles fautes commises par le traducteur doivent être envoyées à : <p> <tt> <htmlurl url="mailto:jaco@mail.dotcom.fr" name="jaco@mail.dotcom.fr"> </tt> <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Considérations légales <p> Aucune responsabilité quant au contenu de ces documents ne peut être acceptée. L'utilisation des concepts, exemples et autres contenus se fait sous votre responsabilité. De plus, ceci est une première version, ayant donc de nombreuses possibilités d'erreurs et d'imprécisions. <p> Une seule des nombreuses configurations possibles est décrite. Dans le monde Linux, il y a généralement plusieurs façons de faire les choses. Les paragraphes contenant des alternatives aux choix possibles sont marqués par <bf>ALT:</bf>. Notez aussi que les références FTP changent légèrement lorsque les nouvelles versions des programmes arrivent. <p> Seuls les programmes qui, sous certaines conditions, peuvent être utilisés ou évalués pour des besoins personnels seront décrits. La plupart des programmes sont disponibles avec leurs sources complets sous les conditions GNU ou assimilées. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Copyright <p> Ce document est copyright(c)1996 Egil Kvaleberg et distribué sous les conditions suivantes : <p> <itemize> <item> Les documents HOWTO Linux peuvent être reproduits et distribués totalement ou en partie, sur tout support physique ou électronique aussi longtemps que ce copyright est reproduit sur toutes les copies. La distribution commerciale est permise et encouragée. Cependant, l'auteur souhaiterait en être informé. <item> Toutes traductions, travaux dérivés ou travaux de synthèse incluant des documents HOWTO Linux doivent être couverts par ce copyright. Ceci signifie que vous ne pouvez produire un travail à partir d'un HOWTO et imposer des restrictions supplémentaires sur sa distribution. Des exceptions à ces règles peuvent être accordées sous certaines conditions ; contactez le coordinateur des HOWTO Linux à l'adresse ci-dessous. <item> Pour toute question, contactez Greg Hankins, le coordinateur des HOWTO à : </itemize> <p> <tt> <htmlurl url="mailto:gregh@sunsite.unc.edu" name="gregh@sunsite.unc.edu"> </tt> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Comment se connecter au reste du monde ? <p> Je suppose que les composants logiciels réseau essentiels (i.e. les parties principales des séries N de la Slackware) ont été installés, et qu'il a été décidé quel sera le port série utilisé par <tt>/dev/modem</tt>. <p> En général, la configuration par défaut permet uniquement un accès direct à <tt>/dev/modem</tt> sous le compte <tt>root</tt>. <p> Pour se connecter directement à un F.A.I, et pour expérimenter les séquences de connexion, on peut utiliser le programme <tt>minicom</tt>, relativement simple à utiliser. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> La configuration de base <p> La configuration de la machine pour son utilisation sur le réseau doit se faire sous le compte <tt>root</tt>. Avant d'aller plus loin, il faut vérifier que le fichier <tt>/etc/hosts.deny</tt> contient la ligne suivante : <tscreen><verb> ALL: ALL </verb></tscreen> Normalement, on veut s'autoriser soi-même, il faut donc ajouter la ligne suivante au fichier <tt>/etc/hosts.allow</tt>: <tscreen><verb> ALL: LOCAL </verb></tscreen> Ou, si on veut insister : <tscreen><verb> ALL: 127.0.0.1 </verb></tscreen> Pour tout ce qui suit, on suppose des connexions via PPP au moyen d'une adresse IP dynamique. Si on fait partie des privilégiés ayant une adresse fixe, il y aura quelques différences à prendre en compte. <p> Il est pratique d'avoir un nom pour sa machine, un nom que l'utilisateur IP peut choisir comme il, ou elle, le désire. Pour cela, il faut mettre ce nom dans <tt>/etc/HOSTNAME</tt>: <tscreen><verb> roderick </verb></tscreen> <p> L'étape suivante consiste à déclarer le serveur de noms dans <tt>/etc/resolv.conf</tt>: <tscreen><verb> search . nameserver 193.212.1.0 </verb></tscreen> Le serveur de noms soit être spécifié par une adresse IP numérique qui dépend du F.A.I. On peut avoir jusqu'à trois serveurs de noms différents, chacun sur une ligne différente, ils seront appelés dans l'ordre où ils sont listés. <p> Si l'on veut pouvoir utiliser des noms comme <tt>unemachine</tt> pour résumer le nom complet <tt>unemachine.acme.net</tt>, on doit remplacer la première ligne par : <tscreen><verb> search acme.net </verb></tscreen> <p> Un minimum de configuration sera aussi nécessaire dans <tt>/etc/hosts</tt>. La plupart des utilisateurs seront ainsi capable de gérer : <tscreen><verb> 127.0.0.1 localhost 0.0.0.0 roderick </verb></tscreen> Ceux possédant une adresse IP fixe remplaceront évidemment 0.0.0.0 par celle-ci... <p> De plus, le minimum que doit contenir le fichier <tt>/etc/networks</tt> est : <tscreen><verb> loopback 127.0.0.0 localnet 0.0.0.0 </verb></tscreen> <p> On doit aussi configurer son domaine de courrier électronique dans <tt>/etc/mailname</tt>: <tscreen><verb> acme.net </verb></tscreen> <p> Le nom d'utilisateur et le mot de passe nécessaires pour se connecter au F.A.I. doivent être spécifiés dans <tt>/etc/ppp/pap-secrets</tt> <tscreen><verb> dirk * SuperSecret </verb></tscreen> <p> Dans le cas où le F.A.I. utilise CHAP au lieu de PAP, le nom de fichier est <tt>/etc/ppp/chap-secrets</tt>. <p> Enfin, les points fondamentaux concernant la procédure de connexion elle-même doivent être précisés avant que PPP soit démarré. Ceci est fait dans <tt>/etc/ppp/chatscript</tt>: <tscreen><verb> TIMEOUT 5 "" ATZ OK ATDT12345678 ABORT "NO CARRIER" ABORT BUSY ABORT "NO DIALTONE" ABORT WAITING TIMEOUT 45 CONNECT "" TIMEOUT 5 "name:" ppp </verb></tscreen> Ces lignes peuvent être peaufinées pour les cas particuliers. Le numéro de téléphone dans la troisième ligne doit, bien sûr, être celui du fournisseur d'accès. Certains peuvent remplacer la chaîne d'initialisation <tt>ATZ</tt> du modem par une autre, plus adaptée au modem qu'ils utilisent. La dernière ligne spécifie que l'on attend le prompt <tt>name:</tt>, et que la réponse doit être <tt>ppp</tt>. D'autres systèmes peuvent avoir d'autres procédures de connexion. <p> Pour réellement lancer une connexion, le protocole PPP peut être initialisé en lançant la commande suivante : <tscreen><verb> exec pppd connect \ 'chat -v -f /etc/ppp/chatscript' \ -detach crtscts modem defaultroute \ user dirk \ /dev/modem 38400 </verb></tscreen> normalement, on doit être en ligne, et le rester jusqu'à ce que le programme soit détruit en tapant Ctrl-C. Tous les messages concernant la connexion seront ajoutés aux fichiers diagnostics du système. Pour les lire, il suffit de faire : <tscreen><verb> tail /var/adm/messages </verb></tscreen> <p> Aussi longtemps que la connexion PPP fonctionne, on a accès à Internet et on peut utiliser des programmes comme ftp, ncftp, rlogin, telnet, finger etc. Tous ces programmes font partie du paquetage réseau. <p> De plus amples informations sur PPP sont disponibles dans : <p> <tt> <htmlurl url="file:/usr/lib/ppp/README.linux" name="/usr/lib/ppp/README.linux"> </tt> <p> <tt> <htmlurl url="file:/usr/lib/ppp/README.linux-chat" name="/usr/lib/ppp/README.linux-chat"> </tt> <p> Enfin, un mot sur la sécurité. Le fichier <tt>/etc/inetd.conf</tt> énumère tous les services que notre machine offrira au monde extérieur. Avec le fichier <tt>/etc/hosts.deny</tt> que l'on a créé plus haut, aucun accès extérieur n'est permis. Pour ceux qui en ont besoin, les accès doivent être explicitement permis au moyen du fichier <tt>/etc/hosts.allow</tt>. Les transactions locales peuvent être permises par la ligne suivante : <tscreen><verb> ALL: LOCAL </verb></tscreen> Voir aussi <tt>man 5 hosts_access</tt>. <p> Une dernière remarque : une certaine confusion existe sur les noms des protocoles POP. Une définition dans le fichier <tt>/etc/services</tt> compatible avec à peu près tout est : <tscreen><verb> pop2 109/tcp pop-2 # PostOffice V.2 pop3 110/tcp pop-3 pop # PostOffice V.3 </verb></tscreen> <p> <bf>ALT:</bf> A la place de <tt>chatscript</tt>, on peut utiliser le programme <tt>dip</tt>, bien plus souple : mais pas en même temps que <tt>diald</tt>. <p> <bf>ALT:</bf> Les privilégiés ayant une connexion TCP/IP permanente, par exemple par un réseau Ethernet, peuvent sans problème tout ignorer sur PPP et se concentrer sur la configuration de leur carte réseau. <p> <bf>ALT:</bf> Certains peuvent ne pas avoir la possibilité d'utiliser PPP, mais peuvent utiliser SLIP à la place. Ce dernier protocole est supporté de la même façon que PPP. Une autre possibilité est d'utiliser UUCP. D'autres peuvent échanger du courrier et des news au moyen de SOUP. Une description de ce dernier cas est donné dans : <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/bjorn/Linux-offline.tgz" name="ftp://ftp.sn.no/user/bjorn/Linux-offline.tgz"> </tt> <p> Le programme TERM est aussi envisageable. Pour l'utiliser, voir <it>Term-HOWTO</it>. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Comment <it>surfer</it> ? <p> Si l'on considère que le mode texte est ce qu'il y a de mieux, on peut utiliser l'explorateur Web Lynx, que l'on trouvera à l'adresse suivante : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz"> </tt> <p> Si on travaille sous X-Window, on peut aussi utiliser l'un des nombreux explorateurs graphiques. Chimera se trouve à l'adresse suivante : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz"> </tt> <p> <tt> <htmlurl url="http://www.unlv.edu/chimera/" name="http://www.unlv.edu/chimera/"> </tt> <p> Mosaic : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz" name="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz"> </tt> <p> <tt> <htmlurl url="ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6" name="ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6"> </tt> <p> Mozilla (Netscape) : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz"> </tt> <p> <tt> <htmlurl url="ftp://ftp.cs.uit.no/pub/www/netscape" name="ftp://ftp.cs.uit.no/pub/www/netscape"> </tt> <p> Ces navigateurs sont toujours disponibles dans de nouvelles et <it>passionnantes</it> versions. <p> L'utilisation et l'évaluation de ces programmes sont sujets à certaines conditions. Respectez-les. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Comment envoyer et recevoir du courrier électronique ? <p> D'abord, il faut s'assurer que <tt>sendmail</tt> est installé. Sendmail trie le courrier interne et à destination de l'extérieur et conserve ce dernier jusqu'au moment où il peut l'envoyer. <p> Sendmail est basé sur une configuration que l'on trouve dans <tt>/etc/sendmail.cf</tt>. Un exemple convenant aux utilisateurs de F.A.I. se trouve dans : <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/sendmail.cf" name="ftp://ftp.sn.no/user/egilk/sendmail.cf"> </tt> <p> Celui-ci utilise <it>procmail</it> comme agent postal mais peut être facilement modifié pour utiliser <it>deliver</it>. <p> Il est, bien sûr, nécessaire d'avoir une adresse de domaine <bf>officielle</bf> pour le courrier extérieur. Cette information est donnée dans <tt>/etc/sendmail.cf</tt>: <tscreen><verb> # who I masquerade as (null for no masquerading) DMacme.net </verb></tscreen> Ceci suppose que l'on ait le même nom d'utilisateur local que pour son F.A.I. Sendmail est maintenant configuré pour envoyer <bf>directement</bf> au destinataire. Pour éviter de longues connexions répétitives dans les cas où la connexion du destinataire est lente et irrégulière, il est généralement pratique d'utiliser un F.A.I. comme moyen de stockage. Ceci doit être précisé par une spécification DS : <tscreen><verb> # "Smart" relay host (may be null) DSmail.acme.net </verb></tscreen> Attention : sendmail est quelque peu sensible à la présence de caractères de tabulation dans <tt>sendmail.cf</tt>. On peut utiliser l'éditeur <tt>vi</tt> pour s'assurer que ces caractères de tabulation sont laissés inchangés. <p> La réception de courrier est souvent réalisée par le protocole POP3 qui peut être démarré à chaque fois que la connexion est établie. On peut tester ça par le script suivant : <tscreen><verb> sendmail -q popclient -3 -v mail.acme.net -u dirk -p "SuperSecret" \ -k -o /usr/spool/mail/dirk </verb></tscreen> Ce script peut être lancé après que la connexion PPP ait été établie. Attention : ce script est uniquement pour tester, il faut donc s'assurer que la boîte à lettres locale n'est pas modifiée pendant l'exécution du script. L'option <tt>-k</tt> indique que le courrier doit être <bf>laissé</bf> dans la boître à lettre du F.A.I. et que l'on récupère seulement une copie du courrier. Bien sûr, une fois que l'on sait que la configuration fonctionne, on enlève cette option. <p> Attention : le mot de passe apparaîtra sur la ligne de commande. On a donc intérêt à régler ça le plus vite possible... <p> Une version sûre et améliorée de ce script peut être récupérée à l'adresse suivante : <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/pop-script.tar.gz" name="ftp://ftp.sn.no/user/egilk/pop-script.tar.gz"> </tt> <p> Cette version du script nécessite l'installation de <tt>procmail</tt>, mais c'est un travail que l'on ne regrettera jamais de toutes façons : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz"> </tt> <p> Procmail est un outil simple et souple qui peut trier le courrier entrant selon un grand nombre de critères. Il est aussi capable de gérer des tâches automatiques comme les messages d'absences et autres. <p> Il faut noter que lorsqu'on utilise procmail directement comme ci-dessus, la situation est quelque peu différente de celle décrite dans la documentation de ce programme. Le fichier <tt>.forward</tt> <bf>n'est pas</bf> nécessaire, et l'on n'a pas besoin non plus de fichier <tt>.procmailrc</tt>. Ce dernier est uniquement requis si on veut trier le courrier. <p> Une interface utilisateur pour la lecture et l'envoi de courrier peut être trouvée dans des programmes comme Pine ou Elm. <p> <bf>ALT:</bf> Fetchmail est maintenant une alternative très intéressante à popclient. La dernière version est disponible à : <p> <bf>ALT:</bf> S'il n'est pas réellement nécessaire d'avoir le démon sendmail activé, on peut mettre en commentaires le démarrage de sendmail (généralement fait dans <tt>/etc/rc.d/rc.M</tt>) pour réduire l'utilisation des ressources. <p> <bf>ALT:</bf> A la place de sendmail on peut utiliser le programme <bf>smail</bf>, plus simple. On trouve une bonne description de celui-ci (et de bien d'autres choses évoquées ici) dans le <it>Guide de l'administration réseau sous Linux</it>. <p> <bf>ALT:</bf> Il existe aussi un ensemble de macros m4 pour réaliser un <tt>sendmail.cf</tt> tout neuf. Il peut convenir à une simple installation aussi bien que pour modifier une configuration existante. <p> <bf>ALT:</bf> Il y a encore d'autres possibilités plus simples mais moins souples. Par exemple, le programme Pine peut fonctionner de manière autonome s'il est configuré correctement. On peut aussi utiliser certains explorateurs Web. <p> <bf>ALT:</bf> Utilisé comme gestionnaire de courrier et de news, le module Gnus de Emacs a de nombreux fans. De plus amples informations se trouvent à : <p> <tt> <htmlurl url="http://www.ifi.uio.no/ larsi/" name="http://www.ifi.uio.no/ larsi/"> </tt> <p> <bf>ALT:</bf> Une alternative à <tt>popclient</tt> est <tt>pop-perl5</tt>, disponible à : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz"> </tt> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Les News <sect1> Comment configurer un lecteur de News online ? <p> Tant que PPP est actif, on peut lire les News <bf>online</bf>. Il y a beaucoup de programmes disponibles pour cela. Deux choix simples sont <tt>rtin</tt> et <tt>trn</tt>. <p> Pour commencer à lire les News, la seule chose nécessaire pour la configuration est, dans la plupart des cas, de faire (généralement une fois pour toutes dans le fichier <tt>.profile</tt>) : <tscreen><verb> export NNTPSERVER=news.acme.net </verb></tscreen> <p> Pour avoir une adresse <it>From</it> correcte dans les envois, certains programmes nécessitent <it>éventuellement</it> : <tscreen><verb> export NNTP_INEWS_DOMAIN=acme.net </verb></tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment configurer un lecteur de News offline ? <p> Pour pouvoir lire les News en étant déconnecté, réduire la note de téléphone et avoir une plus grande souplesse, on peut mettre en place un serveur local de News. Ceci nécessite un peu de configuration ainsi que de l'espace sur le disque. Après l'installation, les choses fonctionneront plus ou moins d'elles-mêmes. Un peu d'attention sera nécessaire de temps en temps. <p> Deux solutions différentes seront décrites. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment installer C News? <p> Cette solution est basée sur le serveur de News <bf>C News</bf> et sur le protocole NNTP. C News était prévu, à l'origine, pour un autre type de configuration, mais est suffisamment souple pour gérer aussi notre situation. On peut aussi utiliser le serveur de News <bf>INN</bf> plus récent mais aussi plus gourmand en ressources. Quel que soit le choix, il faut veiller a <bf>ne pas</bf> installer les deux : ils cohabitent difficilement. <p> Il est crucial d'effectuer les travaux de maintenance des News sous le compte <tt>news</tt>. De plus, tous les fichiers de configuration doivent être placés dans le répertoire <tt>/usr/lib/news</tt>. Une façon de faire, lorsqu'on est sous le compte <tt>root</tt>, est de taper <tt>su news; cd</tt>. <p> Les fichiers les plus importants de la configuration sont : <p> <itemize> <item> <tt>active</tt> est un panorama des groupes de news actifs. Il est mis à jour par la commande addgroup, par exemple : <tt>addgroup comp.os.linux.networking y</tt>. <item> <tt>organization</tt> contient simplement ce que l'on veut mettre dans le champ <it>Organization:</it> des en-têtes. Dans notre cas : </itemize> <tscreen><verb> Dirk Gently's Holistic Detective Agency </verb></tscreen> <p> <itemize> <item> <tt>mailname</tt> dans notre cas doit contenir : <tt>acme.net</tt>. <item> <tt>whoami</tt> contient le nom de notre <tt>site</tt> dans le thread <it>Path:</it>. Dans une configuration telle qu'elle est décrite ici, où l'on utilise le programme <tt>NewsX</tt>, ce nom ne quittera jamais la machine, on peut donc y mettre ce que l'on veut pourvu que l'on soit sûr qu'il est unique. Dans notre cas <tt>roderick</tt>. <item> <tt>sys</tt> contrôle la recherche et la distribution des News. On supposera que, dans notre cas, le F.A.I. ajoute <tt>acme.net</tt> à Path et que c'est la seule source de News que l'on ait. L'exemple donné fait que l'on accepte tout ce qui arrive, et que l'on poste seulement sur <tt>acme.net</tt> ce qui n'a pas été vu avant et qui est posté au départ sur notre propre site. Dans cette configuration simplifiée, on suppose que tous les groupes viennent du même endroit. .<tt>/all</tt> précise la distribution, et <bf>doit</bf> être inclus. La lettre <tt>F</tt> indique que les articles de News sortants seront regroupés dans un fichier. </itemize> <tscreen><verb> ME:all/all:: acme/acme.net:all,!junk/all:FL: </verb></tscreen> <p> <itemize> <item> Un sous-répertoire pour les News sortantes doit être créé. Ici : </itemize> <tscreen><verb> mkdir /var/spool/news/out.going/acme </verb></tscreen> <p> <itemize> <item> <tt>mailpaths</tt> s'occupe du postage dans les groupes modérés, bien que cette tâche puisse être habituellement laissée au F.A.I. </itemize> <p> C News nécessite un peu de maintenance journalière, mais ceci peut être spécifié une fois pour toute en utilisant la commande <tt>crontab -e</tt> en tant qu'utilisateur <tt>news</tt>. Voici une configuration possible qui peut être ajustée selon les besoins : <tscreen><verb> # maintenance des lots entrants et sortants 10,40 * * * * /usr/lib/newsbin/input/newsrun # expiration des C News, une fois par jour 30 0 * * * /usr/lib/newsbin/expire/doexpire # surveillance et rapports si nécessaire 00 2 * * sat /usr/lib/newsbin/maint/addmissing 40 3 * * * /usr/lib/newsbin/maint/newswatch 50 3 * * * /usr/lib/newsbin/maint/newsdaily </verb></tscreen> newsrun place les articles entrants et sortants toutes les demi-heures, doexpire détruit les articles lorsqu'ils sont périmés chaque nuit à 00:30 et les trois dernières commandes réalisent différentes tâches d'administration et de correction d'erreur. <p> On doit aussi s'assurer que tout est correct lorsqu'on démarre la machine. En tant qu'utilisateur root, il faut ajouter la ligne suivante dans <tt>/etc/rc.d/rc.local</tt>: <tscreen><verb> su news -c /usr/lib/newsbin/maint/newsboot </verb></tscreen> Les News peuvent être récupérées en utilisant le programme <bf>NewsX</bf>, qui les prend sur un serveur NNTP. Ce programme peut être trouvé à l'adresse suivante : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz"> </tt> Ou : <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/newsx-0.9.tar.gz" name="ftp://ftp.sn.no/user/egilk/newsx-0.9.tar.gz"> </tt> <p> La configuration de <tt>NewsX</tt> est très simple. Son installation est classique : <tscreen><verb> make su make install exit </verb></tscreen> <p> Avec cette configuration, tout ce que l'on a à faire est de créer les groupes que l'on veut lire en utilisant la commande "addgroup". <p> Pour récupérer les articles, l'utilisateur <tt>news</tt> lance les commandes suivantes (en supposant une connexion PPP ou similaire établie) : <tscreen><verb> newsrun newsx acme news.acme.net newsrun </verb></tscreen> <p> L'option <tt>-d</tt> permet un affichage continu à l'écran. La documentation de NewsX donne toutes les informations nécessaires. <p> NewsX s'occupe aussi de poster les articles sortants. <p> Pour contrôler la suppression des articles périmés, on a besoin d'un fichier <tt>explist</tt>. Les commentaires de cet exemple devraient expliquer ce que l'on cherche à faire : <tscreen><verb> # maintenu dans l'historique 14 jours, rien ne dure plus de 120 jours /expired/ x 14 - /bounds/ x 0-1-120 - # on garde ça pendant 2 mois comp.sources,comp.os.linux.all x 60 - # les déchets sont vite supprimés junk,control x 2 - # défaut: 14 jours, pas d'archivage all x 14 - </verb></tscreen> <p> <bf>ALT:</bf> Pour les petits serveurs de News, on n'a pas souvent besoin de la commande newgroup. Le trafic est <bf>énorme</bf> comparé à son utilité. Le point essentiel est que les articles soient supprimés et que les groupes puissent être créés automatiquement. Pour être sûr que les messages de commande contenant <tt>newgroup</tt> ne brouillent pas les choses, un fichier nommé <tt>newgroupperm</tt> spécifie ce que l'on autorise : <tscreen><verb> comp.os.linux tale@uunet.com yv all any nq </verb></tscreen> Dans cet exemple, tous les groupes sous comp.os.linux seront crées (y), et l'utilisateur <tt>news</tt> en sera averti (v). Tout le reste sera silencieusement (q) ignoré (n). La dernière ligne suffit si l'on veut créer tous les groupes manuellement. <p> <bf>ALT:</bf> Des alternatives à NewsX sont <tt>suck</tt>, ou <tt>slurp</tt> combinés avec <tt>postit</tt>. Slurp utilise NNTP NEWNEWS qui provoque de sérieuses charges sur beaucoup de serveurs de News. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment configurer Leafnode? <p> Une tout autre solution consiste à installer le paquetage intégré <tt>leafnode</tt>. Celui-ci gère toutes les tâches nécessaires à un serveur de News personnel et est facile à configurer. Il est disponible à : <p> <tt> <htmlurl url="http://www.troll.no/freebies/leafnode.html" name="http://www.troll.no/freebies/leafnode.html"> </tt> <p> Comme pour C News, tous les travaux de maintenance doivent être faits par l'utilisateur <tt>news</tt>. <p> Le répertoire de base de leafnode est <tt>/usr/lib/leafnode</tt>. Pour l'installer, faire : <tscreen><verb> cd /usr/lib/leafnode tar -xzvf leafnode-0.8.tgz cd leafnode-0.8 make su make install </verb></tscreen> <p> Toujours sous le compte <tt>root</tt>, on change la ligne qui commande NNTP dans le fichier <tt>/etc/inetd.conf</tt> : <tscreen><verb> nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode </verb></tscreen> Puis, on l'active par : <tscreen><verb> killall -HUP inetd </verb></tscreen> <p> On retourne sous le compte <tt>news</tt> en tapant <tt>exit</tt>. Dans <tt>/usr/lib/leafnode/config</tt>, on change la ligne qui déclare le serveur NNTP. Dans notre cas : <tscreen><verb> server = news.acme.net </verb></tscreen> <p> Leafnode se recherchera lui-même en ajoutant la commande suivante par <tt>crontab -e</tt> comme utilisateur <tt>news</tt> : <tscreen><verb> # expiration de Leafnode, une fois par jour 0 4 * * * /usr/local/sbin/texpire </verb></tscreen> <p> L'échange de News est aussi réalisé sous le compte <tt>news</tt> par la commande suivante (PPP est sensé fonctionner) : <tscreen><verb> /usr/local/sbin/fetch </verb></tscreen> <p> Les utilisateurs voulant lire les news doivent alors utiliser la recette décrite dans <it>Comment configurer un lecteur de News on-line ?</it>, en la configurant pour la machine locale, i.e : <tscreen><verb> export NNTPSERVER=localhost </verb></tscreen> <p> C'est tout ce qu'il y a à faire. Le premier <tt>fetch</tt> transférera une liste des groupes de news disponibles. Leafnode s'occupera alors des groupes que les utilisateurs désirent et s'adaptera la <it>prochaine fois</it> qu'il est activé. <p> <bf>ALT:</bf> Une alternative à <tt>leafnode</tt> est <tt>nntpcache</tt>, disponible à : <p> <tt> <htmlurl url="ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz" name="ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz"> </tt> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Comment automatiser la procédure de connexion ? <p> La gestion automatisée des news et du courrier est simple à réaliser sous Linux. <p> Tout d'abord, on doit créer un script <tt>/usr/lib/ppp/ppp-on</tt> qui démarre la connexion au F.A.I. Souvent, ce fichier contient simplement la ligne suivante : <tscreen><verb> /usr/sbin/pppd </verb></tscreen> Les précisions supplémentaires sont faites dans : <tt>/etc/ppp/options</tt>: <tscreen><verb> connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript" crtscts modem defaultroute asyncmap 00000000 user dirk /dev/modem 38400 </verb></tscreen> <p> Pour terminer une connexion, on utilise la version fournie de <tt>/usr/lib/ppp/ppp-off</tt>. <p> Après avoir testé le fonctionnement de ces deux scripts, on doit écrire ceux qui réalisent les différentes tâches. Le script pour récupérer le courrier a été décrit plus haut et on suppose qu'il se trouve dans <tt>/home/dirk/pop</tt>. <p> Un script pour l'envoi de courrier peut être créé dans <tt>/root/mail</tt> : <tscreen><verb> #! /bin/sh # # échange de courrier # timeout de 10 minutes : TIMEOUT=600 DT=10 # lancer sendmail : sendmail -q & # récupérer le courrier : su dirk -c /home/dirk/pop # attendre que sendmail se termine : t=0 while ! mailq | grep -q "Mail queue is empty"; do t=$[$t+$DT] if [ $t -gt $TIMEOUT ] ; then echo "sendmail -q timeout ($TIMEOUT).." exit 1 fi sleep $DT done exit 0 </verb></tscreen> <p> Le script pour envoyer des News peut être créé dans <tt>/usr/lib/news/news</tt> : <tscreen><verb> #!/bin/sh # # échange des news # doit être lancé par l'utilisateur news : cd /usr/lib/news # mettre à jour le lot de sortie (C News) : /usr/lib/newsbin/input/newsrun < /dev/null # échange des news : /usr/lib/newsbin/newsx acme news.acme.net # vidage du lot entrant : /usr/lib/newsbin/input/newsrun < /dev/null </verb></tscreen> Un script pour rassembler tout cela reste à écrire dans <tt>/root/news+mail</tt>: <tscreen><verb> #!/bin/sh # # échange de courrier et de news # doit être lancé par root # if ! /usr/lib/ppp/ppp-on; then exit 1 fi trap "/usr/lib/ppp/ppp-off" 1 2 3 15 # échange de news+mail : /root/mail & su news -c  news/news wait # déconnexion... /usr/lib/ppp/ppp-off # mise à jour du lot entrant (C News) : su news -c /usr/lib/newsbin/input/newsrun < /dev/null & exit 0 </verb></tscreen> <p> Il est très facile d'étendre tout ceci afin de n'établir une connexion que si du courrier ou des news sortants sont présents. On appellera ce script <tt>/root/news+mail.cond</tt>, et on se rappellera que le nom du spool de news sortant doit être modifié pour que cela fonctionne : <tscreen><verb> #!/bin/sh # # échange de news et courrier, seulement s'il y a des news ou du courrier sortant. # (C News spool) if [ -s /var/spool/news/out.going/acme/togo ] || ! ( mailq | grep -q "Mail queue is empty"); then /root/news+mail fi </verb></tscreen> <p> La seule chose restant à faire est de dire le moment où tout cela doit se passer. Pour cela, on utilise la commande <tt>crontab -e</tt> sous le compte root. On suppose que l'on veut toujours échanger les news et le courrier à 7 heures du matin, puis toutes les 4 heures s'il y a des news et du mail sortant : <tscreen><verb> 00 7 * * * /root/news+mail 00 11,15,19,23 * * * /root/news+mail.cond </verb></tscreen> Il faut s'assurer que chaque partie fonctionne correctement avant de les intégrer ensemble. On peut ajouter plusieurs autres tâches par la suite, comme le réglage de l'horloge (en utilisant ntpdate), et la mise à jour automatique (miroir) des fichiers WWW er FTP locaux par rapport à ceux du F.A.I (en utilisant make et ftp). <p> <bf>ALT:</bf> Selon les préférences, il est aussi possible de renverser le processus. Chaque fois qu'une connexion PPP est établie, le script <tt>/etc/ppp/ip-up</tt> sera démarré. On peut y ajouter tout ce qui est nécessaire pour démarrer l'échange de courrier et des news. Voir <tt>man pppd</tt> pour plus de détails. <p> <bf>ALT:</bf> On peut aussi se connecter en PPP à chaque fois qu'un trafic réseau est détecté. C'est, dans bien des cas, la solution la plus élégante mais elle est tributaire d'une bonne configuration pour éviter l'établissement de connexions fréquentes et coûteuses. Plus d'information peut être trouvée à : <p> <tt> <htmlurl url="http://www.dna.lth.se/ erics/diald.html" name="http://www.dna.lth.se/ erics/diald.html"> </tt> <p> L'utilitaire <tt>diald</tt> est disponible à : <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/diald-0.16.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/diald-0.16.tar.gz"> </tt> <p> Au même endroit, on trouvera aussi d'autres variations sur les connexions PPP. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Pour finir <sect1> Y a t'il d'autres choses que je devrais savoir ? <p> <itemize> <item> Les différents messages d'erreurs du système seront normalement envoyés en courrier interne. Pour s'assurer qu'ils pourront être lus, on doit créer un fichier <tt>/etc/aliases</tt>. Ne pas oublier la commande <tt>newaliases</tt> à chaque fois qu'on change ce fichier. Un exemple qui devrait couvrir la plupart des éventualités est : </itemize> <tscreen><verb> PostMaster: root ftp: root news: root usenet: root FaxMaster: root fax: root WebMaster: root MAILER.DAEMON: root </verb></tscreen> <p> <itemize> <item> Un grand nombre de programmes pour Linux peuvent être trouvés sur <bf>Sunsite</bf>, qui est généralement plutôt encombré. Cependant, il y a de nombreux miroirs et chaque fois qu'une référence à <tt>ftp://sunsite.unc.edu/pub/Linux/..</tt> est faite, on doit essayer d'utiliser un miroir proche de chez soi, par exemple, <tt>ftp://ftp.lip6.fr/pub/linux/sunsite/..</tt>. <item> Pour ceux qui viennent du monde Yarn, une conversion vers les répertoires standards est possible en utilisant le programme <tt>yarn2mf</tt> disponible à : </itemize> <p> <tt> <htmlurl url="ftp://ftp.sn.no/user/egilk/yarn2mf.zip" name="ftp://ftp.sn.no/user/egilk/yarn2mf.zip"> </tt> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Informations spécifiques aux F.A.I. <p> Des informations plus spécifiques à certains F.A.I. sont disponibles à partir de plusieurs sources : <p> <bf>Démon Internet (demon.co.uk)</bf> <p> <tt> <htmlurl url="ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz" name="ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz"> </tt> <p> <bf>Easynet</bf> TBA <p> <bf>Netcom</bf> http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/linux.cfg.html <p> <bf>PowerTech, Schibstednett, Telenor Online</bf> <p> <tt> <htmlurl url="http://home.sn.no/home/egilk/no-isp.html" name="http://home.sn.no/home/egilk/no-isp.html"> </tt> <p> <bf>Primenet</bf> TBA <p> <bf>Stanford</bf> <p> <tt> <htmlurl url="http://www-leland.stanford.edu/ wkn/Linux/network/network.html" name="http://www-leland.stanford.edu/ wkn/Linux/network/network.html"> </tt> <p> Si une information spécifique à un F.A.I n'est pas listée ici, merci de le signaler. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Comment en savoir plus ? <p> Le livre du <it>Linux Documentation Project</it>, intitulé <it>Linux Network Administrator's Guide</it> (NDT : traduit en français sous le titre <sq>Administration réseau sous Linux</sq>) et écrit par Olaf Kirch est obligatoire pour celui qui veut configurer et maintenir tout ce qui touche à TCP/IP et à Internet. <p> <tt> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/nag-1.0.ascii.tar.gz" name="ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/nag-1.0.ascii.tar.gz"> </tt> <p> La documentation fournie avec chaque paquetage donne normalement toutes les informations nécessaires, en tout cas, un survol. Les man-pages sont toujours le premier endroit pour chercher une information. Par exemple, on peut essayer : <tscreen><verb> man pppd </verb></tscreen> <p> On peut aussi trouver de la documentation sur certains programmes dans l'arborescence <tt>/usr/doc</tt>, bien qu'elle ne soit pas toujours bien structurée. <p> Les HOWTOS suivants sont particulièrement pertinents : <p> <itemize> <item> <bf>Installation-HOWTO</bf> donne toutes les bases. <item> <bf>NET-2-HOWTO</bf> est une description très minutieuse de l'installation et de la configuration du code NET. La plupart de ces opérations doit sûrement avoir déjà été faite si on utilise une distribution Linux standard (par ex. Slackware, Red Hat, Debian). Mais plusieurs sections sur la configuration et les problèmes rencontrés valent vraiment la peine d'être lues. <item> <bf>Mail-HOWTO</bf> explique comment configurer les différents outils. Comme précédemment, la plupart de ces réglages auront déjà été faits lors de l'installation d'une distribution Linux standard. <item> <bf>News-HOWTO</bf> concerne la mise en place d'un spool de News classique. <item> <bf>Tiny-News</bf> couvre encore une autre possibilité pour récupérer les News. <item> <bf>PPP-HOWTO</bf> est une bonne description des problèmes que que l'on peut rencontrer lorsqu'on met en place une connexion PPP. <item> <bf>Serial-HOWTO</bf> contient tout ce que l'on doit savoir sur la configuration des ports série. <item> <bf>Mail-Queue</bf> explique comment configurer <it>sendmail</it> pour toujours mettre en attente le courrier distant tout en délivrant le courrier local en même temps. </itemize> Red Hat a une liste de diffusion spécialisée pour PPP ; pour en faire partie, envoyez un message à <p> <tt> <htmlurl url="mailto:redhat-ppp-list-request" name="redhat-ppp-list-request"> </tt> avec le champ sujet suivant : <tscreen><verb> subscribe </verb></tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Remerciements <p> Toutes ces informations viennent de nombreuses sources. Merci aux personnes suivantes qui ont participé directement, ou indirectement : <tscreen><verb> Adam Holt <holt@graphics.lcs.mit.edu> Arne Coucheron <arneco@oslonett.no> Arne Riiber <riiber@oslonett.no> Arnt Gulbrandsen <agulbra@troll.no> Bjorn Steensrud <bjornst@powertech.no> Gisle Hannemyr <gisle@a.sn.no> Hans Amund Rosbach <haro@sesam.dnv.no> Hans Peter Verne <hpv@ulrik.uio.no> Harald T Alvestrand <Harald.T.Alvestrand@uninett.no> Harald Terkelsen <Harald.Terkelsen@adm.hioslo.no> Haavard Engum <hobbes@interlink.no> James Youngman <JYoungman@vggas.com> Johan S. Seland <johanss@sn.no> John Phillips <john@linux.demon.co.uk> Jorn Lokoy <jorn@oslonett.no> Kenneth Tjostheim <kenneth.tjostheim@asplanviak.no> Kjell M. Myksvoll <kjell.myksvoll@fou.telenor.no> Kjetil T. Homme <kjetilho@math.uio.no> Michael Meissner <meissner@cygnus.com> N J Bailey <N.J.Bailey@leeds.ac.uk> Nicolai Langfeldt <janl@math.uio.no> Ove Ruben R Olsen <Ove.R.Olsen@ub.uib.no> R. Bardarson <ronb@powernet.net> Steinar Fremme <steinar@fremme.no> Sverre H. Huseby <sverrehu@ifi.uio.no> Trond Eivind Glomsrod <teg@stud.imf.unit.no> Tommy Larsen <tommy@mix.hive.no> </verb></tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> </article>