Ci ho perso del tempo e preferisco quindi pubblicare qualche appunto qui per futura memoria (magari torna utile anche per te che stai leggendo in questo momento).
Proxmox ha una serie di alert configurabili e – in generale – è sempre cosa buona e giusta configurare il sistema affinché sia in grado di contattare un server SMTP per scrivere all’esterno in caso di necessità. Proxmox usa e consiglia Postfix, un pelo differente rispetto a SSMTP che ho usato su Raspberry.
Configurazione di Postfix
Dopo aver lanciato un sudo apt-get update
utile all’aggiornamento dei pacchetti disponibili, lancia questo comando per installare mailutils:
sudo apt install libsasl2-modules mailutils
Per cercare di capire come far funzionare il tutto via Postfix mi sono basato su un thread nel forum di Proxmox che spiega come utilizzare Gmail per fare relay di posta elettronica, anche se nel mio caso non userò lui ma un server SMTP differente. Modifica quindi il file di configurazione di Postfix aprendolo con sudo nano /etc/postfix/main.cf
.
In coda alle impostazioni che sono già all’interno del file puoi copiare e incollare questo blocco:
relayhost = smtp.contoso.com:587 smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_use_tls = yes smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_sasl_mechanism_filter = login sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps smtp_header_checks = regexp:/etc/postfix/header_check
Quello che dovrai modificare in questo preciso momento è esclusivamente il primo parametro, smtp.contoso.com:587
è il server SMTP che intendi utilizzare seguito dal :587
che sta a indicare la porta da cui passare (varia in base alla configurazione del provider che scegli di utilizzare, la 25 è standard ma ormai sempre meno utilizzata in favore della 587 e della 465 che sfruttano STARTTLS/SSL).
Salva il file di configurazione ed esci (CTRL + S
seguito da CTRL + X
da tastiera).
Crea o modifica ora il contenuto del file sasl_passwd
(sudo nano /etc/postfix/sasl_passwd
) e inserisci al suo interno il riferimento all’utente da utilizzare per passare tramite il server SMTP scelto rispettando questa sintassi:
smtp.contoso.com:587 mario.rossi@contoso.com:PasswordDiMarioContoso
In pratica stai dicendo che il server prima specificato in configurazione potrà essere utilizzato grazie all’autenticazione di mario.rossi@contoso.com
(con relativa password).
Salva il file e chiudilo. Ora dallo in pasto a Postfix e poi modifica i permessi affinché sia accessibile esclusivamente dall’utenza di root:
sudo postmap hash:/etc/postfix/sasl_passwd sudo chown root:root /etc/postfix/sasl_passwd sudo chmod 600 /etc/postfix/sasl_passwd
Tecnicamente dovresti essere già pronto per partire (dopo aver rilanciato il servizio di Postfix con sudo systemctl restart postfix
oppure ricaricando la configurazione con sudo postfix reload
) ma quasi certamente incorrrerai in qualche problema di autenticazione e/o invio causato da un indirizzo mittente non valido.
Test di invio
Lancia da terminale un semplice echo "testo della email" | mail -s "oggetto della email" mario.rossi@contoso.com
sostituendo ovviamente mario.rossi@contoso.com
con il tuo indirizzo reale di posta elettronica, questo dovrebbe inviarti nel giro di poco una nuova email alla tua casella, segno che tutto è andato per il verso giusto.
Ma
Come dicevo qualche riga più sopra potresti incorrere in errori visibili dal Syslog del datacenter Proxmox che parlano di indirizzo / dominio sconosciuto, questo perché le email provano a partire dall’utente root (o differente) seguito dalla chiocciola e dall’hostname della macchina Proxmox completa di DNS interno. Per esempio nel mio caso le email provavano a partire da root@proxmox.fritz.box
, mittente evidentemente sconosciuto per il mio server SMTP (e non solo).
postfix/smtp[1152651]: CE9EE1838A8: to=<mario.rossi@contoso.com>, relay=smtp.contoso.com[99.99.99.99]:587, delay=0.17, delays=0.04/0/0.11/0.02, dsn=5.1.8, status=bounced (host smtp.contoso.com[99.99.99.99] said: 550 5.1.8 <root@proxmox.fritz.box>: Sender address rejected: Domain not found (in reply to RCPT TO command))
È qui che entrano in gioco due file che richiami nella configurazione e che permettono di sovrascrivere il mittente facendotene utilizzare uno corretto a tua scelta. Modifica il file sender_canonical_maps
(sudo nano /etc/postfix/sender_canonical_maps
) e inserisci al suo interno:
/.+/ hello@contoso.com
Dove hello@contoso.com
è un indirizzo lecito che potrebbe appartenere al tuo dominio (ma non necessariamente, hello
per quello che mi riguarda potresti sostituirlo anche con paperino
o altro nome a tua scelta). Salva il file e chiudilo. Ora tocca a header_check
(sudo nano /etc/postfix/header_check
):
/From:.*/ REPLACE From: hello@contoso.com
Salva e chiudi pure lui. Ora ricarica la configurazione di Postfix con sudo postfix reload
(o – se preferisci – riavvia completamente Postfix con sudo systemctl restart postfix
) per applicare le modifiche.
Riprova a inviare l’email oppure chiedi a Postfix di processare e svuotare la coda email già attiva in uscita (quindi proverà a inviare quella precedentemente bloccata) lanciando un sudo postqueue -f
.
C’è posta per te :-)
#KeepItSimple
Grazie a:
serverfault.com/a/627266
serverfault.com/a/674984
serverfault.com/a/573440
cyberciti.biz/tips/howto-postfix-flush-mail-queue.html
linuxquestions.org/questions/linux-server-73/postfix-no-mechanism-available-4175595296
forum.proxmox.com/threads/how-to-chage-notification-email-address.30241
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)