Le courrier électronique par UUCP: la solution professionnelle pour les
utilisateurs de modems
ArticleCategory: [Do not translate this]
System Administration
AuthorImage:[Do not translate this]
TranslationInfo:[Do not translate this]
original in en Guido
Socher
en to fr Georges
Tarbouriech
AboutTheAuthor:[Translate the paragraph below]
Guido utilise UUCP depuis plusieurs années et pense que c'est le meilleur
moyen de connecter votre système de courrier à l'Internet.
Abstract:[Translate the paragraph below]
UUCP est l'un des très vieux protocoles d'Internet.
Aujourd'hui, il est souvent remplacé par des protocoles plus modernes mais
il reste encore l'une des meilleures solutions pour envoyer ou recevoir du
courrier électronique. Malheureusement, nombreux sont les utilisateurs se
connectant depuis chez eux qui ignorent l'énorme potentiel d'UUCP et ne
réclament donc pas ce service. Le résultat, c'est que la plupart des
fournisseurs d'accès ne proposent plus UUCP.
ArticleIllustration:[Do not try to translate this]
ArticleBody:[Translate everything below]
Introduction
UUCP est un très vieux protocole, utilisé à l'origine pour copier des
fichiers entre des systèmes Unix. D'où le nom : "Unix to Unix Copy".
Ces anciens systèmes n'étaient pas connectés en permanence via un réseau.
Des connexions par modem étaient établies à intervalles réguliers pour
transférer des données.
Pour copier le fichier mesnotes.txt vers un système distant nommé "mars", on
utilisait la commande :
uucp mesnotes.txt mars!~/mesnotes.txt
En réalité, ceci copie les données vers un répertoire d'attente (NDT : un "spool",
quoi !) et elles ne seront physiquement copiées que plus tard, lors de
l'établissement d'une connexion par modem.
Aujourd'hui, ce genre d'utilisation d'UUCP est tombé en désuétude. Des
protocoles plus modernes tels que TCP/IP et par exemple, scp, sont maintenant
disponibles pour copier des fichiers entre systèmes.
UUCP pouvait faire beaucoup plus. Il permettait d'exécuter un nombre limité de
commandes distantes. Pour lancer la commande "rnews" sur la machine distante
"mars" on tapait :
cat somedata.txt | uux - mars!rnews
Encore une fois, la commande rnews n'était pas exécutée immédiatement sur la
machine distante, mais ultérieurement lorsqu'une connexion par modem était
établie avec "mars". La commande était mise en attente dans le répertoire
"spool" local.
Quel rapport avec le courrier électronique ?
Le courrier électronique est un domaine dans lequel il importe peu que les
données transférées soient légèrement retardées. En règle générale, vous ouvrez
votre logiciel de courrier, écrivez par exemple quelques réponses à vos amis et
vous expédiez. Toutefois, vous ne laissez pas les fenêtres de votre application
de courrier ouvertes en permanence jusqu'à ce que vous vous connectiez à votre
FAI (Fournisseur d'Accès Internet). Vous "envoyez" votre courrier et fermez la fenêtre. S'il n'est pas envoyé
immédiatement, ce n'est pas le plus important; l'essentiel, c'est qu'il "parte",
même plus tard.
C'est exactement ce que vous pouvez faire de manière fiable et simple avec UUCP.
Votre système de courrier
UUCP est flexible. Vous pouvez l'installer de façon à en faire un serveur de
courrier sur un réseau. Votre machine Linux peut devenir le serveur central de
courrier pour toute sorte d'ordinateurs et de systèmes d'exploitation sur votre
réseau local :
Installer un tel serveur de courrier peut se révéler très pratique pour une
famille et très rentable pour une petite entreprise. Vous pouvez fournir des
comptes de courrier à un grand nombre d'utilisateurs et vous n'avez besoin que
d'une connexion par modem vers votre FAI. Une entreprise établira sans doute
cette connexion périodiquement (par exemple, toutes les heures), et les
utilisateurs ne l'établiront que par nécessité et pour d'autres raisons.
Pour conclure : le courrier électronique par UUCP n'est pas quelque chose de
vieux et poussiéreux. C'est une application élégante d'UUCP, très pratique et
peu coûteuse.
Comment ça marche ?
Avec UUCP, votre FAI vous founira votre domaine MX ( MX=Mail
Exchanger, la partie "nom de domaine de votre adresse de courrier électronique).
Par exemple, si l'adresse du fournisseur d'accès est
www.mon-gentil-fai.com, Joe Miller peut obtenir un nom de domaine du style
miller.mon-gentil-fai.com. Tout le courrier destiné à ce domaine sera envoyé au
serveur de courrier de Joe Miller par l'intermédiaire d'UUCP.
Joe peut alors configurer un nombre illimité d'utilisateurs : joe@miller.mon-gentil-fai.com,
diana@miller.mon-gentil-fai.com, frank@miller.mon-gentil-fai.com ...
C'est selon ce que souhaite Joe. Comme avec Linux vous disposez d'un serveur de
courrier libre, capable de gérer différents protocoles tels que
pop, imap, nfs, etc, directement depuis le système de fichier, il n'existe pas
de restrictions sur le type de système d'exploitation ou de client de courrier
dont les utilisateurs se servent pour accéder à leur boîte aux lettres.
UUCP est un protocole autonome capable d'être utilisé directement côté matériel
(par exemple, la ligne modem sans aucun protocole ppp), toutefois, il fonctionne
aussi très bien avec TCP/IP ce qui offre de nouvelles possibilités :
Vous pouvez avoir un FAI quelque part dans le monde avec un très bon réseau
central (par
exemple à Amsterdam) et vous connecter à Internet par l'intermédiaire d'un de
ses sous-réseaux en bénéficiant d'un tarif local pour la connexion. UUCP
fonctionnant au-dessus de TCP/IP, la situation géographique de votre FAI n'a
plus d'importance. Il est accessible de partout dans le monde par le biais
d'Internet.
Installation
La plupart des distributions Linux possèdent un paquetage UUCP contenant Tailer
UUCP. Si ce n'est pas le cas, vous pouvez l'obtenir sur :
www.airs.com/ian
En dehors du paquetage UUCP, il vous faut également un système de courrier
électronique capable de gérer UUCP. Je parlerai de Sendmail dans cet article
mais la plupart des autres systèmes fonctionnent aussi par UUCP. Un logiciel de
gestion de courrier capable de piloter UUCP possède une commande rmail dans le
paquetage rpm ou deb.
Le courrier est envoyé vers votre système par l'exécution d'une commande
distante, semblable à uux/rnews de l'exemple ci-dessus. rmail est la commande
qui reçoit le courrier par un "pipe" UUCP et l'envoie vers votre logiciel de
gestion.
Les informations suivantes sont nécessaires à votre FAI pour définir le compte :
- Le nom du domaine MX que vous souhaitez obtenir, par exemple
miller.mon-gentil-fai.com
- Un nom de login pour la connexion UUCP
- Un mot de passe pour la connexion UUCP
- Le nom de votre système UUCP. Une chaîne de caractères contenant par exemple
votre nom d'hôte.
- Un contact pour les questions administratives et un opérateur type,
généralement postmaster.
- UUCP par IP ? Répondez "oui" à cette question et ne choisissez pas un
prestataire qui n'offre pas ce service. Ce que vous voulez, c'est le courrier
électronique par UUCP et UUCP par IP.
Les données que votre FAI doit vous fournir :
- Le nom de domaine du serveur sur lequel vous vous connectez par UUCP. Ca
peut ressembler à uucp.mon-gentil-fai.com
- Le nom de son système UUCP
Test du compte, pas à pas
UUCP par TCP/IP utilise le port TCP 540 vous permettant ainsi de tester votre
compte avant d'entrer dans la configuration de votre système UUCP. De cette
manière, vous pouvez être certains que le FAI n'a pas fait d'erreurs et que les
mots de passe et les ID sont les bons. Lancez la commande :
telnet uucp.mon-gentil-fai.com 540
Vous recevez quelque chose du style :
Trying 1.2.3.42...
Connected to uucp.mon-gentil-fai.com
Escape character is '^]'.
login:
Tapez le nom de login et le mot de passe :
Trying 1.2.3.42...
Connected to uucp.mon-gentil-fai.com
Escape character is '^]'.
login: linux
Password: tux.1234
Shere=mfic
Après un "login" couronné de succès, l'autre côté répond par "Shere" ce qui
signifie "System here" suivi par le nom du système distant (vérifiez avec ce que
vous a fourni le FAI).
Pour couper la connexion, tapez crtl-] et tapez "q" au prompt de telnet :
^]
telnet> q
Connection closed.
Maintenant vous savez que votre compte est correctement configuré.
Configuration du système UUCP
Pour recevoir (et envoyer) du courrier par UUCP, vous devez écrire les bonnes
données de configuration dans les fichiers UUCP correspondants. Ces fichiers se
trouvent en général dans /etc/uucp. Vous devez créer/éditer les fichiers
suivants :
- call -- ce fichier contient login/mot de passe
- sys -- ce fichier définit comment accéder à un système donné. Configurez-le
pour l'utilisation de TCP/IP
- port -- définit surtout le port 540 pour les connexions tcp.
- config -- fichier global de configuration
L'utilisateur et le groupe uucp doivent être propriétaires de ces fichiers. Le
fichier call ne doit pas avoir les droits de lecture pour tout le monde
(chmod 640 call).
Les fichiers de log se trouvent généralement dans
/var/log/uucp/ et /var/spool/uucp/ doit contenir un répertoire avec le nom du
système distant. Vérifiez que l'utilisateur uucp a les droits d'écriture sur les
deux.
call
# fichier call
# Le format n'est autre que nom-du-système-distant nom-de-login mot-de-passe.
mfic linux tux.1234
port
# fichier port
# Inutile de modifier
type tcp
port tcp
service 540
sys
# fichier sys
# fournit les informations sur le système distant
# nom du système de votre FAI :
system mfic
#le serveur de votre FAI :
address uucp.mon-gentil-fai.com
# ne modifiez pas les 3 lignes suivantes, voir la documentation de Tailer UUCP
# pour plus ample information
time Any 2
port tcp
chat-timeout 60
# commandes autorisées:
commands rmail
# récupérez le mot de passe et le nom d'utilisateur du fichier call :
call-login *
call-password *
# ne changez pas la ligne suivante :
chat ogin: \L assword: \P
#
config
# Le fichier config définit les chemins des autres fichiers et répertoires ainsi
# que le nom de votre système.
# Le nom de votre système :
nodename oblelix
# nombre maximal de requêtes externes à exécuter en parallèle :
max-uuxqts 2
# Le répertoire de spool d'UUCP
spool /var/spool/uucp
# Les autres champs sont généralement remplis par défaut :
# pubdir /var/spool/uucppublic
# logfile /var/log/uucp/Log
# statfile /var/log/uucp/Stats
# debugfile /var/log/uucp/Debug
# callfile /etc/uucp/call
# ....
Après avoir enregistré les fichiers de config, lancez la commande "uuchk". Elle
devrait se trouver dans sbin: /usr/sbin/uuchk
La sortie est un résumé de votre configuration y compris certaines valeurs par
défaut non définies. Le nom d'hôte du serveur de votre FAI,
uucp.mon-gentil-fai.com dans notre exemple, apparaît en tant que "numéro de
téléphone" :
Phone number uucp.mon-gentil-fai.com
C'est étrange mais correct pour UUCP par TCP/IP.
Vérifiez particulièrement que les répertoires, les fichiers de log, etc, sont au bon
endroit et appartiennent bien à l'utilisateur uucp.
Maintenant, vous devriez pouvoir recevoir du courrier par UUCP, mais votre
gestionnaire de courrier (MTA=mail transport agent) doit encore découvrir qu'il
est autorisé à gérer le courrier du domaine enregistré par votre FAI. Dans notre
cas ce domaine est miller.mon-gentil-fai.com. La configuration de ce domaine
dépend de votre MTA. Dans Sendmail, vous devez écrire miller.mon-gentil-fai.com
sur une seule ligne du fichier /etc/sendmail.cw :
# sendmail.cw définit les domaines pour lesquels nous gérons le courrier
miller.mon-gentil-fai.com
Nous pouvons maintenant tester la réception de courrier par UUCP. L'envoi ne
fonctionne pas encore puisque sendmail n'est toujours pas configuré.
Lancez
/usr/sbin/uucico -x 11 -S mfic
mfic est le nom du système UUCP de mon-gentil-fai.com
Ouvrez une seconde fenêtre de terminal et observez le résultat en tapant
"tail -f /var/log/uucp/Debug".
Le "-x 11" indique le niveau de débogage le plus élevé et ne doit être utilisé
que pour les tests. Vous allez voir tous les détails du protocole UUCP. Vérifiez
qu'il n'y ait pas d'erreurs. Si vous obtenez quelque chose du style :
uucico mfic - (2001-06-22 20:20:57.73 1020) Call complete (31 seconds 42835
bytes 1381 bps)
alors, tout fonctionne parfaitement. Félicitations!
Lancez la commande "uulog". Elle affiche un résumé condensé des courriers reçus
par UUCP/rmail.
Configuration de sendmail pour l'envoi par UUCP
Sendmail utilise une méthode de configuration basée sur le préprocesseur m4.
D'autres systèmes tels que postfix possèdent des fichiers de configuration plus
lisibles pouvant être édités directement. Comme j'utilise sendmail, c'est de mon
expérience avec lui dont je vais parler. N'hésitez pas à ajouter des
informations concernant les autres MTA sur la page de discussion accessible
ci-dessous. J'ai vu que postfix réclamait seulement l'édition de
transport/transport.db et qu'il fallait une définition pour uucp dans le fichier
master.cf et c'est tout, mais je n'ai pas une grande expérience de postfix.
Le système de configuration m4 peut ne pas faire partie du même paquetage que
sendmail. Vérifiez les CD de votre distribution au cas où vous devriez installer
un paquetage nommé par exemple "sendmail-cf".
Créez un nouveau fichier sendmail-uucp.mc dans le répertoire cf de sendmail
(probablement /usr/lib/sendmail-cf/cf):
#divert(-1)
# `This is config sends outgoing mail via uucp using /usr/bin/uux
#
# to generate a sendmail.cf out of this .mc file use the sendmail sources
# and run m4 thisfile.mc > sendmail.cf.'
divert(0)
include(`../m4/cf.m4')
VERSIONID(`UUCP, Jan 28 2001, without DNS')
undefine(`BITNET_RELAY')
undefine(`DECNET_RELAY')
undefine(`UUCP_RELAY')
OSTYPE(`linux')
MASQUERADE_AS(miller.mon-gentil-fai.com)
MASQUERADE_DOMAIN(localdomain)
MASQUERADE_DOMAIN(localhost)
# ` add any local hostnames here:'
MASQUERADE_DOMAIN(philosophus)
# ` needed if you use an internal domain that does not exist: '
FEATURE(`masquerade_envelope')
FEATURE(always_add_domain)
# ` read allowed domains from cw file: '
FEATURE(use_cw_file)
FEATURE(local_procmail)
# `important for uucp:'
FEATURE(accept_unresolvable_domains)dnl
# `the /etc/passwd entry: mail:*:8:12:mail:/var/spool/mail:'
define(`confDEF_USER_ID',``8:12'')
define(`confSAFE_QUEUE',`True')
define(`confDELIVERY_MODE',`background')dnl
# 'replace mfic by the UUCP system name of your ISP:'
define(`SMART_HOST',uucp-uudom:mfic)dnl
define(`confSERVICE_SWITCH_FILE',/etc/service.switch)dnl
define(`confHOSTS_FILE',/etc/hosts)dnl
define(`UUCP_MAILER_MAX',1024000)dnl
MAILER(procmail)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)dnl
Adaptez le fichier à votre cas et compilez-le par la commande :
m4 sendmail-uucp.mc > sendmail.cf
Copiez le fichier sendmail.cf dans /etc et redémarrez sendmail par
/etc/rc.d/init.d/sendmail restart
Le chemin ci-dessus correspond au script de lancement de redhat/mandrake. Il est
différent pour Suse, Debian etc...
Dans le fichier /etc/service.switch ajoutez :
hosts files
aliases files
Envoyez maintenant un courrier à quelqu'un. Vous pouvez faire ça avec votre
logiciel de courrier préféré ou à partir de la ligne de commande comme ceci :
echo "Salut john, ce n'est qu'un test..." | Mail john@somewhere.org
Ce courrier ne sera pas envoyé directement. Il sera mis en attente par le
système UUCP. Vous le verrez si vous tapez :
uustat -a
uustat affichera :
mfic.CRJjd4uAAAPs mfic joe 07-24 20:19 Executing rmail john@somewhere.org
(sending 50 bytes)
Ensuite, lancez
/usr/sbin/uucico -x 11 -S mfic
mfic est toujours le nom du système UUCP de mon-gentil-fai.com
Vous pouvez maintenant regarder le fichier Debug et voir comment le courrier est
envoyé.
Tout automatique
Créez le script /usr/bin/uumail suivant :
#!/bin/sh
hostn=uucp.mon-gentil-fai.com
# vérifiez d'abord que le serveur du FAI est accessible.
# Ceci réclame une version récente de ping dans laquelle on peut définir un
# délai :
if ping -w 3 -qn -c 1 $hostn > /dev/null ; then
/usr/sbin/uucico -S mfic
#sleep 1
#uulog -s mfic -5
else
echo "ERROR: $hostn is down"
exit 1
fi
Rendez le script exécutable par "chmod 755 /usr/bin/uumail"
et lancez-le manuellement pour voir s'il fonctionne.
Pour automatiser l'envoi et la réception à chaque connexion, ajoutez la ligne
/usr/bin/uumail à /etc/ppp/ip-up.
Voilà, ça y est. Votre système de courrier est opérationnel.
Choses à faire
Le système de gestion de courrier est configuré. Tous les utilisateurs
(/etc/passwd, commande adduser) peuvent envoyer et recevoir du courrier
automatiquement. Ce courrier est stocké dans les répertoires de "spool"
traditionnels dans /var/spool/mail et peuvent être lus localement. Si vous
voulez que ces utilisateurs soient capables de gérer leur courrier par les
protocoles pop3 ou imap, vous devez alors installer un paquetage nommé "imap"
fournissant les démons /usr/sbin/imapd and /usr/sbin/ipop3d.
Dans /etc/inetd.conf vous les démarrez en supprimant les commentaires des lignes
:
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait root /usr/sbin/tcpd imapd
Si vous utilisez xinetd, vous devez créer un fichier de configuration pour ce
service (voir LinuxFocus
article 175 à ce sujet).
N'oubliez pas d'autoriser l'accès au fichier /etc/hosts.allow si les
utilisateurs gérent leur courrier sur un autre hôte du réseau local :
# hosts.allow , tcp wrapper config file
# tout le monde peut accéder à imap :
imapd: ALL
# 2 hôtes sont autorisés pour pop3 :
ipop3d: 10.0.0.1, 10.0.0.2, 127.0.0.1
Trouver un FAI
Trouver un Fournisseur d'Accès Internet compétent et fiable pour UUCP n'est pas
toujours facile, puisque la plupart des FAI s'adressent à Mr.
PasdeproblèmeJ'aiWindows.
Je connais 2 bons FAI en Allemagne qui proposent le courrier par UUCP :
Les deux sont des organismes et vous y adhérez pour bénéficier du service.
Les tarifs se situent entre 11 et 20 Euro par mois.
A LinuxFocus.org, nous pouvons aussi proposer le courrier par UUCP à un nombre
limité d'adeptes de Linux, si vous nous rejoignez et nous aidez financièrement
et/ou si vous travaillez régulièrement avec nous. Contactez-moi si vous êtes
intéressés.
Un bon moyen de trouver un FAI adequat (NDT : comme Sheila !) dans votre pays
consiste à faire une recherche par Google ou tout autre moteur. Plus le FAI sera
"petit", plus il offrira de services aux clients, dont probablement le courrier
électronique par UUCP.
Références
- Le UUCP HOWTO
publié par linuxdoc.org
- La documentation de Tailer UUCP
(plus de 300K de html)