Mise à jour du 14/04/2024.
Aller régulièrement sur le serveur via une console pour l'exploiter peut être fastidieux en raison des indispensables mesures de sécurité mises en place. De plus, la disponibilité de l'équipe d'exploitation ne permet pas toujours cette régularité. La loi dite de "la tartine" montre qu'un incident se produira presque toujours dans une phase d'indisponibilité de cette équipe.
L'idée est de prévenir au plus tôt l'équipe d'exploitation qu'un problème a été rencontré. Pour cela, le courriel est un outil bien adapté.
On suppose ici que l'on a accès à un serveur de messagerie SMTP (le votre ou celui d'un founisseur) et que l'on dispose des éléments du serveur ainsi que ceux d'un compte de connexion.
Nous utiliserons comme "client" émetteur de messages, le logiciel exim4 dans un mode un peu particulier appelé smarthost. Comme cet outil est aussi un serber SMTP, nous n'accepterons que les connexions locales de façon à éviter qu'un petit malin utilise le serveur en "zombie" pour émettre des pourriels ou des courriers frauduleux. L'inconvénient est que cet outil est assez mal documenté.
Pour aller à l'essentiel nous indiquons ici la suite des commandes (nécessite les droits root).
apt install exim4Installation du logiciel.
nano /etc/exim4/update-exim4.conf.conf
Voici le contenu du fichier à éditer :
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost='parce.fr'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='{alias ou adresse IP du serveur SMTP}::465'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'Ce fichier est normalement construit par la commande dpkg-reconfigure exim4-config. Cette commande interactive est peu intuitive et nous préférons accéder directement au fichier.
Vous devrez remplacer {alias ou adresse IP du serveur SMTP} par la bonne valeur. Notez qu'avec le port 465 (le double double-point n'est pas une erreur), nous allons ici utiliser SSL/TLS pour le transport.
nano /etc/mailname
Ce fichier doit contenir le nom du domaine de messagerie comme par exemple jmpdom.ovh.
nano /etc/aliases
Laisser toutes les redirections vers l'adresse du compte root. la dernière ligne doit être celle de l'adresse courriel externe comme par exemple root: webmaster@jmpdom.ovh (ou autre adresse courriel).
newaliases
Prise en compte des deux fichiers ci-dessus par le système.
nano /etc/exim4/exim4.conf.template
Recherchez (^W) la texte "remote_smtp_smarthost:". Sous la propriété driver = smtp ajouter les deux propriétés qui suivent :
protocol = smtps
hosts_require_auth = {alias ou adresse IP du serveur SMTP}A partir de là, Exim4 utilisera SSL/TLS pour le transport.
Notez que si vous avez scindé la configuration en plusieurs fichiers, vous devrez ajouter ces deux propriétés au fichier /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost.
nano /etc/exim4/passwd.client
Ajouter la ligne {alias ou adresse IP du serveur SMTP}:{compte de connexion SMTP}:{mot de passe de connexion}
update-exim4.confPrise en compte de la nouvelle configuration par Exim4.
systemctl restart exim4Redémarrage du relai de messagerie.
echo "Test de messagerie" | mail -s "Courriel de test." webmaster@jmpdom.ovh
Vérifiez que vous recevez ce message dans votre boîte aux lettres.
Voici quelques commandes utiles pour gérer la file d'attente des messages :
# Force l'envoi du message {id-courriel}
/usr/sbin/exim -M {id-courriel}
# Liste des messages de la file d'attente
/usr/sbin/exim -bpa
# Force le traitement de la file d'attente
/usr/sbin/exim -qf
# Force le traitement de la file d'attente y compris les messages "gelés" (frozen)
/usr/sbin/exim -qff
# Affiche la trace pour le message {id-courriel}
/usr/sbin/exim -Mvl {id-courriel}
# Affiche le corps du message {id-courriel}
/usr/sbin/exim -Mvb {id-courriel}
# Affiche l'en-tête du message {id-courriel}
/usr/sbin/exim -Mvh {id-courriel}
# Supprime le message {id-courriel} sans émetre aucun message d'erreur
/usr/sbin/exim -Mrm {id-courriel}
# Abandonner le message {id-courriel} pour le renvoyer à l'expéditeur
/usr/sbin/exim -Mg {id-courriel}
# Nombre de messages dans la file d'attente
/usr/sbin/exim -bpr | grep “<” | wc -l
# Nombre de messages "gelés" dans la file d'attente
/usr/sbin/exim -bpr | grep frozen | wc -l
# Suppression des messages "gelés"
/usr/sbin/exim -bpr | grep frozen | awk {‘print $3’} | xargs exim -Mrm
Les journaux sont /var/log/exim4/mainlog et /var/log/exim4/paniclog
Grâce à la commande echo "corps du message" | mail -s "{objet du courriel}" {adresse courriel}, il est aisé d'émettre des courriels via des scripts ou d'envoyer par courriel l'affichage de scripts : {script} | mail -s "{objet du courriel}" {adresse courriel}.
Rédaction par Jean-Marie Piatte (1983-2021)