postfix SMTP relay
Nelle configurazioni di linux, per le notifiche di messaggi (ad esempio del backup) viene spesso utilizzata la posta e, come default, il programma cerca un SMTP server sullo stesso server dove gira l'applicazione (localhost).
In questo caso torna spesso utile configurare un servizio di posta su localhost, per il relay verso un server di SMTP esistente, magari esterno all'azienda, come ad esempio alice o aruba.
I server SMTP non accettano le connessioni da altri SMTP ignoti o configurati con impostazioni minime, per evidenti problemi di SPAM.
In questi casi, per accettare una connessione il server SMTP richiede abitualmente una autenticazione.
Postfix è in grado di autenticarsi a server SMTP per il relay di posta.
I metodi di autenticazione sono diversi, qui ne presento uno, valido in diverse occasioni.
I files da configurare sono: /etc/postfix/main.cf e /etc/postfix/sasl_passwd.
Nel primo occorre fornire l'indirizzo del server SMTP verso cui fare relay e definire la policy di login.
Le modifiche minime di main.cf sono le seguenti:
relayhost = [smtp.server-to-relay.dom]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = no
smtp_sasl_security_options =
relayhost definisce verso quale host fare relay. Le varie opzioni smtp_sasl abilitano l'autenticazione, definiscono il file dove trovare le credenziali
Nel file /etc/postfix/sasl_passwd sono presenti le credenziali per accedere al server SMTP. Questo è un esempio:
# sasl_passwd
# Syntax:
# domain username:password
# Example:
# foo.com username:password
# See /usr/share/doc/packages/postfix/README_FILES/SASL_README
# for more details
smtp.server-to-relay.dom user:password
Occorre fornire il nome del server SMTP e le credenziali nella forma login:password
Il file letto da postfix, per le credenziali, è in realtà /etc/postfix/sasl_passwd.db che viene creato/aggiornato con il comando
postmap /etc/postfix/sasl_passwd
Il comando postmap va quindi eseguito dopo ogni modifica di sasl_passwd
Dopo le modifiche di main.cf occorre far ripartire postfix:
rcpostfix restart
Per le verifiche uso controllare il traffico SMTP con un analizzatore di protocollo sullo stesso server di posta (attenti agli switch che isolano il traffico) come wireshark o una delle tante utility di linux.