ISP-Hookup-HOWTO Par Egil Kvaleberg, egilk@sn.no. v1.26, 5 Mars 1998 _________________________________________________________________ _Ce document décrit la façon d'utiliser Linux pour se connecter à un fournisseur d'accès Internet au moyen d'une connexion TCP/IP par 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._ _________________________________________________________________ 1. Introduction 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. 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. 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. Pour simplifier, les exemples de ce document supposeront ce qui suit : * Nom d'utilisateur : dirk * Mot de passe: SuperSecret * Fournisseur d'accès Internet : acme.xz * Serveur de mail : mail.acme.xz * Serveur de news : news.acme.xz * Serveur de noms : 193.212.1.0 * Numéro de téléphone : 12345678 La machine de dirk s'appelle roderick. 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. 1.1 Copyright Copyright (c) 1996,1997,1998 par Egil Kvaleberg. Ce document peut être distribué sous les termes de la licence LDP disponible à http://sunsite.unc.edu/LDP/COPYRIGHT.html 1.2 Limites de responsabilité __Aucune responsabilité quant au contenu de ces documents ne peut être acceptée. Vous utilisez les concepts, exemples et autres contenus à vos propres risques. L'une des nombreuses configurations possibles sera décrite. Dans le monde Linux, il y a généralement plusieurs façons de faire les choses. Les paragraphes contenant des conseils sont repérés par _ALT :_ Notez aussi que les références FTP changent souvent légèrement lorsqu'apparaissent de nouvelles versions des programmes. Pour autant que je sache, seuls seront décrits les programmes qui peuvent être utilisés ou évalués dans un but personnel. La plupart de ces programmes seront disponibles avec leurs sources sous une licence GNU-like. 1.3 Traductions Ce document a été traduit dans les langues suivantes : Allemand, par Cristoph Seibert : http://tech.appl-opt.physik.uni-essen.de/LinuX/german-howto/DE-ISP-Ver bindung-HOWTO.html Coréen, par Kidong Lee : http://www.postech.ac.kr/~cessi/howto/ISP-Hookup/ISP-Hookup-HOWTO.html Français, par Éric Jacoboni : http://www.minet.net/linux/HOWTO-fr/ISP-Hookup-HOWTO.html Polonais, par Piotr Pogorzelski : _URL TBA_ Norégien : http://www.kvaleberg.com/no-linux.html 1.4 Nouvelles versions de ce document Les nouvelles versions de ce document seront régulièrement postées dans _comp.os.linux.answers_. Elles seront aussi mises sur les différents sites FTP qui archivent le L.D.P. Parmi ceux-ci : ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO De plus, vous pourrez généralement trouver ce document sur la page du Linux Development Project WWW à : http://sunsite.unc.edu/LDP/ La dernière version de ce document sera disponible sous divers formats à : ftp://ftp.sol.no/user/egilk/ISP-Hookup-HOWTO.txt ftp://ftp.sol.no/user/egilk/ISP-Hookup-HOWTO.ps.gz ftp://ftp.sol.no/user/egilk/ISP-Hookup-HOWTO.tar.gz http://www.kvaleberg.com/ISP-Hookup-HOWTO.html 1.5 Critiques Tous commentaires, erreurs constatées, informations supplémentaires et critiques de toutes sortes doivent être envoyées à : egil@kvaleberg.no http://www.kvaleberg.com/ Tous commentaires concernant la traduction, les éventuelles fautes commises par le traducteur doivent être envoyées à : jaco@mail.dotcom.fr 2. Comment se connecter au reste du monde ? Je suppose que les composants logiciels réseau essentiels de votre distribution Linux ont été installés, et qu'il a été décidé quel sera le port série utilisé par /dev/modem. En général, la configuration par défaut permet uniquement un accès direct à /dev/modem sous le compte root. Pour se connecter directement à un F.A.I, et pour expérimenter les séquences de connexion, on peut utiliser le programme minicom, relativement simple à utiliser. 2.1 La configuration de base La configuration de la machine pour son utilisation sur le réseau doit se faire sous le compte root. Avant d'aller plus loin, il faut vérifier que le fichier /etc/hosts.deny contient la ligne suivante : ALL: ALL Normalement, on veut s'autoriser soi-même, il faut donc ajouter la ligne suivante au fichier /etc/hosts.allow : ALL: LOCAL Ou, si on veut insister : ALL: 127.0.0.1 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. 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 /etc/HOSTNAME : roderick L'étape suivante consiste à déclarer le serveur de noms dans /etc/resolv.conf : search . nameserver 193.212.1.0 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. Si l'on veut pouvoir utiliser des noms comme unemachine pour résumer le nom complet unemachine.acme.xz, on doit remplacer la première ligne par : search acme.xz Un minimum de configuration sera aussi nécessaire dans /etc/hosts. La plupart des utilisateurs seront ainsi capable de gérer : 127.0.0.1 localhost 0.0.0.0 roderick Ceux possédant une adresse IP fixe remplaceront évidemment 0.0.0.0 par celle-ci... De plus, le minimum que doit contenir le fichier /etc/networks est : loopback 127.0.0.0 localnet 0.0.0.0 On doit aussi configurer son domaine de courrier électronique dans /etc/mailname : acme.xz Le nom d'utilisateur et le mot de passe nécessaires pour se connecter au F.A.I. doivent être spécifiés dans /etc/ppp/pap-secrets dirk * SuperSecret Dans le cas où le F.A.I. utilise CHAP au lieu de PAP, le nom de fichier est /etc/ppp/chap-secrets. 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 /etc/ppp/chatscript : TIMEOUT 5 "" ATZ OK ATDT12345678 ABORT "NO CARRIER" ABORT BUSY ABORT "NO DIALTONE" ABORT WAITING TIMEOUT 45 CONNECT "" TIMEOUT 5 "name:" ppp 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 ATZ du modem par une autre, plus adaptée au modem qu'ils utilisent. La dernière ligne spécifie que l'on attend un prompt se terminant par name:, et que la réponse doit être ppp. D'autres systèmes peuvent avoir d'autres procédures de connexion. Pour réellement lancer une connexion, le protocole PPP peut être initialisé en lançant la commande suivante : exec pppd connect \ 'chat -v -f /etc/ppp/chatscript' \ -detach crtscts modem defaultroute \ user dirk \ /dev/modem 38400 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 : tail /var/adm/messages ou dmesg 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. De plus amples informations sur PPP sont disponibles dans : /usr/lib/ppp/README.linux /usr/lib/ppp/README.linux-chat Enfin, un mot sur la sécurité. Le fichier /etc/inetd.conf énumère tous les services que notre machine offrira au monde extérieur. Avec le fichier /etc/hosts.deny 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 /etc/hosts.allow. Les transactions locales peuvent être permises par la ligne suivante : ALL: LOCAL Voir aussi man 5 hosts_access. Une dernière remarque mineure : une certaine confusion existe sur les noms des protocoles POP. Une définition dans le fichier /etc/services compatible avec à peu près tout est : pop2 109/tcp pop-2 # PostOffice V.2 pop3 110/tcp pop-3 pop # PostOffice V.3 _ALT :_ A la place de chatscript, on peut utiliser le programme dip, bien plus souple : mais pas en même temps que diald. _ALT :_ 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. _ALT :_ 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 : ftp://ftp.sol.no/user/bjorn/Linux-offline.tgz Le programme TERM est aussi envisageable. Pour l'utiliser, voir _Term-HOWTO_. 3. Comment _surfer_ ? Si l'on considère que le mode texte est ce qu'il y a de mieux, on peut utiliser le navigateur web Lynx, que l'on trouvera à l'adresse suivante : ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.b in2.tar.gz Si on travaille sous X Window, on peut aussi utiliser l'un des nombreux navigateurs graphiques. Chimera se trouve à l'adresse suivante : ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1. 65.bin.ELF.tar.gz http://www.unlv.edu/chimera/ Mosaic : ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7 b1-aout.tgz ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6 Netscape (aka. Mozilla) : ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v 11b3.tar.gz ftp://ftp.cs.uit.no/pub/www/netscape Ces navigateurs sont toujours disponibles dans de nouvelles et _passionnantes_ versions. L'utilisation et l'évaluation de ces programmes sont sujets à certaines conditions. Respectez-les. 4. Comment envoyer et recevoir du courrier électronique ? D'abord, il faut s'assurer que sendmail 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. Sendmail est basé sur une configuration que l'on trouve dans /etc/sendmail.cf. Un exemple convenant aux utilisateurs de F.A.I. se trouve dans : ftp://ftp.sol.no/user/egilk/sendmail.cf Celui-ci utilise procmail comme agent postal mais peut être facilement modifié pour utiliser deliver. Il est, bien sûr, nécessaire d'avoir une adresse de domaine _officielle_ pour le courrier extérieur. Cette information est donnée dans /etc/sendmail.cf: # who I masquerade as (null for no masquerading) DMacme.xz Ceci suppose que l'on ait le même nom d'utilisateur local que pour son F.A.I. S'il est différent, précisez le nom complet à la place : DMdick@acme.xz Sendmail est maintenant configuré pour envoyer _directement_ 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 : # "Smart" relay host (may be null) DSmail.acme.xz Attention : sendmail est quelque peu sensible à la présence de caractères de tabulation dans sendmail.cf. On peut utiliser l'éditeur vi pour s'assurer que ces caractères de tabulation sont laissés inchangés. 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 : sendmail -q popclient -3 -v mail.acme.xz -u dirk -p "SuperSecret" \ -k -o /usr/spool/mail/dirk 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 -k indique que le courrier doit être _laissé_ 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. Attention : le mot de passe apparaîtra sur la ligne de commande. Notez aussi que popclient est obsolète et que vous devriez utiliser fetchmail à la place. Une version plus sécurisée et améliorée de ce script peut être récupérée à l'adresse suivante : ftp://ftp.sol.no/user/egilk/pop-script.tar.gz Cette version du script nécessite l'installation de procmail, mais c'est un travail que l'on ne regrettera jamais de toutes façons. La plupart des distributions l'incluent, sinon, vous pouvez essayer : ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10 -2.tar.gz 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. 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 .forward _n'est pas_ nécessaire, et l'on n'a pas besoin non plus de fichier .procmailrc. Ce dernier est uniquement requis si on veut trier le courrier. Une interface utilisateur pour la lecture et l'envoi de courrier peut être trouvée dans des programmes comme pine ou elm. _ALT :_ Fetchmail est maintenant une alternative très améliorée de popclient. La dernière version est disponible à : ftp://ftp.ccil.org/pub/esr/fetchmail/fetchmail-3.3.tar.gz _ALT :_ 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, comme cela est généralement fait dans /etc/rc.d/rc.M (ceci peut varier selon les distributions) afin de réduire l'utilisation des ressources et d'autres problèmes potentiels. _ALT :_ A la place de sendmail on peut utiliser le programme smail, plus simple. On trouve une bonne description de celui-ci (et de bien d'autres choses évoquées ici) dans le _Guide de l'administration réseau sous Linux_. _ALT :_ Il existe aussi un ensemble de macros m4 pour réaliser un /etc/sendmail.cf tout neuf. Il peut convenir à une simple installation aussi bien que pour modifier une configuration existante. _ALT :_ Il y a encore d'autres possibilités plus simples mais moins souples pour gérer le courrier. Par exemple, le programme Pine peut fonctionner de manière autonome s'il est configuré correctement. On peut aussi utiliser certains explorateurs Web. _ALT :_ Utilisé comme gestionnaire de courrier et de news, le module Gnus d'Emacs a de nombreux fans. De plus amples informations se trouvent à : http://www.ifi.uio.no/~larsi/ _ALT :_ Une alternative à popclient est pop-perl5, disponible à : ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz 5. Les News 5.1 Comment configurer un lecteur de News online ? Tant que PPP est actif, on peut lire les news _online_. Il y a beaucoup de programmes disponibles pour cela, deux possibilités simples étant rtin et trn. Pour commencer à lire les news, la seule chose nécessaire pour la configuration est, dans la plupart des cas, de configurer NNTPSERVER (généralement une fois pour toutes dans le fichier .profile) : export NNTPSERVER=news.acme.xz Pour avoir une adresse _From_ correcte dans les envois, certains programmes nécessitent _éventuellement_ : export NNTP_INEWS_DOMAIN=acme.xz 5.2 Comment configurer un lecteur de News offline ? Pour pouvoir lire les news en étant offline, 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. Deux solutions différentes seront décrites. 5.3 Comment installer C News? Cette solution est basée sur le serveur de News _C News_ 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 _INN_ plus récent mais aussi plus gourmand en ressources. Quel que soit le choix, il faut veiller a _ne pas_ installer les deux : ils cohabitent difficilement. Il est crucial d'effectuer les travaux de maintenance des News sous le compte news. De plus, tous les fichiers de configuration doivent être placés dans le répertoire /usr/lib/news. Une façon de faire, lorsqu'on est sous le compte root, est de taper su news; cd. Les fichiers les plus importants de la configuration sont : * active est un panorama des groupes de news actifs. Il est mis à jour par la commande addgroup, par exemple : addgroup comp.os.linux.networking y. * organization contient simplement ce que l'on veut mettre dans le champ _Organization:_ des en-têtes. Dans notre cas : Dirk Gently's Holistic Detective Agency * mailname dans notre cas doit contenir : acme.xz. * whoami contient le nom de notre site dans le thread Path:. Dans une configuration telle qu'elle est décrite ici, où l'on utilise le programme newsx, 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 roderick. * Le fichier sys contrôle la recherche et la distribution des News. On supposera que, dans notre cas, le F.A.I. ajoute acme.xz à 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 acme.xz 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. ./all précise la distribution, et _doit_ être inclus. La lettre F indique que les articles de news sortants seront regroupés dans un fichier. ME:all/all:: acme/acme.xz:all,!junk/all:FL: * Un sous-répertoire pour les News sortantes doit être créé. Ici : mkdir /var/spool/news/out.going/acme * mailpaths s'occupe du postage dans les groupes modérés, bien que cette tâche puisse être habituellement laissée au F.A.I. C News nécessite un peu de maintenance journalière, mais ceci peut être spécifié une fois pour toute en utilisant la commande crontab -e en tant qu'utilisateur news. Voici une configuration possible qui peut être ajustée selon les besoins : # 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 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. 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 /etc/rc.d/rc.local : su news -c /usr/lib/newsbin/maint/newsboot Les News peuvent être récupérées en utilisant le programme newsx , qui les prend sur un serveur NNTP. Ce programme peut être trouvé à l'adresse suivante : ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz Ou : ftp://ftp.sol.no/user/egilk/newsx-0.9.tar.gz La configuration de newsx est très simple. Son installation est classique : make su make install exit 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. Pour récupérer les articles, l'utilisateur >news lance les commandes suivantes (en supposant une connexion PPP ou similaire établie) : newsrun newsx acme news.acme.xz newsrun L'option -d permet un affichage continu à l'écran. La documentation de newsx donne toutes les informations nécessaires. newsx s'occupe aussi de poster les articles sortants. Pour contrôler la suppression des articles périmés, on a besoin d'un fichier explist. Les commentaires de cet exemple devraient expliquer ce que l'on cherche à faire : # 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 - _ALT :_ Pour les petits serveurs de News, on n'a pas souvent besoin du contrôle newgroup. Le trafic est _énorme_ comparé à son utilité possible. 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 contrôle contenant newgroup ne brouillent pas les choses, un fichier nommé newgroupperm spécifie ce que l'on autorise : comp.os.linux tale@uunet.com yv all any nq Dans cet exemple, tous les groupes sous comp.os.linux seront crées (y), et l'utilisateur news 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. _ALT :_ Une alternative à newsx est suck. 5.4 Comment configurer Leafnode? Une tout autre solution consiste à installer le paquetage intégré leafnode. Celui-ci gère toutes les tâches nécessaires à un serveur de News personnel et est facile à configurer. Il est disponible à : http://www.troll.no/freebies/leafnode.html Comme pour C News, tous les travaux de maintenance doivent absolument être faits par l'utilisateur news. Le répertoire de base de leafnode est /usr/lib/leafnode. Pour l'installer, faire : cd /usr/lib/leafnode tar -xzvf leafnode-0.8.tgz cd leafnode-0.8 make su make install Notez que, dans ce qui suit, le préfixe /usr/local/sbin devra être remplacé par /usr/sbin si vous avez installé leafnode à partir d'un paquetage. Toujours sous le compte root, on change la ligne qui contrôle NNTP dans le fichier /etc/inetd.conf : nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode Puis, on l'active par : killall -HUP inetd On retourne sous le compte news en tapant exit. Dans /usr/lib/leafnode/config, on change la ligne qui déclare le serveur NNTP. Dans notre cas : server = news.acme.xz Leafnode se recherchera lui-même en ajoutant la commande suivante par crontab -e comme utilisateur news : # expiration de Leafnode, une fois par jour 0 4 * * * /usr/local/sbin/texpire L'échange de News est aussi réalisé sous le compte news par la commande suivante (PPP est sensé fonctionner) : /usr/local/sbin/fetch Les utilisateurs voulant lire les news doivent alors utiliser la recette décrite dans _Comment configurer un lecteur de News on-line ?_, en la configurant pour la machine locale, i.e : export NNTPSERVER=localhost C'est tout ce qu'il y a à faire. Le premier fetch transférera une liste des groupes de news disponibles. Leafnode s'occupera alors des groupes que les utilisateurs désirent et s'adaptera la _prochaine fois_ qu'il est activé. Notez que leafnode semble ne pas fonctionner dans les cas où une autorisation NNTP est nécessaire. _ALT :_ Une alternative à leafnode est nntpcache, disponible à : ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz _ALT :_ Une autre possibilité est d'utiliser le lecteur de news slrn en même temps que le paquetage slrn-pull. Le lecteur de news doit avoir été compilé avec l'option spool. 6. Comment automatiser la procédure de connexion ? La gestion automatisée des news et du courrier est simple à réaliser sous Linux. Tout d'abord, on doit créer un script /usr/lib/ppp/ppp-on qui démarre la connexion au F.A.I. Souvent, ce fichier contient simplement la ligne suivante : /usr/sbin/pppd Les précisions supplémentaires sont faites dans /etc/ppp/options : connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript" crtscts modem defaultroute asyncmap 00000000 user dirk /dev/modem 38400 Pour terminer une connexion, on utilise la version fournie de /usr/lib/ppp/ppp-off. 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 /home/dirk/pop. Un script pour l'envoi de courrier peut être créé dans /root/mail : #! /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 Le script pour envoyer des News peut être créé dans /usr/lib/news/news : #!/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.xz # vidage du lot entrant : /usr/lib/newsbin/input/newsrun < /dev/null Un script pour rassembler tout cela reste à écrire dans /root/news+mail: #!/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 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 /root/news+mail.cond, et on se rappellera que le nom du spool de news sortant doit être modifié pour que cela fonctionne : #!/bin/sh # # échange de news et courrier, seulement s'il y a des news ou du courrier sorta nt. # (C News spool) if [ -s /var/spool/news/out.going/acme/togo ] || ! ( mailq | grep -q "Mail queue is empty"); then /root/news+mail fi La seule chose restant à faire est de dire le moment où tout cela doit se passer. Pour cela, on utilise la commande crontab -e 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 : 00 7 * * * /root/news+mail 00 11,15,19,23 * * * /root/news+mail.cond 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). _ALT :_ Selon les préférences, il est aussi possible de renverser le processus. Chaque fois qu'une connexion PPP est établie, le script /etc/ppp/ip-up sera démarré. On peut y ajouter tout ce qui est nécessaire pour démarrer l'échange de courrier et des news. Voir man pppd pour plus de détails. _ALT :_ 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 à : http://www.dna.lth.se/ erics/diald.html L'utilitaire diald est disponible à : ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/diald-0.16.tar.g z Au même endroit, on trouvera aussi d'autres variations sur les connexions PPP. 7. Pour finir 7.1 Y a t'il d'autres choses que je devrais savoir ? * 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 /etc/aliases. Ne pas oublier la commande newaliases à chaque fois qu'on change ce fichier. Un exemple qui devrait couvrir la plupart des éventualités est : PostMaster: root ftp: root news: root usenet: root FaxMaster: root fax: root WebMaster: root MAILER.DAEMON: root * Un grand nombre de programmes pour Linux peuvent être trouvés sur _Sunsite_, qui est généralement plutôt encombré. Cependant, il y a de nombreux miroirs et chaque fois qu'une référence à ftp://sunsite.unc.edu/pub/Linux/.. est faite, on doit essayer d'utiliser un miroir proche de chez soi, par exemple, ftp://ftp.lip6.fr/pub/linux/sunsite/... * Pour ceux qui viennent du monde Yarn, une conversion vers les répertoires standards est possible en utilisant le programme yarn2mf disponible à : ftp://ftp.sol.no/user/egilk/yarn2mf.zip 8. Informations spécifiques aux F.A.I. Des informations plus spécifiques à certains F.A.I. sont disponibles à partir de plusieurs sources : _Démon Internet_ ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz _Netcom_ http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/l inux.cfg.html _PowerTech, Telenor Online, Telia_ http://www.kvaleberg.com/no-isp.html _Stanford_ http://www-leland.stanford.edu/ wkn/Linux/network/network.html _MCI_ http://www.kvaleberg.com/linux-mci.html _SISCOM_ http://www.siscom.net/support/linux_setup.htm _AOL_ ce n'est pas possible car AOL utilise un protocole propriétaire. Si vous pouvez donner une information spécifique à un F.A.I qui n'est pas listée ici, merci de le signaler. 8.1 Comment en savoir plus ? Le livre du Linux Documentation Project, intitulé Linux Network Administrator's Guide (NdT : traduit en français sous le titre Administration réseau sous Linux) et écrit par Olaf Kirch est obligatoire pour celui qui veut configurer et maintenir tout ce qui touche à TCP/IP et à Internet. ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/n ag-1.0.ascii.tar.gz 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 : man pppd On peut aussi trouver de la documentation sur certains programmes dans l'arborescence /usr/doc, bien qu'elle ne soit pas toujours bien structurée. Les HOWTOS suivants sont particulièrement pertinents : * _Installation-HOWTO_ donne toutes les bases. * _NET-2-HOWTO_ 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. * _Mail-HOWTO_ 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. * _News-HOWTO_ concerne la mise en place d'un spool de News classique. * _Tiny-News_ couvre encore une autre possibilité pour récupérer les News. * _PPP-HOWTO_ est une bonne description des problèmes que que l'on peut rencontrer lorsqu'on met en place une connexion PPP. * _Serial-HOWTO_ contient tout ce que l'on doit savoir sur la configuration des ports série. * _Mail-Queue_ explique comment configurer _sendmail_ pour toujours mettre en attente le courrier distant tout en délivrant le courrier local en même temps. Red Hat a une liste de diffusion spécialisée pour PPP ; pour en faire partie, envoyez un message à redhat-ppp-list-request avec le champ sujet suivant : subscribe 8.2 Remerciements Toutes ces informations viennent de nombreuses sources. Merci aux personnes suivantes qui ont participé directement, ou indirectement : Adam Holt Arne Coucheron Arne Riiber Arnt Gulbrandsen Bjorn Steensrud Gisle Hannemyr Hans Amund Rosbach Hans Peter Verne Harald T Alvestrand Harald Terkelsen Haavard Engum James Youngman Johan S. Seland John Phillips Jorn Lokoy Kenneth Tjostheim Kjell M. Myksvoll Kjetil T. Homme Michael Meissner N J Bailey Nicolai Langfeldt Ove Ruben R Olsen R. Bardarson Steinar Fremme Sverre H. Huseby Trond Eivind Glomsrod Tommy Larsen Yves Bellefeuille