Inoltro di posta ad un server esterno (SMARTHOST) con autenticazione

From RVM Wiki
Revision as of 10:37, 18 August 2006 by Gabriele.vivinetto (talk | contribs) (Aggiunta sezione TLS)
Jump to navigation Jump to search

Può essere necessario che un mail server non possa inviare direttamente email ad altri mail server (direct MX), ad esempio per problemi di firewall, oppure perchè collegato ad un ip dinamico / blacklistato, e quindi sia necessario che inoltri tutta la mail in uscita ad un altro mail server, che viene denominato SMARTHOST.

Molto spesso questo smarthost richiede anche che l'invio di posta sia soggetto ad autenticazione smtp.


Prerequisiti

L'utilizzo di uno smarthost non ha prerequisiti.

Per utilizzare l'autenticazione smtp, è necessario appoggiarsi a SASL. Installare quindi i pacchetti necessari come per una autenticazione smtp server:

sudo apt-get install sasl2-bin libsasl2-modules
/etc/init.d/saslauthd start

Definizione dello SMARTHOST

vi /etc/postfix/main.cf
...
relayhost = smtp.libero.it
...

In questo modo postfix inoltrerà tutta la posta esterna al server smtp indicato.

Autenticazione SMTP

Per fare in modo che postfix si autentichi sullo smart host è necessario modificare la configurazione di postfix e creare un elenco password.

Abilitazione della Server SMTP AUTH

Bisogna specificare in main.cf che le password per l'autenticazione su smarthost sono nel file /etc/postfix/smtp_sasl_password_maps

vi /etc/postfix/main.cf
...
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_password_maps
smtp_sasl_security_options =
...

(Verificato per Ubuntu Dapper)

Creazione elenco password per SMTP AUTH

Si crea il file contenete:

nome.smarthost username:password

Quindi:

vi /etc/postfix/smtp_sasl_password_maps
smtp.libero.it rvmgroup@libero.it:rvmsrl


Compilazione Password map

Dato che la lista deve essere letta in formato hash, va compilata:

postmap /etc/postfix/smtp_sasl_password_maps

Mettendo in debug smtpd, so noterà che i messaggi inviati allo smarthost sono preceduti da autenticazione.

Abilitazione cifratura TSL

Se si vuole che la sessiona sia crittografata:

sudoedit /etc/postfix/main.cf
...
smtp_use_tls = yes
smtp_tls_loglevel = 1
...

Si vedrà dai log:

Aug 18 12:34:44 localhost postfix/pickup[28346]: 40E8DE25C8: uid=1000 from=<diesis>
Aug 18 12:34:44 localhost postfix/cleanup[28362]: 40E8DE25C8: message-id=<20060818103444.40E8DE25C8@rvmnot003>
Aug 18 12:34:44 localhost postfix/qmgr[28347]: 40E8DE25C8: from=<gabriele.vivinetto@rvmgroup.it>, size=343, nrcpt=1 (queue a
ctive)
Aug 18 12:34:44 localhost postfix/smtp[28364]: setting up TLS connection to support.rvmgroup.it
Aug 18 12:34:44 localhost postfix/smtp[28364]: certificate verification failed for support.rvmgroup.it: num=19:self signed c
ertificate in certificate chain
Aug 18 12:34:45 localhost postfix/smtp[28364]: Unverified: subject_CN=support.rvmgroup.it, issuer=ca.rvmgroup.it
Aug 18 12:34:45 localhost postfix/smtp[28364]: TLS connection established to support.rvmgroup.it: TLSv1 with cipher DHE-RSA-
AES256-SHA (256/256 bits)
Aug 18 12:34:45 localhost postfix/smtp[28364]: Server certificate could not be verified
Aug 18 12:34:45 localhost postfix/smtp[28364]: 40E8DE25C8: to=<gabriele@rvmgroup.it>, relay=support.rvmgroup.it[81.208.113.1
51], delay=1, status=sent (250 Ok: queued as A024D25C02B)
Aug 18 12:34:45 localhost postfix/qmgr[28347]: 40E8DE25C8: removed