Exim-4.96

Introduction à Exim

Le paquet Exim contient un Mail Transport Agent écrit par l'université de Cambridge, publié sous la GNU Public License.

This package is known to build and work properly using an LFS 11.3 platform.

Informations sur le paquet

Téléchargements supplémentaires

  • On peut télécharger des formats supplémentaires de la documentation (docs basés sur le texte sont fournis dans les sources) en suivant les liens décrits dans https://exim.org/docs.html.

Dépendances de Exim

Requises

libnsl-2.0.0 et PCRE-8.45

Facultatives

TDB (alternative à GDBM, construit dans LFS), Cyrus SASL-2.1.28, libidn-1.41, Linux-PAM-1.5.2, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, GnuTLS-3.8.0, PostgreSQL-15.2, SQLite-3.40.1, un environnement graphique, Heimdal GSSAPI et OpenDMARC

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/exim

Installation de Exim

Avant de construire Exim, en tant qu'utilisateur root, vous devriez créer le groupe et l'utilisateur exim qui exécuteront le démon exim :

groupadd -g 31 exim &&
useradd -d /dev/null -c "Exim Daemon" -g exim -s /bin/false -u 31 exim

Configurez Exim avec les commandes suivantes :

sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,'    \
    -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \
    -e 's,^EXIM_USER.*$,EXIM_USER=exim,'           \
    -e '/# SUPPORT_TLS=yes/s,^#,,'                   \
    -e '/# USE_OPENSSL/s,^#,,'                       \
    -e 's,^EXIM_MONITOR,#EXIM_MONITOR,' src/EDITME > Local/Makefile &&

printf "USE_GDBM = yes\nDBMLIB = -lgdbm\n" >> Local/Makefile &&

Si vous voulez ajouter la prise en charge de Linux PAM, lancez aussi les commandes suivantes :

sed -i '/# SUPPORT_PAM=yes/s,^#,,' Local/Makefile
echo "EXTRALIBS=-lpam" >> Local/Makefile

Construisez Exim avec les commandes suivantes :

make

Ce paquet n'a pas de suite de tests.

Maintenant, en tant qu'utilisateur root :

make install                                    &&
install -v -m644 doc/exim.8 /usr/share/man/man8 &&

install -v -d -m755    /usr/share/doc/exim-4.96 &&
install -v -m644 doc/* /usr/share/doc/exim-4.96 &&

ln -sfv exim /usr/sbin/sendmail                 &&
install -v -d -m750 -o exim -g exim /var/spool/exim

Explication des commandes

sed -e ... > Local/Makefile : La plupart des options de configuration d'Exim sont définies dans Local/Makefile, créé à partir du fichier src/EDITME. Cette commande indique l'ensemble d'options minimum. Les descriptions des options sont listées ci-dessous.

printf ... > Local/Makefile : initialisation des variables autorise l'utilisation de GDBM à la place de Berkeley DB par défaut. Enlevez cette commande si vous avez installé Berkeley DB-5.3.28.

BIN_DIRECTORY=/usr/sbin : Ceci installe tous les binaires et les scripts d'Exim dans /usr/sbin.

CONFIGURE_FILE=/etc/exim.conf : Ceci installe le fichier principal de configuration d'Exim dans /etc.

EXIM_USER=exim : ceci dit à Exim qu'après que le démon n'a plus besoin des privilèges root, le processus donne le démon à l'utilisateur exim.

SUPPORT_TLS=yes : Ceci permet de supporter les connexions STARTTLS. Si vous utilisez cette option, vous devez préciser quelle bibliothèque, entre OpenSSL et GnuTLS, est utilisée (voir src/EDITME).

USE_OPENSSL_PC=openssl : Ceci indique au système de construction d'utiliser OpenSSL et de toruver les bibliothèques nécessaires avec pkg-config.

#EXIM_MONITOR : Ceci reporte la construction du surveillant Exim car il exige la prise en charge du système de fenêtrage X, en commentant la ligne EXIM_MONITOR dans le Makefile. Si vous souhaitez construire le surveillant, n'utilisez pas la commande sed et lancez la commande suivante avant de construire le paquet (modifiez Local/eximon.conf, si nécessaire) : cp exim_monitor/EDITME Local/eximon.conf.

ln -sfv exim /usr/sbin/sendmail : Crée un lien vers sendmail pour les applications en ayant besoin. Exim acceptera la plupart des options Sendmail en ligne de commande.

install -v -m750 -o exim -g exim /var/spool/exim : Comme /var/spool appartient à root et que cette version de exim baisse ses privilèges root tôt, pour se lancer en tant qu'utilisateur exim, il ne peut pas créer le dossier /var/spool/exim. La solution est de le créer manuellement.

Ajouter des fonctionnalités supplémentaires

Pour utiliser tout ou partie des paquets de dépendance, vous devrez modifier Local/Makefile pour inclure les directives adéquates et des paramètres pour lier des bibliothèques supplémentaires avant de construire Exim. Local/Makefile est énormément commenté par des instructions sur la façon de s'y prendre. Voici la liste d'informations supplémentaires pour vous aider à lier ces paquets de dépendance ou ajouter des fonctionnalités supplémentaires.

Si vous souhaitez construire et installer la documentation .info, reportez-vous à https://exim.org/exim-html-4.96/doc/html/spec_html/ch04.html#SECTinsinfdoc.

Si vous souhaitez construire en dur les interfaces d'Exim avec l'appel à des logiciels anti-virus et anti-spams directement à partir des listes de contrôle d'accès, dé-commentez le paramètre WITH_CONTENT_SCAN=yes et relisez les informations qui se trouvent sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch45.html.

Pour utiliser une base de données de fond différente de GDBM, voir les instructions sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch04.html#SECTdb.

Pour la fonctionnalité SSL, voir les instructions sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch04.html#SECTinctlsssl et https://exim.org/exim-html-4.96/doc/html/spec_html/ch42.html.

Pour la fonctionnalité tcpwrappers, voir les instructions sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch04.html#SECID27.

Pour des informations sur l'ajout de mécanismes d'authentification, voir les chapitres 33-41 de https://exim.org/exim-html-4.96/doc/html/spec_html/index.html.

Pour des informations pour le lien avec Linux-PAM, reportez-vous aux instructions sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch11.html#SECTexpcond.

Pour des informations sur le lien avec des bibliothèques du moteur de base de données utilisées pour les recherches de noms Exim, voir les instructions sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch09.html.

Si vous souhaitez ajouter le support Readline à Exim quand on l'appelle en mode « test expansion » (-be), voir les informations dans la section -be de https://exim.org/exim-html-4.96/doc/html/spec_html/ch05.html#id2525974.

Vous souhaiterez peut-être modifier la configuration par défaut et envoyer des fichiers journaux à syslog plutôt qu'au répertoire /var/spool/exim/log par défaut. Consultez les informations sur https://exim.org/exim-html-4.96/doc/html/spec_html/ch-log_files.html.

Une large gamme d'informations se trouvent sur le Wiki d'Exim.

Configuration de Exim

Fichiers de configuration

/etc/exim.conf et /etc/aliases

Informations sur la configuration

Revoyez le fichier /etc/exim.conf et modifiez les paramètres pour répondre à vos besoins. Remarquez que la configuration par défaut considère que le répertoire /var/mail est inscriptible par tout le monde, mais a le droit sticky. Si vous voulez utiliser la configuration par défaut, lancez en tant qu'utilisateur root :

chmod -v a+wt /var/mail

Un fichier /etc/aliases par défaut (rien que des commentaires) est installé pendant l'installation du paquet si ce fichier n'existait pas sur votre système. Créez les alias nécessaires et démarrez le démon Exim en utilisant les commandes suivantes :

cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
/usr/sbin/exim -bd -q15m
[Note]

Note

Pour protéger un fichier /etc/aliases existant, la commande ci-dessus y ajoute ces alias. Vous devriez vérifier ce fichier et recopier les alias supprimés s'il y en a.

La commande /usr/sbin/exim -bd -q15m démarre le démon Exim avec un intervalle de 15 minutes dans le traitement de la file d'attente de courriers. Ajustez ce paramètre pour l'adapter à vos souhaits.

Configuration de Linux PAM

Si vous avez construit Exim avec la prise en charge de Linux PAM, vous devez créer un fichier de configuration PAM pour que ça fonctionne correctement avec BLFS.

Lancez les commandes suivantes en tant qu'utilisateur root pour créer le fichier de configuration pour Linux PAM :

cat > /etc/pam.d/exim << "EOF"
# Begin /etc/pam.d/exim

auth    include system-auth
account include system-account
session include system-session

# End /etc/pam.d/exim
EOF

Script de démarrage

Pour automatiser le lancement d'exim au démarrage, installez le script de démarrage /etc/rc.d/init.d/exim fourni dans le paquet blfs-bootscripts-20230101 :

make install-exim

Le script de démarrage démarre aussi le démon Exim et envoie un processus de lanceur de file d'attente de courriers toutes les 15 minutes. Modifiez le paramètre -q<intervalle de temps> dans /etc/rc.d/init.d/exim, si nécessaire pour votre installation.

Contenu

Programmes installés: exicyclog, exigrep, exim, exim-4.96-2, exim_checkaccess, exim_dbmbuild, exim_dumpdb, exim_fixdb, exim_lock, exim_tidydb, eximstats, exinext, exipick, exiqgrep, exiqsumm, exiwhat et potentiellement eximon, eximon.bin, et sendmail (lien symbolique)
Bibliothèques installées: Aucune
Répertoires installés: /usr/share/doc/exim-4.96 et /var/spool/exim

Descriptions courtes

exicyclog

parcourt les fichiers journaux d'Exim

exigrep

recherche dans les fichiers journaux d'Exim

exim

est un lien symbolique vers le démon MTA exim-4.96-2

exim-4.96-2

est le démon d'agent de transport de courrier Exim

exim_checkaccess

établit si une adresse de destinataire donnée sur un hôte est acceptable ou pas

exim_dbmbuild

crée et reconstruit des bases de données Exim

exim_dumpdb

écrit le contenu des bases de données Exim sur la sortie standard

exim_fixdb

modifie des données dans les bases de données Exim

exim_lock

verrouille un fichier de boîte aux lettres

exim_tidydb

supprime les vieux enregistrements des bases de données Exim

eximstats

génère des statistiques de courrier à partir des fichiers journaux Exim

exinext

demande le délai entre les essais sur l'hôte distant

exipick

sélectionne des messages basés sur divers critères

exiqgrep

est un outil de listage sélectif de la file d'attente

exiqsumm

produit un résumé des messages dans la file d'attente du courrier

exiwhat

cherche les processus Exim en cours

eximon

est un script shell de démarrage pour eximon.bin utilisé pour paramétrer les variables d'environnement nécessaires avant de lancer le programme

eximon.bin

est un programme de surveillance qui affiche les informations actuelles dans une fenêtre X et contient aussi une interface en menus avec les options en ligne de commande d'administration d'Exim