Proxmox: configurare un SMTP esterno via Postfix

| |

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

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments