NotificationMailAvecProxmox

De Breizh-Entropy
Aller à la navigation Aller à la recherche

Contexte

Un serveur proxmox est hébergé à l'Élabo, et dispose de plusieurs disques en RAID.

On souhaite recevoir une notification par e-mail du démon RAID mdadm quand un disque devient défaillant et doit donc être rapidement remplacé.

Contraintes: le port 25 est bloqué par l'abonnement fibre Orange Pro, donc pas moyen d'envoyer le mail directement sur la VM d'Actux. Et on n'a moyennement envie de mettre en place le port 587/submission sur le Postfix d'Actux (avec potentiellement la gestion de comptes mail locaux) qui est déjà assez complexe avec la gestion des listes Sympa et compagnie. On va donc envoyer via le SMTP d'Orange.

Mise en place

Adaptation à Proxmox

Proxmox trafique /root/.forward pour passer les e-mails sur /usr/bin/proxmox-mail-forward, qui passe l'e-mail au système de notifications Proxmox.

Dans l'interface, on ajoute l'adresse d'admin en destinataire: Datacenter > Notifications > mail-to-root > Additional recipients: root@breizh-entropy.org.

Normalement on a une trace de ça dans /etc/pve/notifications.cfg.

Ici on va faire repasser la notification sur la couche standard Sendmail pour avoir la main avec Postfix. (On aurait peut-être pu directement configurer ce qui va suivre avec Datacenter > Notifications > Add > SMTP, mais pas testé. Et puis le système proxmox-mail-forward ne fonctionne que pour les mails à root@, avec un Postfix bien configuré les utilisateurs non-root pourront envoyer des e-mails.)

Pour garder une copie locale des e-mails, on ajoute \root à /root/.forward:

\root, |/usr/bin/proxmox-mail-forward

On configure ensuite Postfix pour passer par Orange. Dans /etc/postfix/main.cf:

## Relai Orange
relayhost = [smtp.orange.fr]:submission
smtp_sasl_auth_enable = yes
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
sender_canonical_maps = hash:/etc/postfix/sender_canonical

Commenter aussi les lignes suivantes:

#default_transport = error
#relay_transport = error

Dans /etc/postfix/sasl_passwd, pour fournir les identifiants SMTP Orange:

[smtp.orange.fr]:submission	xxxxx@orange.fr:MotDePasse!

Dans /etc/postfix/sender_canonical, pour ré-écrire le From, car Orange n'accepte plus les expéditeurs non-Orange depuis courant 2024:

root	xxxxx@orange.fr

Redémarrer tout ça:

postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/sender_canonical
service postfix restart

Tester l'envoi sur une adresse perso:

echo Bonjour. | mail -s Test chez@vous.com

Inspecter la copie locale:

mutt -f /var/mail/root

Vérifier que l'envoi s'est bien passé:

# journalctl -fxb
oct. 09 21:19:20 proxmox postfix/smtp[17211]: 5170F1D40609: to=<root@breizh-entropy.org>, relay=smtp.orange.fr[80.12.26.33]:587, delay=2.2, delays=0/0/0.21/2, dsn=2.0.0, status=sent (250 2.0.0 ycDOsyZ2QMzKhycDOsPxxX mail accepted for delivery)

Tester enfin l'envoi d'alertes RAID par mdadm:

mdadm --monitor --scan --oneshot --test

C'est bon, on est maintenant prévenu quand un disque lâche !