UCL/ELEC-LaTeX

 

sendmail

Introduction

Le programme sendmail est l'équivalent électronique des P.T.T. Alors que les P.T.T. envoient le courrier papier à bon port, le programme sendmail transporte les enveloppes électroniques.

La plupart des vendeurs fournissent leur propre version de sendmail, adaptée ou non à leurs besoins. En général, ces versions présentent des trous dans la sécurité et ne sont donc pas recommandées par le CERT (Computing Emergency Response Team).

Cette note décrit uniquement la version V8 de sendmail

Les sources sont disponibles par "ftp anonyme" à l'URL ftp://ftp.sendmail.org/pub/sendmail

Installation Sendmail

Je suppose que vous avez obtenu les sources et que vous êtes dans le répertoire
.../sendmail-8.x.y/
où 8.x.y représente la version du programme sendmail.

Le plus simple est de lancer la commande

Build

Cette commande va créer un répertoire obj.XXX
où XXX représente votre Système Opératoire et votre machine (par exemple obj.SunOS.5.7.sun4) et lancer la compilation des sources.

Pour une configuration spécifique, créer le fichier .../sendmail-8.x.y/devtools/Site/site.config.m4 (exemple)

Après la création du programme sendmail, vous pouvez tester celui-ci en utilisant l'option -bt :

./sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>^D

Si tout se déroule correctement, vous pouvez installer le programme au bon endroit. Pour cela, utiliser la commande make install. Les pages manuels ne sont pas installées par cette commande; si vous désirez les mettre à disposition des utilisateurs, il faudra le faire manuellement

Configuration

Cette étape consiste essentiellement à créer le fichier sendmail.cf. Le fichier de configuration présenté ici est fortement lié à la version V8 du sendmail, une note plus générale est disponible au SRI (Configuration UCL du sendmail.cf)

Exemple de fichier sendmail.cf (avec commentaires)

Remarques

L'utilisation des tables (type hash, btree ou text) permet de gérer au mieux les correspondances entre adresse de courrier électronique et boîte aux lettres sans avoir à stopper et relancer le programme sendmail.

Le fichier de configuration sendmail.cf présenté ci-dessus correspond à une machine serveur. Les machines clientes qui se contentent de rediriger le courrier électronique vers un relai peuvent utiliser le fichier de configuration nullclient.cf

L'ensemble de règles S1, cité dans la note Configuration UCL du sendmail.cf, peut être supprimé à la condition que l'adresse de l'expéditeur se résume au nom de login. Dans ce cas, il y aura appel à la User Database et l'adresse de courrier électronique sera fixée correctement.

Utilisation en ELEC

Suite à plusieurs problèmes rencontrés dans la chaîne “sendmail - spamass-milter-spamd”, nous n'utilisons plus la technique du filtre milter pour détecter les messages spammés. La détection est effectuée lors du passage dans MailScanner. Le programme sendmail (daemon) accepte les connexions ou les refuse suivant la configuration du fichier “/etc/mail/access” et les stocke ensuite dans une queue (/var/spool/mqscan); il est lancé avec les options :

-bd -C/etc/mail/sendmail.scan.cf

Le programme MailScanner scanne ce répertoire, passe les messages qui s'y trouvent au détecteur de virus (McAfee) ansi qu'au détecteur de spam (SpamAssassin) puis les envoie à leur destinataire. Un second daemon sendmail vide régulièrement la queue générée par MailScanner; il est lancé avec l'option -q45m et utilise le sendmail.cf nettoyé des filtres (spam) et des règles d'authentification (sasl).

Les messages qui ont été considérés comme SPAM sont marqués par {SPAM?}, ajouté au début de l'en—tête Subject:, et envoyés tels quels au destinataire.
De la même manière, les messages vérolés sont marqués par {VIRUS?}, la partie vérolé est effacée et le message contenant un avertissement est envoyé au destinataire.

