compilation de Sendmail

Il y a deux étapes pour compiler Sendmail.

D'abord, vous devrez construire un fichier de configuration spécifique à votre environnement et à vos besoins. Cette étape est très importante et vous devez y apporter un soin particulier. En second lieu, vous compilerez et installerez le binaire.

Ci-dessous les points importants pour configurer proprement votre programme:

 

A Introduction

Téléchargez sendmail sur le site ftp://ftp.sendmail.org/ucb/sendmail

cd /usr/local

gzip -dc sendmail-8.11.3.tar.gz | tar xvf -

ln sendmail-8.11.3 sendmail

Maintenant vous allez créer un fichier nommé site.config.m4 spécifique à votre environnement.

B Créer un fichier de configuration de site

#cd sendmail/devtools/Site

#vi site.config.m4

Exemple pour la prise en charge de LDAP (OpenLDAP utilisé) et SASL pour l'authentification (à partir des versions 8.10). OpenLDAP et Cyrus-SASL ont été installés avant cette compilation.

mail# cat site.config.m4

APPENDDEF(`confMAPDEF',`-DLDAPMAP')

APPENDDEF(`confENVDEF',`-DSASL')

APPENDDEF(`conf_sendmail_LIBS',`-lsasl -lldap -llber')

APPENDDEF(`confINCDIRS',`-I/usr/local/include')

APPENDDEF(`confLIBDIRS',`-L/usr/local/lib -L/usr/lib/sasl' )

APPENDEF(`confMINDIR',`/usr/lib')

APPENDEF(`confSBINDIR',`/usr/lib')

Je vous conseille de lire le README dans le répertoire contenant les sources (/usr/local/sendmail/sendmail) pour avoir la liste des options disponibles pour la compilation.

C Personnaliser le fichier makefile

Modifier votre makefile (/dans /usr/local/sendmail/sendmail ):

Les composants mailstats, makemap and praliases sont requis. En revanche mail.local, rmail and smrsh ne font pas partie des standards de l'installation de Sendmail. Editer le Makefile et supprimer les commentaires suivants (insérer un # en début des lignes)

SUBDIRS= libsmutil libsmdb sendmail mail.local mailstats makemap

\ praliases rmail smrsh vacation

Et ajouter la ligne:

SUBDIRS= libsmutil libsmdb sendmail mailstats makemap praliases

Pour en savoir plus sur ces fonctions lisez le README dans /usr/local/sendmail.

 

D Compilation

Vous êtes maintenant prêt pour compiler sendmail:

cd /usr/local/sendmail/sendmail

sh ./Build (j'ai parfois eu des erreurs de compilation en utilisant d'autres shells..)

Vous générerez ainsi un répertoire (ex: /usr/local/sendmail/obj.FreeBSD.4.2-RELEASE.i386) qui contient l'exécutable. Vous n'avez plus qu'à l'installer:

./Build install

Ceci devrait installer le binaire sendmail dans / usr/sbin et de créer les liens /usr/bin/newaliases et /usr/bin/mailq vers usr/sbin/sendmail.

L'option -f (ex: /tmp) indique à Build de créer dans le répertoire /tmp le répertoire obj.*

sh ./Build -f /tmp

 

E Vérification post-compilation :

zeus#/usr/lib/sendmail -bt -d0.1

Version 8.11.3 Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETUNIX NEWDB NIS QUEUE SASL SCANF SMTP USERDB XDEBUG

============ SYSTEM IDENTITY (after readcf) ============

(short domain name) $w = mail

(canonical domain name) $j = mail.decaservices.com

(subdomain name) $m = mail.decaservices.com

(node name) $k = mail

========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter

 

 

F Les fichiers de Sendmail

Bases de données

Sendmail supporte deux formats différents de bases de données pour les fichiers locaux (alias, mailertable,..). Au moins un de ces derniers doit être défini.

NDBM le nouveau format DBM , disponible sur presque tous les systèmes. Il permet des choses complexes comme l'ouverture et la fermeture de plusieurs bases de données.

NEWDB le module de Base de données de Berkeley. Si vous l'avez, utilisez-le. (téléchargeable sur http://www.sleepycat.org/download.html). Il permet de longs enregistrements, des ouvertures multiples des bases de données, un cache en mémoire. Vous pouvez définir ceci en même temps que NDBM.

Si ni l'un ni l'autre de ces derniers n'est définie, Sendmail lit le fichier de nom d'emprunt dans la mémoire sur chaque invocation. Ceci peut être lent et devrait être évité.

Il y a également plusieurs méthodes pour l'accès aux bases de données à distance: Le Network Information Services

NIS (autrefois Yellow Pages).

NISPLUS le service de Sun

NIS+ (NISPLUS).

NETINFO le service NetInfo deNeXT.

HESIOD le service Hesiod (d'Athena).

D'autres indicateurs de compilation sont placés dans conf.h et devraient être prédéfinis pour vous à moins que vous souhiatiez créer un nouvel environnement.

 

Fichiers De Configuration

Sendmail ne peut pas fonctionner sans fichier de configuration. La configuration définit les mécanismes de distribution du courrier du site, comment y accéder, comment expédier l'email aux systèmes de courrier distants, et un certain nombre de paramètres. La distribution Sendmail inclut un module de configuration basé sur la commande macro m4 qui masque la complexité du fichier de configuration.

 

Détails des fichiers d'installation

Cette section décrit les programmes utilisés pour le fonctionnement de Sendmail.

 

/ usr/sbin/sendmail

Le binaire pour Sendmail est dans localisé / usr/sbin et devrait être en setuid root. Pour, des raisons de sécurité /, / usr, et / usr/sbin devrait être la proriété de root en mode 755

 

/ etc/mail/sendmail.cf

C'est le fichier de configuration lu par Sendmail. Le fichier de configuration est normalement créé en utilisant la macro m4. Si vous avez une configuration de système particulièrement peu commune vous pouvez devoir créer une version spéciale.

 

/ usr/bin/newaliases

La commande de newaliases devrait juste être un lien vers Sendmail:

rm - f / usr/bin/newaliases

ln - s / usr/sbin/sendmail / usr/bin/newaliases

Cette commande est utilisée pour regénérer le fichier d'alias, il est possible de regénérer ce fichier d'alias avec le programme Sendmail suivi des options -bi

 

/ usr/bin/hoststat

La commande hoststat devrait juste être un lien vers Sendmail similaire à la commande newaliases. Cette commande indique le statut de la dernière transaction de courrier avec les centres serveurs distants.

/ usr/bin/purgestat Cette commande est également un lien vers Sendmail. Elle vide toutes les information stockées dans HostStatusDirectory.

 

/ var/spool/mqueue

Le répertoire / var/spool/mqueue devrait être créé pour définir la file d'attente des courriers. Ce répertoire doit être en mode 700 le propriétaire root.

La voie d'accès réelle de ce répertoire est définie par l'option Q du fichier de configuration sendmail.cf. Avec les versions récentes de Sendmail, il est possible d'utiliser de multiples files d'attentes en précisant par un astérisque la fin du répertoire. Par exemple, / var/spool/mqueue/q* utilisera tous les répertoires ou liens symboliques pour les fichiers commençant par le ` q ' dans /var/spool/mqueue comme file d'attente. Cette technique permet d'isoler les fichiers df des fichiers qf dans deux files d'attentes distinctes.

 

/etc/mail/aliases

A partir de ce fichier on génère les bases de données d'alias: /etc/mail/aliases.dir et /etc/mail/aliases.pag (avec dbm) ou /etc/mail/aliases.db (avec hash). Le chemin est défini par l'option AliasFile du fichier sendmail.cf.

 

/etc/rc ou /etc/init.d/sendmail

Sendmail doit être redémarrer automatiquement lorsque le système reboote. Ceci est réalisé par un script pour démarrer Sendmail en mode d'écoute des connexions SMTP (pour recevoir et envoyer des mail vers un hôte distant) et pour purger régulièrement la file d'attente. Ajouter éventuellement le script suivant si celui-çi n'existe pas sur votre système:

if [ -f /usr/sbin/sendmail -a -f /etc/mail/sendmail.cf ];

then cd /var/spool/mqueue;

rm -f [lnx]f* Suppression des fichiers vérouillés

/usr/sbin/sendmail -bd -q30m & echo -n ' sendmail' >/dev/console démarrage de Sendmail en mode écoute (par défaut port 25) et purge de la file d'attente toutes les 30 minutes

fi

 

/etc/mail/helpfile

Fichier d'aide utilisé par la commande HELP en SMTP. Il devrait être copié:

cp sendmail/helpfile /etc/mail/helpfile

Le chemin est défini dans l'option HelpFile du fichier de configuration sendmail.cf.

 

/etc/mail/statistics

Des statistiques sur le trafic SMTP sont stockées dans: /etc/mail/statistics: Le chemin du fichier est défini par l'option S du fichier de configuration sendmail.cf.

 

/usr/bin/mailq

La commande mailq simule la commande sendmail -bp et affiche les mails en file d'attente.