3.

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.

3.1.

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 :-)

3.2.

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 ------- -------

3.3.

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.

3.4.

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.

3.5.

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.