Pour éviter d'encombrer sa boîte aux lettres avec de tels messages, l'utilisateur final peut utiliser les filtres que son logiciel de messagerie offre. On peut aussi utiliser procmail (Unix) pour séparer ces messages du courrier électronique “convenable”.

Installation SASL

Cyrus-sasl permet l'authentification de l'expéditeur d'un courrier électronique. Via ce mécanisme, le serveur de messagerie peut donc accepter de relayer du courrier même si celui-ci est émis à partir d'un poste de travail qui n'est pas dans le même domaine que le serveur.

Les sources (version 2.1.10) sont disponibles sur le site <ftp://ftp.andrew.cmu.edu/pub/cyrus-mail>
La librairie générée doit être dynamique et faire appel à des mécanismes d'authentification qui pourront répondre aux différents clients de messagerie. La création du “Makefile” se fait via le script “configure”. Celui-ci peut-être lancé avec les options suivantes :

  • --enable-shared : les librairies doivent être dynamiques
  • --enable-cram : pour le client Eudora
  • --enable-plain : pour le client Netscape Messenger
  • --enable-login : pour le client Outlook
  • --with-dblib=berkeley : mécanisme de “hashage” (autre possibilité : gdbm)
  • --with-bdb-libdir=/usr/local/db4/lib : où trouver la librairie libdb
  • --with-bdb-incdir=/usr/local/db4/include : où trouver les fcihiers “header”
  • --with-dbpath=/opt/etc/sasldb2 : où stocker les mots de passe
  • --prefix=/usr/local/sasl2 : où stocker le soft
  • --with-plugindir=/usr/local/sasl2/lib : où stocker la librairie et les mécanismes d'authentification
    Ceux-ci seront stockés dans le répertoire “/usr/local/sasl2/lib/sasl2” et ce dernier contiendra le fichier Sendmail.conf spécifiant la méthode à utiliser. Nous avons choisi de stocker les mots de passe des utilisateurs dans le fichier “/opt/etc/sasldb2”. Cela permet d'éventuellement choisir un mot de passe différent de celui du “login”.
    Le fichier Sendmail.conf contient les lignes :
    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    		 

Glossaire

MIME
(Multipurpose Internet Mail Extensions) extensions adoptées pour permettre, entre autre, l'utilisation de caractères accentués dans les corps des messages et l'envoi d'annexes (voir RFC1521)

MTA
(Mail Transport Agent) programme utilisé par la machine pour transporter et/ou délivrer le courrier électronique de ses utilisateurs.

MUA
(Mail User Agent) programme utilisé par le commun des mortels pour lire, composer, répondre, classer son courrier électronique.

RFC
(Requests For Comments) documents édités par l'IETF (Internet Engineering Task Force) décrivant les standards, normes, protocoles , ... utilisés sur Internet.
Quelques RFC traitant du sujet :
  • RFC819 The Domain Naming Convention for Internet User Applications.
  • RFC821 Simple Mail Transfer Protocol
  • RFC822 Standard for ARPA Internet Text Messages
  • RFC976 UUCP Mail Interchange Format Standard.
  • RFC1123 Requirements for Internet Hosts -- Application and Support.
  • RFC1341 MIME (Multipurpose Internet Mail Extensions).
  • RFC1521 MIME Part One: Message Bodies.
  • RFC1522 MIME Part Two: Message Header Extensions for Non-ASCII Text.

SASL
  • RFC 2554 SMTP Service Extension for Authentication
  • RFC 2195 IMAP/POP AUTHorize Extension for Simple Challenge/Response (CRAM-MD5)
  • RFC 2595 Using TLS with IMAP, POP3 and ACAP (PLAIN)
  • RFC 2245 Anonymous SASL Mechanism

SMTP
(Simple Mail Transfert Protocol) protocole d'échange de courrier électronique (voir RFC821)

 

[UCL] [FSA] [ELEC] [Pointeurs utiles]

Dernière mise à jour :  14-01-2003
Responsable :  Pascal Maes -  Contact :  Pascal.Maes@elec.ucl.ac.be