Mail

Généralités

Sous GNU/Linux, quand il y a des messages à envoyer, ils sont envoyés dans la boîte local nommée root@localhost. Il peut être intéressant de rediriger cette boite vers une véritable boite mail de supervision afin de recevoir notamment les mails logwatch.

Ici l’objectif est de recevoir sur une boite mail de supervision les mails qui sont destinés à root sur la machine local. Le plus intéressant est logwatch. Cela ajoute un mail par jour par serveur mais il est intéressant de savoir ce qui se passe de manière plus précise.

Redirection des mails root

Sendmail

Sendmail est un MTA (Mail Transfert Agent). Il permet de relayer les mails de root vers un serveur SMTP et donc de pouvoir envoyer des mails. Commencer par modifier le fichier /etc/aliases qui permet de définir un alias de root sur une véritable boîte mail.

Décommenter la ligne suivante.

# Person who should get root's mail
root: mailsupervision@domaine.fr

Entrer la commande newaliases pour le prendre en compte.

Ensuite, il faut configurer sendmail pour qu’il relaye les mails sur le serveur SMTP qu’on veut.

Aller dans le fichier /etc/mail/sendmail.cf et chercher le caractère DS.

Ajouter cette ligne avec DS et tout attaché le nom du serveur SMTP.

# "Smart" relay host (may be null)
DSsrv-messagerie.domaine.local

Lors de test d’envoi de mail avec la commande mail, on peut regarder la file d’attente de mail en allant dans le dossier /var/spool/mqueue. Utiliser la commande mailq pour avoir la liste des mails dans la file d’attente.

Comme tous les mails sont transférés sur l’adresse mail spécifiée, supprimer le fichier /var/spool/mail/root.

Postfix

Postfix est aussi un MTA.

On accède ax paramètres de configurations chargés à l'aide de la commande suivante.

postconf -n

Configuer les options suivantes dans /etc/postfix/main.cf pour le configurer en relais de messageries vis-à-vis d'un autre serveur de mail.

relayhost = <mail_server>.<domaine>
myhostname = <name_server>

Configuration serveur SMTP

Sendmail

Configuration pour envoyer directement les mails à un serveur de mail sans redirection.

Disposer du paquet rpm sendmail-cf pour avoir accès à la commande m4. Ajouter dans /etc/mail/submit.mc.

define(`confDIRECT_SUBMISSION_MODIFIERS',`C')dnl

puis

m4 submit.rc > submit.cf

Ajouter dans /etc/mail/sendmail.mc.

define(`SMART_HOST', `mailhub.spotimage.int')dnl

m4 sendmail.rc > sendmail.cf

Test mail

Tester l'envoi d'un mail avec la commande telnet, c'est à dire avec connexion directe au serveur de mail.

telnet smtp.xxxx.xxxx 25
Connected to smtp.xxxx.xxxx.
220 smtp.xxxx.xxxx SMTP Ready
EHLO client
250-smtp.xxxx.xxxx
250-PIPELINING
250 8BITMIME
MAIL FROM: <auteur@yyyy.yyyy>
250 Sender ok
RCPT TO: <destinataire@xxxx.xxxx>
250 Recipient ok.
DATA
354 Enter mail, end with "." on a line by itself
Subject: Test
Corps du texte
.
250 Ok
QUIT
221 Closing connection
Connection closed by foreign host.

Envoyer un mail en utilisant la configuration locale de la machine. Intéressant pour tester la configuration locale du MTA.

mail -s "test" <adresse_serveur_mail>
Corps du mail
.
Cc
echo "Test mail" | mail -s "test mail" -a "From: <sender_fqdn>" <destination_fqdn>

Système de fichiers rempli par queue de mail

Attention l'arrêt du service mail sur une machine n'arrête pas l'envoi des mails des services installés. Dans ce cas une queue de mail se rempli inexorablement dans /var/spool/clientmqueue. Le simple fait de relancer le logiciel de mail local va les transférer dans les boîtes locales en destinataire. En général c'est la boîte root qui est par défaut rempli par les mails de logwatchs tous les jours et globalement tous les services régulièrement exécutés par cron.