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.
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 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 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
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>
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.