Sendmail+IDA (attention, cette section n'est pas à jour)Pour les gros sites, sendmail est un choix valable, grâce à son
« incroyable facilité d'utilisation » (sentiment très relatif quand on connaît
qmail), mais vous devrez choisir entre sendmail+IDA et
sendmail 8.x : Si vous utilisez un vieux noyau (1.0) : sendmail+IDA. Si vous utilisez un noyau un peu moins vieux (1.2) : sendmail+IDA et la modification du code source Ceux qui utilisent un noyau récent (2.0) choisirons sendmail 8.x .Attention, les linuxiens débutants et les personnes préoccupées par la
sécurité et la simplicité de configuration devraient plutôt essayer smail ou
qmail, qui sont plus faciles à utiliser et plus sécurisés.Installation à partir des sources Si votre distribution n'est pas fournie avec un paquetage sendmail
prêt-à-l'emploi (.rpm pour RedHat, Caldera et SuSE, .deb pour Debian)
téléchargez les sources et lancez :cd / ; tar -zxvf sendmail5.67b+IDA1.5.tgzPlacez vous dans le répertoire /usr/local/lib/mail/CF et concaténez les fichiers sample.m4 et local.m4 dans
votre_nom_de_machine.m4.Éditez hostname, aliases et smarthost et placez-y
les informations
correspondant à votre site. Le fichier par défaut est prévu pour un site
utilisant uniquement UUCP (ce qui n'est plus le cas des versions 8.x), qui a
des entêtes de domaine et qui dialogue avec une machine « de relais postal »
(smarthost). Ensuite lancez make votre_nom_de_machine.cf et copiez le fichier
créé dans /etc/sendmail.cf.Si vous utilisez seulement UUCP, vous n'avez besoin de créer aucune des
tables mentionnées dans le fichier README.linux. Vous n'aurez qu'à utiliser
touch sur les fichiers pour que le Makefile marche. Éditez ensuite le
fichier .m4, lancez make sendmail.cf et testez-le.Si votre site utilise uniquement UUCP et que vous dialoguez avec
des sites autres que votre machine-relais, vous devrez ajouter
des entrées uupcpxtable pour chacun d'entre eux (sinon le courrier qui leur
sera envoyé passera par la machine-relais) et lancer dbm sur la nouvelle
uucpxtable.Si vous utilisez la distribution binaire de Rich Braum de la version 5.67a,
vous devrez lancer /usr/lib/sendmail -bz pour que les changements soient
pris en compte.Vous devriez également mettre à jour votre version vers au moins la 5.67b
puisque qu'il y a un méchant trou de sécurité dans la version 5.67a et les
précédentes. Un autre point sympathique est que si vous activez l'option
mail.debug et que vous utilisez syslogd, la liste de vos courriers entrants et
sortants sera enregistrée. Voyez le fichier /etc/syslogd.conf/ pour
plus de détails. Les sources de sendmail+IDA se trouve sur ;
elles ne nécessitent aucun correctif pour
tourner sous Linux si vous utilisez quelque-chose comme un noyau 1.00.Si vous utilisez un noyau dont la version est supérieur à la 1.1.50,
vous allez devoir vous amuser à enlever tous les correctifs spécifiques
à Linux qui se trouvent dans les sources officielles. (Je vous
avais prévenu que ce sendmail était seulement pour les vieux noyaux :-)Il est extrêmement facile de repérer les endroits à corriger : lancez
make et quand il vous hurle dessus, allez à la ligne du fichier
qu'il vous indique et commentez le code spécifique à Linux qui s'y trouve.Si vous avez opté pour sendmail+IDA, je vous recommande fortement d'utiliser la
version sendmail5.67b+IDA1.5, car tous les correctifs spécifiques à Linux sont
maintenant dans les sources officielles et plusieurs trous de sécurité qui
étaient dans les anciennes versions que vous auriez récupérées ou compilées
avant le 1er décembre 1993 ont été réparés.Maintenant que l'on en est au noyau 2.0 (NDT : et même au 2.4 au moment
où j'écris ces lignes) vous devriez utiliser sendmail 8.x à la place de
sendmail+IDA, mais je vous ai déjà dit que vous devriez choisir sendmail
8.x :-) Le fichier sendmail.m4 Sendmail+IDA se configure par l'intermédiaire du fichier sendmail.m4 et non
directement via le fichier sendmail.cf. Ce qui rend cette façon de travailler
intéressante est que grâce à elle, il est simple de mettre en place des
configurations qui seraient extrêmement difficiles (voire totalement impossibles)
à réaliser avec smail ou avec le sendmail traditionnel.Le fichier sendmail.m4 qui correspond à la configuration smail que nous
avons décrite au-dessus ressemble à ceci : dnl #------------------ EXEMPLE DE FICHIER SENDMAIL.M4 ------------------
dnl #
dnl # La chaîne « dnl » est utilisée comme en-tête d'une ligne de commentaires.
dnl # (Enfin pas exactement, mais utilisez-la pour cela si vous en avez
dnl # besoin :-)
dnl # En général, il est préférable d'éviter de remplacer les chemins par
dnl # défaut dans LIBDIR
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # dossier contenant tous les
dnl # fichiers de support~;
define(LOCAL_MAILER_DEF, mailers.linux)dnl # outil de distribution locale~;
define(POSTMASTERBOUNCE)dnl # les messages retournés sont
dnl # envoyés au «~receveur principal~»
dnl # (postmaster)~;
define(PSEUDODOMAINS, BITNET UUCP)dnl # ne pas essayer le DNS sur ceux-ci.
dnl #
dnl #-------------------------------------------------------------
dnl #
dnl # noms par lesquels nous sommes connus
define(PSEUDONYMS, machine.sousdomaine.domaine machine.UUCP)
dnl #
dnl # notre nom de machine
define(HOSTNAME, machine.sousdomaine.domaine)
dnl #
dnl # notre nom UUCP
define(UUCPNAME, machine)dnl
dnl #
dnl #-------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl # nos voisins UUCP~;
define(BANGIMPLIESUUCP)dnl # s'assure que le courrier
define(BANGONLYUUCP)dnl # UUCP est correctement traité~;
define(RELAY_HOST, mon_voisin_UUCP)dnl # notre machine-relais~;
define(RELAY_MAILER, UUCP-A)dnl # on atteind notre machine-
dnl # relais par UUCP
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # les diffentes tables dbm
dnl #
define(ALIASES, LIBDIR/aliases)dnl # les alias système
define(DOMAINTABLE, LIBDIR/domaintable)dnl # machines du domaine
define(PATHTABLE, LIBDIR/pathtable)dnl # base de données des chemins
define(GENERICFROM, LIBDIR/generics)dnl # adresses sources génériques
define(MAILERTABLE, LIBDIR/mailertable)dnl # agents de courrier par machine
dnl # ou par domaine
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemin des machines que l'on
dnl # alimente
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # chemins rapides
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # inclut le «~véritable~» code qui fait tout marcher
dnl # (fournit avec le code source)
dnl #
include(Sendmail.mc)dnl # entrée nécessaire !
dnl #
dnl #------------ FIN DE L'EXEMPLE DE FICHIER SENDMAIL.M4 ------- -------
Choisir un logiciel de distribution locale du courrierÀ la différence de la plupart des distributions Unix, Linux n'est pas fourni avec
un agent par défaut de distribution du courrier local.La distribution Slackware est l'exception qui confirme la règle.
Du moins, cette fonctionnalité est proposé par le script d'installation
facile-à-utiliser-mais-de-longue-haleine. C'est procmail qui est utilisé. Actuellement, deliver ou procmail sont en général
installés, avec une
configuration par défaut de sendmail adaptée à la distribution du courrier local.
De sorte qu'aucune difficulté additionnelle ne vient pimenter une
configuration déjà très complexe. Je recommande d'utiliser deliver
ou procmail,
qui sont très faciles à trouver, et qui peuvent être proposés sous la forme
de paquetages optionnels dans quelques distributions Linux.Dans ce but, vous aurez besoin de définir LOCAL_MAILER_DEF
dans le fichier
sendmail.m4 qui pointe vers un fichier de ce genre : # -- /usr/local/lib/mail/mailers.linux --
# (agents de distribution locaux pour Linux)
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $uIl y aussi une option par défaut d'utilisation de deliver
incluse dans le fichier Sendmail.mc qui est importé par le fichier
sendmail.cf. Pour vous en servir, n'utilisez pas le fichier
mailers.linux mais incluez ce qui suit dans votre fichier
sendmail.m4 : dnl --- (dans sendmail.m4) ---
define(LOCAL_MAILER_DEF, DELIVER)dnl # agent de distribution localeMalheureusement, Sendmail.mc considère que deliver
est installé dans
/bin ce qui n'est pas le cas sur une Slackware1.1.1 (il est installé
dans /usr/bin). Dans ce cas, vous aurez besoin soit de créer un lien,
soit de reconstruire deliver à partir des sources pour
qu'il réside dans
/bin. À noter que procmail est généralement meilleur que
deliver, par exemple pour le filtrage du courrier. Tables dbm de sendmail+IDA La mise en place de comportements spéciaux vers certains sites et domaines est
réalisée via un certain nombre de tables dbm plutôt que par une modification
directe du fichier sendmail.cf.Consultez le numéro de juillet 1994 du Linux Journal (si vous pouvez
encore le trouver :-) et référez-vous aux docs qui se trouvent dans
les sources, ou au chapitre sendmail de la nouvelle version de
Networking Administration Guide du Linux Documentation
Project qui sera disponible incessamment sous peu.mailertable : définit un comportement spécial pour les machines et les
domaines distants. uucpxtable : force la distribution de courrier via UUCP pour des machines qui
sont au format DNS.pathtable : définit le bang-paths UUCP utilisé vers les machines ou
domaines distants.uucprelays : court-circuite le chemin pathalias vers des machines
distantes connues. genericfrom : convertit les adresses internes en adresses génériques
visibles par le monde extérieur.xaliases : convertit les adresses génériques vers ou à partir des
adresses internes.decnetxtable : convertit les adresses RFC-822 en adresses DECnet. Quelles sont les entrées réellement nécessaires ? Quand il n'utilise aucune table dbm optionnelle, sendmail distribue
le courrier via le RELAY_HOST (machine de relais) et le RELAY_MAILER
(agent de relais) défini dans le fichier sendmail.m4 utilisé pour
générer sendmail.cf. Il est facile de redéfinir ce comportement via
des entées dans domaintable ou uucpxtable.Un site générique qui est sur Internet et utilise DNS, ou qui
n'utilise qu'UUCP et fait suivre le courrier via UUCP par une machine de relais
postal, n'a probablement besoin d'aucune entrées dans ces tables.Virtuellement, tous les systèmes devraient définir les macrosi
DEFAULT_HOST
et PSEUDODYMS , qui définissent le nom canonique du site
et les alias par lesquels il est connu.Si vous n'avez qu'une machine de relais et un agent relais de courrier
vous n'avez pas besoin de définir ces macros puisque cela marche
automagiquement. Les machines UUCP nécessiteront probablement de définir
UUCPNAME comme leur nom officiel UUCP.Vous devrez probablement également définir RELAY_MAILER et
RELAY_HOST qui active le routage via une machine de relais postal.Le type de transport du courrier utilisé doit être défini dans
RELAY_MAILER. Il devrait être en général UUCP-A pour les
sites UUCP
sites. Si votre site n'utilise que SMTP et utilise un DNS, vous devrez changer
RELAY_MAILER.Si vous utilisez SLIP, la manière la plus simple de configurer votre site est
de faire suivre tout votre courrier sortant vers votre fournisseur d'accès à
Internet. Pour cela, définissez les macros ISOLATED_DOMAINS et
VALIDATION_DOMAINS pour qu'elles correspondent à votre nom de domaine.
Définissez également RELAY_HOST qui doit contenir le nom
de la machine de
votre fournisseur d'accès à Internet, et RELAY_MAILER qui doit contenir
TCP. Bien sûr, vous devez obtenir la permission avant d'utiliser une
machine en tant que machine de relais principale.